Raspberry Pi 树莓派GPIO学习 – 控制家用电灯

如果不是那天偶然看到有位盆友在炫耀他的新技能:用树莓派通过Java实现远程控制电灯,上次购置折腾系列配件的时候也不会多买一个继电器,ok,既然买了,就把他折腾起来。

目的

用程序控制家用灯泡,好像很酷的样子。

准备材料

  1. 树莓派一只
  2. 5V低电平继电器扩展版
  3. 家用灯泡一只
  4. 公对母杜邦线三根
  5. 面包板一块(可无)
  6. 普通电线一段,用于连接灯泡

先来张图
面包板接线图

原理图是很简单的,继电器扩展版上低电端有三个引脚,分别是VCC、GND、IN,名词解释为:电源,接地,输入引脚。

简单的连线图(Fritzing还不会用):

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