Skip to content

Adafruit的树莓派教程第十三课:电力控制

lesson13 1

概览

树莓派可以成为你家里强大的自动化控制终端,但最实用的应该是控制家用电器以及灯的打开关闭了。那就意味着小派应该能够安全的控制110V电力。

lesson13_1

这节课里,你将学习把在第十二课中接触到的PIR\(人体热式传感器\)与Adafruit电力开关尾插Module 2型结合,在检测到与运动时自动开关设备。

你需要的

要完成这节课的内容,你需要下面的东西:

PIR 人体热式传感器

lesson13_2

电力开关尾插2型模块(Powerswitch Tail 2 Module)

lesson13_3

树莓派扩展板

lesson12_4

小块面包板

lesson12_5

树莓派

lesson12_7

一把跳线

lesson12_6

硬件部分

Adafruit电力开关尾插2型看起来是一个110V插头中间带了一个小盒子。

如果你主要使用的是220V电压,那么这篇教程不适合你 – 如果我们获悉了某种等效的220V电力控制器,我们会在这里附上链接的

lesson13_3

那个小盒子实际上是一个光隔离固态继电器。光隔离的意思是实际上在低电压与100V主电压转换之间并没有电力连接。这对于小派来说非常的安全,大大降低了烧毁小派的可能性。

更进一步的是它的控制输入电流是3mA,输入电压是3.3V,这意味着我们能够直接通过小派的输出针脚控制它。

PIR传感器将会连接到与第十二课不同的针脚上,所以请确保黄色针脚连接正确。

lesson13_4

电力开关尾插带有一个LED指示灯来显示它是否是开着的,所以你不需要在上面连接高电压。

软件部分

这个项目可能是所有自动控制灯项目中被过度设计(over-engineered)的一个。实际上你不需要一个树莓派来开关电力,但是这个实例可以很容易的被应用到其他用途上。比如,你可以通过结合温度,湿度,光线或者一些互联网的天气预报信息来控制加热器,风扇或者是加湿器。

import time 
import RPi.GPIO as io 
io.setmode(io.BCM) 
 
pir_pin = 24 
power_pin = 23
 
io.setup(pir_pin, io.IN) 
io.setup(power_pin, io.OUT)
io.output(power_pin, False)
 
while True:
    if io.input(pir_pin):
        print("POWER ON")
        io.output(power_pin, True)
        time.sleep(20);
        print("POWER OFF")
        io.output(power_pin, False)
        time.sleep(5)
    time.sleep(1)

这个程序首先设置了两个用到的GPIO针脚,一个用于把PIR传感器作为输入,另一个输出到电力开关尾插上。

主循环一直等待PIR传感器侦测运动,然后打印一条信息,之后打开电力开关,等待20秒之后关闭开关。

一旦输出被打开,那么将会等待5秒防止在5秒内重新触发输出。

然后每次循环会延迟一秒。

测试与配置

有许多方式可以连接到你的树莓派上。也许最简单的方式是使用SSH\(见第六课\)并使用下面的命令打开一个编辑器:

nano powerswitch.py

然后粘贴代码,并按Ctrl+X保存。

lesson13_5

在开始运行之前,拿东西改在PIR传感器上,这样它就不会在你没准备好之前激活了。

然后使用下面的命令运行程序:

sudo python powerswitch.py

拿走PIR上面的覆盖物你应该能看到一条”POWER ON”输出然后电力开关上的小LED会点亮,并在20秒之后熄灭。

在代码里不要猛烈地开关电力。许多设备,包括灯泡在频繁开关时都会造成损坏。这种设计至少要等待几秒再打开或关闭电力。
0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

[…] Lesson 13: 电力控制 […]

1
0
Would love your thoughts, please comment.x
()
x