树莓派之智能电源开头-使用继电器和人体红外传感器

自己研究树莓派也有一段时间了,之前做过用手机WiFi和语音控制的小车,后来太忙,没时间再继续,这周闲来无事,打算把玩一下自己买的传感器,做一个自动感应和可以远程控制的电源开关。

需要的物品:
1.树莓派自然不能少
2.一个插头,一段长度的电线(功率大一些,质量也要好一些的),一个插座。
3.继电器一个
4.人体红外传感器一个
先看一下初步完成的图: 


树莓派之智能电源开头-使用继电器和人体红外传感器


从图片上可以看出是非常简单的的连接,大概步骤如下:

1.将电线接到插头上,这个容易;
2.将电线的两根的其中一根在中间剪断,然后接到继电器的  “公共”和“常开”(也可以接在“常闭”)上面,“常开”和“常闭”的区别是高低电平控制是相反的,还有就是在树莓派关机或者断的时候,"常开"是不通电的,“常闭”是通电的。

3.将电线的另一端连接到一个插座上面
4连接到GPIO的管脚,先连接继电器的VCC和GND到RPi的5V和0V,也就是管脚序号2和6上面,再连接人体红外感应器的VCC和GND到RPi的5V和0V,因为两个元件都要连接电源,所以要使用面包板。
5.在不写程序的情况下进行测试,可以直接将人体红外感应器的OUT连接到继电器IN;
6.接通树莓派电源,其他部分电源也都接通,插上一个台灯,把台灯的开头打开;
7.开始测试,在传感器前走动,你会看到台灯一会亮一会灭,这样自动感应灯的功能就完成了,简单吧。

但从上面测试时可以看来,台灯的开和关是非常敏感的,我们希望在台灯打开后可以延时一段时间,假如开启后延时20秒,这样就必须要写一点程序了.
改变连接方式,将人体红外感应器的OUT接到RPi的序号11上.继电器的IN连到序号12上面,对应的名字是:GPIO 0和GPIO 1,如图所示:

树莓派之智能电源开头-使用继电器和人体红外传感器



写一个python程序:


#!/usr/bin/python
# Author : CodeLive
# Date   : 09/03/2014


# Import required Python libraries
import time
import RPi.GPIO as GPIO


GPIO.setmode(GPIO.BOARD)


# Define GPIO to use on Pi
GPIO_IN  = 11
GPIO_OUT = 12


print "Light Control Server @ CodeLive"


# Set pins as output and input
GPIO.setup(GPIO_IN,  GPIO.IN)
GPIO.setup(GPIO_OUT, GPIO.OUT)


while True:
        inValue = GPIO.input(GPIO_IN)
        if inValue != 0:
                print("Light Power ON")
                GPIO.output(GPIO_OUT, False)
                time.sleep(20.0)
                GPIO.output(GPIO_OUT, True)
                print("Light Power OFF")
        time.sleep(0.01)
# Reset GPIO settings
GPIO.cleanup()

运行后测试,感应到人体走动后,灯会亮20秒钟。

完成上述功能后,还是非常简的,下面就继续折腾,把这些乱七八糟的线封装起来,找了半天,发现手机包装盒子还挺合适的,就完成了下面的包装:

树莓派之智能电源开头-使用继电器和人体红外传感器


完成上述部分后,继续远程控制的程序,基于之前的程序,写一个HTTP Server,并且让程序在RPi开机后自动运行。
这部分代码比较多,主要的一个功能是处理HTTP GET请求: 
http://192.168.2.9:8000/relay_ctrl?on=[true/false]&delay=ms
控制继电器让电源开或者关,开的时候可以延时一段时间,可以直接在浏览器中控制电源的开和关,至此功能基本完成。


如果再继续折腾就是把语音控制加进去,还可以写一个Android/iOS的App.使用树莓派可以很容易的实现智能家居应用,希望大家有好的创意和点子来改变我们生活。

转载于:https://my.oschina.net/sharesuiyue/blog/864797

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值