|
《智能家居DIY》一书提供了家居网关+云端的http方案,这对初学者来说,http方案最容易理解和使用,资料也多。但是http是一个短连接,每次发送数据量大(那些http协议字符),并需要不断的刷云端来获取数据,这样人一多,服务器可能就完蛋了。
而家居网关如果能一直TCP长连接云端,客户端发送的数据能直接转发给网关,那么普通的服务器就可以同时在线上千上万个设备。
这个方案一般谁在用呢?QQ、微信airkiss、360芯片、esp8266商业方案等。
这中间也许也会使用UDP转发,相信QQ会这么做,UDP需要更精细的底层构架,而TCP基本满足商业方案的需求,并服务端已经有很开源方案,完全可以上千上万人同时并发。
这篇我们先讲理论知识,看看构架。
必须建立服务器(PHP环境)、客户端(网关或wifi模块等)、手机端,如下图。
左边是网关,中间是服务器,右边是手机
他们之间的通讯是用一个规定的数据格式进行的。
具体格式如下:
tcp协议:
绑定:mode=bind&apikey=你的key&data={ck001000bind}
心跳:mode=live&apikey=你的key&data={ck001000live}
执行:mode=exe&apikey=你的key&data={cksidnid数据}
上传:mode=up&apikey=你的key&data={cksidnid数据}
ip121.199.40.177 端口8080
1、网关绑定(可以用网络调试助手模拟),不能断开,每分种心跳一次,发现断开要重连和绑定。
2、在任何地方执行,就可以秒控制(可以用网络调试助手模拟)。
网络调试助手.exe
(1001 KB, 下载次数: 4371)
3、apikey请去m.znck007.com注册生成,{cksidnid数据}格式代码的意义,请看智能创客网wifi系列去理解。
网关和服务器相连,心跳和上传数据,手机发送执行就可以转发到网关。
服务器我们采用php+mysql环境,请加QQ群109601470一起来交流探论。
网关代码我们使用易懂的python脚本编写TCP客户端。手机端使用html5和android端,并全部开源。
目前都是基于《智能家居diy》书中项目增加的一种方案。
《智能家居diy》硬件:https://item.taobao.com/item.htm?id=576067599077
大家看到这里,有些编程基础的应该都能明白其中的原理,对于一般的diy者来说,这套方案比较专业了,但可参修改为商业化。
接下的几篇会详细的教程介绍给大家如果搭建服务端、客户端、手机端,学到东西记得关注我们,加加QQ群109601470调戏我们。
|
|