關于ESP8266開發環境的那些事兒

轉載自 古月居
侵權聯系刪除

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

1. 開發環境

  • 安信可一體化開發環境<SDK>(推薦)

  • 支持ESP8266 NONOS和FreeRTOS環境開發(新版 ESP8266 RTOS SDK V3.0以上版本)

  • 支持ESP32 FreeRTOS環境開發

  • 下載即用,無需另外配置環境

  • 可直接編譯樂鑫官方推出的SDK開發包

  • 圖形化界面開發

  • ESP8266環境搭建:http://wiki.ai-thinker.com/ai_ide_install

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

  • Arduino IDE開發方式(推薦)

  • 優點:集編程和燒錄一體,使用很方便。語言執行效率高,節省資源,庫函數比較多,開發語言簡單,能夠很快上手。

  • 缺點:Arduino IDE需要寫較長的代碼時,不是很方便,如果需要查看底層函數或者方法,非常費勁。所以我們要使用VScode進行開發,因為有最愛的代碼提示

  • AT指令開發(不推薦)

  • 優點:開發簡單,資料較多。只需知道AT指令集,以及它的通信方式即可。

  • 缺點:浪費資源,需要MCU與其通信,不能獨立完成某項功能。

  • 資源:

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

  • NodeMCU的Lua開發(不推薦)

  • 優點:節省資源,開發簡單,代碼量少。

  • 缺點:lua解釋器執行效率較低,最終換成ArduinoIDE開發,就是因為讀取傳感器數據時,總是漏掉一個數據。前期準備比較麻煩。需要準備相應功能的固件,燒錄進去,然后使用lua語言和工具與之調試。

2. 搭建Arduino開發環境

2.1

添加ESP8266庫

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

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

image

國外同學的配置

上面的方法適合在國外的同學使用,在國內的同學就直接下載我下面提供的包直接安裝就行了。

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

當下載完后,直接雙擊安裝即可。

安裝完后,會發現在項目-加載庫中多了很多的庫,如下圖:


image

ESP8266庫

也可以發現工具-開發板(xxx)中添加了很多ESP8266硬件,如下圖:

image

ESP8266硬件

當做完這一步時,我們就可以開始燒程序了。??

2.2

燒程序測試

本例讓我們成為點燈工程師,點亮第一個燈吧。

我們準備好開發板,通過查看原理圖,找到可以被我們點亮的LED燈接的管腳。

我準備的是一塊自己設計的開發板,類似于NodeMCU。

image

AD模型

image

LED燈原理圖

我們可以從圖中看到,當GPIO4為低電平時,LED1就會被點亮,知道了點燈的邏輯,我們就開始讓燈閃爍吧。(其他板子都類似)

源代碼:

void setup() {

效果:

image

LED實則是在閃爍

3. 配置VScode Arduino開發環境
3.1

下載Arduino插件

首先從VScode官網上下載軟件。

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

image

第三步因為我已經安裝過了,所以這里并沒有顯示install 沒有安裝的同學直接install就可以了。

3.2

配置Arduino插件

  • 第一步:VScode進行系統參數設置,快捷鍵Ctrl+, 打開后在搜索框里寫入arduino。
image
  • 第二步:在配置項中找到Path,隨后在輸入框中輸入自己安裝arduino的路徑即可。
image

這樣設置后,vscode就可以正常運行Arduino了。

3.3

創建Arduino程序

接下來我們拿blink程序來示范一下。

首先用vscode打開自己的arduino目錄,然后新建文件夾Blink再新建一個Blink.ino文件。

image

首先,我們先點擊下面狀態欄中的<Select Board Type>選擇開發板類型,在這里,因為我們主要學習的是ESP8266,所以我們選擇Generic ESP8266 Module.

image

選擇好后,我們連接上我們的開發板,并且點擊下面狀態欄的<Select Serial Port>,找到自己ESP8266的設備端口。

image

接下來就是寫代碼的時刻了。

源代碼:

void setup() {

Q1

為什么出現很多紅色波浪線?

當我們同學在寫程序的時候會發現編輯框內不但沒有代碼提示,而且有很多的紅色波浪線,會覺得“啊呀,博主是個騙子,明明不能代碼提示還搞這么久”。

當然不是啦,我帶大家下坑,肯定會帶大家一起填坑的。

解決方案:

自己在配置VS Code Arduino開發環境中遇到的問題,類似這種,錯誤顯示未定義標識符。關于VS Code配置Arduino開發環境 網上有需多,我就不在敘述了,我只是記錄我自己遇到的問題。主要問題是頭文件索引丟失,intellisense不能自動找到需要的頭文件路徑。需要在用戶設置中強制intellisense使用Tag Parser,遞歸方式檢索頭文件。

image

添加方式方式如下:

首先
image

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

image

打開settings.json 配置相關文件:

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

“C_Cpp.intelliSenseEngineFallback”: “Disabled”,

“C_Cpp.intelliSenseEngine”: “Tag Parser”,

自己的配置代碼如下:

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

保存之后,發現未定義標識錯誤消失了。

image

*Reference from: *

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

好的,接下來就是下載程序啦。在下載程序之前需要知道,當GPIO15為低電平啟動時,ESP8266才處于下載模式。

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


image

進入下載模式后,我們電腦上選擇下圖框出來的地方。他就開始自動下載了。

image

Q2

輸出內容出現亂碼?

沒有問題的同學往下移~

image

解決方案:

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

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

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

image

效果:

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

image

4. 總結

今天這章是這個系列的第二章,有同學會問:“為什么我給出的AD模型和我焊接好的板子長得不一樣”,其實我當時設計錯了。我原本是想用CH340G的,但是沒注意到晶振走線問題,所以導致連接電腦沒有反應,于是我就換成了CH340C,自帶晶振,這樣一來又可以空出地方給大家添加模塊。

PCB原理圖和程序我會分享到我的碼云,也請大家可以為我的項目點個?,謝謝大家。

碼云鏈接:

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

大家也不要以我的這系列文章為準,總有疏忽之處,如果有,請指出來,也歡迎留言哈!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容