智能家居场景中,我们通过架设自己的 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 物联网平台实战相关推荐

  1. LoRaWAN设备接入阿里云IoT企业物联网平台实战——实践类

    传送门:5个视频讲解,30个场景案例汇总 LoRaWAN设备接入阿里云IoT企业物联网平台实战 随着 IoT 物联网的高速发展,低功耗,远距离,抗干扰的低功耗广域网快速崛起,LoRa与NB-IoT就是 ...

  2. 物联网平台企业版:设备接入实例节点开发实战——实践类

    IoT物联网平台-实例化开发实战 前言 物联网平台企业版支持用户创建实例,用于设备接入和业务管理.企业版有一下优势: 根据业务规模,购买匹配的实例规格,可大幅节约您的成本. 实例规格按需选择,避免触达 ...

  3. 合宙Air724 Luat 开发接入ThingsCloud 物联网云平台

    本文用于合宙模组 luat 方式接入 ThingsCloud 云平台,代码托管在Github,可以在这里下载: https://github.com/IoT-ThingsCloud/luat-thin ...

  4. 2019重庆智博会 - EMQ 联合 Intel 展示物联网 MEC 边缘设备接入及管理平台

    2019中国国际智能产业博览会(以下简称2019智博会),于2019年8月26日至29日在重庆国际博览中心举行.应智博会组委会邀请,英特尔公司在出席展会并打造了"英特尔智能创新展区" ...

  5. MCU接入阿里物联网平台遇到的各种坑

    使用阿里物联网sdk3.2.0 1.cJson相关坑,修改了cJSON_malloc和cJSON_free的指向以后,忘记修改realloc的指向了,结果csjon创建字符串的时候调用了系统的real ...

  6. 将Edgex网关接入Thingsboard物联网平台

    将Edgex网关接入Thingsboard物联网平台 [toc] 系统环境准备 Thingsboard物联网平台 平台概述 ​ 在众多的开源物联网平台项目中,Thingsboard在体系架构先进性.功 ...

  7. 最佳实践 · 有人4G DTU接入 MODBUS 物联网平台

    4G DTU是一种广泛用于工业物联网数据传输的终端设备,各类传感器串口原始数据通过RS485/232传输到DTU转4G网络,双向透明传输,支持Modbus RTU转TCP/MQTT.广泛应用于远程电力 ...

  8. 最佳实践 · 卓岚串口服务器接入 MODBUS 物联网平台

    串口服务器是为RS-232/RS-485/RS-422终端到TCP/IP之间完成数据转换的通讯接口协议转换器.提供RS-232终端与TCP/IP网络的数据双向透明传输,提供串口转TCP/IP功能,RS ...

  9. Esp8266(NodeMcu)接入新大陆物联网平台并且上传温湿度

    Esp8266[NodeMcu]接入新大陆物联网 1.平台注册和产品创建 2.代码协议部分2.1 连接请求协议:2.2 数据上报部分协议 3.完整代码部分 3.1 效果图: 使用Esp8266接入新大 ...

最新文章

  1. RHEL/CentOS通用性能优化、安全配置参考
  2. JUnit报initializationError的解决方法
  3. input 换行_Python输出数据print,获取输入数据input,基础入门
  4. 基于PAM认证方式详解
  5. javascript 函数 有任意多个参数/可变参数/动态参数
  6. mysql git 获取 稳定版本 源码_webmagic新版文档(更新中)
  7. C++:获取图片文件信息-图片名称、类型、像素宽高
  8. 蒙特利尔大学助理教授唐建《图表示学习:算法与应用》研究进展
  9. Redis配置文件redis.config详解以及关闭Redis服务
  10. python环境设置和OpenCV-python配置
  11. Bailian3142 球弹跳高度的计算【水题】
  12. python 字符串加密 唯一数字_python实现字符串加密 生成唯一固定长度字符串
  13. CUDA 下载不了(只有 42B)的应急解决办法(暂时可用)
  14. Pigeon发布流程
  15. 谈我们的团队文化建设
  16. 美团CAT客户端(windows版)接入指南
  17. iMeta | 德加合作揭示葛藤菌根真菌的遗传多样性和群落组成
  18. 服务器电脑增加机械硬盘分区,台式电脑加新、旧机械硬盘分区教程 旧机械硬盘可以装新电脑上吗?...
  19. echarts地图 自定义区域
  20. Linux之安装node

热门文章

  1. 油田滚子链行业调研报告 - 市场现状分析与发展前景预测
  2. 2019武大国重考研地理信息(GIS,资源与环境)复试上机题目分享
  3. 探究并发和并行、同步和异步、进程和线程、阻塞和非阻塞、响应和吞吐等
  4. postman端口测试的使用方法
  5. 软件测试模型比较(V模型、W模型、H模型、X模型、前置模型)
  6. iOS开发 数据存储之YYCache
  7. 《实用Common Lisp编程》第16-17章,面向对象细节补遗(2):广义函数与继承
  8. 深耕Java多线程 - 死锁、活锁、饥饿
  9. python断言语句_Python中的断言(Assertions in Python)
  10. 年营收规模近20亿元,海康汽车电子业务计划分拆上市?