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

- URL: https://wuming.si/blog/811/
- Author: Aaron
- Published: 2014-11-06
- Language: zh-Hans
- Categories: Uncategorized
- Originally published at: http://blog.wo.ai/archives/811

#### 概览

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

[![lesson13_1](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/bf9364d5b4_abe9bf568e3f93dfc950d2e797271496.jpg)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/bf9364d5b4_abe9bf568e3f93dfc950d2e797271496.jpg "Adafruit的树莓派教程第十三课：电力控制")

这节课里，你将学习把在[第十二课](http://www.boydwang.com/2014/08/adafruit-raspberry-pi-lesson-12-sensing-movement/ "Adafruit的树莓派教程第十二课：感知运动")中接触到的PIR\\(人体热式传感器\\)与Adafruit电力开关尾插Module 2型结合，在检测到与运动时自动开关设备。

#### 你需要的

要完成这节课的内容，你需要下面的东西：

PIR 人体热式传感器

[![lesson13_2](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/734e96038c_29edb52394fa0a2a41eec1bf7da051c0.jpg)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/734e96038c_29edb52394fa0a2a41eec1bf7da051c0.jpg "Adafruit的树莓派教程第十三课：电力控制")

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

[![lesson13_3](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/f586e22029_fae1b03583a4558cc2d0c1d39a006a35.jpg)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/f586e22029_fae1b03583a4558cc2d0c1d39a006a35.jpg "Adafruit的树莓派教程第十三课：电力控制")

树莓派扩展板

[![lesson12_4](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/c33cd89b50_7a721b9c7ef9ce89aa4c39b5578593ac.jpg)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/c33cd89b50_7a721b9c7ef9ce89aa4c39b5578593ac.jpg "Adafruit的树莓派教程第十三课：电力控制")

小块面包板

[![lesson12_5](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/4d7f4ef5bd_fbb14e041fcb05df9f98894cc3c83811.jpg)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/4d7f4ef5bd_fbb14e041fcb05df9f98894cc3c83811.jpg "Adafruit的树莓派教程第十三课：电力控制")

树莓派

[![lesson12_7](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/f55d77edcc_26ea130d8c1c2a7d525d84876bb1939e.jpg)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/f55d77edcc_26ea130d8c1c2a7d525d84876bb1939e.jpg "Adafruit的树莓派教程第十三课：电力控制")

一把跳线

[![lesson12_6](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/d074e0da68_ad5c6c6b5e2a9e85815ed6b97d2d3a1a.jpg)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/d074e0da68_ad5c6c6b5e2a9e85815ed6b97d2d3a1a.jpg "Adafruit的树莓派教程第十三课：电力控制")

#### 硬件部分

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

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

[![lesson13_3](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/f586e22029_fae1b03583a4558cc2d0c1d39a006a35.jpg)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/f586e22029_fae1b03583a4558cc2d0c1d39a006a35.jpg "Adafruit的树莓派教程第十三课：电力控制")

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

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

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

[![lesson13_4](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/f17c7bbd92_25f30931641b51d535382a231faaeb11.png)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/f17c7bbd92_25f30931641b51d535382a231faaeb11.png "Adafruit的树莓派教程第十三课：电力控制")

电力开关尾插带有一个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(见[第六课](http://www.geekfan.net/9128/ "Adafruit的树莓派教程第六课：使用SSH"))并使用下面的命令打开一个编辑器：
    
    
    nano powerswitch.py

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

[![lesson13_5](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/fbeb31ca29_c8908b5f196ac2aa982403faaa5d3aa2.png)](http://blog.wo.ai/wp-content/plugins/wp-o-matic/cache/fbeb31ca29_c8908b5f196ac2aa982403faaa5d3aa2.png "Adafruit的树莓派教程第十三课：电力控制")

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

然后使用下面的命令运行程序：
    
    
    sudo python powerswitch.py

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

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

[Adafruit的树莓派教程第十三课：电力控制](http://www.geekfan.net/11993/)，首发于[极客范 – GeekFan.net](http://www.geekfan.net)。
