给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY


给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

和其它社区略有不同,鱼水圈崇尚纯粹、自由,推崇分享和创新,这从我们APP的“AI识别”、“短视频支持”、“畅聊茶馆”、“知识百科”以及“鱼缸相册”也能体会得到。今天发布一篇智能硬件DIY的文章,感兴趣的朋友可以参详,小编以后还会带来更多的相关硬件DIY的内容,也希望鱼友们多多支持。


01

糟糕,我的灯坏了


前几天家里的鱼缸灯突然就坏掉了,先是疯狂的无规律的间歇性频闪,我以为是受潮进水了,拆开检查了一下又重新安装了各个插头,然后它又坚持了一周,最终挂掉了。
因为它的控制板用的是 ASEMI 家的 PL61T020,可以通过触摸切换 LED 颜色。嗯,看起来不错,可它怎么就能坏掉了呢?主控板修起来很费劲,板子长这样(我把 16V 稳压电容拆了):

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

因为之前一直在学习 Home assistant 配置的物联网智能家居环境,我突然产生了很大胆的想法,为何不把整个板子换掉,用树莓派或者 arduino 驱动 12V RGB 灯组,然后接入 Home assistant 实现鱼缸灯的智能化呢?
好主意!那就开始动手搞!


02

材料准备


  • 树莓派,搭载 home assistant,具体配置,之前我写过一个乱七八糟的帖子,根据那个帖子完全可以在树莓派上配置好 HA。
  • Arduino,我用的是 UNO,便宜,80 块不到。
  • Zigbee 自组网模块,两个。如果你想把树莓派和 arduino 都扔到鱼缸中,可以不用它,用 ttl 串口完全就可以了,之所以用 zigbee 其实大部分只是为了提升逼格。
  • TIP41 系列,3 个。这是 NPN 达林顿三极管,驱动 RGB 灯用的,其实 S8050 就可以了,之所以用 TIP41,是因为觉得看上去就很踏实。
  • 1K 电阻三个,16V 电容 1 个,洞洞板。其他电路保护装置可以根据能力自己添加。
  • 12V 转 5V 的 DC 降压模块,或者其他给 Arduino 供电的模块。

先上成品图:

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY


然后是驱动部分的电路图:

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY


03

制作流水账


现在开始正式写流水账式的步骤了:


一、制作驱动电路部分

我家的这款鱼缸,原始电路部分四个模块,用图给解释下:

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

超级简单有没有,卖 300+ 大洋啊。


接下来,我把 12VDC 到控制器的线取下来,拿掉传感器,拆掉灯组,把主控整个扔地上,使劲跺两脚,扔碎纸机里碎干净。额。。。当然记得把 16V 稳压电容取下来。

然后开始重组这个电路,RGB 的工作原理很简单,共阴的 RGB 灯组,共有四根接线,分别是 R G B 和 +12V。如图:

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

从上至下依次是绿,红,蓝,+12V,那 RGB 工作时最简单的是三色叠加原理,如果想实现复杂颜色,可以调整每个颜色的色度,基色组合请看下图:

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

所以,只需要使用 arduino 三个 IO 管脚来驱动三极管,开闭对应颜色就好。因为我的是 12VRGB,不可以直接用 IO 管脚来开闭大电压,只能用三极管来驱动大电压。电路图见上面。我的灯组是内带电阻的,所以不用额外加电阻来给 LED 限流,只需要把灯组上的接线接在 NPN 三极管的集电极就行。


如果你用 PNP 管子的话,那就是负逻辑了,此处不多说。三极管的发射极直接接地,基极是要接 Arduino 的 IO 口的,不过要加个 1K 欧的电阻用来限流。因为 Arduino 是要跟灯组一起最终封在原盖子里,所以此处我选择的是用 12V 灯组的电源分点过来给 Arduino,到时候直接插上原来的插头就解决供电问题了。然后全部怼在洞洞板上,此处省略无数怨念!此处多说几个字,如果想把这个电路搞得好一些,还需要做一些电路保护,和防水保护。


三电学的好的同学,完全就可以自由发挥了,电容,电感,电阻一类的按需求对吧,顺便的话最后的成品都可以商用了。


上图:焊工不好,切勿吐槽:

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY


04

树莓派和 Arduino 通讯部分


之所以会选择用 zigbee 来通讯,纯粹是因为手头正好有这个模块,闲置也是闲置,为何不让逼格升起来呢?!当然不愿意买这个模块也可以选择 USB/TTL 直连,接线少,更稳定。上图:

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY


如果使用我这个方案,请将自组网 zigbee 波特率设置在 57600,通讯模式是点对点模式(A or B)。Zigbee 自组网,基本不用配置,连上就能直接用。

嗯嗯,树莓派端我选择用 USB 外挂的 zigbee,是因为自带的软串口(TX/RX)有更多的任务,比如一键关机啥的,所以 USB 是比较好的方案。


05

软件配置部分


以上都准备好了,那就开始搞软件。


1. 首先,根据 HA 的官方文档,给 Arduino 上载 Firmata 固件,见官方链接:
https://www.home-assistant.io/integrations/arduino/
https://github.com/firmata/

要求使用 StandardFirmata 分支,因为我手里的是 UNO,所以经过多次尝试,我最终用烧录的是这个:
https://github.com/firmata/StandardFirmataYun 在编译之前,请把代码中的 Serial1 全部替换为 Serial,好像是 Arduino 没有 Serial1 这个端口。编译,上传。。。。上传的时候一定要断开外部串口,我就是因为插着 zigbee 烧录,搞了好久都上不去!哎呀妈呀!全是坑!


2. 树莓派端,根据之前的帖子配置好 HA 以后,先把 Arduino 平台写在配置文件中:
arduino:
port: /dev/ttyACM0
注意此处的 ttyACM0 是你的串口号,因为我用的是 USB 转 zigbee,所以我的串口号实际是:ttyUSB0,所以请根据实际情况修改端口。至于如何看端口号,请参考下面的命令:

ls /dev 或 dmesg 或 journalctl -f 多个命令进行查看

接下来请赋予 HA 用户使用串口的权限:

<code>sudo usermod -a -G dialout $USER
/<code>


然后我们再安装下 pyFirmata 库,我也被它困惑了一会,多谢 HA 的错误日志的提醒。

<code>sudo pip3 install pyFirmata
/<code>


然后,在配置文件中添加三个 switch 实体,如下:

<code>switch:
platform: arduino
pins:
8:
name: Green LED
12:
name: Red LED
13:
name: Blue LED
/<code>


也就是定义了 Arduino 的三个端口,每个端口驱动不同的三极管,也就对应不同的颜色。当然可以也可以自定义其他端口,不过对于 Arduino 而言,在 HA 中 3, 5, 6, 9, 10, 11 这几个口是无法使用的。因为官方就是这么说的。


配置文件修改好了以后,然后全部供电,保证 zigbee 在有限通讯范围内,检查下配置,重启 HA 服务,也可以重启树莓派,玄学。配置如图:

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

然后访问你的 HA 主页,添加三个 switch 实体到你的 HA 概览中,如果一切顺利,就会看到以下界面:

给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY

还记得那个逻辑么?全部打开就是白色,全部关闭就是关闭,只开红灯就是红。。。如果我数学不是体育老师教的,那算上关闭这个状态,3 个按钮的组合应该是 8 种状态,对应 8 种颜色。当然,如果 HA 支持 Arduino PWMI 输出的话,那就是很多颜色了。可惜,可惜,暂时不行。HA 支持微信小程序也支持亚马逊 Alexa 和 Google 助手的远程控制。

你把树莓派放在家里,你就可以远程给你的小鱼们开灯关灯了,再加个摄像头,改天再做个自动投食,。云养鱼啊这就是!当然灯不是给鱼用的,说到底还不是给缸内植物进行光合作用么。


给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY


给你的鱼缸灯加点小确幸?看大神用Home Assistant、树莓派 DIY


06

写在最后


写在最后,想说明几个问题,证明我不是个浪费硬件的傻子!


1、为何选择用 Ardunio 驱动而不是直接用树莓派驱动?
主要考虑到鱼缸灯的工作环境,潮湿,并且最后要将驱动封在灯盖子里,树莓派尺寸太大,并且它搭载了 HA,如果封起来,调试啊,使用啊,都很不方便。反正手里的 Arduino 闲着也是闲着。


2、为何选择 Arduino+zigbee,而不是树莓派 tty 直接通讯 Arduino?
我的鱼缸灯盖子封起来以后,没有空间留给 usb 线,并且。。。无线连接是不是更牛逼一点?


3、为何不用 ESP8266 这类芯片?
答。因为以前不知道。。。现在知道了,觉得应该努力赚钱多囤几个。


4、为何选择 TIP41 驱动?
选管子是件很痛苦的事情,我看了下灯的官方驱动用的是 S8050。嗯。呵呵。Arduino IO 口的输出电流基本是 20mA 左右。。。。S8050 肯定能用啊,但我觉得这玩意,还是保险点好。其实我都准备好了光耦,一想到还要焊板子,脑子就有点疼,暂时先不加了。


5、可以看看我的 GitHub,因为没有一行代码,所以,我的 github 目前都是门可罗雀,求大爷们照顾下啊!我靠,这名字,又臭又长,真不要脸啊。
https://github.com/maowenniao/Raspberry-Homeassistant_Zigbee_Arduino_drive-12V-RGB

原文标题:Home Assistant 给你的鱼缸灯加点小确幸 - 树莓派实验室

固定链接:https://shumeipai.nxez.com/2020/01/16/home-assistant-connect-your-fish-tank-lights.html


鱼水圈|更多精彩回顾

  • 鱼友分享:DIY 家庭客厅阳台小型观赏性鱼菜共生系统的记录
  • 哒嗼智能喂食器入手初体验
  • 20200327 TGIF 说说水族 DIY 的那些小玩意


—— 感谢阅读,欢迎分享!——

戳原文,更有料!


分享到:


相關文章: