×

自动百叶窗开源分享

消耗积分:2 | 格式:zip | 大小:0.15 MB | 2022-11-11

李星童

分享资料个

描述

 

该项目由3部分组成:

  • 电机:接收命令并移动百叶窗的部分
  • 遥控器:控制电机的小遥控器
  • Web 界面:运行 Web 界面的 ESP32,可用于从网络中的任何浏览器控制电机

自动卷帘电机

可以使用 NRF24L01 模块无线控制的自动窗帘。由小型远程、Web 界面或 RESTful API 控制。围绕 Arduino pro mini 和便宜的步进电机构建。

如何使用它

该组件用绳子代替了卷帘的侧面。这意味着它们不能再手动降低或升高。您需要将电线连接到每个窗口,以提供所需的 9V。

百叶窗由遥控器或网络界面或两者控制。有关如何控制和校准百叶窗的更多详细信息,请参阅下面的相关项目。

支撑卷帘

轴的内径为 18 毫米。您可能需要修改 3D 打印文件以适应您的模型。为了便于修改,我包含了 STEP 文件。

限制和已知问题:

  • 对于某些人来说,运动可能会很慢。放下百叶窗大约需要 50 秒,抬起百叶窗大约需要 90 秒。使用更大的步进电机(例如 3D 打印机中使用的步进电机)可以显着提高速度,但需要更大的电源。
  • 当百叶窗不移动时,步进电机不通电。这意味着可以手动拉动百叶窗,需要重新校准。
  • 没有编码器,因此如果电机卡住、错过步骤或手动旋转百叶窗,则需要重新校准。也没有终点站。

制作你自己的

对于这个项目,您需要一台 3D 打印机、耐心、良好的焊接技能以及一些 Arduino 和 Platform IO 经验。

材料:

  • Arduino Pro 迷你 3v3
  • 28BYJ-48 5V步进电机
  • 0805 1uf贴片电容
  • 100uF(或更高)25V SMD D型电解电容
  • 470uf 6V SMD尺寸C钽或D型电解电容器
  • NRF24L01+贴片模块
  • A4988 或 DRV8825 步进电机驱动器模块
  • 9V供电(推荐0.5A乘以卷帘数量)
  • 电源连接器(通常为 DC2.5/5.5)(可选)
  • 连接电源线
  • 一对 XH 2.54mm 2 针连接器(可选)
  • 文件夹中的 3D 打印零件。3d print1x 电机适配器和 1x 安装(或安装镜像)
  • 印刷电路板
  • 2x M2x5 螺丝
  • 2x M3x6 螺丝
  • 2 个 M3 螺母

您可以在文件夹中找到原理图和 PCB 。schematic它包含一个 EasyEDA 项目和 Gerber 文件。

脚步:

  • 首先将 28BYJ-48 步进电机从单极转换为双极。这是通过小心移除蓝色塑料片并切割中央迹线来完成的。
pYYBAGNtmV6AYUpEAADLRgtQEAU071.jpg
 
  • 焊接 Arduino Pro Mini 的排针并剪掉多余的引脚长度。仅限针头,否则您无法执行下一步。
poYBAGNtmWCAGVCeAAA-2ORDpoc149.jpg
 
  • 焊接 A4988 或 DRV8825 步进电机驱动器模块并剪掉多余的引脚长度。
pYYBAGNtmWKAbklPAAAdifEG3ik354.jpg
 
  • 将 Arduino Pro Mini 焊接到排针并剪掉多余的引脚长度。
poYBAGNtmWaAEh7qAAD2vemlKSk720.jpg
 
  • 将其余组件焊接到 PCB 上。对 NRF24L01 模块使用双面胶带,以确保它不会接触附近的引脚。
poYBAGNtmWmAZbtEAAECM3ZxtUA701.jpg
 
  • 使用 M3x6 螺钉和 M3 螺母将步进电机固定到 3D 打印部件
pYYBAGNtmWyACPNjAABLwGrDhfA499.jpg
 
  • 使用 M2x5 螺钉将 PCB 固定到 3D 打印部件。您可以选择最适合您的方向和侧面。
poYBAGNtmW-AY7gQAACA0FT3K4c971.jpg
 
  • 将步进电机焊接到 PCB 上,如下所示:2B - 橙色,2A - 粉红色,1A - 蓝色,1B - 黄色。如果电机朝右,则将蓝线和黄线反转;或者,您可以通过更改来更改电机STEPPER_REVERSE方向Constants.h
poYBAGNtmXGAcseoAACDllZPmHA831.jpg
 
  • 在 Platform IO 中打开这个项目。
  • 打开Constants.h和改变ROOM_NUMBERBLIND_NUMBER这对必须对每个百叶窗都是独一无二的。一个遥控器只能控制一个房间的百叶窗。值不能为 0。
  • 编译并上传项目。您将需要一个 USB 串行适配器。
pYYBAGNtmXSASQgaAAEEu15zxZI937.jpg
 
  • 检查一切并执行第一次测试。您将需要遥控器或 Web 界面
  • 使用 3D 打印电机适配器连接实际的卷帘。使用原始夹子或螺钉将其小心地安装到您的窗户上。
pYYBAGNtmXaAGgtJAABCgaFbS1s973.jpg
 
  • 使用侧面的螺丝调整电机的高度,使百叶窗完全水平。
  • 从电源布线并焊接或使用 XH 2.54mm 连接器连接。
pYYBAGNtmVyAPNAWAACduydtRwg742.jpg
 

注意:部分图片略有不同,因为我对PCB和3D打印部件进行了调整和改进。

自动卷帘小遥控器

一个 30x50x20mm 的小型遥控器,带有 5 个按钮和一个 OLED 屏幕。围绕 Arduino pro mini 构建。

它的电池寿命为几个月。

pYYBAGNtmXuAQGzPAACfO7kqI-g857.jpg
 

如何使用它

遥控器用于控制 自动卷帘电机。

遥控器将在 15 秒后进入深度睡眠。按任意按钮将其唤醒。

首先,您需要将遥控器连接到您的百叶窗。为此,按住最后一个按钮 1 秒钟进入菜单。选择房间号(根据ROOM_NUMBER您定义的)。导航到“发现”选项。确保遥控器靠近百叶窗,然后按确定。遥控器将扫描附近的百叶窗并记住具有相同房间号的百叶窗。

接下来,您将需要校准百叶窗,以便他们知道最大和最小位置是什么。这可能有点乏味,但应小心完成,因为不正确进行校准会损坏百叶窗。转到菜单并选择“校准”。使用按钮 3 和 4 上下移动百叶窗。当百叶窗处于顶部位置时,按下按钮 1 将其保存。当百叶窗处于底部位置时,按下按钮 2 保存。按下按钮 5 移动到下一个窗口并重复,直到所有窗口都被校准。现在一切都设置好了,你可以使用百叶窗了。

在主屏幕上,您可以选择要更改的窗口、要更改的百分比,然后使用最后一个按钮确认更改。如果命令发送成功,将显示 X 或 ✓。

要保存预设,请将百叶窗移动到所需位置,进入菜单,导航到“保存预设”,选择要保存的预设编号并按确定。要加载预设,请在主屏幕上按住相应的按钮(按住第一个按钮以加载预设 1 等)。

限制和已知问题:

  • NRF24L01 的范围在放在一个箱子里并被一只手覆盖时非常令人失望。可靠范围一般限于一个房间。
  • 遥控器会记住最后发送到百叶窗的位置,并且不会轮询状态。这意味着当百叶窗被移动(使用其他遥控器、Web 界面或 RESTful API)时,屏幕上显示的百分比可能会过时。

制作你自己的

对于这个项目,您需要一台 3D 打印机、耐心、良好的焊接技能以及一些使用 Arduino 和 Platform IO 的经验。

由于我试图使其便宜、简单、紧凑并使用简单的模块,因此需要仔细组装。

材料:

  • Arduino Pro 迷你 3v3
  • 0805 5.1k贴片电阻
  • 2x 0805 1uf 贴片电容
  • 2x 0805 4.7uf 贴片电容
  • 5x 3x4x2mm 按钮
  • NRF24L01+贴片模块
  • 1206 1k贴片电阻
  • 1206 4k7贴片电阻
  • HT7333 SOT-89 LDO稳压器
  • OLED 0.91" 128X32 模组
  • TP4056电池充电+保护模块
  • 601148 3.7V 380mAh 锂聚合物电池。尺寸为 6x11x48mm。示例链接
  • 文件夹中的 3D 打印零件。3d print5 个按钮,其余 1 个。
  • 印刷电路板
  • 2x M2x5 螺丝

PCB 需要 0.8 毫米厚(或类似厚度)。

您可以在文件夹中找到原理图和 PCB 。schematic它包含一个 EasyEDA 项目和 Gerber 文件。

脚步:

  • 在 TP4056 充电模块上,将 R3 替换为 5.1k 电阻。这将设置充电电流为 235mA。
  • 移除连接到 LED 的 R1 和 R2。这将是连接向 Arduino 报告充电状态的电线所必需的。
poYBAGNtmX6AD_yoAAEyqY9BzII073.jpg
 
  • 从 Arduino 中移除调节器和 LED。这是低功率电池操作所必需的
  • 拆下开关。
poYBAGNtmYGAXwwzAAG6BwyfDAk349.jpg
 
  • 在 Platform IO 中打开这个项目,编译并上传。您将需要一个 USB 串行适配器。组装后将很难访问编程引脚。或者,您可以焊接一个小型编程连接器。
  • 将排针焊接到 arduino。确保您拥有正确数量的引脚。确保引脚朝向有组件的一侧。由于设计紧凑,插脚不能从底部突出超过 1mm。如有必要,从另一侧焊接。
 
 
 
poYBAGNtmYOAZAEVAACjyokVDHc652.jpg
 
1 / 2
 
  • 将 SMD 元件焊接到 PCB 上。请注意,开关彼此非常接近。对 NRF24L01 模块使用双面胶带,以确保它不会接触附近的引脚。
  • 将 Arduino 倒置焊接到 PCB 上。小心对齐Arduino和PCB,使两块板平行,板之间的距离为6.5mm(包括板厚)
poYBAGNtmYeAHR-zAAEtKTbaEg4077.jpg
 
  • 焊接 OLED 模块。间距非常紧凑,所以我添加了一些绝缘材料以确保这些组件不会接触。添加一个垫片,使屏幕安全并与电路板平行。
 
 
 
pYYBAGNtmYqARXynAAFx9Ofu0TU323.jpg
 
1 / 2
 
  • 将一对电线焊接到板上的电源引脚上,并在两块板之间布线
pYYBAGNtmYyAFN49AABQflrGQWM445.jpg
 
  • 将 2 根小电线焊接到 Arduino 的 A0 和 A1 引脚。它们将用于读取 TP4056 充电模块的充电状态。
poYBAGNtmY6AcWBDAABQpV3pruE996.jpg
 
  • 从 OLED 上取下保护膜,小心地将电路板放入外壳内。使用 M2x6 螺钉固定电路板。
  • 将 TP4056 充电模块粘贴到“内部部件”3D 打印部件上。
poYBAGNtmZCAEwWFAAA4Q6BEJeA331.jpg
 
  • 将 3D 打印部件粘贴到 Arduino 板上。确保它正确对齐
  • 将电源线焊接到充电模块的输出端。
  • 将充电状态线焊接到充电模块。A0 连接到来自 IC 的 R2 焊盘,A1 连接到来自 IC 的 R1 焊盘。
pYYBAGNtmZOAG9TWAAB3udtgXxI024.jpg
 
  • 安装并焊接电池。
poYBAGNtmZaAE1inAACaJaV_mM4225.jpg
 
  • 测试它是否有效。
  • 合上盖子,必要时粘上盖子,粘上 3D 打印按钮。
pYYBAGNtmXuAQGzPAACfO7kqI-g857.jpg
 

自动卷帘网络界面

一个小型 NRF24L01 到 Wifi 网关。它运行一个 Web 服务器,该服务器提供一个响应式 Web 界面,允许您控制百叶窗并创建时间表。它还有一个 RESTful API,您可以使用它来控制大多数家庭自动化系统的百叶窗。

围绕 ESP32 构建。

该服务器是独立的,不需要任何与云 IoT 服务的连接。如果您想连接到 Blynk App 之类的东西,您需要自己实现该连接。仅需要 Internet 连接来定期与公共 NTP 服务器同步时间。

它会自动处理时间、时区和夏令时,只需选择您的时区。

 
 
 
pYYBAGNtmZuAHuYnAABt_3cc5SA053.jpg
 
1 / 4
 

如何使用它

它由连接到微型 USB 端口的 5V 供电,但可以由 3.5V 和 12V 之间的任何电压供电。

首先,您需要设置 WiFi 凭据。将网关连接到电源后,稍等片刻,然后按下 BOOT 按钮 (GPIO0)。这将使网关进入配置模式。它将创建一个名为“百叶窗 WIFI 配置门户”的 AP。连接到它后,强制门户应该会直接将您带到配置页面,如果没有,请导航到 192.168.4.1。选择扫描的接入点之一,输入密码,单击保存。成功连接后,网关将重新启动并启动 Web 服务器。

转到本地网络中的任何浏览器并转到windowblinds.local(不幸的是,在 Android 上,您需要手动输入路由器分配的 IP)。转到“设备”选项卡并选择“扫描设备”。最后转到设置页面并选择您的时区。

如果您还没有这样做,您将需要校准百叶窗,以便他们知道最大和最小位置是什么。这可能有点乏味,但应小心完成,因为不正确进行校准会损坏百叶窗。转到“设备”选项卡并选择“校准”。按住“上移”或“下移”可移动百叶窗。当百叶窗处于正确位置时,按“将当前位置设置为顶部/底部”。现在一切都设置好了,你可以使用百叶窗了。

RESTful API

网关的所有方面都可以通过 RESTful API 进行控制,但对于家庭自动化,您应该只关心这两个 GET 端点:

windowblinds.local/setBlinds?roomId=&blindNumber=&targetPercent=&speed=

  • roomIdblindNumber选择所需的百叶窗
  • targetPercent设置移动到 (0 - 100) 的百分比
  • speed(可选)设置移动速度,以最大速度的百分比 (1 - 100)

它返回一个带有“消息”字段的 json,该字段可以是

  • ok- 命令成功
  • nrf_send_fail- 已发送无线电命令,但未收到来自百叶窗的无线电确认。该命令可能未执行。百叶窗离线或超出范围。
  • bad_params- 一些参数超出范围
  • missing_params- 缺少必需的参数

windowblinds.local/getStatus?refreshPositions=

  • refreshPositions(可选的)。如果true,网关将首先轮询所有百叶窗以检查它们当前的目标位置,否则它将简单地返回最后一个已知位置。如果您有其他网关或遥控器控制百叶窗,这将非常有用。
  • 它返回一个 json,其中包含有关百叶窗、时间表等的所有信息。

对于其余端点,请查阅源代码。

限制和已知问题:

  • NRF24L01 的范围非常令人失望,因此在控制多个房间的百叶窗时,需要很好地定位以获得可靠的接收。或者,每个房间或区域都可以有自己的网关。
  • Android 手机仍然不支持 mDNS,因此需要通过手动查找并键入服务器的本地 IP 来访问 Web 界面。
  • 请记住,物联网中的 S 代表安全性。该项目旨在仅在本地网络中运行。如果您希望远程连接到它,您需要自己保护和限制访问连接。

制作你自己的

对于这个项目,您将需要良好的焊接技能和一些使用 Arduino、ESP32 和 Platform IO 的经验。

材料:

  • ESP32-WROOM-32 裸模块
  • 0805 1uf贴片电容
  • 2x 0805 4.7uf 贴片电容
  • 470uf 6V SMD尺寸C钽电容
  • NRF24L01+贴片模块
  • 1206 10k贴片电阻
  • 2x 6x3.6x2.5mm 按钮
  • HT7333 SOT-89 LDO稳压器
  • 文件夹中的 3D 打印案例3d print(可选)
  • 印刷电路板

如果要使用 3D 打印的外壳,PCB 的厚度应该在 0.8mm 左右。

您可以在文件夹中找到原理图和 PCB 。schematic它包含一个 EasyEDA 项目和 Gerber 文件。

脚步:

  • 将元件焊接到 PCB 上。请注意,microusb 连接器可能难以正确焊接。或者,您可以焊接电线并提供 3.5V 和 12V 之间的任何电压。
  • 将电线焊接到 TX、RX、GND 和 3V3 焊盘,并将它们连接到您的 USB 串行适配器。
  • 按住 RESET 和 BOOT 将 ESP32 置于上传模式,然后释放 RESET,然后释放 BOOT。
  • 在 Platform IO 中打开这个项目。
  • 在 Platform IO selectBuild Filesystem Image中,然后Upload Filesystem Image
  • 最后通过选择上传代码Upload
  • 测试它是否有效。
  • 将电路板放入 3D 打印外壳中(可选)。
 
 

 


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

评论(0)
发评论

下载排行榜

全部0条评论

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