ESP8266+酱菜创客远程显示温湿度
开发环境:STM32F103
WIFI模块:ESP8266
开发软件:KEIL5
设计思路:通过DHT11采集温湿度信息,然后通过ESP8266根据TCP/IP网络通信协议,并根据服务器留出的API接口,将特定的数据报文上传到云端服务器。
ESP8266的设置:将模块设置成STA模式,具体参考下图。 注意IP地址以及密码根据实际情况而定。
具体参考链接以及ESP8266模块介绍:https://blog.****.net/****huaong/article/details/67011585
酱菜创客服务器通信协议:参考链接:http://www.jcckiot.com/phpwind/read.php?tid=2
本物联平台采用的是TCP通信协议
酱菜创客服务器IP:jcck.online,端口号:8266
使用说明:
每个设备连接服务器前,需绑定自己的apikey,apikey可到酱菜创客(jcck.online)去注册申请,再去新建添加设备,获取设备的sid和nid。设备完成绑定后,设备需每分钟向服务器发送一条心跳消息。
通信格式:
绑定apikey:
向酱菜创客服务器发送:mode=bind&apikey=你的apikey&data={ck001000bind}
服务器回复:bind ok
心跳消息:
向酱菜创客服务器发送:mode=up&apikey=你的apikey&data={ck你的sid你的nidlife}\r\n
控制消息:
服务器向设备发送:{ck你的sid你的niddata}\r\n
data=0/1(1为开,0为关)
上传数据:
向酱菜创客服务器发送:mode=up&apikey=你的apikey&data={ck你的sid你的niddata}\r\n
data:上传的数据
同步设备开关状态:
向酱菜创客服务器发送:mode=up&apikey=你的apikey&data={ck你的sid你的nidstadata}\r\n
data: 设备开关状态0/1
服务器转发指令:
向酱菜创客服务器发送:mode=exe&apikey=你的apikey&data={cksidniddata}\r\n
sid为目标终端的sid,nid为目标终端的nid
data为你要发给目标终端的数据
酱菜创客服务器IP:jcck.online,端口号:8266
使用说明:
每个设备连接服务器前,需绑定自己的apikey,apikey可到酱菜创客(jcck.online)去注册申请,再去新建添加设备,获取设备的sid和nid。设备完成绑定后,设备需每分钟向服务器发送一条心跳消息。
通信格式:
绑定apikey:
向酱菜创客服务器发送:mode=bind&apikey=你的apikey&data={ck001000bind}
服务器回复:bind ok
心跳消息:
向酱菜创客服务器发送:mode=up&apikey=你的apikey&data={ck你的sid你的nidlife}\r\n
控制消息:
服务器向设备发送:{ck你的sid你的niddata}\r\n
data=0/1(1为开,0为关)
上传数据:
向酱菜创客服务器发送:mode=up&apikey=你的apikey&data={ck你的sid你的niddata}\r\n
data:上传的数据
同步设备开关状态:
向酱菜创客服务器发送:mode=up&apikey=你的apikey&data={ck你的sid你的nidstadata}\r\n
data: 设备开关状态0/1
服务器转发指令:
向酱菜创客服务器发送:mode=exe&apikey=你的apikey&data={cksidniddata}\r\n
sid为目标终端的sid,nid为目标终端的nid
data为你要发给目标终端的数据
最后总结下连接步骤:1 设置WIFI连接的路由(路由的名字和密码),不连接路由无法实现远程以及访问外地服务器。
2,设置需要连接的服务器的名字和端口号。在本文中为:酱菜创客服务器IP:jcck.online,端口号:8266
3,按照一定的指令格式,对将数据上传到服务器。参照上文的通信格式。
PS:上文为将数据上传到酱菜创客,下为将数据上传到onenet。
服务器IP: "183.230.40.33" 服务器端口号:80
:sprintf(str,"POST/devices/27001847/datapointstype=3HTTP/1.\r\napikey:QHb6XQbC=kM8TSfHcWTr=RaLJ3Q=\r\nHost:api.heclouds.com\r\nContent-Length:15\r\n\r\n{%cT%c:%d,%cH%c:%d}\r\n", '"' , '"',DHT11_Data .temp_int,'"','"',DHT11_Data .humi_int);