25
2019
04

本着创客精神,分析一下智能网关和服务器的通信协议

在智能创客学到了不少,感谢版主。

学习过程中,对智能网关的工作原理产生了兴趣,抽出时间分析了一下,不对的地方望版主指出。

智能创客m.znck007.com服务器和网关的通讯协议和工作原理


网关定期向服务器发送POST请求
发送的POST请求格式如下:
协议:TCP
服务器:api.znck007.com
端口:80

POST请求用于发送数据至服务器
POST /index.php HTTP/1.0\r\n
Host: api.znck007.com\r\n
apikey:xxxxxxxxxxxxx\r\n
Accept: */*\r\n
Content-Length: 17\r\n
Content-Type: application/x-www-form-urlencoded\r\n
\r\n
{ck001000000000}


服务器返回


"HTTP/1.1 200 OK
Date: Mon, 26 May 2014 13:59:02 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Content-Length: 18
Connection: close
Content-Type: text/html; charset=utf-8

・ソ・ソ001000000000


表示连接成功。此时在m.znck007.com的网关状态页面可以看到连接成提示



再分析一下上传信息的格式:

POST数据时,字符串{ckck001000000000}代表不同的信息POST数据{ck00100254.25}代表了湿度54%,温度25摄氏度
001为sid,002为nid


开关和照明的控制协议:
网页上开关和照明的状态发生变化后,POST返回数据中就包含了开关的状态信息

"HTTP/1.1 200 OK
Date: Mon, 26 May 2014 14:13:39 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Content-Length: 29
Connection: close
Content-Type: text/html; charset=utf-8
・ソ・ソ001000000000{ck0040011}

其中,ck后的004表示sid,001表示nid,后面的1表示开关打开,若0表示开关关闭

网关收到服务器返回的数据后,进行解析,通过网关的发生nRF模块发送,电灯或开关模块收到数据后
解析出sid,nid,如果与本节点的相同,则根据1或0控制开关或亮灭,红外模块的通信协议与此类似。

了解了上述协议,想把温湿度功能集成到网关上就可以修改代码实现了吧。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。