我是靠谱客的博主 苹果蜻蜓,最近开发中收集的这篇文章主要介绍小米 ZigBee 设备接入 ThingsCloud 物联网平台实战,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

智能家居场景中,我们通过架设自己的 Zigbee 网关,可以将米家的 Zigbee 设备轻松接入 ThingsCloud。借助 ThingsCloud 平台的内置应用和开放性,我们可以在很多行业项目和应用场景中灵活自如的发挥 Zigbee 无线设备的优势。例如:楼宇办公、温室大棚、小型仓库、环境监测、工业控制等一些非家居场景。 

01.

开源项目 Zigbee2MQTT

这里要用到开源项目 Zigbee2MQTT ,它采用 NodeJS 编写,可以运行在 Linux/Windows 下,详细的搭建过程这里略过,官网有详细的介绍。

0636129e491002ed60133de000450f55.jpeg

Zigbee2MQTT 支持的 Zigbee 设备多大2000多种。

9ad2c98adfa1741d5b051dc9e0b531c6.jpeg

通常来说,搭建 Zigbee2MQTT 网关需要以下硬件:

  • Linux 小型主机,可通过 WiFi/以太网/4G 连接互联网,支持 USB 接口。我们这里以树莓派为例。

  • Zigbee 适配器,支持 USB 或以太网接口。采用 CC25xx 或 CC26xx 的 Zigbee 芯片。CC26xx 具有更远的传输距离和更好的稳定性。

ee22f8333629b3a56e4e21ff886675a7.jpeg

树莓派 4B + USB Zigbee 适配器

12e784d41156e5c81981ec3d44c9de6b.png

树莓派 Zero + USB Zigbee 适配器

ce6a02e5d1351d0f87059abfce682272.jpeg

02.

Zigbee 的优势

Zigbee 无线设备的主要优势包括:

  • 低功耗:例如小米温湿度传感器使用 3V 纽扣锂电池,可以续航长达一年多时间。

  • 低延迟:设备响应速度快,从睡眠状态切换到工作状态通常仅需要 15ms,节点访问网络仅需要 30ms,从而进一步节省了电量。

  • 容量大:Zigbee 可以采用星状,片状和网状的网络结构,最多可以形成 65000 个节点的大型网络。

  • 低成本:Zigbee 协议免专利费,且市面上支持 Zigbee 标准协议的传感器、灯、开关、电源等产品非常多,价格低廉。仅 Zigbee2MQTT 支持的设备就有超过 2000 多种,包括小米、绿米、宜家、飞利浦等。

03.

Zigbee 接入 ThingsCloud

Zigbee2MQTT 网关准备好后,我们来重点介绍 ThingsCloud 平台的接入和应用,对于其它 Zigbee 网关的接入同样具有参考意义。 

创建项目

打开 ThingsCloud 控制台,如果还没有创建项目,先创建一个项目。

创建设备类型

为了定义网关设备的功能,我们需要先创建一个设备类型,这里可以直接使用我们已经发布的模板,创建类型时选择产品类型,输入产品 ID:7892219658。如下图:

9c95cc85198c7789755972d46b2b2a01.png

这样会自动生成一些规则,用来解析网关和子设备的消息,直接使用即可。

3775467c89cf7e31381cce7fb2d27608.png

同时还有自动生成的自定义数据流,支持 Zigbee2MQTT 的 MQTT 主题。

12016f277d9c4dee4ad15c67510d7439.jpeg

注册网关设备

接下来,我们注册一个网关设备,绑定到刚创建的设备类型下。进入设备>连接,可以看到设备证书和 MQTT 连接地址,稍后会用到。

787c177d3565f4b5d2716bf5af616e5b.jpeg

编辑 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,网关设备连接成功,会上报网关的基本信息。

ddae38c1c8e9fe741e13d0cf82408079.jpeg

创建子设备

所有 Zigbee 设备都是网关的子设备,我们以温湿度传感器为例,创建一个子设备类型。然后在该类型下创建多个温湿度传感器设备。

d0833b7eaf4aa91191641bf6914ce09f.jpeg

添加子设备到网关上

最后,进入网关设备的子设备管理列表,将创建好的多个子设备添加到网关下,并且设置子设备地址。

子设备地址可以有两种方式找到:

  • 在 Zigbee2MQTT 的本地日志中,可以找到类似 data/zigbee2mqtt/0xXXXXXXXXXXXXXXXX 的主题,这里的 0xXXXXXXXXXXXXXXXX 就是子设备地址。

  • 或者在 ThingsCloud 网关设备的调试消息历史中,查看自定义上报消息的详情,也可以找到如上设备地址。

9806d82cef4d82ce8c42edaeba90f918.jpeg

配置子设备地址后,就可以立即看到传感器上报的数据被网关设备转发到了子设备,子设备显示在线状态。

f6ab698d05f7d9e3f5e11718a9ee6f9c.png

04.

在 ThingsCloud 查看设备数据

在 ThingsCloud 控制台进入不同的子设备,可以看到 Zigbee 设备的当前属性数据。

15fa907a7707b8e21e279a3ad52c8728.jpeg

9a5c06e91af9117130951377a1c5826c.jpeg

3e9c1ea49db521f9c717996cb52d365e.jpeg

1fd02bd9fa0c3ba6a8ff12e9931a15ad.jpeg

b94ce9435bc33eb9efb779c61b307c7b.jpeg

进入设备页面,对于数值型属性,直接点击属性面板上的历史数据图标,即可打开历史数据曲线图。

9e3ba98764d1895c729b801053e949ba.jpeg

05.

远程控制设备

一些 Zigbee 设备具备控制功能,例如小米智能电源,可以从云平台下发指令控制电源开关,从而控制使用市电的设备,相当于继电器。 

在智能电源设备类型中定义开关量属性,并且使用设备云端共享的属性类型,这样该属性既可以由智能电源上报,也可以通过控制台、App 或调用 API 下发给设备。

ac4c5be7e889f33da673a42ee9294a10.gif

在设备调试消息中,可以看到下发的 JSON 指令,同时设备更新状态后会立即上报一条最新 JSON 属性数据。从消息时间可见,Zigbee 的传输延迟非常低。

1eab41517d8051a1860afa2b91c9716a.jpeg

06.

可视化大屏

通过不同的看板组件,可以将不同设备的不同属性,以可视化的形式呈现出来。

44200f7483c02324080f28abed33da83.jpeg

07.

移动App展示

到目前为止,我们已经通过 ThingsCloud 获取所有 Zigbee 子设备的状态数据,并可以对一些设备下发实时控制指令。

接下来,我们来为生成用户 App 做一些准备,对于不同的设备类型,我们编辑相应的 App 设备面板。

e0baf0a3acedff566c3e4b5cc6d8d301.png

d1d3f302460d37b0be9443e880d91b0a.png

29b370b4f44e63ba821ab2673caebcec.png

5af896531139bb57c9acc4f97d37fd00.jpeg

2313a4b2ee00230c99106179465d1e0d.jpeg

对设备类型完成 App 界面设计后,我们来创建用户应用,即可获得支持多个移动平台的用户 App,如下图:

c865c88e0d7329d4595acb74195c7f31.jpeg

接下来创建用户账号,用来登录用户 App。然后为用户关联多个设备。当用户登录后,便可以查看或控制这些设备。

往期推荐

☞ 中国云计算第一股关停 IoT云服务

☞ 国内 IoT 物联网平台终局的思考

☞ 2022年IoT平台趋势:私有化部署

☞ 5个值得分享的物联网创业失败教训

☞ 国内 4 大 IoT物联网平台选型对比

☞ 云厂商的 [IoT物联网平台] 不香了吗?

33b54514a60936fef549e18b6969f9cf.png

03429f446aeb7de7299af00ad1fbaff9.gif

2a284cd8f8e0b3299ca5795f0774891e.gif

8d5f495d37a5f95da64dff5c1571ab05.gif

7bd645dd2d6bd4e70cf71f9a36865cf1.gif

最后

以上就是苹果蜻蜓为你收集整理的小米 ZigBee 设备接入 ThingsCloud 物联网平台实战的全部内容,希望文章能够帮你解决小米 ZigBee 设备接入 ThingsCloud 物联网平台实战所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部