關(guān)于ESP8266開(kāi)發(fā)環(huán)境的那些事兒

轉(zhuǎn)載自 古月居
侵權(quán)聯(lián)系刪除

今天給大家普及一下ESP8266的開(kāi)發(fā)環(huán)境和VScode Arduino的開(kāi)發(fā)環(huán)境配置。我們這一系列的ESP8266開(kāi)發(fā)都是基于VScode來(lái)的,而不是使用Arduino IDE開(kāi)發(fā)的,原因下面會(huì)介紹。我使用的ESP8266模組是ESP-12F,開(kāi)發(fā)板是我模仿NodeMcu畫(huà)的,區(qū)別不大,只是體積上比較小,更適合放進(jìn)一些設(shè)備中吧。

1. 開(kāi)發(fā)環(huán)境

  • 安信可一體化開(kāi)發(fā)環(huán)境<SDK>(推薦)

  • 支持ESP8266 NONOS和FreeRTOS環(huán)境開(kāi)發(fā)(新版 ESP8266 RTOS SDK V3.0以上版本)

  • 支持ESP32 FreeRTOS環(huán)境開(kāi)發(fā)

  • 下載即用,無(wú)需另外配置環(huán)境

  • 可直接編譯樂(lè)鑫官方推出的SDK開(kāi)發(fā)包

  • 圖形化界面開(kāi)發(fā)

  • ESP8266環(huán)境搭建:http://wiki.ai-thinker.com/ai_ide_install

  • ESP8266文檔中心:http://wiki.ai-thinker.com/esp8266/docs

  • Arduino IDE開(kāi)發(fā)方式(推薦)

  • 優(yōu)點(diǎn):集編程和燒錄一體,使用很方便。語(yǔ)言執(zhí)行效率高,節(jié)省資源,庫(kù)函數(shù)比較多,開(kāi)發(fā)語(yǔ)言簡(jiǎn)單,能夠很快上手。

  • 缺點(diǎn):Arduino IDE需要寫(xiě)較長(zhǎng)的代碼時(shí),不是很方便,如果需要查看底層函數(shù)或者方法,非常費(fèi)勁。所以我們要使用VScode進(jìn)行開(kāi)發(fā),因?yàn)橛凶類(lèi)?ài)的代碼提示

  • AT指令開(kāi)發(fā)(不推薦)

  • 優(yōu)點(diǎn):開(kāi)發(fā)簡(jiǎn)單,資料較多。只需知道AT指令集,以及它的通信方式即可。

  • 缺點(diǎn):浪費(fèi)資源,需要MCU與其通信,不能獨(dú)立完成某項(xiàng)功能。

  • 資源:

    https://blog.csdn.net/lalala098/article/details/81240806

  • NodeMCU的Lua開(kāi)發(fā)(不推薦)

  • 優(yōu)點(diǎn):節(jié)省資源,開(kāi)發(fā)簡(jiǎn)單,代碼量少。

  • 缺點(diǎn):lua解釋器執(zhí)行效率較低,最終換成ArduinoIDE開(kāi)發(fā),就是因?yàn)樽x取傳感器數(shù)據(jù)時(shí),總是漏掉一個(gè)數(shù)據(jù)。前期準(zhǔn)備比較麻煩。需要準(zhǔn)備相應(yīng)功能的固件,燒錄進(jìn)去,然后使用lua語(yǔ)言和工具與之調(diào)試。

2. 搭建Arduino開(kāi)發(fā)環(huán)境

2.1

添加ESP8266庫(kù)

首先從Arduino中文論壇、Arduino官方 下載最新版本的 Arduino IDE 軟件并安裝。

安裝完成以后,進(jìn)入首選項(xiàng)(Preferences),找到附加開(kāi)發(fā)板管理器地址(Additional Board Manager URLs),并在其后添加如下信息:http://arduino.esp8266.com/stable/package_esp8266com_index.json

image

國(guó)外同學(xué)的配置

上面的方法適合在國(guó)外的同學(xué)使用,在國(guó)內(nèi)的同學(xué)就直接下載我下面提供的包直接安裝就行了。

https://www.jianguoyun.com/p/Dc1zwEcQq5TaCBjYmrMD

當(dāng)下載完后,直接雙擊安裝即可。

安裝完后,會(huì)發(fā)現(xiàn)在項(xiàng)目-加載庫(kù)中多了很多的庫(kù),如下圖:


image

ESP8266庫(kù)

也可以發(fā)現(xiàn)工具-開(kāi)發(fā)板(xxx)中添加了很多ESP8266硬件,如下圖:

image

ESP8266硬件

當(dāng)做完這一步時(shí),我們就可以開(kāi)始燒程序了。??

2.2

燒程序測(cè)試

本例讓我們成為點(diǎn)燈工程師,點(diǎn)亮第一個(gè)燈吧。

我們準(zhǔn)備好開(kāi)發(fā)板,通過(guò)查看原理圖,找到可以被我們點(diǎn)亮的LED燈接的管腳。

我準(zhǔn)備的是一塊自己設(shè)計(jì)的開(kāi)發(fā)板,類(lèi)似于NodeMCU。

image

AD模型

image

LED燈原理圖

我們可以從圖中看到,當(dāng)GPIO4為低電平時(shí),LED1就會(huì)被點(diǎn)亮,知道了點(diǎn)燈的邏輯,我們就開(kāi)始讓燈閃爍吧。(其他板子都類(lèi)似)

源代碼:

void setup() {

效果:

image

LED實(shí)則是在閃爍

3. 配置VScode Arduino開(kāi)發(fā)環(huán)境
3.1

下載Arduino插件

首先從VScode官網(wǎng)上下載軟件。

安裝完后,就可以安裝Arduino插件了,如下圖。

image

第三步因?yàn)槲乙呀?jīng)安裝過(guò)了,所以這里并沒(méi)有顯示install 沒(méi)有安裝的同學(xué)直接install就可以了。

3.2

配置Arduino插件

  • 第一步:VScode進(jìn)行系統(tǒng)參數(shù)設(shè)置,快捷鍵Ctrl+, 打開(kāi)后在搜索框里寫(xiě)入arduino。
image
  • 第二步:在配置項(xiàng)中找到Path,隨后在輸入框中輸入自己安裝arduino的路徑即可。
image

這樣設(shè)置后,vscode就可以正常運(yùn)行Arduino了。

3.3

創(chuàng)建Arduino程序

接下來(lái)我們拿blink程序來(lái)示范一下。

首先用vscode打開(kāi)自己的arduino目錄,然后新建文件夾Blink再新建一個(gè)Blink.ino文件。

image

首先,我們先點(diǎn)擊下面狀態(tài)欄中的<Select Board Type>選擇開(kāi)發(fā)板類(lèi)型,在這里,因?yàn)槲覀冎饕獙W(xué)習(xí)的是ESP8266,所以我們選擇Generic ESP8266 Module.

image

選擇好后,我們連接上我們的開(kāi)發(fā)板,并且點(diǎn)擊下面狀態(tài)欄的<Select Serial Port>,找到自己ESP8266的設(shè)備端口。

image

接下來(lái)就是寫(xiě)代碼的時(shí)刻了。

源代碼:

void setup() {

Q1

為什么出現(xiàn)很多紅色波浪線(xiàn)?

當(dāng)我們同學(xué)在寫(xiě)程序的時(shí)候會(huì)發(fā)現(xiàn)編輯框內(nèi)不但沒(méi)有代碼提示,而且有很多的紅色波浪線(xiàn),會(huì)覺(jué)得“啊呀,博主是個(gè)騙子,明明不能代碼提示還搞這么久”。

當(dāng)然不是啦,我?guī)Т蠹蚁驴?,肯定?huì)帶大家一起填坑的。

解決方案:

自己在配置VS Code Arduino開(kāi)發(fā)環(huán)境中遇到的問(wèn)題,類(lèi)似這種,錯(cuò)誤顯示未定義標(biāo)識(shí)符。關(guān)于VS Code配置Arduino開(kāi)發(fā)環(huán)境 網(wǎng)上有需多,我就不在敘述了,我只是記錄我自己遇到的問(wèn)題。主要問(wèn)題是頭文件索引丟失,intellisense不能自動(dòng)找到需要的頭文件路徑。需要在用戶(hù)設(shè)置中強(qiáng)制intellisense使用Tag Parser,遞歸方式檢索頭文件。

image

添加方式方式如下:

首先
image

其次在輸入框輸入Arduino,檢索。

image

打開(kāi)settings.json 配置相關(guān)文件:

添加如下所示的2行代碼。

“C_Cpp.intelliSenseEngineFallback”: “Disabled”,

“C_Cpp.intelliSenseEngine”: “Tag Parser”,

自己的配置代碼如下:

其中 “arduino.path”: “D:\work\Arduino”,是自己安裝Arduino的路徑。
{

保存之后,發(fā)現(xiàn)未定義標(biāo)識(shí)錯(cuò)誤消失了。

image

*Reference from: *

https://blog.csdn.net/weixin_45488643/article/details/105966613

好的,接下來(lái)就是下載程序啦。在下載程序之前需要知道,當(dāng)GPIO15為低電平啟動(dòng)時(shí),ESP8266才處于下載模式。

所以我這里需要先按住flash按鍵(將GPIO15電平拉低),再按下RST按鍵(這樣就能讓ESP8266處于下載模式)


image

進(jìn)入下載模式后,我們電腦上選擇下圖框出來(lái)的地方。他就開(kāi)始自動(dòng)下載了。

image

Q2

輸出內(nèi)容出現(xiàn)亂碼?

沒(méi)有問(wèn)題的同學(xué)往下移~

image

解決方案:

1、找到vscode的arduino拓展的安裝目錄,找到util.js這個(gè)文件,以我電腦上的為例,(注意不同電腦下,路徑不同,一般是在用戶(hù)文件夾下,找不到的話(huà)就直接用文件管理器搜索):

C:\Users\Administrator\.vscode\extensions\vsciot-vscode.vscode-arduino-0.3.1\out\src\common\util.js

2、找到文件中的215行左右如下代碼

if (os.platform() === "win32") {

3、將上述的代碼注釋掉

/*

4、重啟Vscode

最終效果:

image

Reference from:

https://blog.csdn.net/weixin_42225355/article/details/104906950

解決完亂碼問(wèn)題,我們下載后出現(xiàn)如下圖所示的內(nèi)容,說(shuō)明下載成功,只需要把ESP8266重啟即可(按下RST按鈕),或者重新上電。

image

效果:

和之前Arduino IDE下載的程序效果一致。

image

4. 總結(jié)

今天這章是這個(gè)系列的第二章,有同學(xué)會(huì)問(wèn):“為什么我給出的AD模型和我焊接好的板子長(zhǎng)得不一樣”,其實(shí)我當(dāng)時(shí)設(shè)計(jì)錯(cuò)了。我原本是想用CH340G的,但是沒(méi)注意到晶振走線(xiàn)問(wèn)題,所以導(dǎo)致連接電腦沒(méi)有反應(yīng),于是我就換成了CH340C,自帶晶振,這樣一來(lái)又可以空出地方給大家添加模塊。

PCB原理圖和程序我會(huì)分享到我的碼云,也請(qǐng)大家可以為我的項(xiàng)目點(diǎn)個(gè)?,謝謝大家。

碼云鏈接:

https://gitee.com/maochengkai/esp8266_from_entry_to_entry/tree/master

大家也不要以我的這系列文章為準(zhǔn),總有疏忽之處,如果有,請(qǐng)指出來(lái),也歡迎留言哈!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容