标签:
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 共存模式,可
重新进行配置。
标签:
原文地址:http://www.cnblogs.com/L-liwen/p/5075205.html