树莓派使用python+继电器控制220V灯泡
需要的材料
1.继电器:继电器是一种电控制器件,它实际上是用小电流去控制大电流运作的一种“自动开关”,我们这里用它来控制电灯。控制了继电器就等于控制了电灯。
我购买的是某宝上3块钱的“1路 5v继电器”,这里的“几路”指的是可用控制多少个电灯220v线路,5v指继电器本身需要5v电压来驱动,树莓派本身提供5v电压输出所以这里选用5v
2.杜邦线:某宝几块钱一组40P,这里只需要三根,用于连接 树莓派与继电器
3.电灯+灯座+铜线+电源插头
GPIO说明
GPIO是(General Purpose Input Output)的缩写,也就是通用输入输出,是一种常见的硬件接口,用以表示开关量。
物理连接
1.树莓派阵脚对应继电器:
1.继电器连接电路(220v电源线):
3.总示意图
这里注意:GPIO18是针脚12,在BCM中的编码
这种接线方法称为:“常开端”接线方法,还有另一种“常闭端”接线方法,只需要将“NO”火线出口移动到“NC”位置
Python 控制脚本
树莓派系统中自带python IDE可直接编译、调试代码,比使用java方便
登录树莓派 点击“菜单->编程->Thonny Python IDE” 启动IDE代码如下:
import RPi.GPIO as GPIO import time # BCM 编号方式 GPIO.setmode(GPIO.BCM) # 设置[以BCM编号为18(实际在树莓派12针脚位置)]的GPIO口为输出模式 GPIO.setup(18, GPIO.OUT) # 开启 GPIO.output(18, GPIO.HIGH) time.sleep(5) #5秒后关闭 # 关闭 GPIO.output(18, GPIO.LOW) # 最后清理GPIO口 GPIO.cleanup()
micropython
from machine import Pin import time #第一个灯 relay_in1 = Pin(3, Pin.OUT) relay_in1.value(1) time.sleep(1) relay_in1.value(0) time.sleep(1) #第二个灯 relay_in2 = Pin(4, Pin.OUT) relay_in2.value(1) time.sleep(1) relay_in2.value(0) time.sleep(1)
我的继电器带有红绿两个LED指示灯,接通后红色LED灯常亮,运行程序 当听到 “啪” 的一声,绿色LED 灯就会亮,同时220v灯泡点亮,按程序控制5秒后,再听到 “啪” 的一声,绿色LED 灯就会熄灭,同时220v灯泡熄灭。
知识扩展
1. RPi.GPIO模块简单介绍
函数 GPIO.setmode(mode)
说明 设置引脚的编号系统
输入 mode:编号系统,GPIO.BOARD使用BOARD编号系统;GPIO.BCM使用BCM编号系统
函数 GPIO.setup(channel, dir)
说明 设置引脚的IO模式
参数 channel:引脚编号
dir:IO方向,GPIO.IN输入;GPIO.OUT输出
函数 GPIO.output(channel, state)
说明 设置引脚的输出电平
参数 channel:引脚编号
参数 state:电平状态,高电平:1/GPIO.HIGH/True;低电平:0/GPIO.LOW/False
函数 GPIO.input(channel)
说明 读取引脚的输入电平
参数 channel:引脚编号
返回 电平状态,高电平:1/GPIO.HIGH/True;低电平:0/GPIO.LOW/False
函数 GPIO.cleanup()
说明 清理引脚
2.继电器原理图: