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