0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用MySensors框架来创建便宜的智能家居传感器阵列

454398 来源:网络整理 作者:网络整理 2019-11-27 17:07 次阅读

智能家居传感器的成本非常可观。仅用于运动检测器或湿度传感器的$ 60- $ 100,对整个房屋进行布线就成为那些可支配收入可笑的人的领域。让我们自己构建一个。

幸运的是,MySensors.org背后的优秀人才已经完成了艰苦的工作。今天,我将向您展示如何使用MySensors框架来创建便宜的智能家居传感器阵列,这些传感器可以馈送给OpenHAB安装(请参阅我们的Raspberry Pi上的OpenHAB入门指南)。我假设您已经有一个运行中的MQTT服务器,并且了解MQTT消息传递格式的基本知识;如果不是,请务必阅读OpenHABguide的后续操作,其中包括有关安装MQTT服务器的说明。

尽管我将专门处理使用MQTT从Arduino网络转发MySensors数据,对于OpenHABinstall,我应该指出MySensors框架可以提供给许多不同的家庭自动化控制器。我在此处介绍了适用于我的完整解决方案,但是请访问MySensors网站,因为您可能会发现它也适合您的类似目的,但使用的硬件或通讯协议略有不同。

如何使用MySensors框架来创建便宜的智能家居传感器阵列

我的设置的硬件成本每节点不到10美元(网关的成本略高),但是附加的传感器和执行器可以只需添加很少的费用(例如DHT11湿度和温度传感器每个大约1美元;高压继电器大约3美元)。

我们在做什么

基本概念是我们不是使用不可靠的Wi-Fi或昂贵的以太网屏蔽将其添加到现有的拥挤本地网络中,而是为Arduinos创建了一个完全独立的支持网格的网络;然后使用单个网关节点将其桥接到本地网络,该网关节点同时具有以太网连接和与其他Arduino的无线电连接。因此,我们要制作几个传感器节点,它们收集数据;又是一个网关节点,它将数据中继到OpenHAB服务器上。

同样,这对我来说是有效的,因为我的Wi-Fi接收是如此可怕,我不想在不必要的情况下使数据混乱数据。如果您对Wi-Fi感到满意,请考虑使用与内置Wi-Fi板兼容的低成本ESP8266 Arduino – MySensors也支持这些板。

El的重要说明Capitan用户和Arduino Clones:由于新的安全措施,在最新版的El Capitan中,Apple设法打破了用于与许多Arduino clone开发板通信的串行驱动程序。要查看您是否受到影响,请查看您的主板和距离USB端口最近的芯片。如果显示的是CH340,则表示您受到此影响。请按照此处的说明禁用驱动程序kext签名,然后重新安装CH340串行驱动程序。

所需的组件

网关,您将需要:

Arduino Uno

以太网屏蔽(基于W5100)

NRF24L01模块–我使用了 + PA + LNA 版本,最大射程可达1公里。接线方式与您选择的相同。

对于每个传感器节点:

Arduino Uno

NRF24L01模块

传感器(首先,我建议使用温度和湿度DHT11或DHT22模块)

附加/可选:

10uF电容器,一个对于您拥有的每个RF模块(链接是一包50个!)

具有5v和3.3v输出的电源(YwRobot MB102运作良好,每个价格为1美元)– 如果使用一个克隆的Arduino。 您还需要9-12v直流电源。

原型屏蔽或短的公母跳线。

使用NRF24L01模块

让我们从NRF24L01模块开始,因为它们是项目中最复杂的部分。我选择了价格更高,范围更广的版本:技术上称为 NRF24L01 + PA + LNA 。它们带有一个板载信号放大电路和天线连接,但是如果您有一个普通的,有规则墙的房屋,而不是像米那么厚的实心石墙,我建议您先尝试使用价格更便宜的非天线版本的模块。我做。声称的保护范围大约为一公里,对于我放入花园棚子里的储藏室来说足够了。

但是,这些东西真的很难使用;如果您不先阅读这些提示而直接插入所有内容,将会感到失望。

该模块需要VCC引脚的3.3v输入电源– 不是5v 。如果输入5v,则将其油炸。

在VCC/GND端子两端焊接一个10uF电容器。电容器上的实心灰线表示负极/GND端。

使用短而高质量的跳线;或者更好的方法是,将它们直接焊接到原型屏蔽层上,以使电缆长度最小并保持牢固连接。

如果您使用的是Arduino克隆,则电压调节器无法为它们提供足够的电压3.3v引脚–您需要使用外部电源板(上面链接),每块价格约1美元。这些提供了稳定的3.3v。如果您使用的是原始 Arduino品牌的Uno,这似乎不是问题。

我强烈建议您首先进行一些基本测试,以便确定您的收音机正在工作。如MySensors页面上所示,连接两个无线电。它们的图显示Arduino Micro板无关紧要–使用相同的引脚号。请注意,该图从顶部示出了NRF24L01;您实际上是从下面插入的东西。进行相应的调整。忽略灰色的IRQ引脚,当前未使用。总结:

外部电源上的VCC达到3.3v

GND接地到公共接地轨

CE到引脚9

CSN/CS到引脚10

MOSI到引脚11

MISO到引脚12

SCK到引脚13

您将需要两个完全连接的节点进行测试。下载RF24库并加载最简单的入门示例。打开两个模块的电源,但保持一个模块通过USB连接并打开串行控制台。键入“ T”并发送,将其切换到传输模式,这时您将收到调试消息,表明它已成功将消息ping到另一个节点。

构建MySensors MQTT客户端网关

好吧,现在我们知道RF24无线电已连接并正常工作,请继续下载MySensors Arduino软件包的开发分支。本教程使用1.5版编写,但以后的版本也可以。我们之所以使用Development分支,是因为在编写本文时,MQTT client 网关尚未包含在主软件包中。

尽管在MQTTGateway中提供了master分支,它也充当服务器,我们不希望这样做,因为我们已经在Raspberry Pi上运行了稳定的MQTT服务器。我们只想将MySensors数据转发到该数据上。再说一次,如果这不是您想要的-如果您根本不想使用MQTT-那么请看一下EthernetGateway或SerialGateway,它们都与OpenHAB兼容。

值得注意的是下载软件包不仅包含基本的MySensors文件,还包括每个可能的传感器所需的兼容库。为避免冲突,我建议仅备份您当前的整个库文件夹,然后将其全部替换为下载包中的文件夹。

网关的接线稍有不同;一旦有了以太网屏蔽,就可以将以下引脚用于无线电模块:

CE到引脚5

CSN到引脚6

SCK到引脚A0

MOSI引脚A1

MISO引脚A2

您还需要启用 #define SOFTSPI 在 libraries/mySensors/MyConfig.h 文件中。为此,请删除//,以取消注释,它位于我的第309行附近。

我们需要这样做,因为无线电模块和网络屏蔽均使用SPI,并且它们不兼容;因此我们只需要将无线电模块的SPI移至其他引脚上,然后通过软件(因此, soft SPI)执行SPI通信即可。

加载 MySensors/GatewayW5100MQTTClient 素描。如果在MySensors菜单下没有看到此消息,则说明您未安装开发分支。使用上面提供的链接重新下载整个库。

您需要为控制器定义一个静态IP地址,即您的网络路由器和子网,以及现有MQTT服务器的IP地址。如果愿意,也可以随意修改主题前缀。上传,然后将其插入网络。简要检查串行控制台是否有任何明显的错误,例如无法连接到MQTT服务器,否则将其放在一边(但将其保留)。

构建传感器节点

首先,通过将//放回开始,再次注释 MyConfig.h 文件中的 #define SOFTSPI 行。网关只需要它-我们将标准的NRF24L01布线用于传感器节点,该节点使用硬件SPI。如果您需要提醒:

VCC在外部电源上为3.3v(或者在Arduino本身(如果它是原始版本而不是克隆版本)上)

GND到公共接地轨

CE到引脚9

CSN/CS到引脚10

MOSI到引脚11

将MISO连接到第12针

将SCK连接到第13针

然后,连接您选择的传感器;我使用DHT11湿度和温度传感器进行测试,但是如果您向下滚动至MySensors页面侧栏上的传感器和执行器列表,则会发现很多其他选项:门,雨量计,光线,运动,甚至RFID –并加载更多。您可以看到我还在下面的节点上添加了一个中继,但稍后会更多。

最后,加载 HumiditySensor 示例中的MySensors菜单,并在评论后立即添加以下行。

#define MY_NODE_ID 2

由于我们使用的是控制器的特殊版本,该控制器仅将内容转发到我们自己的MQTT服务器上,它没有标准的控制器功能,该功能会自动将节点ID分配给每个新节点。相反,我们只是每次都要手动定义它。记下该数字以备您自己记录,并为每个节点进行更改。

也启用调试输出:

#define MY_DEBUG

最后,检查您的数据引脚DHT11传感器正确。

#define HUMIDITY_SENSOR_DIGITAL_PIN 7

然后上传!

值得打开串行控制台进行查看。要查看的关键位是 st = ,它是消息的状态。 st =失败表示未发送邮件。您可能尚未定义唯一的节点ID,或者网关处于脱机状态。我只是通过拔掉网关来伪造这些故障:

如果一切正常,您应该开始看到一些数据读入MQTT服务器。将它们放入OpenHAB不在本教程的讨论范围之内,但是在OpenHAB指南的第2部分中进行了介绍,因此您可以在此处进行参考。

合并传感器代码

传感器节点的启动和运行相对简单,当您要向每个节点添加多个传感器时,它会变得有些棘手。本质上,您将要混合来自两个不同示例的代码片段。向您展示这一点的最简单方法是通过视频作为示例!在这里,我将基本的湿度传感器与继电器结合在一起。

您可以在此处找到湿度传感器和继电器的完整代码,正如我在视频中提到的那样,该代码已被无阻塞环路修改。要了解有关激活中继所需的MQTT命令结构的更多信息,请检查串行API,但足以说明以下通道控制了我给出的代码(消息主体为0或1)中的第一个中继:

mysensors-in/9/1/1/0/2

您现在唯一的限制是Arduino的内存量,我要说的是–我的智能家居中最可靠的传感器不是价格为80美元的商用Z-Wave模块,

今天结束,但是如果您有问题,可以在MySensors的评论或非常活跃的用户论坛中提问。 您是否将自己的廉价传感器节点组合在一起?您的智能家居如何来临?
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2526

    文章

    48092

    浏览量

    740018
收藏 人收藏

    评论

    相关推荐

    Python智能家居系统代码介绍

    Python智能家居系统是一种基于Python编程语言开发的智能家居控制系统,在现代家庭中得到了越来越广泛的应用。本文将详细介绍Python智能家居系统的代码实现,包括系统的结构与功能模块、
    的头像 发表于 01-25 09:46 450次阅读

    智能家居控制系统原理与应用

    智能家居控制系统是指利用先进的计算机科学和通信技术,将各种家居设备和系统进行连接和集成,实现智能化控制和管理的系统。它通过传感器、执行器、通信模块和控制中心等组成部分,将各种
    的头像 发表于 01-10 11:44 754次阅读

    雷达传感器如何显著提高智能家居的能源效率

    雷达传感器如何显著提高智能家居的能源效率
    的头像 发表于 12-06 15:25 229次阅读
    雷达<b class='flag-5'>传感器</b>如何显著提高<b class='flag-5'>智能家居</b>的能源效率

    电阻式位置传感器智能家居门锁系统中的角色与优势

    智能家居门锁系统采用电阻式位置传感器,可实现精确可靠的位置检测。
    的头像 发表于 12-05 15:15 456次阅读

    智能家居中的MEMS传感器

    和控制电路、直至接口、通信和电源等集成于一块或多块芯片上的微型器件或系统。在智能家居中,MEMS传感器发挥着关键的作用。它们使得家居设备能够互联互通,显著提升了我们的生活品质。   MEMS
    的头像 发表于 11-03 00:18 1241次阅读

    智能家居管理系统设计资料

    智能家居管理系统设计(原理图+APP+源代码等)使用51单片机作为主控 提供完整源码 可实现智能家居控制网上下载的资源 侵权删!
    发表于 10-07 08:22

    无线传感器网络在智能家居系统中的应用介绍

    域内监视对象的各种信息并加以处理,完成数据采集和监测任务[1].在我国“国家中长期科学和技术发展规划纲要”重点领域中,“无线传感器网络及智能信息处理”被列为“信息产业”中7个主题之一.随着人们对智能家居
    发表于 09-19 06:02

    智能家居系统概述(2)#传感器

    传感器智能家居
    未来加油dz
    发布于 :2023年08月20日 14:46:30

    智能家居系统概述(1)#传感器

    传感器智能家居
    未来加油dz
    发布于 :2023年08月20日 14:46:04

    智能家居安防系统传感器设计(2)#传感器

    传感器智能家居
    未来加油dz
    发布于 :2023年08月20日 14:45:38

    智能家居安防系统传感器设计(1)#传感器

    传感器智能家居
    未来加油dz
    发布于 :2023年08月20日 14:45:13

    气压传感器智能家居中的应用及优势

    随着科技的不断发展,智能家居正逐渐成为人们生活中的重要组成部分。在智能家居系统中,气压传感器作为关键的传感器之一,发挥着重要的作用。它能够实时监测和测量气压的变化,为
    的头像 发表于 06-26 18:04 1153次阅读

    智能家居传感器技术的应用和未来展望

    智能家居是指利用先进的传感器技术和互联网连接的智能设备,以提高生活质量、便捷性和能源效率的家居系统。在智能家居中,
    的头像 发表于 06-18 11:25 1925次阅读

    传感器智能家居设计中的应用

    智能技术是当今许多消费电子设备不可或缺的一部分。在智能家居市场,越来越多的智能家居开始在设计中采用传感器,以实现先进的传感和控制。燃油架位置
    的头像 发表于 06-12 16:03 686次阅读
    <b class='flag-5'>传感器</b>在<b class='flag-5'>智能家居</b>设计中的应用

    一文读懂智能家居中的温湿度传感器,后续技术发展趋势如何?

    电子发烧友网报道(文/黄山明)温湿度传感器智能家居系统中的重要组成部分,它可以帮助测量环境的温湿度,并将这些数据发送到智能家居系统,使得系统可以基于这些数据自动地控制空调、加湿器、除湿器等设备
    的头像 发表于 05-14 01:40 2461次阅读
    一文读懂<b class='flag-5'>智能家居</b>中的温湿度<b class='flag-5'>传感器</b>,后续技术发展趋势如何?