通过esp8266 WiFi模块对接OneNET,使用OneNET的HTTP协议,基于RT-Thread的AT device软件包,实现POST数据流到OneNET云平台和从OneNET云平台GET数据流,使用Finsh/MSH测试命令进行测试。
(1)STM32F103RET6、外部12M晶振
(2)ESP8266 WiFi模块
(3)BH1750光照强度传感器
(4)OneNET云平台
(5)RT-Thread物联网操作系统
(6)RT-Thread AT device软件包
开机打印如下信息,可以看到初始化了socket组件、AT client组件(使用uart3)、ESP8266 WIFI连接热点。
连接的服务器地址和端口为:183.230.40.33
,80
。
在连接之前,可以使用at_ping命令来ping一下这个地址:
ping通说明联网正常和IP地址无误,就可以连接OneNET了,可以先输入esp8266
查看命令:
输入esp8266 connect
连接OneNET HTTP服务器:
在连接上OneNET之后,输入esp8266 post
就可以POST数据流到OneNET:
(1)如果POST成功,在OneNET可以看到如下数据:
(2)如果POST失败,例如:
那是因为OneNET HTTP是短连接,在前面connect上之后,如果隔了一段时间没进行数据交互就会主动端口断开连接,这时候我们可以先输入esp8266 close
断开连接,再esp8266 connect
,然后重新esp8266 post
:
(1)如果GET数据流成功,会得到数据流名称和数据大小,例如light
的大小是432.5
:
(2)如果GET失败,原因也是因为OneNET HTTP是短连接,解决方法和前面类似:
https://github.com/sanjaywu/RT-Thread_ESP8266_OneNET
http://packages.rt-thread.org/itemDetail.html?package=at_device
(1)会ENV工具的,请使用ENV工具进行修改。
(2)不会ENV工具,打开rtconfig.h
,修改两个地方:
#define AT_DEVICE_WIFI_SSID "MYWiFi"
#define AT_DEVICE_WIFI_PASSWORD "1234567890"
打开onenet_sample
,修改这三个地方:
#define DEVICE_ID "505619290"
#define API_KEY "SlxhH3MCLvuuvXJ0N=a14Yo6EAQ="
#define DATA_STREAM "light"
(1)会ENV工具的,请使用ENV工具进行修改。
(2)不会ENV工具,打开rtconfig.h
,修改这个地方:
#define AT_DEVICE_NAME "uart3"
打开工程打开这个:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。