OpenThread 和 Particle 使创建一个廉价的协调圣诞灯展变得如此简单和有趣!传统的圣诞灯饰都需要连接到中央控制器。在我的设计中,每个网状设备都是模块化的,你只需要提供电源。灯光秀的时间是通过网状网络协调的。安装和拆卸非常容易,因为您需要做的就是提供电源。
对我来说,网状网络的另一个主要好处是它可以将网络扩展到我的 Wi-Fi 网络范围之外。前几年我制作的设备都使用 Wi-Fi。我的院子里有盲区和 Wi-Fi 超出范围的区域。OpenThread 网状网络非常智能,没有单点故障,扩频技术提供抗干扰能力。
Particle 提供了一个 IoT 平台,可以更轻松地创建网格和其他产品。当您不需要从头开始开发管道和架构时,开发效率会高得多。我已经开发物联网解决方案很长时间了,并且从头开始构建自己的平台,但现在我比以往任何时候都更有效率地专注于产品的业务逻辑,而不是花时间构建平台。Particle 的第三代设备采用了 OpenThread 网格。
OpenThread 由 Google 发布,作为 Google 为 Nest 创建的 Thread 的开源实现。谷歌发布的联网技术加速了联网家庭产品的开发,以使用Thead。(OpenThread 网站: https ://openthread.io/ )
我的公司正在利用这项技术进行更多的联网家庭项目。这项技术也非常适合制造和其他企业项目,因为该解决方案的安装比通过在设备或控制器之间连接电线的传统方法简单得多。
OpenThread 是基于 IPv6 的低功耗,主要功能包括:(摘自 OpenThread 网站: https ://openthread.io/guides/thread-primer )
OpenThread 将开发人员已知的 IPv6 和网络/Web 协议的优点扩展到网状网络。
我创建了一个网状网络,可以轻松扩展以每年添加新的光功能节点。该网络有两种类型的设备:
网关节点主要用于桥接 Internet 与 OpenThread 网状网络。Particle 制造 Argon 和 Boron 网关设备。Argon 专为 Wi-Fi 而建,而 Boron 专为蜂窝网络而建。我为网关编写的代码设计简单,不会阻止网关执行其他任务。我计划扩展网关以用于我的家庭自动化,并且不希望圣诞灯的逻辑产生明显的延迟或禁止我的家庭自动化中的其他功能。
网关代码执行以下功能:
所有轻特性节点都运行相同的代码副本。为每个设备部署不同的代码或具有不同版本的代码将是代码维护的噩梦。每次我添加新功能或修复错误时,我都会将更新部署到网络上的所有轻功能节点。Particle 构建了一个平台,支持从 Particle 云通过网关设备到网状节点的无线 OTA 更新。网状节点旨在安装在高高的树上,因此能够在任何时间和恶劣天气下从我舒适的客厅或任何有互联网连接的地方更新固件是非常好的和安全的。操作系统的版本和在设备上运行业务逻辑的固件都可以从粒子云推送到 OpenThread 网状网络上的设备!粒子实时操作系统 RTOS 存在一个问题,有时网格节点的 OTA 更新会因代码运行光模式特征的紧密循环而出现问题。简单的解决方法是首先通过上面网关部分讨论的粒子函数更新网格节点的模式。我将更新所有灯光功能节点上的模式以退出紧密循环并打开所有灯光。一旦我看到所有的灯都亮了,我就会运行 OTA 更新,并且每次都会可靠地更新固件。简单的解决方法是首先通过上面网关部分讨论的粒子函数更新网格节点的模式。我将更新所有灯光功能节点上的模式以退出紧密循环并打开所有灯光。一旦我看到所有的灯都亮了,我就会运行 OTA 更新,并且每次都会可靠地更新固件。简单的解决方法是首先通过上面网关部分讨论的粒子函数更新网格节点的模式。我将更新所有灯光功能节点上的模式以退出紧密循环并打开所有灯光。一旦我看到所有的灯都亮了,我就会运行 OTA 更新,并且每次都会可靠地更新固件。
所有网格光特征节点都运行相同的代码,但每个节点都知道自己的身份,并且可以根据自己的身份运行特殊的例程。当代码在 setup 方法中初始化时,灯光特征节点订阅 Particle, particle/device/name, api 返回友好的设备名称。然后代码可以根据设备的友好名称标识进行切换。到目前为止,代码中只有一个基于设备身份的开关。christmasTree 设备是特殊的,被视为领导者,当 christmasTree 在启动时空闲或完成一个灯光模式后空闲时,向网关发送一条消息,告诉它是时候发送同步网格消息了。如果网关被拔掉,christmasTree 将继续每秒发送消息。一旦网关确认 christmasTree 空闲,它就会发送关于 christmasLights 主题的网格消息。所有灯光功能节点都订阅了 christmasLights 主题,并在收到消息后开始灯光秀。所有网状节点几乎同时接收消息,并且几乎完美排序。可以注意到小至 20 毫秒的排序延迟,因此所有设备似乎完全一致地工作真是太棒了。
我用一些固态继电器、圣诞灯和黑铁 1/2 英寸管道建造了 20 英尺高的树。黑色铁管可以从五金店购买,每段 10 英尺,因此您还需要使用耦合器配件连接两段管道。我将 3/4 英寸的 PVC 管锤入地面约 1.5 英尺,这样我就不需要每年挖一个洞来支撑这棵树。这棵树有 12 个固态继电器通道,每个通道都有 100 个绿色灯泡串,我用一根绳子系在上面,并在每个角上串在地上。使用脉冲宽度调制来控制每个通道的亮度是最理想的,但是 Particle Xenon 没有可用的 12 个 pwm 引脚,所以我编写了自己的脉冲逻辑来控制每个通道的亮度在一个紧密的循环中。
我制作了 2 组 6 个圣诞球,每个球的直径为 1 英尺,并有 200 个圣诞灯。每组 6 个球有 1 个粒子氙和一组控制每个球亮度的固态继电器。一半的球是用红灯做的,另一半是用绿灯做的。两组 6 个球位于不同的电路上,因此每组 6 个球可以安装在不同的树上或展示在院子的不同区域。
OpenThread 提供了一种同步圣诞灯的绝佳方法,您无需将所有灯连接到中央控制器。弹性网状网络比 Wi-Fi 可靠得多。Particle 提供了一个平台,使使用 OpenThread 和做 IoT 变得更容易,也更有趣!我希望您喜欢这篇文章并构建一些您自己的 OpenThread 圣诞魔法灯!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !