基于物聯(lián)網(wǎng)的智能Wi-Fi門鈴使用樹莓派和PiCamera
安全是當(dāng)今主要關(guān)注的問題,今天我們在市場上有各種類型的監(jiān)控和安全系統(tǒng)。但它們非常昂貴,有時還會產(chǎn)生我們無法解決的問題。以前我們建立了一個監(jiān)控攝像頭,可以在物聯(lián)網(wǎng)云上直播視頻,今天我們將建立一個低成本的基于樹莓派的智能Wi-Fi門鈴。當(dāng)按下門鈴開關(guān)時,系統(tǒng)會將來訪者的照片發(fā)送到郵件中。PiCamera是用樹莓派來拍照的,如果你沒有PiCamera,也可以用USB網(wǎng)絡(luò)攝像頭。該系統(tǒng)可以安裝在你家或辦公室的大門上,可以通過互聯(lián)網(wǎng)從世界任何地方進行監(jiān)控。
需求
?Raspberry Pi,安裝Raspbian OS。
?Pi相機或USB網(wǎng)絡(luò)攝像頭
?按鈕
?跳線
在這里,我們將使用SSH訪問筆記本電腦上的樹莓派。如果你有顯示器,那么它將非常容易開始,但如果你沒有顯示器,那么設(shè)置樹莓派在無頭模式或使用VNC服務(wù)器獲得樹莓派桌面在筆記本電腦上。
樹莓派在構(gòu)建基于物聯(lián)網(wǎng)的項目中非常受歡迎,因為它具有對物聯(lián)網(wǎng)的所有必要支持。它是一個手掌大小的電腦,內(nèi)置Wi-Fi,藍牙,USB端口,音頻/視頻端口,HDMI端口,攝像頭端口等。你可以在這里查看所有基于樹莓派的物聯(lián)網(wǎng)項目。
連接圖
這款樹莓派智能門鈴的電路圖非常簡單,只需在一些GPIO引腳上連接一個按鈕,并將Pi相機連接到相機插槽上。
安裝樹莓派相機或USB網(wǎng)絡(luò)攝像頭
PiCamera:
1. 如果你正在使用picam,那么你必須從raspi-config中啟用攝像頭接口。執(zhí)行命令sudo raspi-config,進入“接口選項”。
2. 然后選擇Camera選項并在下一個窗口中啟用它并重新啟動Pi。
3. 現(xiàn)在,通過使用下面的命令捕獲照片來測試相機。
如果你有一個圖像在Pi目錄,那么你就準(zhǔn)備好去檢查你的相機帶和相機模塊。
USB相機:
如果你正在使用USB網(wǎng)絡(luò)攝像頭,那么你必須安裝一些包來啟用網(wǎng)絡(luò)攝像頭功能。使用下面的命令安裝包
現(xiàn)在,通過使用以下命令捕獲照片來檢查相機的工作情況
在最終代碼中使用上述命令替換piccamera功能。
現(xiàn)在,我們在硬件方面已經(jīng)準(zhǔn)備好了。是時候安裝SMTP庫和設(shè)置Google帳戶了。
在樹莓派上安裝SMTP發(fā)送郵件
簡單消息傳輸協(xié)議SMTP (Simple Message Transfer Protocol)是用于發(fā)送電子郵件的通信協(xié)議。使用命令行或python腳本發(fā)送電子郵件是一個很好的和簡單的解決方案。所以我們需要在樹莓派上安裝一些庫和包來使用SMTP發(fā)送電子郵件。
安裝SMTP庫
1. SMTP庫包已經(jīng)安裝在新版本的Raspbian中,但您可以重新安裝它以檢查所有包是否正確安裝。首先使用下面的命令更新和升級Raspbian OS。
2. 現(xiàn)在,使用以下命令安裝SMTP庫包
修改谷歌郵件帳戶中的“安全設(shè)置”
谷歌不允許發(fā)送和接收包含Python代碼的電子郵件。所以,我們必須更新一些安全設(shè)置在谷歌帳戶。按照以下步驟啟用“允許不太安全的應(yīng)用程序”權(quán)限。
1. 通過輸入您的登錄憑證登錄到您的Gmail帳戶。
2. 點擊頭像,然后點擊“谷歌賬號”。
3. 在安全選項卡下,你會發(fā)現(xiàn)不太安全的應(yīng)用程序訪問。通過點擊“允許不太安全的應(yīng)用程序”來打開它。
代碼與說明
在本教程的最后給出了完整的Python代碼和演示視頻。在這里,我們將解釋代碼以了解其工作原理。
快速回憶一下,這里我們正在編寫一個python腳本,以便在按下門鈴開關(guān)時將訪客的照片作為附件發(fā)送郵件。Pi相機將捕捉照片并通過電子郵件發(fā)送給房子的主人。
1. 在樹莓派中打開您最喜歡的文本編輯器,并導(dǎo)入picamera, Rpi gpio, SMTP, time的所有重要庫。
2. 現(xiàn)在,導(dǎo)入發(fā)送電子郵件所需的所有模塊。對于編寫純文本,包括附件和主題,我們需要一個單獨的模塊來組成整個郵件。
3. 在變量中指定您的電子郵件id、收件人電子郵件id和密碼,如下所示。
4. 為了將捕獲的照片保存在一個目錄中,并為它們分配一個文件夾和一個前綴名稱。
5. 設(shè)置引腳模式和引腳編號,以附加一個作為門鈴開關(guān)的按鈕。
6. 現(xiàn)在,創(chuàng)建一個捕獲照片的函數(shù)。在這個函數(shù)中,我們必須檢查目錄是否已經(jīng)存在。如果沒有,則創(chuàng)建目錄。
分配一個文件名,并使用glob對其進行排序,找到現(xiàn)有圖像的最大ID,并在此ID值之后啟動新圖像。
從最后一個文件名獲取計數(shù)。
現(xiàn)在,捕獲照片,給它一個唯一的名稱,并將其保存在定義的文件夾中。
7. 現(xiàn)在,編寫另一個發(fā)送郵件的函數(shù)。在此功能中,我們將附加主題、正文和附件,然后使用SMTP將所有內(nèi)容發(fā)送給接收者。
現(xiàn)在,最后,讀取按鈕值,當(dāng)它變高時,Raspberry Pi調(diào)用capture_img()函數(shù)來捕獲訪問者的圖像,并將訪問者的圖片作為附件發(fā)送警報電子郵件。這里send_mail()在capture_img()函數(shù)中用于發(fā)送郵件。
測試PiCamera門鈴
連接完完整的代碼后,保存帶有.py擴展名的文件,并使用下面的命令執(zhí)行此腳本
如果代碼中沒有錯誤,則按下按鈕。4-5秒后,您應(yīng)該會收到一封帶有照片作為附件的郵件。
為了避免每次引導(dǎo)pi時都運行該腳本,請使該腳本可執(zhí)行,并使其在每次引導(dǎo)時自動運行。為此,打開rc。本地文件使用下面的命令
在“exit 0”之前粘貼python /home/pi/Desktop/doorbell.py &,如下圖所示,使用ctrl+x保存文件并回車。確保您輸入了正確的python腳本目標(biāo)。
現(xiàn)在,重新啟動樹莓派并按下按鈕。如果一切正常,你應(yīng)該會收到一封附有照片的電子郵件。
本文編譯自iotdesignpro