那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在樹莓派Pico上使用PIR傳感器構(gòu)建竊賊報(bào)警器

jf_zGNBEhbi ? 來源:趣無盡 ? 2023-08-17 10:08 ? 次閱讀

微控制器MCU)在現(xiàn)實(shí)世界的另一個(gè)用途是在報(bào)警系統(tǒng)中。從早上叫你起床的鬧鐘到火災(zāi)警報(bào)、防盜警報(bào),甚至是核電站出現(xiàn)問題時(shí)發(fā)出的警報(bào),微控制器幫助保護(hù)我們所有人的安全。

本篇將帶你構(gòu)建自己的防盜報(bào)警器,實(shí)現(xiàn)一個(gè)特殊的運(yùn)動傳感器,不斷掃描任何人進(jìn)入房間的事件。無論你是在保護(hù)銀行金庫,還是只是想防止兄弟姐妹們出現(xiàn)在你的房間里,防盜報(bào)警器肯定會派上用場。

這個(gè)項(xiàng)目需要用到:
樹莓派 Pico
面包板
任何顏色的 LED
一個(gè) 330Ω 電阻
有源蜂鳴器
一個(gè)或多個(gè) HC-SR501 被動紅外(PIR)傳感器
若干公對公、公對母杜邦線
microUSB 數(shù)據(jù)線

將 Pico 連接到樹莓派或其他運(yùn)行 Thonny MicroPython IDE 的計(jì)算機(jī)。

HC-SR501 PIR 傳感器

在前面的系列教程中,你已經(jīng)使用了按鈕開關(guān)形式的簡單輸入組件。這一次,你將使用被稱為被動紅外傳感器(PIR)的傳感器。有數(shù)百種不同的 PIR 傳感器可用,HC-SR501 低成本、高性能,并與 Pico 完美適配。

被動式紅外傳感器被設(shè)計(jì)用來檢測運(yùn)動,特別是人和其他生物的運(yùn)動。它的工作原理有點(diǎn)像照相機(jī),但它不是捕捉可見光,而是尋找以紅外輻射的形式從活體發(fā)出的熱量。它被稱為被動紅外傳感器,而不是主動紅外傳感器,因?yàn)榫拖裣鄼C(jī)傳感器一樣,它自己不發(fā)出任何紅外信號

實(shí)際的傳感器被埋在一個(gè)塑料鏡頭下,通常形狀像半個(gè)球。鏡頭在技術(shù)上并不是傳感器工作所必需的,但可以供更寬的視野(FOV),如果沒有透鏡,PIR 傳感器只能看到傳感器正前方一個(gè)非常窄的角度的運(yùn)動。這種鏡頭可以從更寬的角度吸收紅外線,這意味著一個(gè) PIR 傳感器就可以觀察到房間里大部分的移動情況。

在商業(yè)防盜報(bào)警系統(tǒng)中,PIR 傳感器只是使用的傳感器之一。其它的傳感器還包括:能告知窗 戶何時(shí)被打碎的碎玻璃傳感器、能監(jiān)測門是開著還是關(guān)著的磁傳感器、能捕捉竊賊腳步聲的聲音傳感器以及能告知門鎖是否被撬開的振動傳感器。

然而,一個(gè)簡單的 PIR 傳感器對于低安全級別的地方就足夠了。

現(xiàn)在拿起你的 HC-SR501 傳感器看一看。首先要注意的是,它有自己的電路板。除了傳感器和鏡頭,還有其他幾個(gè)組件:驅(qū)動傳感器的黑色芯片、一些電容和微小的貼片電阻。你也可以看到幾個(gè)電位器,你可以用螺絲刀擰動它們,來調(diào)整傳感器的靈敏度,以及當(dāng)觸發(fā)時(shí)它保持激活的時(shí)間。

你還會看到三個(gè)公排針,和 Pico 底部的排針一模一樣。但是,你不能直接將它們插入面包板,因?yàn)槊姘迳系慕M件會礙事。取三根公對母杜邦線,將母線端插入 HC-SR501 的針腳上。接下來,拿起公的一端,把它們連接到面包板和 Pico 上。在將傳感器連接到 Pico 上時(shí),需要確認(rèn)傳感器的文檔。不同公司生產(chǎn)的 HC-SR501 傳感器,它們引腳的順序會略有不同。

這里的傳感器,引腳順序?yàn)?GND 在底部,信號或觸發(fā)引腳在中間,電源引腳在右邊。

cdfa5bd0-3ca2-11ee-ac96-dac502259ad0.jpg

傳感器的信號引腳連接到 Pico 的 GP28 引腳。GND 和 VCC 分別連接 Pico 的 GND 和 5V 引腳。

警報(bào)器代碼

ce172f12-3ca2-11ee-ac96-dac502259ad0.jpg

對 Pico 進(jìn)行編程才能識別傳感器。這和讀取按鈕的操作類似。幾乎可以使用相同的代碼:

import machine
sensor_pir = machine.Pin(28, machine.Pin.IN, machine.Pin.PULL_DOWN)

就像上一篇教程中做的反應(yīng)游戲一樣,防盜報(bào)警器的輸入應(yīng)該作為一個(gè)中斷,停止程序正在做的任何事情,并在傳感器被觸發(fā)時(shí)做出反應(yīng)。和前面一樣,首先定義一個(gè)回調(diào)函數(shù)來處理中斷:

def pir_handler(pin):
print("ALARM! Motion detected!")

最后,設(shè)置中斷本身:

sensor_pir.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)

單擊 Run 按鈕,并將程序保存到 Pico 中,命名為 Burglar_Alarm.py。

在 PIR 傳感器前面揮一揮你的手,你會看到一條消息出現(xiàn)在 Shell 區(qū)域,確認(rèn)傳感器檢測到了手的移動。如果你一直揮動你的手,信息將持續(xù)輸出,但是在每條消息之間有一個(gè)延遲,
這種延遲和內(nèi)置在 HC-SR501 上的電位器設(shè)置相關(guān)。你可以插入一個(gè)螺絲刀,把它朝一個(gè) 方向轉(zhuǎn)動來減少延遲,朝另一個(gè)方向轉(zhuǎn)動來增加延遲。請參考傳感器的文檔,以確定哪個(gè)電位器是控制延遲的。

組裝輸入和輸出之后的代碼

真正的防盜警報(bào)器有燈和警報(bào)器來醒周圍的人有問題了,下面我們就來添加它們。如圖所示添加 LED 和有源蜂鳴器。其中,LED 正極與 Pico 的 GP15 引腳相連,蜂鳴器的正極與 Pico 的 GP14 相連。GND 均與 Pico 的 GND 引腳相連。

ce30ecd6-3ca2-11ee-ac96-dac502259ad0.jpg

加入 LED 和蜂鳴器之后的完整代碼如下:

import machine
import utime


sensor_pir = machine.Pin(28, machine.Pin.IN, machine.Pin.PULL_DOWN)
led = machine.Pin(15, machine.Pin.OUT)
buzzer = machine.Pin(14, machine.Pin.OUT)


def pir_handler(pin):
print("ALARM! Motion detected!")
for i in range(50):
  led.toggle()
  buzzer.toggle()
  utime.sleep_ms(100)


sensor_pir.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)


while True:
  led.toggle()
  utime.sleep(5)

點(diǎn)擊 Run 按鈕,然后在 PIR 傳感器前再次揮舞你的手,這時(shí)不僅會有消息提示出現(xiàn)在 Shell 區(qū)域,LED 將開始快速閃爍 50 次并伴隨著警報(bào)器嗶聲(間隔 100 毫秒)。

為了讓防盜報(bào)警器更具震懾力,它在沒有察覺到任何動靜的情況下也會緩慢閃爍(每 5 秒一次),以此 警告潛在的入侵者,你的房間已經(jīng)被人監(jiān)視了。

祝賀你,這應(yīng)該足以嚇入侵者了!

如果你使用的是無源蜂鳴器,嘗試這個(gè)版本的程序代替:

import machine
import utime


sensor_pir = machine.Pin(28, machine.Pin.IN, machine.Pin.PULL_DOWN) led = machine.Pin(15, machine.Pin.OUT)
buzzer = machine.Pin(14, machine.Pin.OUT)


def pir_handler(pin):
  print("ALARM! Motion detected!")
  for i in range(50):
    led.toggle()
    for j in range(25):
      buzzer.toggle()
      utime.sleep_ms(3)


sensor_pir.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)


while True:
  led.toggle()
  utime.sleep(5)

在蜂鳴器的使用上,上面的代碼是通過快速切換蜂鳴器引腳的電壓來模擬有源蜂鳴器振蕩器的效果。

嘗試將延遲時(shí)間從 3 毫秒改為 4 毫秒,你會發(fā)現(xiàn)蜂鳴器的聲音音調(diào)更低。改變延遲會改變蜂鳴器振蕩的頻率:延遲越長,蜂鳴器振蕩的頻率就越低,聲音的音調(diào)就越低;延遲越短,它的振動頻率 就越高,聲音的音調(diào)也就越高。

擴(kuò)展警報(bào)器

添加多個(gè) HC-SR501 傳感器可以覆蓋更多區(qū)域。我們以兩個(gè)為例,將新增的傳感器信號腳連接到 Pico 上的 GP22 引腳,如圖所示。

ce40fdf6-3ca2-11ee-ac96-dac502259ad0.jpg

在設(shè)置第一個(gè)傳感器的地方添加一行新代碼:

sensor_pir2 = machine.Pin(22, machine.Pin.IN, machine.Pin.PULL_DOWN)

然后創(chuàng)建一個(gè)新的中斷,同樣在第一個(gè)中斷的下面:

 
sensor_pir2.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)

請記住,一個(gè)處理程序可以有多個(gè)中斷,因此不需要更改終端處理程序的部分。

點(diǎn)擊 Run 按鈕,并在第一個(gè) PIR 傳感器上揮一揮你的手,你會看到警報(bào)信息,LED 閃光,蜂鳴器的聲音和之前一樣。等他們完成,然后在第二個(gè) PIR 傳感器上揮揮手,你會看到你的防盜警報(bào)以完全相同的方式響應(yīng)。

為了使鬧鐘變得非常智能,你可以根據(jù)哪個(gè)引腳負(fù)責(zé)中斷來自定義消息,它的工作方式與你之前編寫的雙人反應(yīng)游戲中完全相同。

回到你的中斷處理程序并修改它:

def pir_handler(pin):
if pin is sensor_pir:
print("ALARM! Motion detected in bedroom!")
elif pin is sensor_pir2:
print("ALARM! Motion detected in living room!")
for i in range(50):
led.toggle()
buzzer.toggle()
utime.sleep_ms(100)

就像在系列教程「反應(yīng)游戲」項(xiàng)目中,這段代碼讓中斷報(bào)告它被哪個(gè)引腳觸發(fā)。最終完整的代碼如下:

import machine
import utime


sensor_pir = machine.Pin(28, machine.Pin.IN, machine.Pin.PULL_DOWN) sensor_pir2 = machine.Pin(22, machine.Pin.IN, machine.Pin.PULL_DOWN) led = machine.Pin(15, machine.Pin.OUT)
buzzer = machine.Pin(14, machine.Pin.OUT)


def pir_handler(pin):
  if pin is sensor_pir:
    print("ALARM! Motion detected in bedroom!")
  elif pin is sensor_pir2:
    print("ALARM! Motion detected in living room!")
    for i in range(50):
    led.toggle()
    buzzer.toggle()
    utime.sleep_ms(100)


sensor_pir.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler) sensor_pir2.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)


while True:
  led.toggle()
  utime.sleep(5)

祝賀你!你現(xiàn)在學(xué)會如何構(gòu)建一個(gè)模塊化的防盜報(bào)警器來覆蓋你需要的所有監(jiān)測區(qū)域了!

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7651

    瀏覽量

    152122
  • 傳感器
    +關(guān)注

    關(guān)注

    2553

    文章

    51407

    瀏覽量

    756640
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17324

    瀏覽量

    352658
  • 報(bào)警器
    +關(guān)注

    關(guān)注

    12

    文章

    927

    瀏覽量

    108917
  • 樹莓派
    +關(guān)注

    關(guān)注

    117

    文章

    1710

    瀏覽量

    105882

原文標(biāo)題:竊賊報(bào)警器:在樹莓派 Pico 上使用 PIR 傳感器

文章出處:【微信號:趣無盡,微信公眾號:趣無盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    使用樹莓Pico的RP2040微控制內(nèi)置溫度傳感器

    樹莓 Pico 的 RP2040 微控制內(nèi)置了溫度傳感器,它可以通過第四個(gè)模擬數(shù)字轉(zhuǎn)換通道
    的頭像 發(fā)表于 09-11 10:14 ?2086次閱讀

    樹莓DIY:無線感應(yīng)報(bào)警器

    通過把LCD1602,蜂鳴器和單路徑循跡傳感器模塊都接入到樹莓的GPIO引腳上面,用單路徑循跡傳感器檢測物體的距離或顏色。當(dāng)物體距離過近時(shí),此時(shí)路徑
    發(fā)表于 05-23 08:00

    基于樹莓pico的FM接收

    描述Pico 收音機(jī)是一個(gè)簡單的基于樹莓 pico 的 FM 接收,它使用 rda5807m 調(diào)諧到 FM 頻道??梢酝ㄟ^
    發(fā)表于 07-08 07:56

    樹莓傳感器教程

    樹莓傳感器教程
    發(fā)表于 10-07 07:13

    樹莓傳感器教程資料下載

    樹莓傳感器
    發(fā)表于 05-07 15:20 ?32次下載

    PIR傳感器怎樣與樹莓連接

    無源紅外傳感器,通常稱為PIR傳感器(也稱為紅外運(yùn)動傳感器和熱釋電傳感器),是基本檢測紅外輻射
    的頭像 發(fā)表于 07-29 10:58 ?8139次閱讀

    如何構(gòu)建簡單的PIR運(yùn)動傳感器

    給出的示意圖顯示了如何構(gòu)建簡單的PIR運(yùn)動傳感器。PIR傳感器允許運(yùn)動感應(yīng),幾乎總是用于檢測有人是否進(jìn)入或離開了
    的頭像 發(fā)表于 05-04 09:16 ?3955次閱讀
    如何<b class='flag-5'>構(gòu)建</b>簡單的<b class='flag-5'>PIR</b>運(yùn)動<b class='flag-5'>傳感器</b>

    PicoBoy帶有Wii遙控樹莓Pico

    電子發(fā)燒友網(wǎng)站提供《PicoBoy帶有Wii遙控樹莓Pico.zip》資料免費(fèi)下載
    發(fā)表于 11-08 11:16 ?0次下載
    PicoBoy帶有Wii遙控<b class='flag-5'>器</b>的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>

    距離檢測報(bào)警使用樹莓Pico

    電子發(fā)燒友網(wǎng)站提供《距離檢測報(bào)警使用樹莓Pico.zip》資料免費(fèi)下載
    發(fā)表于 11-09 11:49 ?0次下載
    距離檢測<b class='flag-5'>報(bào)警</b>使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>

    使用PIR傳感器的防盜報(bào)警器

    電子發(fā)燒友網(wǎng)站提供《使用PIR傳感器的防盜報(bào)警器.zip》資料免費(fèi)下載
    發(fā)表于 02-06 09:25 ?3次下載
    使用<b class='flag-5'>PIR</b><b class='flag-5'>傳感器</b>的防盜<b class='flag-5'>報(bào)警器</b>

    基于PIR傳感器的安全報(bào)警系統(tǒng)電路設(shè)計(jì)

    本文中,工程師們列舉了一個(gè)更加簡單的安全報(bào)警系統(tǒng)單片機(jī)方案,既節(jié)省了功耗,又實(shí)現(xiàn)了低成本。PIR傳感器是無源紅外傳感器的縮寫,也是比較經(jīng)濟(jì)
    的頭像 發(fā)表于 07-11 09:47 ?1272次閱讀
    基于<b class='flag-5'>PIR</b><b class='flag-5'>傳感器</b>的安全<b class='flag-5'>報(bào)警</b>系統(tǒng)電路設(shè)計(jì)

    如何利用樹莓和氣體傳感器保護(hù)廚房呢?

    其實(shí)市面上有很多商業(yè)解決方案,喜歡自己動手的,可以用樹莓Pico和氣體傳感器做一個(gè)。
    發(fā)表于 08-16 09:24 ?359次閱讀

    樹莓 Pico內(nèi)置溫度傳感器的應(yīng)用

    樹莓 Pico 的 RP2040 微控制內(nèi)置了溫度傳感器,它可以通過第四個(gè)模擬數(shù)字轉(zhuǎn)換通道
    發(fā)表于 09-11 10:14 ?936次閱讀

    樹莓Pico文件系統(tǒng)應(yīng)用:數(shù)據(jù)記錄

    在前面的章節(jié)中,你一直使用樹莓 Pico 連接到樹莓或其他電腦。不過,與所有微控制
    的頭像 發(fā)表于 10-24 10:51 ?1483次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>文件系統(tǒng)應(yīng)用:數(shù)據(jù)記錄<b class='flag-5'>器</b>

    如何在樹莓Pico使用紅外線接收模塊?

    樹莓 Pico 使用紅外線接收模塊(HX1838 型),我們采用開源的 pico_ir 庫
    的頭像 發(fā)表于 11-30 09:08 ?2366次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b><b class='flag-5'>上</b>使用紅外線接收模塊?
    亚洲顶级赌场手机版| 百家乐视频游戏会员| 米兰国际娱乐城| 汾阳市| 澳门赌百家乐的玩法技巧和规则 | 百家乐庄闲局部失| 百家乐官网最新道具| 边城棋牌中心| 八大胜百家乐官网娱乐城| 顶级赌场连环夺宝下注有什么窍门| 百家乐拍是什么| 娱乐城百家乐官网论坛| 威尼斯人娱乐城易博lm0| 黄金城百家乐官网手机用户| 广灵县| 大发888为什么卡| 百家乐国际娱乐城| 金臂百家乐官网开户送彩金| 大发888娱乐城lm0| 百家乐洗码| 博彩百家乐官网规则| 大发888更名网址6| 百家乐群sun811.com| 闲和庄百家乐官网娱乐场| 大发888官方下载删除| 百家乐购怎么样| 百家乐官网网站是多少| 娱乐城官方网站| 网上百家乐投注法| 百家乐官网的路图片| 鸿运国际娱乐| 玩百家乐上高尔夫娱乐场| 百家乐视频多开器| 太阳城网上娱乐城| 至尊百家乐qvod| 百家乐官网稳赢投注| 六合彩教程| 百家乐鞋| 百家乐必胜课| 百家乐官网怎样赢| 视频百家乐官网游戏|