ESP8266_12 ESP8266客戶端模式下的TCP通信
ESP8266_19MQTT協議接入ONENET平臺_訂閱主題
ESP8266_20 基於ONENET平臺的數據上傳之TCP的POST操作
正文開始之前的閒扯:
項目原因,沒辦法保證一天一更。昨天甲方爸爸臨時讓我改程序,還想讓我通宵趕出來,我是那麼容易屈服的人嗎?
有人問用什麼板子合適,還有的直接問我買。這個,建議大家買個二三十的模塊就行,可以是NodeMcu,也可以是安信可的模塊加一個底板,沒必要買太貴的。
還有的人手裏拿着某某物聯網平臺的板子,問能不能用,只要是基於ESP8266的,都可以,但是你要找到板子配套的原理圖。
好了,下面是正文。
先說一下什麼是SDK?
定義(轉自網絡):一般都是一些軟件工程師爲特定的軟件包、軟件框架、硬件平臺、操作系統等建立應用軟件時的開發工具的集合。
再看一下樂鑫內部對SDK的描述:ESP8266 Software Development Kit (SDK) 是樂鑫爲開發者提供的物聯網 (IoT) 應用開發平臺,包括基礎平臺以及上層應⽤開發示例,如智能燈、智能開關等。 SDK 的基礎平臺按照是否基於操作系統可分爲:non-OS 和 RTOS 兩種版本。
簡單來說,這是一個已經搭建好的工程框架,包含完整的源文件和頭文件。同時,提供了一些例程供用戶參考。
那麼,SDK在哪裏下載?
找廠家!芯片廠家是樂鑫,所以去樂鑫官網找。這裏爲了節省時間,我直接放上鍊接:
https://www.espressif.com/en/support/download/sdks-demos
注:本文寫於2019年7月12日星期五,當前的ESP8266 NONOS SDK已經更新到了3.0.0 後續的教程也主要基於NONOS的版本。
下載解壓後,可以看到下面幾個文件:
接下來,需要進行一些操作,然後才能導入到AiThinker_IDE裏。其實下面的操作主要參考安信可的網址:https://wiki.ai-thinker.com/ai_ide_use
但由於安信可的教程比較舊,所以這裏做了一些調整。
1. 將 sdk 目錄下的 driver_lib 重命名爲 app
2. 拷貝 \examples\IoT_Demo 下的所有文件到剛纔的 app 目錄(提示覆蓋則確認),完成後目錄結構如下:
3. 將ESP8266_NONOS_SDK/third_party 這個文件夾刪掉。
接下來,我們啓動AiThinker_IDE,將項目導入
導入項目
1. 選擇 File→Impor
t
2. 點開C/C++分支,並選中Existing Code as Makefile Project
3. 去除C++支持,選中 Cygwin GCC
點擊Browser,選中ESP8266_NONOS_SDK-3.0.0所在的目錄
4. 點擊 Finish 完成ESP8266_NONOS_SDK-release-v3.0.0_01的導入
如下圖:
編譯項目
鼠標選中項目名稱,點擊右鍵出現菜單:
Build Project :編譯項目
Clean Project:清理項目
選中編譯項目,控制檯輸出如下圖即編譯成功
真的能編譯成功? 那是不可能的。
安信可官網說的是能編譯成功,但針對的可能是比較老的SDK版本,如果你使用3.0版本的SDK,肯定是會報錯的。報錯如下:
打開根目錄下的makefile文件,找到第29行,把等號後面的值改掉。
SDK3.0裏面寫的是0,改成多少?根據你模塊的FLASH大小來修改:如果是8MBIT,改爲2;如果是16MBIT,改爲3;如果是32MBIT,改爲4.
這個關係不用背下來,makefile文件向下翻到第82行,你會看到它有一個說明:
它這裏寫的值的單位是BYTE。改完之後,再次編譯,你會發現編譯成功了:
接下來,思考另一個問題:爲什麼有人生成的bin文件是這樣的?
其實,安信可官網曾經說過。可生成兩種形式的bin文件,一種是不支持在線升級的,一種是支持在線升級的。剛纔這個圖,就是支持在線升級的。那麼,如何生成這種bin文件?
打開根目錄下的makefile文件,找到第25、26行。當第25行爲new的時候,如果第26行是1,那麼生成的是支持在線升級的,如果是0,那就不支持在線升級。
除此之處,當我們使用一些特殊功能的源文件的時候,也需要在Makefile裏添加相應的庫文件。所以,這裏建議大家,多看幾遍Makefile文件,不需要完全看懂,但要知道基本用法。
至此,關於ESP8266的環境搭建、程序下載、固件配置,基本用法都說了一下。後面,逐步開始敲代碼的過程。