基于物聯(lián)網(wǎng)的電磁門鎖使用樹莓派4
市場上有很多種類的Wi-Fi門鎖,可以讓你的家更安全,節(jié)省找鑰匙的時間。我們之前使用Node MCU和Adafruit IO構(gòu)建了一個智能手機控制的門鎖。這里我們使用相同的電磁門鎖,并使用基于樹莓派的web服務(wù)器控制它。該網(wǎng)頁將有兩個按鈕打開和關(guān)閉門鎖,可以從世界上任何地方訪問,只要端口轉(zhuǎn)發(fā)在您的路由器中啟用。
這里我們使用Flask從網(wǎng)頁控制門鎖。Flask是一個流行的Python web框架,由Pocoo的Armin Ronacher開發(fā)。它是用于開發(fā)web應(yīng)用程序的第三方Python庫。Flask被歸類為微框架,它基于Pocoo項目Werkzeug和Jinja2。Flask在樹莓派上非常常用,因為樹莓派有Linux操作系統(tǒng),可以很容易地處理Python腳本。樹莓派由于其高處理能力和內(nèi)置Wi-Fi功能,在創(chuàng)建web服務(wù)器和基于物聯(lián)網(wǎng)的項目中也很受歡迎。我們以前使用Flask來控制伺服電機和步進電機使用樹莓派。
組件的要求
?樹莓派4
?12v電磁鎖
?繼電器模塊
?跳線
電磁鎖
在傳統(tǒng)的門鎖中,有一把鑰匙來拉動或推動門閂,我們必須手動操作,但在電磁鎖中,門閂可以通過施加電壓來自動操作。電磁鎖有一個低壓電磁閥,當(dāng)中斷(按鈕,繼電器等)被激活時,將門閂拉回門中。鎖存器將保持其位置,直到中斷被啟用。電磁鎖的工作電壓為12V。您也可以使用9V,但它會導(dǎo)致較慢的操作。電磁門鎖主要用于偏遠地區(qū),實現(xiàn)自動化操作,不涉及任何人力。
樹莓派智能門鎖電路圖
樹莓派電磁門鎖的電路圖非常簡單,因為您只需要將電磁門鎖連接到樹莓派。電磁鎖需要9V-12V才能工作,而樹莓派的GPIO引腳只能提供3.3V,所以使用12V的外部電源在繼電器的幫助下觸發(fā)鎖定。
這里繼電器模塊的輸入引腳連接到樹莓派的GPIO 18引腳,繼電器模塊的VCC和GND引腳連接到樹莓派的5V和GND引腳。另一側(cè)電磁鎖的GND引腳接繼電器模塊的COM, Positive引腳接12V電源的Positive。12V電源的負引腳接在繼電器模塊的NO引腳上。
在完成所有連接后,我的硬件是這樣的:
準備樹莓派
在編程或安裝任何庫文件之前,首先使用以下命令更新樹莓派:
現(xiàn)在安裝Flask來創(chuàng)建一個Web頁面。使用下面的命令來安裝Flask:
安裝Flask后,在樹莓派上創(chuàng)建一個名為Solenoidlock的新目錄/文件夾,并使用以下命令導(dǎo)航到該文件夾:
現(xiàn)在使用下面的命令創(chuàng)建一個python文件:
粘貼本文檔末尾給出的python代碼,并使用
在Solenoidlock目錄下,用下面的命令創(chuàng)建另一個文件夾:
然后導(dǎo)航到模板目錄。
在templates目錄下,用下面的命令創(chuàng)建一個HTML文件:
將HTML代碼粘貼到nano編輯器中,并使用
網(wǎng)頁的HTML代碼
通過網(wǎng)頁控制電磁門鎖的完整HTML代碼如下:在這個HTML代碼中,ON和OFF按鈕有兩個不同的整數(shù)。整數(shù)1被分配給ON按鈕,2被分配給OFF按鈕。Flask web框架用于在網(wǎng)頁上按下按鈕時向樹莓派發(fā)送數(shù)據(jù)。
電磁門鎖的Python代碼
完整的python代碼在文檔的末尾給出。這里我們將解釋代碼的一些重要部分。
現(xiàn)在為該類創(chuàng)建一個實例來設(shè)置一個flask服務(wù)器。
使用下面的函數(shù),我們告訴Flask哪個URL應(yīng)該觸發(fā)我們的函數(shù)。
檢查changePin變量,如果它等于1,則將繼電器引腳更改為高,否則將其更改為低。
用樹莓派4測試電磁門鎖
在完成所有設(shè)置并將螺線管鎖連接到樹莓派后,導(dǎo)航到螺線管鎖目錄并使用以下命令運行python代碼:
然后打開端口為8000的樹莓派IP地址。這里你會看到兩個打開/關(guān)閉鎖的按鈕。按開/關(guān)按鈕打開/關(guān)閉門鎖。如果智能手機連接到同一網(wǎng)絡(luò),也可以訪問該頁面。
這是如何控制螺線管鎖使用樹莓派4。
本文編譯自iotdesignpro