快捷搜索:  汽车  科技

usb鱼缸增氧泵断电自启(智能鱼缸)

usb鱼缸增氧泵断电自启(智能鱼缸)当物理线路连接好后, 就可以测试了, 先来了解下如何在树莓派上控制GPIO。水泵的两根线任意剪断一根,也就有两个头了,一头接在继电器的COM公共口,另一头接中NO常开口。啥是继电器 简单来说就是通过信号来控制电源的通断 原理就是给它一个高电平(1) 内部缠绕线圈产生磁性 吸附铁片以连通电路 给它一个低电平(0) 失去磁性 断开电路。某宝上价格也就几块钱 还包邮。本例中, 左侧3个口与树莓派连接,从上到下依次连树莓派的22,4,6三个口。S表示Signal, 或vcc表示电源正极 - 或GND 表示电源负极.右侧也 有3个端口 COM是公共接口;NC是常闭端口 也就是没通电或给低电平的情况下NC和COM是连通的;NO是常开端口,也就是当继电器收到高电平信号,NO与COM连通,自然NC和COM就断开了。

usb鱼缸增氧泵断电自启(智能鱼缸)(1)

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

树莓派

usb鱼缸增氧泵断电自启(智能鱼缸)(2)

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

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

usb鱼缸增氧泵断电自启(智能鱼缸)(3)

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

继电器

usb鱼缸增氧泵断电自启(智能鱼缸)(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码(重要!!!).如下:

usb鱼缸增氧泵断电自启(智能鱼缸)(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-----------------

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

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

猜您喜欢: