姜饼家居自动化:7个步骤(附图)

您所在的位置:网站首页 uart接线图 姜饼家居自动化:7个步骤(附图)

姜饼家居自动化:7个步骤(附图)

#姜饼家居自动化:7个步骤(附图)| 来源: 网络整理| 查看: 265

灵感

我们在假期工作时有一个姜饼屋建筑活动。我以前从未建造过姜饼屋,但我想制作一个具有互动性的姜饼屋。我们的想法是建造小型蓝牙传感器放在你的房子周围(在这种情况下,只是在前门)。然后让姜饼屋模仿真正的房子正在做什么。例如,当前门在您的房子上打开时,姜饼屋的前门也会打开。为了让它更加节日,我添加了你可以通过手机应用程序或推特控制的LED。我想尽可能多地使用开源软件,包括MQTT,Node-RED和OpenHAB。这是一个演示视频。

系统图 (输入)BLE传感器 这是Silicon Labs的蓝牙低功耗(BLE)模块。我安装了一个磁簧开关来检测门是打开还是关闭。当有门活动时,该传感器将新的门位置发送到网关。 (输出)ESP8266动力姜饼屋:我正在使用ESP8266 WiFi模块来控制姜饼屋LED和前门伺服电机。 ESP8266通过订阅MQTT主题获得门位置和LED颜色。

BLE-MQTT网关:为了将BLE传感器与WiFi姜饼屋连接起来,我制作了一个BLE-MQTT网关。该网关有两个组件。用于捕获传感器数据的BLE模块和用于将传感器数据发布到MQTT的Raspberry Pi。

Raspberry Pi也运行OpenHAB和Node-RED。我正在使用OpenHAB提供移动应用程序功能,以远程监控门状态以及更改姜饼屋的LED颜色。 Node-RED用于与Twitter连接或发送文本消息。因此,您可以通过Twitter推文更改LED颜色,并在地下室弄湿时接收短信。

...

Thunderboard React BLE模块

Thunderboard React是Silicon Labs的开发板。它有一个蓝牙低功耗模块(BGM111),其中一些I / O引脚分解为通孔焊盘,我们可以焊接传感器。它由纽扣电池供电,配有两个板载按钮和LED。对我们最有用的是体积小,范围广。它具有足够的覆盖范围用于家庭自动化项目,并且它足够小,可用于制造传感器。此Thunderboard React模块用于传感器和网关。

网络

我想把它设置好,所以姜饼屋不需要和蓝牙传感器在同一个本地网络上。我希望能够将BLE传感器和网关放在一个房子里,并且让姜饼屋远离,但仍然可以做那个门。

BOM

BLE-MQTT桥

树莓派2 Silicon Lab的Thunderboard React BLE模块

传感器

Silicon Lab的Thunderboard React BLE模块 框 簧片开关

姜饼屋

ESP8266 wifi微控制器 电平移位器 MG90S伺服电机 WS2812 LED环,12 WS2812 LED环,24 WS2812 LED单灯(数量8)

软件:Github项目。整个项目都解释了不同的软件。

建立这个就像任何其他电子项目一样。将代码下载到微​​控制器上,然后连接接线图中显示的LED和伺服器。我希望我对其工作原理的解释足够详细,以便其他人根据自己的需要进行修改。

供应: 第1步:构建BLE-MQTT桥

BLE-MQTT桥可能是项目中最复杂的部分,因此我想详细解释它的工作原理。

为了将蓝牙传感器事件转换为wifi模块可以看到的内容,我们需要桥接这两个协议。这就是BLE-MQTT网关的功能。我正在使用另一个Thunderboard React模块作为BLE扫描仪。 BLE扫描仪不断扫描我们的BLE传感器数据。当它看到一个时,它会查找我们在传感器中定义的特征并读取该数据,并将该数据吐出UART。

来自BLE扫描仪的UART数据采用这种格式

TTTTTT M.

哪里 Ť 是蓝牙传感器的6字节MAC地址,和 中号 是传感器数据。该图更好地解释了它。

Raspberry Pi上的Python脚本监视UART接收引脚。它期望这种格式,并使用MQTT将此数据推送到IP网络。该网关基本上将BLE数据分解到LAN上,允许WIFI模块查看数据。

Raspberry Pi还运行OpenHAB,这是一个提供手机应用功能的平台。 OpenHAB使用相同的MQTT机制与姜饼屋wifi模块通信,以改变LED颜色。当您使用该应用程序更改LED颜色时,OpenHAB将通过MQTT发布红色,绿色和蓝色(RGB)值。同样,OpenHAB正在监控门传感器MQTT主题,并相应地更新手机屏幕的“Front Door Is”状态。我不确定使用手机应用程序手动打开/关闭姜饼屋门是否合理,但我想记录这样做的机制。

软件

网关需要3个软件。他们都在我的github帐户上的同一个项目中。

BGM111网关BLE模块的网关代码。 Python脚本 OpenHAB配置

您需要在Pi上安装MQTT代理程序Mosquitto。

sudo apt-get install mosquitto mosquitto-clients python-mosquitto

在后台运行Python脚本。

nohup./ble_gateway.py&

下载OpenHAB运行时。将演示配置替换为上面列出的配置。这是一个简单的描述,但我将详细说明如何将OpenHAB运行到他们的wiki。让传感器打开和关闭姜饼门不需要OpenHAB,但需要更改LED颜色。

建立

要构建网关,首先将网关固件加载到Thunderboard React模块上。您需要使用BOM中列出的开发工具包。可能有一种更便宜的方式来编程,我不知道,但这个工具包是官方的方法。

使用此“QSG108”快速入门指南开始使用BGTools。基本上,你想打开上面用BGTools链接的网关项目文件,编译它以生成.bin文件,然后使用一个名为Simplicity Commander或EA Monitor的单独程序将.bin下载到Thunderboard React BLE模块中(这是用BGTool安装)。如果您遇到麻烦,Silicon Labs论坛是一个搜索或提问的好地方。

使用网关代码对模块进行编程后,按照上面的接线图将BLE模块连接到Raspberry Pi 2.由于免费硬件UART,我的设置使用Pi 2。如果您使用的是Pi3,则需要启用miniUART。另请注意,Thunderboard React模块有一个可在电池和外部电源之间进行选择的开关。它应该切换到使用外部电源,因为我们从Pi的3.3V电源为模块供电。

我把模块像豆茎一样安装在Pi上,使用拉链并用粘性来固定它。网关的放置有点重要。您希望它位于中心位置,以尽可能多地覆盖单个网关,否则您可能需要构建另一个网关。 Thunderboard React中的BGM111部件具有相当好的输出功率,同时仍然能够运行硬币单元。有了一个门户,我就可以到达我所有的三居室。

第2步:构建BLE传感器

传感器只是另一个Thunderboard React板。使用网关步骤中的说明编译和编程传感器模块,但请在此处使用此传感器代码。传感器使用一个连接在其中一个电源引脚和引脚PD13之间的简单簧片开关。就是这样,布线非常简单。不要忘记将开关移到VBAT,以便电池为模块供电。代码打开LED,以便您可以看到它何时传输并连接到网关。当你确信事情正在发挥作用时,请注意这些问题。

一旦模块被编程并且簧片开关被焊接,BLE传感器可以放置在外壳中并安装在门上。将磁铁固定在门上。

当我测试这些模块的范围时,当网关位于中心位置时,我能够到达我的所有房子。

第3步:姜饼屋建设!

这是有趣的部分。这是我如何建造姜饼屋的一些进展图。根据您的情况量身定制。这是我的第一个姜饼屋,在看到其他人可以做的事情之后,我承认我的构造的美学部分非常平庸。明年,更多的锦上添花和装饰!

切割门/窗

我用dremel切开门窗开口,以及房子后面的USB电缆开口。它运作得非常好,它并没有崩溃。来自dremel工具的热量可以烧掉姜饼的切面,因此有点有趣。

发光二极管

屋顶LED是一系列8个独立的WS8212焊接在一起形成V形。我喜欢他们看起来被霜冻覆盖的样子。我确实检查了结霜是否导电,然后将其涂抹在裸露的LED触点上。

雪人是一个12导联环和一个24导联的WS8212环系列。它被热粘在托盘上,所以它直立。我用羊皮纸将它粘在LED环上。终于找到了用于那张十年历史的羊皮纸。

前门

制作前门很棘手。我用伺服电机做了一个摩擦配合支架。好吧,这是其中一条便宜的延长线的塑料安全盖。随意即兴,因为我只是四处寻找可能有用的东西。我用热胶将支架固定在姜饼上。只要表面积很大,那就非常好用。实际的门只是一块硬纸,是热粘在伺服臂上的垃圾邮件。

第4步:ESP8266,LED和伺服

ESP8266连接到Raspberry Pi上的MQTT代理,以确定LED上显示的颜色以及如何定位前门伺服电机。 ESP8266代码在这里。我正在使用ESP8266的NodeMCU版本。需要编辑的几个项目是您唯一的WiFi凭据和Raspberry Pi MQTT代理IP地址。

微控制器和面包板位于姜饼屋内,房屋后面悬挂着两条USB线。你需要两根USB线。其中一个为ESP8266供电(我把它留在接线图中,因为它显然插入了wifi模块)。另一根USB电缆为LED和伺服电机提供5V电源轨。 ESP8266无法为所有LED和伺服提供足够的电流。来自ESP8266的信号通过4通道电平转换器连接到LED和伺服。我确实在5V电源线上放了一个电容器,但这并不是必需的,因为那些USB充电器中有足够的电容器,所以我将其从原理图中取出。

这是伺服电机转动门的简短剪辑,只是为了让您了解如何定位伺服。

步骤5:Node-RED增加了更多连接

由于传感器,LED和电机都在MQTT上运行,因此使用Node-RED为姜饼屋添加更多连接非常容易。已经有一个MQTT节点允许您订阅并发布到Pi上的MQTT代理。还有电子邮件和Twitter节点。我们可以使用Node-RED来允许推文改变姜饼屋LED的颜色。我们也可以使用推文打开和关闭门,虽然这种方式会影响前门在姜饼屋上的实用性。但关键是你可以:)

顶部监视推文并解析推文中的文本,看它是否是一种颜色(以及颜色)。然后它向MQTT发布与该推文颜色相对应的RGB值。

当门打开或关闭时,我们还可以将门传感器贴在推文上。第二个流程监视与蓝牙门传感器对应的MQTT消息并将其发送出去。

可以在此处找到所有Node-RED流。您只需复制文本并将其导入流程即可。

HTTP://github.com/tsaitsai/gingerbread-house/blob …

第6步:制作漏水传感器

这就是姜饼屋。但是我想制造一个传感器。能够灵活地制造传感器以满足您的需求是非常棒的。可以使用相同的门传感器制作漏水传感器,当检测到水时,该传感器会向您发送短信。

画廊几乎描述了如何制作传感器。但为了完整性:

我使用了与门传感器完全相同的电路,但是我没有使用簧片开关,而是在电源和PD13引脚上使用了两根电线。这些充当水探针。 钻孔可以让电线从包装盒中取出。 将泡沫附着在底部,这样如果有大量的水,它就可以漂浮。我想保存传感器以及地下室。 使用上一步中的Node-RED流,传感器包含在该流中。如何获取通知有很多选项。电子邮件和短信比Twitter更有意义。对于短信,我使用Twilio来获得响应,但电子邮件也可以很好地工作。

我对这条电路在各种条件下的工作情况有所保留。如果您的水中矿物质含量较低,则可能无法正常工作。但我希望展示这些DIY BLE传感器与Node-RED等酷炫平台相结合的灵活性。

该视频是在地下室洗衣房拍摄的。网关坐在楼上的路由器,只是为了了解范围。

第7步:2017年快乐

:)

三等奖

物联网建设者竞赛



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3