树莓派4B驱动喂鱼器

记得之前有前辈搞过这个项目,隐约记得是用不带WIFI的喂鱼器进行硬件hack,文章找不到了。刚好我也养鱼,刚好我也玩树莓派,刚好把这个过程记录下来。

1. 准备清单

  1. 树莓派4B
  2. 艾隆达鱼缸喂食器无WIFI款(按一下喂一次)
  3. 杜邦线两根

2. Hack喂鱼器

1
2
3
买回来的喂鱼器是两节1.5v电源供电,一个按钮,一个旋转马达加一个鱼食仓,按一下按钮旋转一次,
好像也可以长按设置24小时喂食一次或者12小时一次,
这些不重要,我要的功能是程序执行一次,即喂食一次的效果

喂鱼器长这样,已经拆掉了鱼食仓

从这个开关引出两条线

像这样

红色与棕色就是引出的两条线,这两条要接到树莓派的引脚上。

2. 接线表

**树莓派针脚** **说明** **喂鱼器**
GPIO 26 电源+
GND 电源-

就这两根线,也可以用其他的针脚,看你

3. Python编程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import RPi.GPIO as GPIO
import time
import sys

def feed():

pin = 26

try:
args = sys.argv
if(len(args)>=2):
pin=int(args[1])
except:
pass

print("GPIO: " + str(pin))

GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)

GPIO.output(pin, GPIO.HIGH)
time.sleep(0.2)
GPIO.output(pin, GPIO.LOW)
time.sleep(0.2)

GPIO.cleanup()

#记录执行次数
filename=time.strftime("%Y%m%d")

with open(filename,'a+')as f:
f.seek(0)
line = f.readline()
print(line)

#清空文件内容
f.seek(0)
f.truncate()

times = 0
if(len(line)==0):
times=1
else:
times= int(line) + 1

f.write(str(times))
print("Times: "+str(times))

1
2
3
程序默认使用26针脚,执行一次将在当前路径创建20230403的文件,文件内容记录次数1;
如果文件已存在,则将记录次数+1
sudo python fishfeeder.py

4. 显示结果

上面的程序记录了每天的运行次数,然后用LCD 1602a给显示出来,像这样。

5. TODO

  1. 既然程序可控,那我想要远程控制;将程序做成web服务暴露到外网
  2. 开一个直播给这个鱼缸,可以看到鱼、喂鱼器的动作以及LCD屏幕显示的信息
  3. 收到点赞或者刷礼物或者什么的时候LCD显示关联信息,并执行一次喂鱼,让互动看得见
  4. 鱼脸识别?领养?再说吧~