全系列模组购买请戳:安信可官方淘宝店

OneNET SDK开发

ESP8266 OneNET SDK使用的是EDP协议,可以实现ESP8266与OneNET平台。

下面用ESP8266 OneNET SDK开发一个球泡灯的实例。

注册OneNET平台账号

* 登录http://open.iot.10086.cn/

* 注册平台账号

进入开发者中心

* 点击创建产品

* 填写产品参数

我们选择wifi,公开协议,EDP协议,命名为智能球泡灯。

* 创建完成。

上面一栏产品ID和APIKey是两个重要的参数,需要把这两个参数填进sdk。

该图片是我自己账号下的平台参数,不要填写我的参数,不然你无法登陆平台来控制设备。

SDK开发

1. 解压出onenet_light.zip

2. 阅读源码

* app/onenet目录就是対接OneNET的源代码,主要包括HTTP协议和EDP协议。加密部分暂未测试通过,编译的时候要关闭_ENCRYPT宏定义。

* fcmd是用于串口调试的,如果有不清楚的api,可以直接在串口调试助手中输入函数名,直接测试。在fcmd_cfg.h中加入自己想要测试的函数。

* fsm目录。为了保证源码的阅读性和可修改性,在esp8266 sdk基础上写了一个简易的消息循环状态机框架。分成了两个任务,driver_task和network_task。状态机入口函数分别是driver_actor和network_actor。Network任务维护了网络状态的跳转和onenet服务的启动停止。fsm提供了定时器,消息派发,状态跳转功能。

* main目录。该目录下的onenet_app.c就是onenet服务的几个接收数据回调函数,在回调函数中接收处理数据点并控制球泡灯的RGBWS状态。

* upgrade目录。固件升级接口,现在url地址是安信可服务器的地址,用户可以修改指向自己的服务器。在串口发送函数os_post_message(1,9,0)就可以升级了,前提是联网设备已经连上网络。

* 修改onenet项目参数。在network_task.c中可以修改项目参数,该参数是保存在flash的。

onenet项目参数的api。

onenet app参数相关的api。

把USER_MASTER_APIKEY和USER_PRODUCT_ID改成自己项目下的参数即可。

onenet的项目参数保存在0x79扇区。

onenet的app参数保存在0x7c扇区。

编译下载

* 打开cygwin,cd到项目的根目录,执行./rebuild.sh 1命令即可编译。

* 打开esp8266 download tool,按照以下地址下载固件。我们可以用nodemcu来测试下载这个固件。

第一次下载固件时需要将onenet项目参数区和onenet的app参数区全部擦除掉,可以使用CombineBin的方式合并固件,这样其他扇区都会被0xFF填充。

 上电配网

打开串口调试助手,注意看打印日志。

其中start_continue表示连续重启次数,启动后3s会清0.

* 重启3次配网

* 连接过程中,会依次看到注册、登录、心跳的过程,这就是设备与onenet通信的过程,设备此时就已经连接上onenet了。日志打印中会看到device_id打印出来。

创建web应用界面

1. 找到device_id,进入设备界面。

2. 给设备发送命令

设备接收到命令

3. 用图形界面控制设备

4. 用app控制设备

app界面和平台的界面其实差不多。可以看到所有的项目,和项目下所有的设备。

设备云APP二维码下载