您的位置:首页 > 大数据 > 物联网

esp_iot_sdk固件学习

2020-02-17 07:03 525 查看

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

转载于:https://www.cnblogs.com/L-liwen/p/5075205.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
baixiyin3546 发布了0 篇原创文章 · 获赞 0 · 访问量 139 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: