智能家居是物联网在用户端的最重要的体现了。智能家居目前已经能够实现:手机远程控制家里的智能设备监控这些设备的状态。比如,远程开启家里的灯,远程查看家里电动窗帘的开合程度。我们不去讨论这些应用场景的使用价值,我们作为技术员,只去搞懂这些功能是如何实现的。
从功能上讲其实只有两种:1查看设备状态2手机控制设备。从连接方式上其实也有两种,一种是低能耗方式连接网关,一种是wifi方式连接网关。wifi方式的设备例如小米的wifi版的智能插座,连了wifi就等于连接了互联网,当这个插座注册了之后,手机通过自己的小米家庭就可以远程控制了。网络拓扑为:
手机app--小米服务器--网关--智能插座
这种方式是最简单的,即手机app账号注册在了小米server,插座也注册了,通过这个server进行通信,完成监控和控制。
wifi方式最大的缺点就是能耗太大,所以更多的设备还是低功耗方式连网关,最常见的就是基于ZigBee协议的。其网络连接方式和上面的一样,只不过网关和设备之间通过ZigBee连接的。这样就要求网关不能是一个普通的路由器了,小米的设备就要专门买小米的网关,飞利浦的专门买飞利浦网关。
其实我们也可以按照这种方式实现远程控制家居的操作。只不过目前的各个系列的家居的ZigBee都是自己定制化的协议,并且大都没有公开协议。我们就拿树莓派来当网关玩一下。我来介绍下这个实验中我的实现方式,我用到的东西有:
TP-link的路由器一个
树莓派3B+一个
SensorHat一个
树莓派装好SensorHat,连接家用路由器。然后设置web服务1可以监控室内当前温度,并设置web服务2可以令Led亮起。在路由器端设置ddns,并设置dmz主机为树莓派。然后就可以通过这个ddns域名远程访问树莓派,达到远程查看温度和远程控制Led的作用了。