在智能创客学到了不少,感谢版主。
学习过程中,对智能网关的工作原理产生了兴趣,抽出时间分析了一下,不对的地方望版主指出。
智能创客m.znck007.com服务器和网关的通讯协议和工作原理
网关定期向服务器发送POST请求
发送的POST请求格式如下:
协议:TCP
服务器:api.znck007.com
端口:80
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的网关状态页面可以看到连接成提示
clipboard.PNG(20.23 KB, 下载次数: 37)
再分析一下上传信息的格式:
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控制开关或亮灭,红外模块的通信协议与此类似。
了解了上述协议,想把温湿度功能集成到网关上就可以修改代码实现了吧。