ESP8266-01 接入 onenet 物联网开发(1)

一、硬件
ESP8266-01引脚图如下图:
在这里插入图片描述
引脚含义:
在这里插入图片描述
产品特性:
在这里插入图片描述

模块的资料:
http://file.elecfans.com/web1/M00/80/ED/o4YBAFwsoySAfbr7ABA1Oa7YqiM742.pdf
注意:
1、ESP8266-01采用3.3V(正负差错10%)供电,应该有稳定的电源供应,AMS1117是不错的选择,ESP8266-01是一个很耗电的模块(最大能耗电250mA),电源两端接大电容是一个不错的选择;
2、ESP8266-01引脚不能忍耐5V,5V单片机应该进行电平转换;
在这里插入图片描述

二、ESP8266-01测试
使用尽量短的线连接单片机/串口TTL模块和ESP8266-01。
我使用这个模块,为了提高供电,小板上的跳线帽接到5V。
其余接线:
接四个引脚:
1 GND------GND
4 RXD------ 单片机/串口TTL模块的TX
5 TXD------单片机/串口TTL模块的RX
8 VCC------ 3.3供电
6 CH_PD---- 接3.3V,让模块工作
在这里插入图片描述
上电测试AT返回OK.

在这里插入图片描述
在这里插入图片描述
三、onenet介绍
功能强大,支持很多协议。
可去官网找开发文档:
https://open.iot.10086.cn/doc/multiprotocol/
在这里插入图片描述
安信可开发文档:
http://wiki.ai-thinker.com/onenet
http://wiki.ai-thinker.com/onenet/docs/sdkdevelop

在onenet里添加多协议接入如下图,点击不同协议后能够创建产品和删除产品。
在这里插入图片描述
不同物联网协议介绍:
在这里插入图片描述
四、使用TCP协议连接onenet
说明文档:
https://open.iot.10086.cn/doc/multiprotocol/book/develop/tcp/device/doc-tool.html
参考文档
https://www.cnblogs.com/Mysterious/p/4816482.html

步骤:
步骤1、添加产品
在这里插入图片描述
步骤2、进入产品里的设备列表,添加设备
在这里插入图片描述
步骤3、为设备添加api-key,这里的设备ID和api-key是重要的。
在这里插入图片描述
步骤4、电脑串口对ESP8266-01调试。
阶段1,调整自身模式,连接附近WIFI
设置为sta模式

AT+CWMODE=1 

重启

AT+RST

加入附近WIFI

AT+CWJAP="xiaomi",""

查询附近可用wifi

AT+CWLAP

得到自身IP

AT+CIFSR

阶段2,设置发送
和服务器建立TCP连接

AT+CIPSTART="TCP","183.230.40.33",80

设置透明传输模式

AT+CIPMODE=1

开始发送

AT+CIPSEND

阶段3,发送数据

POST /devices/582006801/datapoints HTTP/1.1
api-key:NK7Nz0E=pNFKHWFKN4=zvLiu9wE=
Host:api.heclouds.com
Connection:close
Content-Length:59

{"datastreams":[{"id":"TEMP","datapoints":[{"value":48}]}]}
POST /devices/79146/datapoints HTTP/1.1
api-key: pmWLtnkDBSreKfvg7GsClUXdXa4A
Host:api.heclouds.com
Connection:close
Content-Length:59

{"datastreams":[{"id":"TEMP","datapoints":[{"value":50}]}]}

发送JSON数据流,格式一定要正确,大多数人失败都是在这里格式不对

其中79146修改为你自己的设备ID

api-key后面的内容修改为自己的API-KEY

"TEMP"这个是我的数据流名称,修改为自己想要的

“value”后面的50就是数据,输入想要的。

然后回过头看下Content-Length:59

Connection:colse这一条如果加了,服务器接收到一次数据后会断开,如果不加可以连续发送数据。如果长时间不发送,也同样会关闭链接的。

这个59是后面的整个数据流的长度

步骤5,查看数据流信息。
在这里插入图片描述
可以使用GET获取服务器数据流,但是这里有个大问题,好像现在onenet在应用管理里的东西,用交互的UI改变数据节点数据的时候,老是提示设备不在线,所以就算GET到了数据,也是ESP8266自己传上去的,不是服务器UI回发回来的其他数据流。也许是我操作不对,但我不准备搞这个了,想尝试直接用8266内部的MCU编程。

GET /devices/582006801/datapoints HTTP/1.1
api-key:NK7Nz0E=pNFKHWFKN4=zvLiu9wE=
Host:api.heclouds.com
Connection:close

总结:
这样长连接依然会断,但应该是长连接互相通的,需要研究下。
下一步需要考虑使用 EDP或者MQTT那种协议。
下一步需要考虑服务器里的lua脚本编写。
下一步需要考虑手机等端口接入onenet。

>>>>下一篇 ESP8266-01 接入 onenet 物联网开发(2)

发布了105 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/x1131230123/article/details/104031096