esp_iot_sdk韌體函式解釋
ESP8266 物聯網平臺的所有網路功能均在庫中實現,對使用者不透明。
使用者應用的初始化功能可以在 user_main.c 中實現。
void user_init(void)是上層程式的入口函式,給使用者提供一個初始化介面,
使用者可在該函式內增加硬體初始化、網路引數設定、定時器初始化等功能。
一、程式碼結構
以韌體中的examples資料夾下的IoT Demo為例
1. "usr"目錄
user_main.c — 程式主入口;
user_webserver.c
user_devicefind.c — UDP 傳輸功能的示例,提供 ESP8266 裝置查詢功能;
user_esp_platform.c — 與 Espressif 雲端伺服器通訊的示例;
user_json.c — json 包的處理示例;
user_plug.c — 智慧插座的功能示例程式碼;
user_light.c
user_humiture.c — 溫溼度感測器的功能示例程式碼;
2. "driver"資料夾
目前外圍驅動⽀支援 I2C Master,SPI,外部按鍵, PWM,雙 UART。
3. "include"目錄
include目錄下為應用程式相關標頭檔案,需要注意的是"user_config.h" 檔案,
在該標頭檔案中可選擇具體的應用示例,僅支援每次開啟一個巨集定義,使能一個裝置。
具體支援如下例子:PLUG_DEVICE(智慧插座),LIGHT_DEVICE
其中 SENSOR_DEVICE (感測器)又分為 HUMITURE_SUB_DEVICE(溫溼度感測器)和FLAMMABLE_GAS_SUB_DEVICE(可燃氣體檢測)。
另需注意,以下標頭檔案中的巨集定義指示使用者引數區,使用者需根據編譯時選擇的 flash map 自行調整,flash map 詳見文件 “2A-ESP8266__IOT_SDK_User_Manual”
user_esp_platform.h 中的 #define ESP_PARAM_START_SEC 0x3D // or 0x7D, or 0xFD
user_light.h 中的 #define PRIV_PARAM_START_SEC 0x3C // or 0x7C, or 0xFC
user_plug.h 中的 #define PRIV_PARAM_START_SEC 0x3C // or 0x7C, or 0xFC
二、簡單例項
使用 與 Espressif 雲端伺服器通訊的示例(user_esp_platform.c )分析
IoT Demo 在 user_esp_platform_init 中設定初始工作模式為 sotfAP+station 共存的模式,用
戶連入 ESP8266 softAP 介面的區域網,發指令讓 ESP8266 station 介面連線可入外網的路由(AP),
使用者可通過向 ESP8266 softAP 介面發指令查詢 ESP8266 station 連線 WiFi 的狀況。ESP8266 station 接
口連入路由後,自動連線 Espressif 雲端伺服器,對應程式碼 user_esp_platform_check_ip 。連線服務
器完成後,切換進入station模式。
ESP8266 softAP 的 SSID 預設為 ESP_XXXXXX,其中 XXXXXX 為裝置 MAC 地址的後三個位元組,
預設加密模式為 WPA/WPA2。
在 station 模式下,長按復位按鍵5秒,裝置即復位並重啟恢復初始 softAP+station 共存模式,可
重新進行配置。
三、Espressif Cloud服務
Espressif Cloud雲服務需要使用master-device-key.bin認證。