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認證。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM