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

灯的主控坏了?看大神用树莓派 DIY 一个智能鱼缸灯

本贴最后更新于 321 天前,其中的信息可能已经时移世改

MAKER: 店长大人

【鱼水圈APP下载iOS】 | 【鱼水圈APP下载Android】

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

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

材料准备

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

先上成品图:

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

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

一、制作驱动电路部分

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

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

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

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

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

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

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

三电学的好的同学,完全就可以自由发挥了,电容,电感,电阻一类的按需求怼吧,顺便的话最后的成品都可以商用了。
上图:焊工不好,切勿吐槽:

二、树莓派和 Arduino 通讯部分

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

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

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

三、软件配置部分

以上都准备好了,那就开始搞软件。
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 用户使用串口的权限:

sudo usermod -a -G dialout $USER

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

sudo pip3 install pyFirmata

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

switch:
platform: arduino
pins:
8:
name: Green LED
12:
name: Red LED
13:
name: Blue LED

也就是定义了 Arduino 的三个端口,每个端口驱动不同的三极管,也就对应不同的颜色。当然可以也可以自定义其他端口,不过对于 Arduino 而言,在 HA 中 3, 5, 6, 9, 10, 11 这几个口是无法使用的。因为官方就是这么说的。
配置文件修改好了以后,然后全部供电,保证 zigbee 在有限通讯范围内,检查下配置,重启 HA 服务,也可以重启树莓派,玄学。配置如图:

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

还记得那个逻辑么?全部打开就是白色,全部关闭就是关闭,只开红灯就是红。。。如果我数学不是体育老师教的,那算上关闭这个状态,3 个按钮的组合应该是 8 种状态,对应 8 种颜色。当然,如果 HA 支持 Arduino PWMI 输出的话,那就是很多颜色了。可惜,可惜,暂时不行。HA 支持微信小程序也支持亚马逊 Alexa 和 Google 助手的远程控制。你把树莓派放在家里,你就可以远程给你的小鱼们开灯关灯了,再加个摄像头,改天再做个自动投食,。云养鱼啊这就是!当然灯不是给鱼用的,说到底还不是给缸内植物进行光合作用么。


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

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

【鱼水圈APP下载iOS】 | 【鱼水圈APP下载Android】

【鱼水圈APP下载iOS】 | 【鱼水圈APP下载Android】
5 回帖   
请输入回帖内容...