esp_iot_sdk固件函数解释

来源:互联网 发布:矛盾论 知乎 编辑:程序博客网 时间:2024/06/09 21:18

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认证。

原创粉丝点击