1. 程式人生 > >esp_iot_sdk韌體函式解釋

esp_iot_sdk韌體函式解釋

ESP8266 物聯網平臺的所有網路功能均在庫中實現,對使用者不透明

使用者應用的初始化功能可以在 user_main.c 中實現。

void user_init(void)是上層程式的入口函式,給使用者提供一個初始化介面,

使用者可在該函式內增加硬體初始化、網路引數設定、定時器初始化等功能。

 

一、程式碼結構

以韌體中的examples資料夾下的IoT Demo為例

1. "usr"目錄

user_main.c              — 程式主入口;
user_webserver.c

    — 建立 TCP 伺服器的示例,提供 REST 的輕量 webserver 功能;
user_devicefind.c     — UDP 傳輸功能的示例,提供 ESP8266 裝置查詢功能;
user_esp_platform.c — 與 Espressif 雲端伺服器通訊的示例;
user_json.c                — json 包的處理示例;
user_plug.c               — 智慧插座的功能示例程式碼;
user_light.c              
 — PWM 實現智慧燈的功能示例程式碼;
user_humiture.c       — 溫溼度感測器的功能示例程式碼;

 2. "driver"資料夾

目前外圍驅動⽀支援 I2C Master,SPI,外部按鍵, PWM,雙 UART。

3. "include"目錄

include目錄下為應用程式相關標頭檔案,需要注意的是"user_config.h" 檔案,

在該標頭檔案中可選擇具體的應用示例,僅支援每次開啟一個巨集定義,使能一個裝置。

具體支援如下例子:PLUG_DEVICE(智慧插座),LIGHT_DEVICE

(燈)SENSOR_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認證。