首先不要被这原理图吓 住,其实分解一看很简单,主要是树莓派和继电器可能不常见,下面会一一道来.原理就是通过树莓派的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-----------------
欢迎各位补充指正! 如有疑问请留言!
原创不易,感谢各位 关注、点赞、评论、转发 !
,