×

强大的MQTT盲控制器

消耗积分:0 | 格式:zip | 大小:0.34 MB | 2022-11-22

杨火亭

分享资料个

描述

让有可用的光!

这是让我的家自动化的更具挑战性的项目之一,但也是最有价值的,因为我家里有 8 个(!)百叶窗/窗帘想要机动化以充分利用自然光。其中 4 个非常大而且很重,宽 1.5 米,长 3 米!

看看商业上可用的选项,我可能会花费数千美元来购买内置电机(我不得不承认这是优越的)的阴影,或者大约 200 美元购买由各种商业制造商制造的类似改装装置。但是查看这些选项,其中大多数都没有任何 Apple Homekit 兼容性,有时甚至没有手动控制它们的按钮 - 我正在寻找更实惠的东西!

我从 cabuu 发现了一个很有前途的设计,它有据可查,有按钮,使用现成的零件,最重要的是使用了一个非常实惠的带编码器的电机。我订购了他的几个 pcb 来测试它。

第一次测试

在 3D 打印外壳并将所有部件焊接在一起后,令我惊讶的是,使用额定最大 10V 的电机驱动器,12v 电机的动力不足。

我发现外壳的一些细节也需要改进 - 例如在齿轮环绕上添加链条凹槽或在主体上安装孔以及更改某些零件的尺寸。

由于我的百叶窗又大又重,我想以 12V 运行电机,并决定使用 Adafruit DRV8871 电机驱动器,因为它具有相似的尺寸和功能。由于我不想完全重新设计外壳,我在原始设计的基础上创建了一个电路板,但使用了更强大的电机驱动器。

修改后的电路板

 
 
 
pYYBAGN6fLuADCgvAAI9mtuL2_8293.jpg
 
1 / 2电路板背面和正面
 

电气元件的焊接和组装

我不会详细介绍如何焊接,但这里是我的方法和顺序的快速总结:

  • 2 个按钮
  • 用于 RDOWN 和 RUP 的 2 个 10k 电容器 - 将 RAO(电阻模拟输出)留空
  • 用于微控制器的母头针和用于电源的 2 个
  • 电机驱动器的公头针 - 我知道这并不理想,因为另一侧的按钮 4 个针需要焊接在表面上,而不是通过孔
  • 电机驱动板,由于电机编码器空间不足,我不得不直接焊接它们
  • 用于 D1 电源屏蔽的母头可堆叠接头,用于 12V 电源的 2 个公头针脚(注意正确的方向和方向)
  • Wemos D1 mini 的公头(注意正确的方向和方向)
  • 附件连接电机 - 大约。5cm - 从 pcb 的按钮侧出来
  • WS2812b LED 的 3 根电线 - 大约 3cm - 从 pcb 的按钮侧出来 > 将其焊接到从条带切割的 LED 上

请注意 ACC for Accessory 未使用。在未来的版本中,它旨在将光传感器连接到模拟引脚。它很容易添加,但还没有看到好处。

 
 
 
pYYBAGN6fMmAWwviAAPafG9iPAo718.jpg
 
1 / 7
 

外壳组装

一旦您打印了所有零件并在您面前组装了电子设备,它应该会更有意义。以下是步骤:

  • 使用 2 x M3 - 10mm 螺栓将电机连接到 Gear Surround
  • 加热并插入 2 x M3 - 4-6mm 黄铜加热插件到齿轮环绕的主体
  • 将 WS2812B LED 强力胶水或胶带粘到按钮外壳上。
  • 将电路板松散地放入 Button Surround
  • 确保在使用 2 x M3 - 32mm 螺栓将 Gear Surround 固定到主体之前将电线连接到电机 - 它与电缆紧密配合
  • 将电路板放置在主体的指定区域,并使用 4 x M3 - 24-32mm 尺寸的配件(塑料)螺钉将它们连接到主体上。不要过度拧紧,只要确保它没有晃动并且可以按下按钮即可。
  • 将 6mm 齿轮耦合器放置到齿轮上。使用 2 - 4 颗短平头螺钉紧密贴合和固定。确保事先能够使用六角扳手接触小螺栓!
poYBAGN6fM2AO6WuAASVyVZm4AU997.jpg
 

上传代码并首先设置!

在上传代码之前,请确保在 Arduino IDE 中输入 MQTT 凭据(MQTT 服务器、用户、密码)。我不得不使用 ESP8266 库版本 2.42,因为最新版本给我带来了问题。所需的所有其他库如下,最新的应该可以工作:

编码器

Adafruit NeoPixel

发布订阅客户端

WiFi管理器

ESP_EEPROM

主机默认称为“myblind”,但可以更改。

您还可以更改电机 (MOTORWIRE) 的方向和编码器 (ENCODERWIRE) 的接线 - 使用 1 或 0 来执行此操作,但暂时不要使用它。

成功上传代码后,您将能够通过 WiFiManager 看到并连接到“myBlind”wifi 网络。连接并输入您的 wifi 详细信息,如果正确完成,它将连接到您的本地 wifi 网络并准备运行!

您将能够通过网络服务器上传未来的更新,如果您使用多个服务器,这将很有用。

注意:成功保存 WiFi 凭据后,按住 DOWN 按钮可将 EEPROM 重置为默认设置。

否则它将崩溃,因为控制器尝试读取最初尚未保存的 EEPROM 值!如果第一次没有工作,请拔下电源并再次打开电源,同时按住向下按钮。

现在保持计算机连接并连接 12V 电源适配器为电机供电!

以 115200 波特率使用串行监视器。长按 UP 按钮应顺时针旋转电机,当前位置 (Pos) 的编码器值也应上升。如果不是这种情况,请将 ENCODERWIRE 值更改为相反的数字(1 或 0)。这背后的原因是一些电机编码器以一种方式接线,而另一些则以另一种方式接线。

使用 DOWN 按钮显然是一样的,但反之亦然。

连接到现有的百叶窗

您最好先组装该单元并对其进行测试,而无需将其正确连接到窗户或框架上。确保电机轴的扁平钻头朝上,并通过齿轮(使用齿轮耦合器)将链条连接到电机上。使用随附的六角无头螺栓将齿轮联轴器拧紧到电机轴上。不会太紧!

由于链槽,百叶链能够向任一侧扭转 90 度,因此我们可以将控制器平行于百叶窗安装 - 直接安装在墙壁或框架上。您希望它如何转动取决于您,但我的设置是 MOTORWIRE on 0 顺时针转动它以进行右侧安装,而 MOTORWIRE 1 逆时针转动用于左侧安装。但是你可以玩这个。只需确保按下 UP 时位置值上升,按下 DOWN 时位置值上升!

确保链条均匀拧紧,并在墙上标记 3 个孔的位置。我强烈建议在安装孔的低侧标记点,因为您很可能最终需要它们通过将装置进一步向下拉来收紧链条。随着时间的推移,金属链更容易拉伸。

一旦您对高度感到满意,剩下要做的就是用螺钉(最好是垫圈)将主体固定到墙壁/框架上!装上齿轮环、齿轮和链条、按钮环并在 12V 电源时连接!

 
 
 
pYYBAGN6fNCAXO7IAAS-T7nzAZU657.jpg
 
1 / 2
 

如何使用它!

持续长按 UP 将使百叶窗向上移动。
持续长按 DOWN 将向下移动百叶窗。

设置百叶窗位置(100%)
持续长按 UP 将使百叶窗向上移动 - 继续按 UP 直到它到达上方位置,然后快速短按 UP。LED 闪烁3 x 蓝色,1 x 紫色以确认新的向上位置

Set downPosition of Blind (0%)
持续长按 DOWN 将向下移动百叶窗 - 按住 DOWN 直到它到达下位置,然后快速短按 DOWN。LED 闪烁3 x 黄色,1 x 紫色以确认新的向上位置

忽略 EEPROM 值加电时按住 UP BUTTON 5 秒钟。随后 LED 闪烁 3 x 粉红色

重置 EEPROM 值通电时按住 DOWN 按钮 5 秒钟。随后 LED 闪烁 3 x 红色

重置所有设置,包括。WiFi 凭据开机时按住 UP + DOWN 按钮 5 秒。随后 LED 闪烁 3 x 绿色、4 x 黄色、5 x 橙色、6 x 红色

正常启动期间的 LED 顺序红色 = 最初上电时橙色 = 连接到 MQTT 服务器2 x 紫色= 读取 EEPROM 值成功1 x 蓝色 = UP 按钮顺时针旋转电机或1 x 黄色= UP 按钮逆时针旋转电机1 x 橙色= MQTT已连接LED 熄灭

 

LED 状态LED 熄灭= 百叶窗停止或未通电 ;)橙色= 没有 MQTT 连接,按钮仍然工作蓝色= 百叶窗上升黄色= 百叶窗下降1 x 绿色= 到达目标位置1 x 红色= 错误,电机没有移动1秒
 

MQTT 和 Homekit

通过 arachnetch 的惊人插件mqttthingHomebridge中实现config.json作为附件我个人将 Raspberry P Zero W 用于 Homebridge 和由Mosquito提供支持的本地 MQTT 服务器设置 Homebridge 和 MQTT 是一个不同的主题,您会在他们的网站上找到大量信息!

{
"type": "windowCovering",
"name": "myblind",
"url": "mqtt://xxxxxxx",
"username": "xxxx",
"password": "xxxx",
"logMqtt": true,
"topics": {
"getCurrentPosition": "myblind/getCurrentPosition",
"getPositionState": "myblind/getPositionState",
"getTargetPosition": "myblind/getTargetPosition",
"setTargetPosition": "myblind/setTargetPosition",
"getObstructionDetected": "myblind/getObstructionDetected"
},
"accessory": "mqttthing"
}

它值得吗?

绝对地!

经过最初的学习曲线并从一个百叶窗开始,它现在已经在所有 8 个百叶窗上运行了大约 10 个月。它可靠地工作而不会打嗝。看看成本,我会说每单位大约 40 美元,这只是我为商业产品支付的费用的一小部分。

但我有 2 台电机在第一个月就放弃了,但之后就没有了。我想由于它便宜的价格,你可能会在这里和那里买到柠檬。如果您举起重物,我建议您买一个备用的。此外,不同电机的噪音水平各不相同,但其中 80% 的电机非常安静,其余的则稍大一些。大多数只有在降低百叶窗时才会发出噪音。

随着链条随着时间的推移而拉伸,我不得不在开始时多次收紧链条张力。我建议使用带有塑料球和绳索的链条而不是金属链条——随着时间的推移,它们的拉伸度似乎要小得多!

有时,当百叶窗移动时系统重置时,我不得不重置百叶窗的起点和终点。我责怪我的中等编码技能——我很确定代码可以改进很多,但这对我来说仍然是一种爱好。

但是看到它如何与 Homekit 和 Siri 一起工作真是太神奇了。我可以说:“嘿 Siri,打开所有百叶窗”,我所有的百叶窗都会自动打开。或者说“嘿 Siri,将客厅的百叶窗设置为 50%”,或者在你离开家后通过自动化让它们关闭!值得!!!

待办事项列表和可能的改进

硬件

  • 外壳更纤薄(约 0.5 - 1 cm)
  • 可调节高度控制,无需拆卸组件即可收紧链条
  • 更好的PCB设计,避免引脚表面焊接
  • 用于 LUX 读数的光传感器附件
  • 霍尔传感器附件,用于识别打开的门或窗

软件

  • EEPROM替代品?
  • 在设置期间添加和编辑 MQTT 凭据的更好解决方案
  • 无需重新上传固件即可设置编码器和电机线方向。
  • 其他平台的实施(例如 Homeassist、Alexa 等)
  • HTML网站通过浏览器控制百叶窗作为备份?

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

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !