热释电传感器三个引脚_Adafruit的树莓派教程:热释电传感器感知运动
概覽
在這節(jié)課里,你將學習到如何使用PIR熱釋電傳感器連接GPIO來激活門禁。
這節(jié)課,我們將把注意力放到感知運動和激活門禁開關上。我們會在后面的課程中構建這個安全感知系統(tǒng),使用小派作為數(shù)字輸出來在偵測到運動時控制電力設備。
你需要的
要完成這節(jié)課講述的內(nèi)容,你需要下面的東西。
樹莓派擴展板
一把跳線
最后,當然是小派啦
硬件部分
我們將會把兩個傳感器都連接到樹莓派上。兩個傳感器都不需要額外的部件。
PIR熱釋電傳感器是帶插座的引腳。一定要確保引腳插得是正確的,紅色的應該插在5V上,黑色接地,黃色的插在擴展板的18引腳上。
盡管PIR傳感器需要5V的電源供電,但它的輸出卻是對小派友好的3.3V,所以它可以直接連接到GPIO的上作為輸入。
門禁開關使用了一個叫做磁簧開關(reed switch)的東西。在一個玻璃管里裝著兩個簧片相互連接,然后外面包裹著塑料。當一個磁性物體(另一個白色方塊)靠近這個磁簧開關的時候,兩個簧片接觸,然后開關關閉。因為這是個開關,所以正著接反著接都行。
我們會利用小派自身來在磁簧開關針腳上創(chuàng)建一個內(nèi)部的上拉電阻,所以我們就不需要額外的上拉電阻了。
軟件部分
這個程序只是一個循環(huán),在偵測到運動的時候打印一個消息,或者磁力從門上移除。
程序使用了Rpi.GPIO類庫。
import time
import RPi.GPIO as io
io.setmode(io.BCM)
pir_pin = 18
door_pin = 23
io.setup(pir_pin, io.IN) # activate input
io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP) # activate input with PullUp
while True:
if io.input(pir_pin):
print("PIR ALARM!")
if io.input(door_pin):
print("DOOR ALARM!")
time.sleep(0.5)
程序里把pir_pin置為一個普通的輸入針(a plain old input)。這是因為PIR傳感器有一個3.3V或0V的數(shù)字輸出。與之相比,door_pin是一個開關,不會產(chǎn)生電壓作為數(shù)字輸入。所以,這個輸入針使用了一個額外的參數(shù)(pull_up_down=io.PUD_UP)。這將激活一個內(nèi)部的電阻使得輸入變高(上拉)除非有更強的電流(比如開關接地)來把它拉低。
然后循環(huán)輪流讀取輸入然后打印一條響應的消息。記住門禁開關報警只會在磁力從傳感器附近移除時才會被激活。
配置與測試
有許多方式可以連接到你的樹莓派上。也許最簡單的方式是使用SSH并使用下面的命令打開一個編輯器:
nano switches.py
然后把代碼粘貼進去,按Ctrl+X保存。
在開始運行程序之前,把磁鐵靠近開關并且在PIR傳感器上蓋上一些東西。
然后使用下面的命令運行程序:
sudo python switches.py
然后你可以看到終端有輸出了,當你移走磁鐵,或者把蓋在PIR傳感器上的東西拿開。
一個好的方式或許是把你的孩子放在PIR傳感器前面,看他們能堅持多久!
總結
以上是生活随笔為你收集整理的热释电传感器三个引脚_Adafruit的树莓派教程:热释电传感器感知运动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux "零拷贝"
- 下一篇: 着墨中文lisp登入_Lisp的本质 -