Raspberry Pi 树莓派GPIO学习 – 控制家用电灯
如果不是那天偶然看到有位盆友在炫耀他的新技能:用树莓派通过Java实现远程控制电灯,上次购置折腾系列配件的时候也不会多买一个继电器,ok,既然买了,就把他折腾起来。
目的
用程序控制家用灯泡,好像很酷的样子。
准备材料
- 树莓派一只
- 5V低电平继电器扩展版
- 家用灯泡一只
- 公对母杜邦线三根
- 面包板一块(可无)
- 普通电线一段,用于连接灯泡
先来张图
原理图是很简单的,继电器扩展版上低电端有三个引脚,分别是VCC、GND、IN,名词解释为:电源,接地,输入引脚。
简单的连线图(Fritzing还不会用):
所用继电器扩展版
VCC接树莓派5V针脚(红色)
GND 接树莓派GND针脚(棕色)
IN接树莓派GPIO25,或者其他的GPIO也可以,只要与程序控制的pin脚是一致的(橙色)
** 红色、棕色、橙色的杜邦线接法与下图“面包板接线图”是一致的 **
接好之后继电器扩展版的电源灯是亮的(红色LED)
这是继电器的玉照,有必要说明一下三个端点,常开、公共、常闭。
常开,正常状态为开路(开路即断开的),通电后关闭(连通)
公共端,顾名思义
常闭,正常状态为闭合(连通状态),通电后断开(开路)
因此,继电器是没有正负极之分,正负极可以任意接在常开或常闭,是否有电流通过取决于当前低电端给予的电平情况。
PS:接入家用电之后,强电端与继电器扩展版底部都是有电的,需谨慎操作,不幸的我就被电过一次,所以折腾的时候请小心。
再来张面包板的接线图:
很简单,没什么多说的,关于上图中针脚p*与GPIO对应关系,参考这里的关系图:http://lison.cc/raspberry-pi-control-led/
最终要实现的开关效果并不是带有ON/OFF的那种,往上按开,往下按关,而是类似电脑的开机键,按一下开,再按一下关。(有谁知道这种开关专业名称叫什么,老师说过,不过我忘了)
具体实现原理是读取GPIO针脚的电平状态,如果高电,说明已经打开,此时需关闭;如果低电,说明已经关闭,此时需打开。
程序中没有用到循环,而是执行一次开,再执行一次关。
还是直接贴代码:
唯一注意一点是为GPIO口设置高低电平时需先设置pin的模式,INPUT/OUTPUT。
wiringPi的官方资料还是要仔细看看的。
演示视频
后记
视频最后没有录制完,最后使用手机安装ConnectBot,可以远程用putty连接树莓派,并执行sudo ./light,从而以另一种欺骗的方式实现手机远程智能家居,以后研究一下android做个app控制家用电器。
参考文章:
http://wiringpi.com/reference/core-functions/
http://cafe.miwor.com/SAH/12.html
树莓派编号引脚说明:
http://blog.csdn.net/jcdjx/article/details/41866219