http://www.geekfan.net/11993/
本文由 極客范 - Boyd Wang 翻譯自 Adafruit.com。歡迎加入極客翻譯小組,同我們一道翻譯與分享。轉載請參見文章末尾處的要求。
系列:第一篇 http://t.cn/8sRWN6M、二 http://t.cn/8sE6ISu、三http://t.cn/8smcM5X、四 http://t.cn/8sBmyoW、五 http://t.cn/8seiTRi、六 http://t.cn/8sDJCFn、七http://t.cn/RvZQZ6m、八 http://t.cn/Rv5UwZp、九 http://t.cn/RvCOS4b、十 http://t.cn/RvTO1OY、十一 http://t.cn/RvFGcU6、十二 http://t.cn/R7TelU5
樹莓派可以成為你家裡強大的自動化控制終端,但最實用的應該是控制家用電器以及燈的打開關閉了。那就意味著小派應該能夠安全的控制110V電力。
這節課裡,你將學習把在第十二課中接觸到的PIR\(人體熱式傳感器\)與Adafruit電力開關尾插Module 2型結合,在檢測到與運動時自動開關設備。
要完成這節課的內容,你需要下面的東西:
PIR 人體熱式傳感器
電力開關尾插2型模塊(Powerswitch Tail 2 Module)
樹莓派擴展板
小塊面包板
樹莓派
一把跳線
Adafruit電力開關尾插2型看起來是一個110V插頭中間帶了一個小盒子。
如果你主要使用的是220V電壓,那麼這篇教程不適合你 – 如果我們獲悉了某種等效的220V電力控制器,我們會在這裡附上鏈接的
那個小盒子實際上是一個光隔離固態繼電器。光隔離的意思是實際上在低電壓與100V主電壓轉換之間並沒有電力連接。這對於小派來說非常的安全,大大降低了燒毀小派的可能性。
更進一步的是它的控制輸入電流是3mA,輸入電壓是3.3V,這意味著我們能夠直接通過小派的輸出針腳控制它。
PIR傳感器將會連接到與第十二課不同的針腳上,所以請確保黃色針腳連接正確。
電力開關尾插帶有一個LED指示燈來顯示它是否是開著的,所以你不需要在上面連接高電壓。
這個項目可能是所有自動控制燈項目中被過度設計(over-engineered)的一個。實際上你不需要一個樹莓派來開關電力,但是這個實例可以很容易的被應用到其他用途上。比如,你可以通過結合溫度,濕度,光線或者一些互聯網的天氣預報信息來控制加熱器,風扇或者是加濕器。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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(見第六課)並使用下面的命令打開一個編輯器:
1
|
nano
powerswitch
.
py
|
然後粘貼代碼,並按Ctrl+X保存。
在開始運行之前,拿東西改在PIR傳感器上,這樣它就不會在你沒准備好之前激活了。
然後使用下面的命令運行程序:
1
|
sudo
python
powerswitch
.
py
|
拿走PIR上面的覆蓋物你應該能看到一條」POWER ON」輸出然後電力開關上的小LED會點亮,並在20秒之後熄滅。
在代碼裡不要猛烈地開關電力。許多設備,包括燈泡在頻繁開關時都會造成損壞。這種設計至少要等待幾秒再打開或關閉電力。