轉(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)功能。
-
資源:
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
國(guó)外同學(xué)的配置
上面的方法適合在國(guó)外的同學(xué)使用,在國(guó)內(nèi)的同學(xué)就直接下載我下面提供的包直接安裝就行了。
https://www.jianguoyun.com/p/Dc1zwEcQq5TaCBjYmrMD
當(dāng)下載完后,直接雙擊安裝即可。
安裝完后,會(huì)發(fā)現(xiàn)在項(xiàng)目-加載庫(kù)中多了很多的庫(kù),如下圖:
ESP8266庫(kù)
也可以發(fā)現(xiàn)工具-開(kāi)發(fā)板(xxx)中添加了很多ESP8266硬件,如下圖:
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。
AD模型
LED燈原理圖
我們可以從圖中看到,當(dāng)GPIO4為低電平時(shí),LED1就會(huì)被點(diǎn)亮,知道了點(diǎn)燈的邏輯,我們就開(kāi)始讓燈閃爍吧。(其他板子都類(lèi)似)
源代碼:
void setup() {
效果:
LED實(shí)則是在閃爍
3. 配置VScode Arduino開(kāi)發(fā)環(huán)境
3.1
下載Arduino插件
首先從VScode官網(wǎng)上下載軟件。
安裝完后,就可以安裝Arduino插件了,如下圖。
第三步因?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。
- 第二步:在配置項(xiàng)中找到Path,隨后在輸入框中輸入自己安裝arduino的路徑即可。
這樣設(shè)置后,vscode就可以正常運(yùn)行Arduino了。
3.3
創(chuàng)建Arduino程序
接下來(lái)我們拿blink程序來(lái)示范一下。
首先用vscode打開(kāi)自己的arduino目錄,然后新建文件夾Blink再新建一個(gè)Blink.ino文件。
首先,我們先點(diǎn)擊下面狀態(tài)欄中的<Select Board Type>選擇開(kāi)發(fā)板類(lèi)型,在這里,因?yàn)槲覀冎饕獙W(xué)習(xí)的是ESP8266,所以我們選擇Generic ESP8266 Module.
選擇好后,我們連接上我們的開(kāi)發(fā)板,并且點(diǎn)擊下面狀態(tài)欄的<Select Serial Port>,找到自己ESP8266的設(shè)備端口。
接下來(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,遞歸方式檢索頭文件。
添加方式方式如下:
首先
其次在輸入框輸入Arduino,檢索。
打開(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ò)誤消失了。
*Reference from: *
https://blog.csdn.net/weixin_45488643/article/details/105966613
好的,接下來(lái)就是下載程序啦。在下載程序之前需要知道,當(dāng)GPIO15為低電平啟動(dòng)時(shí),ESP8266才處于下載模式。
所以我這里需要先按住flash按鍵(將GPIO15電平拉低),再按下RST按鍵(這樣就能讓ESP8266處于下載模式)
進(jìn)入下載模式后,我們電腦上選擇下圖框出來(lái)的地方。他就開(kāi)始自動(dòng)下載了。
Q2
輸出內(nèi)容出現(xiàn)亂碼?
沒(méi)有問(wèn)題的同學(xué)往下移~
解決方案:
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
最終效果:
Reference from:
https://blog.csdn.net/weixin_42225355/article/details/104906950
解決完亂碼問(wèn)題,我們下載后出現(xiàn)如下圖所示的內(nèi)容,說(shuō)明下載成功,只需要把ESP8266重啟即可(按下RST按鈕),或者重新上電。
效果:
和之前Arduino IDE下載的程序效果一致。
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