1. 程式人生 > >PiLarm: 行動式樹莓派警報器(紅外感應+拍照+警報)

PiLarm: 行動式樹莓派警報器(紅外感應+拍照+警報)

本文由 極客範 - 克拉克101 翻譯自 Jeff Highsmith。歡迎加入極客翻譯小組,同我們一道翻譯與分享。轉載請參見文章末尾處的要求。

我一直在尋找一些能給自己孩子帶來教益的瞬間。當我五歲的兒子來尋求我的幫助,別再讓他的弟弟偷偷溜進他的房間的時候,我突然靈光一現,發現這是教他關於輸入、輸出和其他一些程式設計知識的絕佳時機。而且讓他在解決自己實際問題中學習這些也會相對容易。

pinopticonblockdiagram

我本來可以用很多不同的方法來建立一個簡單的警報系統,但是我想要讓這個系統是一體化的並且在功能上不止能滿足我兒子最初的原始需求。選擇樹莓派作為控制器是因為它很容易連線到網路、能播放MP3格式的檔案、可以和像攝像機這樣的USB外圍裝置進行互動,而且它具有GPIO(通用的輸入輸出),這樣就可以把它和按鈕、感測器、燈這樣的簡單電子元件連線起來。

這個警報系統的原始碼非常簡單,你可以在我的GitHub上檢視。為了利用Linux系統下多執行緒的優勢,我把任務分解了到兩個Python指令碼中。一個Python指令碼(keypadd.py)負責監視小鍵盤上的有效編碼。系統啟動時被設定為”disarmed”狀態。一旦檢測到arm/disarm程式碼,系統狀態就會因為一個在”armed.txt”檔案中設定的位元組發生翻轉而改變。

keypaddflowchart1

第二個Python指令碼(alarmd.py)利用樹莓派的GPIO來監視PIR(無源紅外線感測器)。如果檢測到動作發生,指令碼接著檢查”armed.txt”檔案判斷系統是否產生警報。如果檢測到動作的時候產生了警報,警報就會響起。

alarmdflowchart2

我建立這個警報系統來滿足我自己的需求。下面的內容會一步步地指導你建立一個類似這樣的系統。當建立系統的時候,一定要根據自己的需求來定製,比如可以增加鐳射絆線或者蜂窩式無線電等。

步驟 1:搭建樹莓派

  • 儘管從頭開始搭建樹莓派超出了這個專案的範圍,但是別擔心,一些幫助還是會有的。你可以在網上找到一些教程,但是我建議你讀一下Matt Richardson和Shawn Wallace合著的《Getting Started With Raspbery Pi》。這本書不僅僅在PiLarm這個專案上會對你有所幫助,更會幫助你去發掘樹莓派的各種功能,這樣你才可能會把樹莓派的功能結合到自己全新的、有趣的創造上面。

pilarm-gettingstartedrpi

  • 通過那些有關樹莓派的指導,將你的樹莓派連線到網際網路。這樣就可以從網上下載在接下來的幾步中所需要的庫檔案和程式碼,樹莓派也就能通過推特和電子郵件來發送檢測到的入侵者的圖片了。

步驟2:安裝GPIO

這個庫檔案允許你控制樹莓派的GPIO來使用PIR和鍵盤作為輸入,旋轉燈作為輸出。在終端中使用下面三條命令來安裝:

安裝GPIO庫 Shell
123sudo apt-getupdatesudo apt-getinstall python-devsudo apt-getinstall python-rpi.gpio

 步驟3:安裝fswebcam

  • 如果你在使用第三方攝像頭,比如Playstation Eye,那麼fswebcam可以讓你用它拍攝靜態圖片。如果你使用的是樹莓派自帶的攝像頭,請參考樹莓派官方的安裝說明,不需要安裝fswebcaam。可以用下面的命令來安裝fswebcam:
安裝fswebcamShell
1 sudoapt-getinstallfswebcam
  • 你可以用這個命令手動拍攝照片:fswebcam -r 640×480 -d /dev/video0 testpictire.jpg。然後使用 “ls” 命令檢視拍攝的照片是否出現在當前工作目錄中。

步驟4:安裝mgp123

  • mgp123是指令碼”alarmd.py”用來播放”System armed(系統警報)”、”Motion detected.Please enter passcode(檢測到物體移動,請輸入密碼)”等聲音檔案的命令列音訊播放器。安裝命令如下:
安裝mpg123 Shell
1sudo apt-getinstall mpg123

 步驟5:新增Pilarm程式碼

  • 為了把程式碼放到沒有頭部沒有顯示器,只能通過網際網路使用SSH進入)的樹莓派中,你可以使用git。樹莓派並不自帶git,但是你可以通過命令安裝:
安裝gitShell
1 sudoapt-getinstallgit-core
  • 然後使用”clone”命令將程式碼下載到你的樹莓派:
下載PiLarm程式碼 Shell
1git clonehttps://github.com/BabyWrassler/PiLarm.git
  • 現在,你有了一個叫作PiLarm的目錄,它包含PiLarm專案的python檔案和音訊檔案。在/etc/rc.local檔案中含有”exit 0″的行之前新增下面兩行設定alarmd.py和keypadd.py為開機啟動。
設定開機啟動指令碼Shell
1 2 python/home/pi/Alarm/keypadd.py& python/home/pi/Alarm/alarmd.py&
  • 請自己熟悉程式碼,將程式碼和以上的流程圖比較,弄清楚程式碼中的語句是怎樣執行的。
  • keypadd.py檔案的第96行包含了用於給系統警報和解除警報的密碼(1912)。第97 行的是關機密碼(5764),是用來正常關閉樹莓派使它可以拔下電源。
  • 如果你使用的是樹莓派的攝像頭元件,請返回去參考樹莓派的官方指導檢視你需要用哪些命令來替換alarmd.py中與fswebcam相關的命令。

步驟6:設定Twitter

  • 在”Access Level”中,選擇訪問許可權的等級設定為”Read and Write”。這樣之後你會獲得”Consumer Key”, “Consumer Secret”, “Access Token”, “Access Secret”的值,而這些都是需要在建立TweetPony API物件的函式中插入的(插入位置在alarmd.py檔案的第10行,預設內容為 “api = tweetpony.API(consumer_key = “abcd”, consumer_secret = “efgh”, access_token = “ijkl”, access_token_secret = “mnop”)。

步驟7:焊封面板套件Perma-Proto

pilarm-schematic2

  • Adafruit公司的面板套件Perma-Proto非常棒,因為它自帶有適合樹莓派上通用輸入輸出(GPIO)的聯結器。樹莓派上的引腳通過聯結器固定在板子上,這讓連線其餘的部件變得非常簡單。
  • 將樹莓派的3.3V電源接到Perma-Proto的正極上,樹莓派的地線接到Perma-Proto的接地端。接下來的問題就是熟練、小心的佈線,來把所有部件連線起來。我使用公引腳和母引腳作為聯結器連線無源紅外線感測器之類的器件,但你也可以把它們直接焊接起來。
  • 注意音訊放大器是在Perma-Proto板上的,從Perma-Proto的電源端獲得電源,它並沒有通過GPIO接頭連線到樹莓派上。音訊線單獨連線到放大器上,揚聲器連線到放大器的螺絲接線端上。
  • 鍵盤的連線線很短,因此在焊封前請一定設計好你的佈局。

步驟8:完整的系統測試

  • 現在你一定很想把這些都放進一個盒子裡完成這個專案了,但是在你首先還得測試各個元件是否工作正常,因為一旦把它們放到一個狹小的空間中封裝起來,出錯的時候再解決故障就變得麻煩多了。
  • 如果你的旋轉燈出問題了,可能的一個原因是極性連線錯誤(polarity issue)。我在麵包板上測試了自己的系統,手動把TIP120三極體接到電源或地端看看是否能解決問題。
  • 如果是程式碼有問題,可能是一些元件連線到了錯誤的引腳,也可能是你忘記了設定一些常量的值,比如在第六步中要設定Twitter的一些鍵值。解決程式碼的錯誤,你可以使用Python的”print”命令來列印一些變數的內容到控制檯,或者在程式碼中將一些事件標記為已執行。為了檢視alarmd.py或者keypadd.py的控制檯輸出,你需要通過SSH進入到樹莓派中通過命令”sudo python keypadd.py”或者”sudo python alarmd.py”自己執行這些指令碼。

步驟9:安裝外殼

pilarmmostlyempty

  • 大多數警報系統都被安裝成永久固定不變的,但是我設計的這套系統是行動式的,這樣可以很容易地擴充套件功能和重新作為其他用途。最後我選擇了能把所有多西都裝進去的最小的盒子。
  • 我建立第一個PiLarm系統的時候樹莓派的攝像頭元件還不能使用,但是這些功能馬上就要來了。如果你使用這個元件,弄清楚你要怎樣載入它。如果你只是直接在外殼上鑽一個孔把鏡頭露出來,你可能會使攝像頭的視角範圍變小。最好要麼把攝像頭安裝在一個轉軸上,要麼把整個裝置放置在一個三角架上來確保攝像頭的視角。
  • 如果你使用的是USB攝像頭,直接用雙面膠把它粘到外殼外面就行了,最好把露在外面的線孔都蓋住。
  • 外殼倒過來用效果更好,所以蓋子的位置其實是底部。
  • 在放置元件之前,要在外殼上為樹莓派的螺母柱、Perma-Proto板的螺母柱、為揚聲器預留的網格孔、LED燈、PIR、USB插孔、攝像頭和旋轉燈的連線線鑽孔。可以不這樣,但你肯定不想在某個聯結器上掉下了鑽孔留下的碎屑或者不小心鑽透了某個很昂貴的器件。
  • 鍵盤的連線線需要鑽一排相互挨著的1/8″(10.3mm)的孔,用美工刀切掉相互之間的材料,做成一個槽。
  • 雙面膠會把攝像頭和旋轉燈固定到合適的位置。鍵盤可以用粘合劑。揚聲器被螺栓固定到外殼上,Perma-Proto板和樹莓派使用電路板的螺母固定到外殼上。
  • 相關推薦

    PiLarm: 行動式樹莓警報器紅外感應+拍照+警報

    本文由 極客範 - 克拉克101 翻譯自 Jeff Highsmith。歡迎加入極客翻譯小組,同我們一道翻譯與分享。轉載請參見文章末尾處的要求。 我一直在尋找一些能給自己孩子帶來教益的瞬間。當我五歲的兒子來尋求我的幫助,別再讓他的弟弟偷偷溜進他的房間的時候,我突然靈光一

    樹莓GPSUSB轉串列埠獲取經緯度

    準備工作:樹莓派、GPS(我用的SF2820)、CP210XUSB轉串列埠線 操作步驟:1.把gps模組的usb接上樹莓派,然後啟動樹莓派,執行lsusb命令 2.執行以下命令檢視裝置名[email protected]:~$ ls /dev/ttyUSB0其

    樹莓小車樹莓、小車和紅外線模塊連接多圖

    post ges pos logs -m img gem 讀者 alt 正文之前 上一篇文章介紹了小車底盤以及驅動板的安裝,這一次來講一講樹莓派與驅動板以及紅外線模塊的安裝。 正文 1. 樹莓派的GPIO引腳定義: 樹莓派的GPIO引腳共分為兩種類型,一種是PHYSIC

    樹莓小車Python控制小車

    gpio 小車 沒有 物體 凹凸 img str 接口 表示 正文之前 由於最近忙於復習趕考,所以暫時沒有拿起樹莓派小車,直到昨天,終於空出時間來把代碼整理一下來和大家分享。 正文 在樹莓派小車系列之二中,講到了樹莓派的引腳定義方式有兩種: PHYSICAL NU

    樹莓3RaspberryPi 3B上實現kms自動激活

    樹莓派3 RaspberryPi 3B kms 自動激活 前置:1.主機名請從默認的RaspberryPi 改為 test.com sudo nano /etc/hostname 請將文件中的RaspberryPi改為 test.com 2.將樹莓派的ip地址改為靜態,此例中為172.16.0

    樹莓學習——樹莓安裝系統的過程、問題及解決辦法

    shu fat 基於 淘寶 conf 添加 最重要的 access eboot 前言——   買了兩三周的樹莓派,現在才把樹莓派安裝配置好系統,真的是想抽自己兩耳巴子。不過這個月實在太忙了,又是實習,又是忙著畢業雜事,心裏頗不寧靜。這兩天周末,又重新搗鼓了一下樹莓派,準備記

    樹莓入門常用命令

    sudo passwd root #輸入兩遍密碼後再輸入以下命令 sudo passwd --unlock root ls #目錄 lsusb #顯示usb裝置 cd #根目錄 cd - #返回進入此目錄之前的目錄 cd .. #返回上級 cd ../.. #返回

    樹莓的應用--人體感應器HC-SR501

    人體感應器HC-SR501的應用 材料: 樹莓派B型 人體感應器HC-SR501 發光二極體、330歐姆電阻 麵包板 人體感應器HC-SR501: 人體感應器說明書 以下說明參照:https://blog.csdn.net/sin

    樹莓入門- 基本設定:時區、密碼、apt-get源、上傳下載

    樹莓派基本設定 更改時區 修改root、pi密碼 更換apt為阿里雲源 使用lrzsz,上傳下載檔案 更改時區 輸入命令 sudo dpkg-reconfigure tzdata 上下箭頭移動游標,

    樹莓入門 - 樹莓系統備份指令碼,Raspberry pi

    系統備份步驟 簡述 全卡備份 建立img檔案 使用軟體備份 壓縮備份 原理 備份流程 安裝工具 儲存映象到U盤 建立img檔案 對img檔案分割槽 格式化img檔

    樹莓入門 - 下載安裝系統映象,Raspbian和Centos

    下載韌體裝機步驟 簡述 安裝官方映象 下載映象 格式化記憶體卡 燒錄映象到記憶體卡 啟動樹莓派 無顯示器啟動方式 安裝Centos映象 下載映象 格式化記憶體卡 燒錄映象

    學習筆記-樹莓學習

    學習筆記-樹莓派學習(一) ​ 在進行這些之前就已經先安裝好了樹莓派的系統,選擇的無介面的系統。 ​ 客戶端系統為Window10,伺服器為樹莓派的Linux。目前的一些想法是:①用樹莓派掛在一塊硬碟,作為家裡的網路硬碟來用;②配合客戶端的vscode,將樹莓派作為遠端編譯伺服器,用來編譯除錯執行程式,目

    【手把手教你樹莓3 】裝機

    概述 raspberry pi其實可以看做一個微型的計算機,我們可以在上面裝各種作業系統,然後搭建伺服器,當然這只是它的一小點功能罷了。。。與我們常用的PC機不同的是,ras pi有GPIO,我們可以讓raspberry pi來控制這些引腳,從而傳送一些物理訊號給其他的裝置

    學習筆記-樹莓學習

    學習筆記-樹莓派學習(一) ​ 內容如下: ​ ①掛載硬碟; ​ ②samba共享目錄; ​ ③Windows對映網路驅動器; 使用fdisk命令檢視硬碟詳細資訊 在/etc/fstab中新增要掛載的硬碟資訊 sudo vim /etc/fstab 新增/dev/s

    樹莓3b

    這次主要做了:樹莓派用GPIO控制燈泡,還有用linux虛擬機器通過USB轉TTL向樹莓派串列埠寫訊息以及控制樹莓派。 控制燈泡那個整體還算OK:有控制自身攜帶的ACT LED:https://blog.csdn.net/u011031257/article/details/80816239,整體做

    樹莓3b

    按照網址https://blog.csdn.net/your_elephant/article/details/50831837和https://blog.csdn.net/stemq/article/details/51814858裝了樹莓派系統,有幾個問題: 1.我沒有顯示屏,所以用的電腦做

    樹莓學習基於OpenCv的人臉識別

    博主的課程設計選題,開始在網上參考了諸多教程踩了很多坑最終得以實現,所以寫下心得總結,以便後人乘涼~https://blog.csdn.net/kyokozan/article/details/79192646https://blog.csdn.net/LC_1994/art

    樹莓3B+05:花生殼內網穿透

    花生殼內網穿透 內網穿透:實現不同區域網內的主機通過網際網路通訊的技術。如常用的遠端監控軟體,就需要藉助內網穿透技術進行兩電腦的連線。但大部分遠控軟體並不支援內網穿透,只能藉助埠對映實現內網穿透。埠對映,其實就是常說的NAT地址轉換的一種,其功能就是把在公網的

    首次使用樹莓2安裝系統+SSH+VNC+無線網路配置

    準備移植視覺程式到樹莓派上執行,所以需要先在樹莓派上搭建執行環境。本文將記錄首次使用樹莓派的基本過程,也是必經之路。 因為樹莓派買回來的時候就自己帶了一張光碟,裡面有安裝系統需要的工具和系統。 需要用到的工具,附下載地址: 一、安裝系統

    樹莓3B+09:攝像頭拍照

    攝像頭拍照 繼上次裝了寶塔面板後,桌面登不進,只好把系統重刷了,花費了一個半小時重新進行配置,接著搞一下攝像頭。 一、安裝攝像頭 注意:一定不要熱拔插攝像頭!!會壞掉的!! 二、使能攝像頭 sudo raspi-config