将温度和湿度传感器数据发送到本地或远程服务器对于构建智能家居解决方案非常重要。它使用户能够高效地跟踪家中、办公室或零售场所的气候,并创造舒适和有利的氛围。在本文中,我们将深入探讨Zigbee2MQTT的工作原理,以及如何使用它将Zigbee温度和湿度传感器数据发送到的服务器。
Zigbee2MQTT是一个开源程序,它将MQTT支持的平台与Zigbee设备连接起来。有了它的帮助,用户可以轻松地收集、发送和存储重要的环境数据到本地或远程云服务器。Zigbee2MQTT已成为智能家居自动化领域的革命性关键角色,它使用物联网提供灵活且成本效益的解决方案,用于管理Zigbee设备。
例如,您可以将Zigbee温度和湿度传感器连接到您的Zigbee网络,并使用Zigbee2MQTT程序将收集到的数据集成到您的服务器进行实时监控。
所需设备和工具是什么?
为了使用Zigbee2MQTT传输智能传感器数据,我们首先必须知道我们将使用哪些设备以及Zigbee2MQTT的工作原理。为了确保我们理解这些组件如何协同工作以促进高效的数据传输,请确保以下设备可用:
温湿度传感器将捕获环境温度和湿度数据并将其发送到Zigbee网关。然后,数据将被转发到MQTT软件。
在这种情况下,我们使用DSGW-030-1 Zigbee MQTT网关。
Zigbee网关管理Zigbee网络,包括设备配对、路由和配置。在Zigbee2MQTT生态系统中,它还充当翻译器,将Zigbee协议和MQTT协议之间的消息进行转换,将其转换为MQTT服务器可以理解的格式。同时,Zigbee网关还是一个发布者,向MQTT服务器发送包含从Zigbee设备收集的数据的消息。
在这种情况下,我们使用计算机作为本地服务器并托管MQTT软件。它在MQTT通信范式中充当订阅者和发布者。
作为订阅者,它在网关上运行的MQTT客户端的消息,确保实时接收相关数据更新,并使其可供的应用程序或服务消费并利用接收到的传感器数据。
作为发布者,它向Zigbee2MQTT网关发送包含控制命令的消息,旨在指示网关在Zigbee网络内执行特定操作或配置。
Zigbee2MQTT的工作原理涉及一系列步骤,如下所示:
传感器与网关配对:将Zigbee温度和湿度传感器置于配对模式,以便与Zigbee MQTT网关建立连接。
网关连接到MQTT端口:一旦启动配对,Zigbee MQTT网关通过连接到的MQTT端口和代理来建立通信通道。
传感器状态报告:Zigbee传感器持续监控环境参数,无线捕获数据,并定期将其传输到Zigbee MQTT网关。
网关发布消息:Zigbee2MQTT网关在的MQTT主题上发布传感器数据到MQTT代理。这些消息包含传感器收集的温度读数、测量的时间戳或传感器的标识符。
MQTT服务器订阅和发布消息:在PC上运行的MQTT服务器订阅相关MQTT主题,使其可供感兴趣的客户端使用,这些客户端可能是仪表板应用程序、专有移动应用程序或其他服务。这使得每当发布新的传感器数据时,它们都能实时更新,使它们能够根据接收到的信息显示、分析或采取适当的行动。然后服务器可以发布相关的控制命令。
控制命令检索和中继:Zigbee MQTT网关将从服务器检索控制命令,然后向Zigbee传感器发送控制命令。这些命令指示传感器执行某些操作,例如调整设置和配置。
在这一部分中,我们将展示在前面列出的设备上设置Zigbee2MQTT通信的逐步过程。
在本教程中,我将使用Eclipse Mosquito来构建MQTT服务。Mosquito是我选择的MQTT消息代理的,因为它是开源的,这意味着您可以自由使用,无需支付任何许可费。此外,它轻量级,适用于从低功耗单板计算机到全服务器的所有设备。在选择Mosquito时我考虑的其他功能包括其易用性、跨平台兼容性、轻量级、TLS加密支持和积极的社区支持。
要使用Mosquito,您可以从https://mosquitto.org/download/下载并安装mosquito程序。
之后,您可以使用命令Mosquitto -p 1888 –v创建一个MQTT服务器,如下所示:
确保网关和MQTT服务器在同一个局域网内,并找到服务器的IP地址。在我自己的例子中,它是192.168.1.2(这是一个本地IP)。
通过路由器将Zigbee网关和PC连接到同一个本地网络。
通过登录路由器找到网关的IP地址。在我的例子中,我使用Advanced IP Scanner程序来帮助我找到它。红色矩形中的IP地址是我的网关IP地址。
在计算机上打开一个网页浏览器 > 输入网关IP地址 > 输入用户名和密码(默认用户名:root,密码:root)> 登录到网关用户界面。这个过程在下面的图片中显示。
在网关用户界面上找到MQTT配置页面,输入MQTT服务器的IP(192.168.1.2)和服务器端口号(1888)。这样,您可以将MQTT服务器与在网关上运行的MQTT客户端连接起来(确保MQTT设置与您的MQTT客户端匹配)。
您可以使用mqtt.Fx.来检查MQTT连接。这一步的目的是验证您的MQTT代理的配置,测试网关和代理之间的MQTT通信,并在配置过程中出现问题时允许调试和故障排除。
MQTT主题将用于组织和路由从Zigbee网关到MQTT服务器的数据。
您需要选择一个有意义的主题名称,反映在云平台上发布数据的类型。在我的例子中,网关将消息发布到主题‘temperature’并从主题‘temperature/mac’订阅。
例如,如果网关的Mac是30:ae:7b:64:00:28,那么它将从主题‘temperature/30:ae:7b:64:00:28’订阅,并将数据发布到主题‘temperature’。
如果您需要设置更多的MQTT主题,您需要在网关Web和MQTT服务器中设置相同的主题。
注意:心跳(上传数据到服务器的时间间隔)可以根据您自己的需求进行自定义。
通过访问网关用户界面添加Zigbee传感器
Dusun Zigbee网关具有用户友好的设备配置和管理界面。以下是您可以将设备添加到网关的一般概述:
打开网关用户界面,找到Zigbee3.0管理网页。这一步非常简单。然后您可以点击允许按钮,网关将进入配对模式。如果配对过程成功,您将在网上看到温度和湿度传感器。
提示:如何配置Zigbee温度和湿度传感器
您可能有两种情况。
一种情况是使用Dusun IoT自己的智能传感器,这将确保兼容性,因为网关和传感器之间的集成已经经过多次严格测试。在这种情况下,传感器只需要在背面长按五秒钟,然后再按一次,使红色LED继续闪烁,表示进入配对模式。
第二种情况是使用第三方Zigbee传感器,您可以根据用户手册进行操作。在这种情况下,您必须确认您的设备的Zigbee版本。比如如果是标准的Zigbee 3.0协议,如果其软件部分已经被修改,等等。这可能导致配对失败。
通过MQTT代理添加Zigbee传感器
您也可以选择通过MQTT代理添加Zigbee传感器。下面是一个简化的例子,说明如何使用代码通过MQTT代理将Zigbee温度和湿度传感器添加到Zigbee网关:
{ "data": { "arguments": { "attribute": "mod.add_device", "ep": 1, "value": { "mac": "00158d0001b61234" }, "mac": "00158d0001b61234" }, "id": "eb92016c-320d-4619-aca2-a401352e806f", "command": "setAttribute" }, "from": "CLOUD", "mac": "30:ae:7b:2b:41:60", "messageId": 25607, "time": 1553909170, "to": "NXP", "type": "cmd"}通过MQTT代理添加设备涉及向特定主题发送MQTT消息,触发目标设备上的行动。这简化了Zigbee网络内设备配对的过程。例如,通过MQTT代理添加设备提供了一种集中化的方法,简化了网络内Zigbee设备的配置和管理。
当配对成功时,您可以在MQTT服务器中接收到温度和湿度传感器状态,如下所示:
这里我们将展示更多关于温度和湿度数据的信息。
附近的温度数据将每15分钟上传一次,数据包含属性、温度值、设备类型、电池电量、时间戳等。
{ "data" : { "attribute" : "device.temperature", "mac" : "842e14fffe1e9bb2", "value" : { "value" : "29.58", "ep" : 1, "zone" : "RoomBank-TemperatureHumidity", "unit" : "C", "ModelStr" : "RoomBank-TemperatureHumidity", "battery" : 100 }, "ep" : 1 }, "from" : "GREENPOWER", "to" : "CLOUD", "time" : 1599706766, "deviceCode" : "010123f3-c750-43e7-ad41-6672126fa416", "mac" : "30:ae:7b:64:00:c6", "type" : "reportAttribute" }
附加信息:
Option | Meaning |
Value | 0-100, 0 means temperature is 0℃, 100 means temperature is 100℃. |
Unit | C for Celsius degree |
附近的湿度数据将每15分钟上传一次,数据包含属性、湿度值、设备类型、电池电量、时间戳等。
{ "data" : { "attribute" : "device.humidity", "mac" : "842e14fffe1e9bb2", "value" : { "value" : "56.44", "ep" : 1, "zone" : "RoomBank-TemperatureHumidity", "unit" : "%", "ModelStr" : "RoomBank-TemperatureHumidity", "battery" : 100 }, "ep" : 1 }, "from" : "GREENPOWER", "to" : "CLOUD", "time" : 1599706766, "deviceCode" : "010123f3-c750-43e7-ad41-6672126fa416", "mac" : "30:ae:7b:64:00:c6", "type" : "reportAttribute" }
附加信息:
Option | Meaning |
Value | 0-100, 0 means humidity is 0%, 100 means humidity is 99%. |
Unit | % for percentage |
您可以为您的Zigbee2MQTT温度和湿度传感数据上传系统实施以下安全实践:
加密:您应该使用SSL加密连接MQTT代理,以确保数据的保密性。您还可以使用各种加密方法,例如Zigbee Trust Center Link Key (ZLL)或Zigbee Network Key (ZNP),AES-128;
认证:使用强认证通过预共享密钥或数字证书来验证设备身份;
定期固件更新:定期更新固件以修补漏洞;
网络分割:分割网络以隔离传感器网络并减少攻击面。您可以使用防火墙或VLAN。
访问控制:利用强访问控制,例如基于角色的访问控制(RBAC),有效管理权限。
定期审计和测试:定期进行安全审计和渗透测试,以识别和解决漏洞,增强整体安全性。
您可以为您的Zigbee2MQTT温度和湿度传感数据上传系统实施以下定期维护任务:
更新软件以修补漏洞,修复错误并添加新功能。这对于确保功能和安全性至关重要;
监控传感器健康状况,例如信号强度、电池电量和传感器响应性。如果您发现温度读数或通信错误中的任何异常,请立即解决,以防止停机或数据丢失;
根据需要定期更换电池或电源,以确保不间断或连续运行;
定期备份和恢复传感器配置和数据,以防止硬件故障或数据损坏时的丢失。
将传感器数据发送到本地或远程服务器是智能家居应用中的强烈需求。无论您喜欢通过可定制的仪表板还是专有移动应用程序来监控温度和湿度数据,Dusun IoT的智能家居解决方案都提供了带有标准MQTT API的智能网关,以便顺利集成到您自己的平台中。
咨询批量购买
如果您使用AWS或Azure等公共云服务,我们提供预安装的插件,以便与这些平台轻松集成。此外,作为Thingsboard的网关硬件合作伙伴,我们提供广泛的Thingsboard IoT网关,确保兼容性和简化集成。我们所有的智能传感器和网关已经集成并准备好被纳入您的特定智能家居解决方案中。欢迎咨询批量订单价格。
企业推荐
更多产品推荐
更多企业新闻
更多