智能鱼缸控制器说明书(智能鱼缸)(1)

首先不要被这原理图吓 住,其实分解一看很简单,主要是树莓派和继电器可能不常见,下面会一一道来.原理就是通过树莓派的gpio接口来控制继电器的通断,以达到控制水泵通断电的功能.

树莓派

智能鱼缸控制器说明书(智能鱼缸)(2)

这就是树莓派,裸板几百块,可以简单地认为这就是个小电脑, 它在本示例的主要作用就是充当控制端, 通过命令或代码控制水泵的开关 ,装的是官方的raspberry pi os(基于Debian的linux系统),这里假设树 莓派系统已安装好可正常使用 (如果有不懂如何安装系统的,且留言的比较多也可以专门出一期)

上图电路板上边那两排针脚就是GPIO接口(通用输入输出接口).这里一定要注意每一个针脚的物理编号(板上没写 ),以上图为例,上边一排从左到右为编号依次为2,4,6…40,下边一排的编号依次为1,3,5…39, 把上图顺时旋转90度后,针脚编号及说明如下:

智能鱼缸控制器说明书(智能鱼缸)(3)

本示例用了3个GPIO针脚,4号针脚输出5V 直流电源正极, 6号针脚是接地也就是负极,22号针脚是GPIO的信号输出. 具体的连接线可以从网上买杜邦线(很便宜), 杜邦线又分公对公,公对母,母对母等头, 公头就是有针的,线头就是有孔的, 如树莓派的GPIO是针, 那么就得买一头是母的杜邦线插进去,如果继电器的口也是针的, 那就买母对母的, 反正也不贵,建议每种都来些,方便试验.

继电器

智能鱼缸控制器说明书(智能鱼缸)(4)

啥是继电器, 简单来说就是通过信号来控制电源的通断, 原理就是给它一个高电平(1),内部缠绕线圈产生磁性,吸附铁片以连通电路,给它一个低电平(0),失去磁性,断开电路。某宝上价格也就几块钱,还包邮。

本例中, 左侧3个口与树莓派连接,从上到下依次连树莓派的22,4,6三个口。S表示Signal, 或vcc表示电源正极, - 或GND 表示电源负极.

右侧也 有3个端口, COM是公共接口;NC是常闭端口,也就是没通电或给低电平的情况下NC和COM是连通的;NO是常开端口,也就是当继电器收到高电平信号,NO与COM连通,自然NC和COM就断开了。

水泵的两根线任意剪断一根,也就有两个头了,一头接在继电器的COM公共口,另一头接中NO常开口。

命令或代码开关水泵

当物理线路连接好后, 就可以测试了, 先来了解下如何在树莓派上控制GPIO。

1. 首先确定是否有gpio命令,输入gpio -v查看版本号,如果找不到命令,需要先安装: apt install wiringpi

2. 通过gpio readall 查看各端口(针脚)的情况及对应的BCM码(重要!!!).如下:

智能鱼缸控制器说明书(智能鱼缸)(5)

3. 通过命令开关继电器

#调整BCM码 25,也就是22号物理针脚为输出模式

gpio -g mode 25 out

#对此端口号(针脚)写入高电平1, 此时会听到”啪”一声,继电路连通, 电器工作

gpio -g write 25 1

#输入低电平即可断开电路

gpio -g write 25 0

4. 通过python代码通断电路,也是用的BCM码.

import RPi.GPIO as GPIO #导入GIPO的包

import sys

GPIO.setwarnings(False) #取消警告信息

GPIO.setmode(GPIO.BCM) #设置使用BCM的针脚号

PORT =25 # 定义端口号(针脚)

if __name__ == '__main__':

#判断参数小于2就报错,第1个参数是代码文件名,第二个参是on或off

if len(sys.argv)< 2:

print('参数不正确,请执行python3 relay.py on')

switch=sys.argv[1] #获取第2个参数on或off

GPIO.setup(PORT,GPIO.OUT) #设置端口为输入模式

if switch == 'on':

GPIO.output(PORT,GPIO.HIGH) #输出高电平

else:

GPIO.output(PORT,GPIO.LOW) #输出低电平

把上述代码保存为relay.py , 在命令窗口执行python3 relay.py on 调用即可

补充:

如果定时开启可以加入crontab定时任务.

如果要通过网页或手机APP控制,就需要搭建个Web服务器了, 后续会一步步 完善

-----------------end-----------------

欢迎各位补充指正! 如有疑问请留言!

原创不易,感谢各位 关注、点赞、评论、转发 !

,