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就断开了。
首先不要被这原理图吓 住 其实分解一看很简单 主要是树莓派和继电器可能不常见 下面会一一道来.原理就是通过树莓派的gpio接口来控制继电器的通断 以达到控制水泵通断电的功能.
树莓派这就是树莓派 裸板几百块 可以简单地认为这就是个小电脑 它在本示例的主要作用就是充当控制端 通过命令或代码控制水泵的开关 装的是官方的raspberry pi os(基于Debian的linux系统) 这里假设树 莓派系统已安装好可正常使用 (如果有不懂如何安装系统的 且留言的比较多也可以专门出一期)
上图电路板上边那两排针脚就是GPIO接口(通用输入输出接口).这里一定要注意每一个针脚的物理编号(板上没写 ) 以上图为例 上边一排从左到右为编号依次为2 4 6…40 下边一排的编号依次为1 3 5…39 把上图顺时旋转90度后 针脚编号及说明如下:
本示例用了3个GPIO针脚 4号针脚输出5V 直流电源正极 6号针脚是接地也就是负极 22号针脚是GPIO的信号输出. 具体的连接线可以从网上买杜邦线(很便宜) 杜邦线又分公对公 公对母 母对母等头 公头就是有针的 线头就是有孔的 如树莓派的GPIO是针 那么就得买一头是母的杜邦线插进去 如果继电器的口也是针的 那就买母对母的 反正也不贵 建议每种都来些 方便试验.
继电器啥是继电器 简单来说就是通过信号来控制电源的通断 原理就是给它一个高电平(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码(重要!!!).如下:
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-----------------
欢迎各位补充指正! 如有疑问请留言!
原创不易 感谢各位 关注、点赞、评论、转发 !