基于MQTT的智能家居物联网实验
image.png

一、实验内容

  1. 熟悉智能家居系统的组成部分
  2. 了解路由器、服务器、传感器、控制面板等设备的不同功能
  3. 正确配置每个设备的网络信息(IP、端口、子网掩码),实现设备与服务器的连接
  4. 正确配置设备之间的发布与订阅关系,实现传感器数据的显示、设备的控制、环境的自动报警功能,最终组成完整的智能家居系统

二、实验目标

  1. 掌握网络编址技术,正确配置设备IP、端口、子网掩码和WiFi名称(SSID),实现设备组网
  2. 掌握MQTT订阅与发布操作,正确配置设备订阅和发布的内容,实现各种设备功能的联通

三、实验过程

1.设备安装

启动仿真前,仿真界面的左侧有设备列表。可以使用鼠标把需要的设备从设备列表拖动到场景中。场景会自动出现方框,引导设备安装到指定位置。当所有的方框都被占用时,就不能继续添加设备了。

通常情况下,一个最简单的智能家居网络必须包含路由器、服务器和任意一个其他设备。

image.png

2.网络编址

鼠标单击场景中的设备,界面右侧将出现设备的配置信息和设备资料。在仿真运行前,需要正确设置每个设备的配置信息。包括设备名称、设备地址、子网掩码、WiFi名称等。正确的设备配置有如下要求:

  1. 设备地址必须在路由器可以处理的范围内
  2. 设备地址不能重复
  3. 目标地址必须是服务器的地址
  4. 目标端口必须是服务器的端口
  5. 子网掩码与路由器一致(或符合网络编址规范)
  6. WiFi名称必须和路由器产生的WiFi名称一致
image.png

编址成功后,可以启动仿真,点击仿真服务器,在右侧出现的窗口中查看【设备数据】,在这里可以看到所有已经连接到服务器的设备清单。

image.png

3.MQTT设置

编址成功后,需要正确设置每个设备订阅和发布的MQTT信息,才能联通各个设备的功能。

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

image.png

在本场景中,手机或控制面板想要显示温湿度传感器、光照传感器、二氧化碳传感器等设备采集的环境信息,就需要先在传感器上设置一个发布主题,然后让手机订阅这个主题。当前的MQTT主题支持用户自定义,当发布主题与订阅主题相同时,即可实现功能的联通。下图展示了在手机上显示空气温湿度传感器数据的方法。

image.png

如果是想要使用手机或控制面板上的按钮控制某个设备,就需要设置这个设备订阅的主题与手机或控制按钮发布的主题一致。当前的MQTT主题支持用户自定义,当发布主题与订阅主题相同时,即可实现功能的联通。下图展示了使用手机上按钮控制机房灯的方法。

image.png

同样的道理,报警灯想要进行人体红外、可燃气、烟雾、火焰数据的报警,就需要订阅这几个传感器发布的主题。

MQTT设置完成后,可以启动仿真,点击仿真服务器,在右侧出现的窗口中查看【设备数据】,在这里可以看到所有已经订阅的MQTT主题清单。

image.png

4.仿真测试

上述配置完成后,就可以运行仿真,测试智能家居系统的功能。

可以点击【控制面板】或【手机】查看各传感器的数据,或控制设备的开关。

image.png

可以在场景中添加环境事件(如火焰),观察报警灯、喷淋设备的动作。

image.png

四、网络观察和分析

平台提供了多种观察窗口或动画,方便进行网络分析。

1.观察网络连接和数据传输

当设备与目标连接成功后,右上角会出现联网成功动画。如下图所示。

image.png

当设备发送或接收数据时,设备节点之间会出现虚线和数据传输的动画。如下图所示。

image.png

2.观察TCP数据包

运行仿真后,场景左侧出现的窗口记录了每一帧TCP数据的内容。用户可以根据实际情况进行筛选。下图展示了仿真刚启动时二氧化碳传感器与服务器之间的TCP三次握手情况。

image.pngimage.png

3.观察服务器连接设备情况

运行仿真后,可以点击服务器,在右侧的窗口中选择【设备数据】,从而查看服务器连接的所有设备情况。

image.png

五、环境设置

仿真平台提供了环境数据模拟功能。仿真启动后,可以点击右侧【环境参数】按钮,根据实际需求设置二氧化碳浓度、空气温度、空气湿度和二氧化碳浓度。

image.png