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