智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 19004|回复: 82
打印 上一主题 下一主题

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

  [复制链接]

1

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
跳转到指定楼层
楼主
发表于 2014-5-26 22:38:51 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Jone 于 2014-5-27 19:51 编辑

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

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

智能创客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的网关状态页面可以看到连接成提示

clipboard.PNG (20.23 KB, 下载次数: 514)

clipboard.PNG
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

1

主题

11

帖子

73

积分

注册会员

Rank: 2

积分
73
沙发
 楼主| 发表于 2014-5-26 22:39:10 | 显示全部楼层
本帖最后由 Jone 于 2014-5-26 22:43 编辑

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

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控制开关或亮灭,红外模块的通信协议与此类似。

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

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|手机版|智能创客 ( 桂ICP备14000828号

GMT+8, 2024-5-3 12:47 , Processed in 0.134744 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表