@hzl201
2017-02-05T10:32:44.000000Z
字数 3605
阅读 63322
树莓派
GPIO
继电器
raspberry
pi
收到了 树莓派继电器扩展板@斑斑 活动的扩展板,谢谢论坛及赠送板板的小菜儿以及制作者@斑斑。
树莓派运行linux系统,有GPIO扩展,可控制其它设备。
通过控制树莓派上的GPIO输出高电平和低电平,来控制继电器开关,继电器与其它设备相连,这样就能达到控制设备开关的目的了。
1.自动控制
设定条件,当条件成立时,执行命令
2.手动控制
手动控制GPIO的高电平和低电平
树莓派为中控,连接控制端与受控端
继电器及连接的设备
从背面看从左到右依次是 k1.1 k1 k1.2 k2.2 k2 k2.1
我去掉了塑料螺丝,自己垫了点东西,因为塑料螺丝会压到我的树莓派上的元器件。
这个板子可以支持市电220V交流,但是最高用在不要超过60W的电器为宜,比如电子门锁,台灯,室内照明的日光灯、手机充电器,等小功率电器上。
继电器可以接被控电器的有6PIN分别是K1.1、K1、K1.2、K2.1、K2、K2.2。实现双刀双掷开关功能,分两组开关,采用低电平触发,也就是低电平时继电器吸合,K1会从K1.1切到K1.2(可以理解为一个开关,低电平时K1与k1.2连接);K2会从K2.1切到K2.2。红灯亮代表低电平。
(注意:一切增减设备及电线的操作都需要先去除身上的静电和把树莓派断电后才能操作,涉及到强电如220v的设备时请先学习电学知识,做好防护措施,切勿在设备加电运行时触碰设备)
- 安装方法:
1.1 使用排母直接插在树莓派主板上的方式:
将树莓派扣接接如图中的五个排针上,在用尼龙螺丝和尼龙柱固定即可。
参考:树莓派继电器扩展板安装指南
DIY树莓派专用继电器扩展板——开启智能家居又一步!
1.2 用杜邦线连接:
这种连接方法就比较随意一些,可以用任何一个GPIO来控制,也可以同时控制多个扩展板。三根杜邦线分别连接到GND、3.3V以及任何一个GPIO,如下图所示:
可以控制GPIO的高电平及低电平看树莓派继电器扩展板背面的红灯是否亮起,我是学习《爱上Raspberry_Pi》 上面第114页的方法进行调试的,通过对GPIO22的高低电平的控制来控制树莓派继电器扩展板。
也可以参考:树莓派学习笔记——Shell脚本操作GPIO
具体步骤:
sudo su # 使用管理员权限
echo 22 > /sys/class/gpio/export #使GPIO 22从内核空间暴露到用户空间中
cd /sys/class/gpio/gpio22
ls
echo out > direction #设置GPIO22为输出模式
echo 1 > value #向value文件中输入1,GPIO输出高电平,继电器扩展板上的红灯应该是熄灭的
echo 0 > value #向value文件中输入0,GPIO输出低电平,继电器扩展板上的红灯应该是亮起的
cd ../ #返回上一级目录
echo 22 > unexport #注销GPIO22接口
exit #退出超级用户
如果使用的是debian版本的树莓派系统,应该是已经安装了python库,“进入python交互界面,输入“import RPi.GPIO“,如果没有报告“ImportError: No module named RPi.GPIO”错误的话,就已经安装了该库,直接使用即可。也可以使用命令 “sudo apt-get install python-pip”再执行"sudo pip install rpi.gpio"安装RPi.GPIO
sudo apt-get install python-dev #安装python
sudo easy_install -U distribute #执行更新
sudo apt-get install python-pip #安装python-pip
sudo pip install rpi.gpio #安装python的GPIO库
参考树莓派学习笔记——yeelink 远程控制LED
- 新建yeelink设备
1.登录http://www.yeelink.net/,新建帐号,进入用户中心
2.选择 “我的设备”>“增加新设备”
3.选择 “我的设备”>“管理设备”
- 添加传感器
1.Yeelink中增加一个开关,注意要用到它的URL。
-获取所需开关的URL和用户密码,复制备用。
获取设备URI #我的设备>管理设备
获取API KEY #用户中心>帐户>我的帐户设置
创建脚本,应先mkdir创建目录
sudo nano /home/pi/soft/yeelink/yeelinkled.py
填写内容
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import RPi.GPIO as GPIO
import time
# BOARD编号方式,基于BCM
GPIO.setmode(GPIO.BCM)
# 输出模式
GPIO.setup(22,GPIO.OUT)
# 设备URI,填写你的开关URL
apiurl = 'http://api.yeelink.net/v1.0/device/******/sensor/*******/datapoints'
# 用户密码,API KEY,替换成你自己的
apiheaders = {'U-ApiKey': '08e62b9605fe7fb50ab675fcb29c4059'}
while True:
#发送请求
r = requests.get(apiurl,headers=apiheaders)
# 打印响应内容
print(r.text)
# 转换为字典类型 请注意 2.7.4版本使用r.json(),我的是2.7.3
led = r.json()
# {'value':x} x=1打开状态,x=0关闭状态
if led['value'] == 1:
print("led on")
GPIO.output(22,GPIO.HIGH)
else:
print("led off")
GPIO.output(22,GPIO.LOW)
# 延时5S
time.sleep(5)
#程序结束后进行清理
GPIO.cleanup()
保存脚本
ctrl+x ,再选择Y,回车
给予运行权限
sudo chmod 777 /home/pi/soft/yeelink/yeelinkled.py
测试是否运行正常,运行一下,会出现当前继电器的状态,使用网页版yeelink控制一下开关,等五秒,看状态是否发生改变。
sudo python /home/pi/soft/yeelink/yeelinkled.py
退出脚本
ctrl+c
添加为开机启动
sudo nano /etc/rc.local #修改 rc.local文件
python /home/pi/soft/yeelink/yeelinkled.py #在文件末尾 ,在exit 0 这一行之前,加入一行
sudo sync #保存设置
sudo reboot #重启
继电器控制没想象中的难,独立使用没什么用,可以在特定的情景中,设置成自动启动,不用去理会它,让它自己决定什么时候开启。
树莓派学习笔记——yeelink 远程控制LED
使用 RPi.GPIO 模块的输入(Input)功能 (转载)
树莓派RaspberryPi的RPi.GPIO使用指南
RPi.GPIO模块函数说明
使用RPi.GPIO在树莓派上点灯
树莓派之智能电源开头-使用继电器和人体红外传感器
树莓派学习笔记——Shell脚本操作GPIO
树莓派的物联网应用初尝试——云端遥控(一)
树莓派(Raspberry Pi)设置脚本自启动