智能百叶窗
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
应用和在线服务
|
关于这个项目
图> 图>
你好!
这个项目展示了对我的原始(也是第一个)项目——自动太阳能水平百叶窗所做的改进。发布的原始设计符合当时的要求。在一些设计缺陷变得明显之前,它正确运行了近 4 个月。
概括地说,百叶窗的目的是根据光线水平打开和关闭,为了隐私而让光线进入或关闭。而且百叶窗应该在“太热”时关闭,这是一个完全随意的指定。
我从其他地方导入了这个项目,这里的硬件/工具部分没有给我我想要的选项,所以你必须按原样处理逐项列表,而不是使用整洁的 Hackster.io 格式。对不起。
新设计执行以下操作:
- 早上打开(旋转到 85 度)让光线进来
- 晚上关闭(旋转至 0 度 - 百叶窗朝下)以提供隐私
- 如果温度超过 30 摄氏度(~86 华氏度),请关闭(旋转至 165 度 - 百叶窗朝上,对着太阳) - 此温度是任意的,您的舒适度可能会有所不同。
- 在没有外部接线、盒子、设备等的情况下执行所有这些活动。换句话说,通过妻子接受因素。
- 具有足够的可持续性,我不会因为必须频繁更换电池而放弃该项目。
- 不要花太多钱。我认为最终的结果是百叶窗的制造成本约为 50 美元。投资于新工具的资金,以及花在编程、测试、焊接和修补上的时间,当然不算数。
这些设计要求的原因是设计它们的窗户是房屋前门上方的二楼窗户。这扇窗户朝南(实际上是 SSE),这意味着在冬天百叶窗打开的情况下有很多阳光(和潜在的温暖),但在夏天可能会有太多的热量。
如上所述,百叶窗完美地工作了大约 4 个月(1 月安装,大约在 6 月恢复正常)。发现的缺陷是:
- 房子不是正南.....所以冬天的时候,太阳大部分时间都在窗户上,只有下午晚些时候才离开窗户。这在冬天提供了大量的太阳能充电。然而,在夏季,中午时太阳会照过房子,这意味着没有足够的阳光来为白天的大部分时间充电。最重要的是,太阳能电池板在窗户中的原始位置在一天的最初几个小时内会被遮蔽。 解决方案:更好的太阳能电池板位置。
- 用于控制百叶窗的伺服电机持续吸收 13 mA 电流。这让我很震惊。在我的第一次尝试中,我没有在伺服器就位的情况下测量电流,因为我的万用表无法支持伺服器的大量消耗,也无法提供在“睡眠”状态下看到的准确度。 解决方案:使用 PNP 晶体管的高边开关。
- 我最初设计的 6V 太阳能电池板实际上适用于 LiPo 充电模块。充电模块的额定输入电压为 4.5V 至 5.5V。当面板接收到充足的阳光并产生6V或更多的电时,充电模块关闭。直到安装百叶窗后我才发现这一点。 解决方案:正确调整面板大小。
- 没有日志记录/遥测收集。这使得在百叶窗开始出现故障时很难对其进行诊断。 解决方案:EEPROM Logging 功能。
- 无法通过连接/断开连接来诊断/修复。这适用于太阳能电池板和电池。 解决方案:电池与电路、太阳能电池板与电路之间的 JST 连接器。
- 测量(温度和光)需要针对稳定的 5V 参考电压(Arduino 上的 VCC 输出),而不是 DC-DC 升压器的 5V 输出。该电压可能会有所不同,这会影响模数转换的测量结果。在我的第一个设计中,我使用的“5V”线路实际上是来自 DC-DC 升压器的未调节线路。 解决方案:看起来很明显,不是吗?使用 Arduino Pro Mini 的*调节* 5V 输出。
那么让我们开始吧!
第 1 步:零件清单
我选择在这个项目中使用 Arduino。这是我所知道的。你可以使用另一个微控制器,任何适合你的。你会注意到我从 SparkFun 买了很多东西——它们对我来说是本地的。最棒的是我可以早上下单,然后下午去取货。
您将看到的其他链接来自 banggood.com - 他们有很多便宜的组件和各种各样的电子零件。如果您愿意为您的零件等待一个月或更长时间,那么您可以获得便宜的东西。来自 taydaelectronics.com。如果你可以一次买几件东西,价格非常好。运费还算合理。因此,您将在我的清单中看到的某些零件实际上订购了 5、10 或 20 件,以达到最低订购量。谁知道呢,也许我会建造几个这样的。
- Arduino Pro Mini(10 美元 - SparkFun)
- Arduino Uno,用于对 Mini 进行编程 - 您可以使用特殊电缆,但此设置对我有用。
- LM35DZ 温度传感器(1.23 美元 - Tayda)
- PN2907A PNP 晶体管(0.05 美元 - Tayda)
- 光敏电阻器 (LDR)(banggood.com 的 10 件装 1.24 美元)-
- 一 (1) 个 10K-Ohm 电阻器(0.01 美元 - Tayda)-尽管我以 8 美元的价格从 SparkFun 购买了一个电阻器组。
- 一 (1) 个 1K 欧姆电阻器
- 5V 1.5W 太阳能电池板(4.07 美元 - banggood.com)
- 5V DC-DC 升压器(1.38 美元 - banggood.com)
- 锂电池充电模块(banggood.com 的 3 件装 2.89 美元)
- JST 连接器(来自 banggood.com 的 60 件装 3.33 美元)
- 可充电 3.6V 锂电池(亚马逊 4 件装 15.39 美元,包括壁式疣充电器)
- 18650 电池座(1 美元 - SparkFun)
- 伺服电机(我使用了在当地一家业余爱好商店找到的 Hitec HS-325HB)(这是一个等效的)我不得不猜测需要什么样的扭矩。我找不到价格合理的扭矩扳手来进行测量。
- 伺服电机联轴器。因为我使用了 Hitec 伺服,所以我需要这个。 ($5 - SparkFun)
- 100 uF 电容器(0.03 美元 - Tayda)
- 各种连接线(我在亚马逊上买了这个套件 - 17.79 美元)
- PCB(亚马逊 10 件装 2.74 美元)
第 2 步:工具
有用的物品:
- 钻
- 烙铁
- 焊锡丝
- 剪线钳
- 剥线钳
- 万用表
- Dremel 或类似的小型切割工具
- 电路板/焊料面包板
- 热缩包装
第 3 步:制作项目原型 图> 图> 图> 图>
行。既然您已经拥有了所有组件和一个工作区,现在是时候将它们放在一起,看看会发生什么。
在最初的项目中,我做的第一件事是将两节 AA 电池连接到 5V DC-DC 升压器,并验证我获得了 5V 的输出。这一次,我做了同样的事情,只是使用了实际的电池,锂可充电 3.6V 电池。充满电,它位于 4.1-4.2V。根据我的万用表,我从升压器中得到 5.04V。够好了。
我采取的下一步是在无焊面包板上布置所有组件,以便编写代码来控制它,并进行电流和电压测量。
- 将锂充电模块的相应连接器连接到电池和太阳能电池板(正极接正极,负极接负极)
- 将一根电线从面板正极端子连接到模拟 A0 - 这将为记录提供面板电压。
- 电池也连接到 5V DC-DC 升压器。
- 将一根电线从电池正极连接到模拟 A1 - 这提供了用于记录的电池电压。
- 来自升压器的 5V 输出进入 Arduino 的 RAW 输入。
- 始终使用 5V 升压器的接地。
- 将 Arduino VCC 引脚连接到需要稳压 5V 的所有设备。
- 舵机可以接DC-DC升压器的5V输出,但会先通过PNP晶体管。
- 从 LDR,将 10K 欧姆电阻接地。将 LDR 和电阻器之间的电线连接到模拟 A3 - 这是您的光检测。
- 将 5V 连接到 LM35DZ(或您的温度传感器)的 5V 侧
- 将 LM35DZ 的地连接到地。
- 将一根导线从 LM35DZ 的中间(或输出)引脚连接到 A2 - 这是您的温度感应。
- 将 DC-DC 升压器的 5V 输出连接到 PN2907A 的 E(发射极)引脚。
- 在晶体管的 B(基极)引脚和引脚 11 之间连接一个 1K 欧姆的电阻器 - 这是允许电流流向伺服电机的控制。
- 将晶体管的 C(集电极)引脚连接到伺服电机的电源引脚。
- 将伺服电机的接地引脚连接到地。
- 将伺服的信号引脚连接到引脚 10 - 这是您用来控制伺服的 PWM 引脚。
在原型制作时,您不需要连接太阳能电池板和锂充电模块。整个程序集的说明在这里。从现在开始,除充电模块外的所有组件都已就位,可以进行所有测量。
在步骤 13-16 中添加晶体管之前,发生了以下序列:
- 看看没有伺服的空闲电流。
- 现在让我们添加伺服电机,并注意电流。
这里发生了什么!?只需连接伺服器,我们就为系统增加了 14 mA 的空闲电流。我们如何解决这个问题?我们的好朋友晶体管。我购买的原始 Arduino 套件包含一些 NPN 晶体管。在对它们进行了一些阅读之后(感谢 SparkFun!),我决定尝试低侧开关配置。然而,这并没有奏效。我*仍然*的空闲电流比我预期的要大得多。我测量了发射极、基极和集电极引脚的电压,发现基极引脚有电压,而我预期没有。我不是 100% 确定发生了什么,除了伺服的内部电路可能正在通过用于控制电机位置的 PWM 引脚找到接地路径?如果有人有想法,我会全神贯注。
因此,让我们在高端开关配置中尝试使用 PNP 晶体管。
成功!现在,当舵机不动时,看起来好像没有连接舵机。因此在步骤 13-16 中使用晶体管。
第 4 步:编程 图> 图>
当然,在布置好之后,您必须对 Pro Mini 进行编程才能对其进行测试。你要先测试一下,对吧?我尝试使用 SparkFun TTL 转 USB 电缆,但无法正常工作。也许我的电缆有误?所以我决定看看是否可以不用。
好吧,仅在这个站点上,就有几条使用 Arduino Uno 对 Arduino Pro Mini 进行编程的说明。这很简单。对我来说,最可怕的部分是从 Uno 上拆下 IC(必须这样做,因为您无法将 Uno 编程为 Pro Mini):
- 从 Uno 上取下 IC(记下凹槽面向的方向,以便您可以将其放回原处)。我使用塑料刀型设备完成此操作,例如您可能用于打开 iPhone。我开始轻轻地撬 IC 下,从两侧交替,以避免弯曲引脚。
- 将 Uno 5V 引脚连接到 Pro Mini VCC 引脚。
- 将 Uno GND 引脚连接到 Pro Mini GND 引脚。
- 将 Uno TX 引脚连接到 Pro Mini TX0 引脚。
- 将 Uno RX 引脚连接到 Pro Mini RXI 引脚
- 将 Uno RESET 引脚连接到 Pro Mini RST 引脚。
我自己制作了两组电线并将它们连接到面包板。我将跳线的两端粘在一起,这样一旦完成,我就不必单独连接引脚。我是那种会说,如果我必须这样做两次,我可以将其自动化或使其更简单的人。
现在,当您进入 Arduino IDE 时,选择“Arduino Pro 或 Pro Mini”,您就可以直接对开发板进行编程了。如果我发现要进行更改,我什至可以在不从百叶窗上卸下整个组件的情况下对其进行重新编程。
这是我用于这个项目的 SmartBlinds 草图。我认为它的文档相当齐全,但是如果您有任何疑问,请随时提出。还需要 EEPROM Logging 类,可在我的 github 中的库中找到。
我还尝试了项目的面包板视图和示意图。然而,弗里茨一直在干扰我,所以它可能看起来不太好。
第 5 步:开始组装 图> 图> 图> 图> 图> 图> 图> 图>
现在我们已经获得了一些关于我们系统的数据,让我们开始组装它。
我这次做的补充是使用 JST 连接器并将实芯线焊接到它们上,以给它们一些额外的范围。默认情况下,它们非常短。使用连接器还有一个额外的好处,它可以让您在电池和电路的其余部分之间轻松插入。
请注意,在我的第一个项目中,我一定没有通过这个关键测量,因为我没有发现伺服电机一直消耗 14 mA。
这也是将实芯线焊接到太阳能电池板的好时机。我在 JST 连接器上添加了大约 2 英尺的电线,以便将太阳能电池板放置在窗户中的适当位置,以最大限度地提高全年的阳光覆盖率,同时最大限度地减少视觉影响。保留较短的(er)连接器以焊接到 PCB。这最大限度地减少了进入盲顶导轨的零件尺寸。此外,使用实芯线将其焊接到 PCB 上(对我而言)似乎比将编织线焊接到孔中效果更好。你的里程因人而异。
将 PCB 切割成百叶窗所需的尺寸。我买的板子太大了,大约有3排孔,所以我把它剪了那么多。我试图将电路布置得尽可能小,尽可能整洁。将电线预先切割成您需要的尺寸,并稍微弯曲以穿过角落等。然后向下(或向上)插入 PCB 孔中。请记住伺服连接器引脚的高度,并确保连接器不会干扰百叶窗内的伺服操作。
我还刮掉了通向 LED 指示灯的 DC-DC 升压器上的蚀刻线。它始终节省大约 1 mA。理想情况下,温度传感器会自行关闭,以减少来自伺服或其他组件的任何潜在影响。我没有这样做,它就在晶体管旁边。
第六步:完成组装,最后一次重新编程
完成组装后我做的最后一件事是恢复 EEPROM 日志记录类。我不想在原型设计和尝试不同的东西时写入 EEPROM,所以我将该代码注释掉了。但是现在我们已准备好部署,是时候启用日志记录了。日志的输出在这里。它也附在下面,因为它是原始格式。
Pro Mini 有 1024Kb 的 EEPROM。基于每个条目 22 个字节的大小,加上 2 个字节的“同步模式”,我应该能够在 EEPROM 环绕之前获得 42 个条目。这不到一个月的数据,每天 2 项活动。我想要更多,但这需要 SD 卡或更大的 EEPROM。也许是下一个版本。
我还进行了最后一次电流测量,以确保某处没有短路。我测量的电流约为 1.5 mA。使用 900 mA 小时的电池,应该可以在不充电的情况下提供大约 600 小时的运行时间。减去一点,因为它不会总是处于睡眠状态,当然,只要它移动,就会更快地耗尽电池电量。使用 Rocketlabs 的 LowPower 库,它以 1.5 mA 的电流休眠。在执行过程中,它大约是 25 mA,而在移动百叶窗时,它在 200 mA 到大约 500 mA 之间,或者更多。我想让电池持续更长时间,但我也喜欢在运行时让 LED 灯亮起,这样我就知道它在工作,所以这是一个我可以接受的权衡。
FEF476VIRXTB0NK.txt
第七步:安装 图> 图> 图> 图> 图>
好的,现在安装在百叶窗中。
- 首先,卸下拉线的开瓶器驱动器(如果您的百叶窗有)。它们为伺服电机的正常工作提供了太大的阻力。 (我没有那个照片,因为我重新使用了原来的百叶窗,找不到那块)
- 钻一个小孔,让 LDR 从中伸出(我使用百叶窗的朝外一侧)
- 现在使用 Dremel 或其他切割工具根据伺服电机的尺寸切割一个正方形。它需要紧密贴合,但您不想刮伤或以其他方式损坏伺服器(我再次使用了朝外的一面 - 我不想在房子里看到它,尽管它可能被装饰性的修剪。如果您选择那一侧,请确保它不会干扰修剪)
- 用胶带盖住粗糙的边缘或以某种方式将其弄平。
- 将 PCB 插入百叶窗,并确保光传感器伸出您在第 2 步中钻出的孔。
- 现在将伺服电机连接到轴上并拧紧固定螺丝。至此,操作开始时90度10秒等待的原因应该就清楚了。我启动程序,让舵机移动到 90 度,然后禁用电池。然后我使用该位置将其连接到百叶窗上,我手动将其移动到 90 度以匹配。
- 现在登上梯子并安装百叶窗。
- 我将太阳能电池板安装在窗户上三分之一的中央窗格中。我沿着窗格分隔器铺设电线,然后用胶带将面板和电线固定到位,以尽量减少可见度。
- 现在将太阳能电池板连接到电路。
- 连接电池并快速将百叶窗滑入到位。他们应该移动到中间,然后在 10 秒延迟后移动到适当的位置。在连接之前,我将电池座放在盲轨内。
- 重新安装装饰条。
- 喝杯啤酒(或者在我的情况下,喝朗姆酒和可乐)。
第 8 步:放松和享受!
享受百叶窗自动打开和关闭的流畅操作。
如果您使用我的设计制作一个,请告诉我!我很想听听它,如果你做了改变或改进。如果您有任何问题,请提问。该网站对学习该项目所涉及的许多不同技能非常有帮助,我很乐意回馈。
更新:经过几个月的运营,我很高兴地说他们的行为完全符合预期!我们发现的一个怪癖是,如果楼上走廊和楼下入口通道的灯都亮着,百叶窗在天黑后仍然打开——这非常适合与公司一起炫耀他们的功能。在那些非常炎热的夏末日子,百叶窗由于在非常舒适的温度下受热而关闭 - 窗户比主楼层更热,因此百叶窗在房屋中仍处于 70 年代 (F) 时关闭.
代码
Github
https://github.com/Froz3nArcher/libraries/tree/master/EEPROMLoghttps://github.com/Froz3nArcher/libraries/tree/master/EEPROMLogGithub
https://github.com/Froz3nArcher/SmartBlindshttps://github.com/Froz3nArcher/SmartBlinds示意图
智能盲人原理图
https://github.com/Froz3nArcher/SmartBlinds/blob/master/SmartBlinds.fzz制造工艺