概述
智能家居场景中,我们通过架设自己的 Zigbee 网关,可以将米家的 Zigbee 设备轻松接入 ThingsCloud。借助 ThingsCloud 平台的内置应用和开放性,我们可以在很多行业项目和应用场景中灵活自如的发挥 Zigbee 无线设备的优势。例如:楼宇办公、温室大棚、小型仓库、环境监测、工业控制等一些非家居场景。
01.
开源项目 Zigbee2MQTT
这里要用到开源项目 Zigbee2MQTT ,它采用 NodeJS 编写,可以运行在 Linux/Windows 下,详细的搭建过程这里略过,官网有详细的介绍。
Zigbee2MQTT 支持的 Zigbee 设备多大2000多种。
通常来说,搭建 Zigbee2MQTT 网关需要以下硬件:
Linux 小型主机,可通过 WiFi/以太网/4G 连接互联网,支持 USB 接口。我们这里以树莓派为例。
Zigbee 适配器,支持 USB 或以太网接口。采用 CC25xx 或 CC26xx 的 Zigbee 芯片。CC26xx 具有更远的传输距离和更好的稳定性。
树莓派 4B + USB Zigbee 适配器
树莓派 Zero + USB Zigbee 适配器
02.
Zigbee 的优势
Zigbee 无线设备的主要优势包括:
低功耗:例如小米温湿度传感器使用 3V 纽扣锂电池,可以续航长达一年多时间。
低延迟:设备响应速度快,从睡眠状态切换到工作状态通常仅需要 15ms,节点访问网络仅需要 30ms,从而进一步节省了电量。
容量大:Zigbee 可以采用星状,片状和网状的网络结构,最多可以形成 65000 个节点的大型网络。
低成本:Zigbee 协议免专利费,且市面上支持 Zigbee 标准协议的传感器、灯、开关、电源等产品非常多,价格低廉。仅 Zigbee2MQTT 支持的设备就有超过 2000 多种,包括小米、绿米、宜家、飞利浦等。
03.
Zigbee 接入 ThingsCloud
Zigbee2MQTT 网关准备好后,我们来重点介绍 ThingsCloud 平台的接入和应用,对于其它 Zigbee 网关的接入同样具有参考意义。
创建项目
打开 ThingsCloud 控制台,如果还没有创建项目,先创建一个项目。
创建设备类型
为了定义网关设备的功能,我们需要先创建一个设备类型,这里可以直接使用我们已经发布的模板,创建类型时选择产品类型,输入产品 ID:7892219658。如下图:
这样会自动生成一些规则,用来解析网关和子设备的消息,直接使用即可。
同时还有自动生成的自定义数据流,支持 Zigbee2MQTT 的 MQTT 主题。
注册网关设备
接下来,我们注册一个网关设备,绑定到刚创建的设备类型下。进入设备>连接,可以看到设备证书和 MQTT 连接地址,稍后会用到。
编辑 Zigbee2MQTT 配置
接下来配置 Zigbee2MQTT,以默认安装路径为例,打开配置文件:
nano /opt/zigbee2mqtt/data/configuration.yaml
需要注意的几点:
base_topic
:必须修改为data/zigbee2mqtt
server
:修改为从网关设备页面复制的 MQTT 接入点完整地址,例如mqtt://xxx.iot-api.com:1883
user
:修改为从网关设备页面复制的AccessToken
password
:修改为从网关设备页面复制的ProjectKey
homeassistant
:设置为false
permit_join
:当需要添加子设备时,设置为true
。
保存配置文件,重启 Zigbee2MQTT,网关设备连接成功,会上报网关的基本信息。
创建子设备
所有 Zigbee 设备都是网关的子设备,我们以温湿度传感器为例,创建一个子设备类型。然后在该类型下创建多个温湿度传感器设备。
添加子设备到网关上
最后,进入网关设备的子设备管理列表,将创建好的多个子设备添加到网关下,并且设置子设备地址。
子设备地址可以有两种方式找到:
在 Zigbee2MQTT 的本地日志中,可以找到类似
data/zigbee2mqtt/0xXXXXXXXXXXXXXXXX
的主题,这里的0xXXXXXXXXXXXXXXXX
就是子设备地址。或者在 ThingsCloud 网关设备的调试消息历史中,查看自定义上报消息的详情,也可以找到如上设备地址。
配置子设备地址后,就可以立即看到传感器上报的数据被网关设备转发到了子设备,子设备显示在线状态。
04.
在 ThingsCloud 查看设备数据
在 ThingsCloud 控制台进入不同的子设备,可以看到 Zigbee 设备的当前属性数据。
进入设备页面,对于数值型属性,直接点击属性面板上的历史数据图标,即可打开历史数据曲线图。
05.
远程控制设备
一些 Zigbee 设备具备控制功能,例如小米智能电源,可以从云平台下发指令控制电源开关,从而控制使用市电的设备,相当于继电器。
在智能电源设备类型中定义开关量属性,并且使用设备云端共享的属性类型,这样该属性既可以由智能电源上报,也可以通过控制台、App 或调用 API 下发给设备。
在设备调试消息中,可以看到下发的 JSON 指令,同时设备更新状态后会立即上报一条最新 JSON 属性数据。从消息时间可见,Zigbee 的传输延迟非常低。
06.
可视化大屏
通过不同的看板组件,可以将不同设备的不同属性,以可视化的形式呈现出来。
07.
移动App展示
到目前为止,我们已经通过 ThingsCloud 获取所有 Zigbee 子设备的状态数据,并可以对一些设备下发实时控制指令。
接下来,我们来为生成用户 App 做一些准备,对于不同的设备类型,我们编辑相应的 App 设备面板。
对设备类型完成 App 界面设计后,我们来创建用户应用,即可获得支持多个移动平台的用户 App,如下图:
接下来创建用户账号,用来登录用户 App。然后为用户关联多个设备。当用户登录后,便可以查看或控制这些设备。
往期推荐
☞ 中国云计算第一股关停 IoT云服务
☞ 国内 IoT 物联网平台终局的思考
☞ 2022年IoT平台趋势:私有化部署
☞ 5个值得分享的物联网创业失败教训
☞ 国内 4 大 IoT物联网平台选型对比
☞ 云厂商的 [IoT物联网平台] 不香了吗?
最后
以上就是苹果蜻蜓为你收集整理的小米 ZigBee 设备接入 ThingsCloud 物联网平台实战的全部内容,希望文章能够帮你解决小米 ZigBee 设备接入 ThingsCloud 物联网平台实战所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复