RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用樹莓派DIY一個(gè)門禁報(bào)警控制面板

科技觀察員 ? 來源:Colin O'Dell ? 作者:Colin O'Dell ? 2022-03-30 16:51 ? 次閱讀

這個(gè)項(xiàng)目是一個(gè)DIY觸摸屏面板,用于布防/解除HomeAssistant的報(bào)警系統(tǒng)。它由RaspberryPi、3.5英寸觸摸屏顯示器、基于Python的自定義應(yīng)用程序和MQTT提供支持。

本文將引導(dǎo)您完成項(xiàng)目的創(chuàng)建,并提供創(chuàng)建您自己的項(xiàng)目所需的一切!

家庭助理

HomeAssistant是一個(gè)了不起的開源家庭自動(dòng)化平臺(tái)。它的眾多功能之一是能夠?qū)崿F(xiàn)您自己的家庭安全警報(bào)系統(tǒng)。然后,您可以使用各種傳感器來確定是否/何時(shí)觸發(fā)警報(bào)。

就我而言,我的所有外門上都有幾個(gè)Z-Wave門傳感器。如果在警報(bào)激活時(shí)任何門打開,我會(huì)在手機(jī)電腦上收到即時(shí)推送通知。最終,我將把它擴(kuò)展到包括運(yùn)動(dòng)傳感器和警報(bào)器。

雖然這工作正常,但布防/撤防設(shè)備的唯一方法是通過Web界面。不幸的是,手動(dòng)警報(bào)沒有一個(gè)API接口,我們可以使用它來發(fā)送布防/撤防命令,同時(shí)還可以從HA接收即時(shí)狀態(tài)更改。

因此,我創(chuàng)建了新的手動(dòng)MQTT警報(bào)組件,其功能與手動(dòng)警報(bào)相同,但也允許通過MQTT進(jìn)行雙向通信!有了這個(gè)組件,我們可以使用我們可以想象的任何網(wǎng)絡(luò)連接平臺(tái)輕松構(gòu)建自己的遠(yuǎn)程鍵盤。就我而言,我選擇使用帶有觸摸屏的RaspberryPi構(gòu)建解決方案。

硬件

至少,您需要以下組件:

樹莓派

Adafruit的PiTFTPlus480x3203.5“TFT+觸摸屏顯示器

微型SD

用于供電的MicroUSB電纜

*我在這個(gè)項(xiàng)目中使用了PiZeroW,但是任何帶有wifi的Pi都應(yīng)該可以工作(即使是使用USBwifi適配器的)。

可選:該軟件還支持可選的屏幕保護(hù)模式,在這種模式下,屏幕會(huì)在很長(zhǎng)一段時(shí)間后黑屏。通過添加PIR運(yùn)動(dòng)傳感器,我們可以讓屏幕保持關(guān)閉,直到有人接近鍵盤,從而延長(zhǎng)顯示器的使用壽命。只需將PIR傳感器連接到顯示器底部的額外引腳-請(qǐng)參閱本頁下方的運(yùn)動(dòng)傳感器部分。

準(zhǔn)備HomeAssistant和MQTT

HomeAssistantv0.50添加了我們需要使用的新alarm.manual_mqtt組件。這依賴于MQTT平臺(tái)的啟動(dòng)和運(yùn)行,因此請(qǐng)確保首先執(zhí)行此操作。

要將警報(bào)添加到HomeAssistant,只需將其放入您的文件中:configuration.yml

pYYBAGJEGcuAHI_2AAAaqD91ZYM068.png

可以在文檔頁面上找到完整的配置選項(xiàng)列表。alarm.manual_mqtt

準(zhǔn)備樹莓派

PiTFT顯示器需要特殊的內(nèi)核驅(qū)動(dòng)程序、配置和校準(zhǔn)。Adafruit確實(shí)提供了一個(gè)很好的指南和預(yù)烘焙的操作系統(tǒng)映像,其中包括這些;但是,這個(gè)舊圖像無法在PiZeroW上正常工作(wifi完全壞了)。

就我而言,我最終安裝了最新版本的RaspbianJessieLite并按照這些說明使顯示器正常工作。

注意:此項(xiàng)目不需要X桌面環(huán)境,因?yàn)檐浖苯永L制到屏幕的幀緩沖區(qū)。如果您按照上一個(gè)鏈接中的說明進(jìn)行操作,只需跳過任何引用X11的部分。

此時(shí),您的TFT上應(yīng)該會(huì)出現(xiàn)一個(gè)功能齊全的LinuxCLI!

poYBAGJEGceAZI4aAAPMuXKMMZk101.png

要讓觸摸屏與pygame一起使用,請(qǐng)確保您使用的是SDL1.2。

現(xiàn)在我們可以在Pi上安裝報(bào)警面板軟件了!

軟件

要安裝它,請(qǐng)使用Git將存儲(chǔ)庫克隆到某個(gè)位置-我選擇了/srv:

pYYBAGJEGcOAUnQuAAA0862hw84558.png

您還需要通過將.env.dist示例文件復(fù)制到.env并編輯以下設(shè)置來配置面板:

PINS-您想使用的4位密碼的逗號(hào)分隔列表。

MQTT_HOST-MQTT服務(wù)器的IP或主機(jī)名

MQTT_USER-MQTT的用戶名

MQTT_PASS-MQTT對(duì)應(yīng)的密碼

您現(xiàn)在可以運(yùn)行該程序:

pYYBAGJEGbyAcWvoAAAOP5PnPsw647.png

最后,如果您希望警報(bào)面板在啟動(dòng)時(shí)啟動(dòng),請(qǐng)將以下內(nèi)容添加到您的rc.local文件(exit0行上方):

pYYBAGJEGbeAAcNrAAAPGypU7Ps884.png

可選運(yùn)動(dòng)傳感器/屏幕保護(hù)程序

為了最大限度地延長(zhǎng)顯示器的使用壽命,可以使用PIR運(yùn)動(dòng)傳感器在無人時(shí)自動(dòng)關(guān)閉顯示器。PiTFT顯示器在其底部方便地暴露了GPIO引腳,因此只需進(jìn)行以下連接:

直流至5v

GND到地

輸出到任何未使用的GPIO(例如引腳23)

poYBAGJEGbKAZx78AAQ8PTYn0SY614.png

確保將以下行添加到您的.env文件中,以便控制面板了解您的傳感器-將23替換為您選擇使用的任何GPIO引腳:

PIR_GPIO_PIN=23

(如果您的控制面板已經(jīng)在運(yùn)行,那么您需要在進(jìn)行此更改后重新啟動(dòng)它。)

用法

應(yīng)用程序啟動(dòng)后,顯示器應(yīng)自動(dòng)連接到MQTT。

poYBAGJEGa6AETDQAALVgHYbXH8857.png

每當(dāng)HomeAssistant中的鬧鐘狀態(tài)發(fā)生變化時(shí),它都會(huì)通過MQTT自動(dòng)將新狀態(tài)實(shí)時(shí)推送到顯示屏上。

要通過報(bào)警面板更改報(bào)警狀態(tài),您必須先按相應(yīng)的數(shù)字鍵輸入有效的PIN碼。如果您不小心按錯(cuò)了按鈕,只需點(diǎn)擊被屏蔽的輸入、#鍵或*鍵即可清除您的輸入。

輸入有效的PIN將解鎖按鈕以更改狀態(tài):

解除“武裝”

離開

按下其中任何一個(gè)都會(huì)通過MQTT向HomeAssistant發(fā)送命令以進(jìn)行相應(yīng)的更改。

底層-創(chuàng)建UI和應(yīng)用程序

設(shè)計(jì)UI相當(dāng)簡(jiǎn)單。使用Photoshop,我創(chuàng)建了一個(gè)新的480x320工作區(qū),并將其劃分為相等單位的網(wǎng)格,以確保按鈕的大小和對(duì)齊方式正確:

poYBAGJEGaiAdpWFAAG0vqjoUbA765.png

然后將每個(gè)按鈕及其不同狀態(tài)提取到PNG。

Python應(yīng)用程序使用我在PyGame之上創(chuàng)建的自定義UI庫。一切(除了狀態(tài)文本)都呈現(xiàn)為具有多種狀態(tài)的“按鈕”:

PIN輸入(1-9、*、0和#):

默認(rèn)

按下

操作按鈕(撤防、布防回家、布防離開):

默認(rèn)(禁用)

激活(警報(bào)系統(tǒng)的當(dāng)前狀態(tài))

可用(啟用-輸入正確的PIN后即可選擇)

甚至顯示當(dāng)前屏蔽PIN的框也被繪制為帶有狀態(tài)的“按鈕”:

默認(rèn)(沒有輸入)

輸入了1個(gè)號(hào)碼

輸入2個(gè)數(shù)字

輸入3個(gè)數(shù)字

輸入4個(gè)數(shù)字,PIN有效

輸入4個(gè)數(shù)字,PIN不正確

每個(gè)按鈕狀態(tài)都有自己的圖像-我們只需跟蹤當(dāng)前狀態(tài)并根據(jù)需要在圖像之間切換。

應(yīng)用程序本身運(yùn)行一個(gè)簡(jiǎn)單的事件循環(huán)——在每次迭代中,我們通過MQTT檢查屏幕觸摸或傳入狀態(tài)更改。UI狀態(tài)也會(huì)根據(jù)需要重新繪制。為了防止CPU以100%的速度運(yùn)行并產(chǎn)生過多的熱量,我們還睡眠了很短的一段時(shí)間。

一旦輸入正確的PIN,操作按鈕就會(huì)解鎖。當(dāng)按下未鎖定的操作按鈕時(shí),我們會(huì)立即通過MQTT向HomeAssistant發(fā)出命令,以相應(yīng)地更改警報(bào)狀態(tài)。

外殼

每個(gè)DIY項(xiàng)目都需要一個(gè)外殼,因此我嘗試設(shè)計(jì)一個(gè)定制的3D打印外殼來容納我的控制面板和PIR傳感器:

這不是最漂亮的情況,一些內(nèi)部測(cè)量不是100%完美的,還有一些小問題:

Pi的背面和外殼的背面之間有一個(gè)微小的間隙-理想情況下,我希望它們齊平。這是用熱膠固定的。

支柱可能更堅(jiān)固。

前面板的厚度略短于TFT顯示器,使其突出約1毫米。

沒有額外的通風(fēng)孔(雖然熱量還不是問題)。

設(shè)計(jì)非?;A(chǔ)(我不是設(shè)計(jì)師)。

由于這些原因,我將來可能會(huì)重新設(shè)計(jì)這個(gè)案例,但現(xiàn)在它已經(jīng)足夠滿足我的需要了:)

顯示器和PIR傳感器的測(cè)量結(jié)果非常完美,因此它們非常適合并緊貼在外殼的前部。安裝后,我使用了大量的熱膠將PCB固定在正面內(nèi)側(cè)。

poYBAGJEGaKAASU4AAYEiHJa6mU652.png

對(duì)于后部,我只需將微型USB電纜穿過孔,將其插入Pi,然后將前后部件卡扣在一起。我之前添加的熱膠仍然是溫暖的,所以它有助于將前后部件粘合在一起。

pYYBAGJEGZ2ADCwEAAQefA14QG4756.png

然后我使用CommandLargePictureHangingStrips(帶有類似尼龍搭扣的材料)將它安裝在墻上。我本可以在外殼上打孔并使用螺絲,但我想要一些不那么永久的東西,以防我以后決定進(jìn)行改進(jìn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 報(bào)警系統(tǒng)
    +關(guān)注

    關(guān)注

    5

    文章

    647

    瀏覽量

    75186
  • 面板
    +關(guān)注

    關(guān)注

    13

    文章

    1675

    瀏覽量

    53836
  • 樹莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1706

    瀏覽量

    105607
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    16鍵CAN總線控制面板 按鍵面板 操作面板 碩博電子 #CAN總線 #按鍵面板 #控制面板

    控制面板
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2024年09月02日 10:51:40

    pcb 控制面板

    `我在畫個(gè)燈的pcb,就剩IQS133的控制面板的部分,不知道控制面板在AD下怎么畫了,有沒有大神給些意見或建議的,謝謝~`
    發(fā)表于 06-14 15:57

    AllJoyn核心應(yīng)用教程:Base Services服務(wù)之控制面板

    的UI進(jìn)行動(dòng)態(tài)渲染。控制面板服務(wù)抽象化了AllJoyn控制面板接口的細(xì)節(jié),從而使其能夠調(diào)用更高級(jí)別的API以及代碼生成器,從而創(chuàng)建組件元素。個(gè)控制
    發(fā)表于 09-21 10:40

    怎么實(shí)現(xiàn)基于msp430和電容式觸控技術(shù)的門禁控制面板電路設(shè)計(jì)?

    怎么實(shí)現(xiàn)基于msp430和電容式觸控技術(shù)的門禁控制面板電路設(shè)計(jì)?
    發(fā)表于 06-16 08:20

    數(shù)碼印像機(jī)的控制面板/存儲(chǔ)卡

    數(shù)碼印像機(jī)的控制面板/存儲(chǔ)卡  控制面板         &n
    發(fā)表于 12-23 14:38 ?892次閱讀

    微軟或逐步移除Windows 10中的控制面板

    Windows電腦中的控制面板往往包含針對(duì)系統(tǒng)設(shè)置的些高級(jí)選項(xiàng),而微軟已準(zhǔn)備逐步將控制面板從系統(tǒng)中移除。但這過程又是循序漸進(jìn)的,現(xiàn)有系統(tǒng)中既有基于平板設(shè)計(jì)的設(shè)置界面又有傳統(tǒng)的
    的頭像 發(fā)表于 03-24 09:17 ?2380次閱讀

    win8控制面板在哪打開?

    其實(shí)打開Win8控制面板的方法有很多,筆者要列出來的話,估計(jì)可以列出上十種方法,看過Win8使用指南的朋友可能會(huì)覺得打開Win8控制面板沒有Win7方便,其實(shí)也不是這樣的,在Win8系統(tǒng)中我們打開控制面板最快的方法就是使用Win
    的頭像 發(fā)表于 07-29 09:37 ?3727次閱讀
    win8<b class='flag-5'>控制面板</b>在哪打開?

    再見,控制面板,Win10系統(tǒng)終于取消控制面板

    Windows 10做了大刀闊斧的改革,盡管充滿爭(zhēng)議,但微軟直堅(jiān)定不移地改變著,只是經(jīng)常速度有點(diǎn)慢,比如經(jīng)典的控制面板,其中的功能設(shè)置逐個(gè)轉(zhuǎn)到新的電腦設(shè)置App。
    的頭像 發(fā)表于 11-05 10:22 ?3690次閱讀
    再見,<b class='flag-5'>控制面板</b>,Win10系統(tǒng)終于取消<b class='flag-5'>控制面板</b>

    nvidia控制面板怎么設(shè)置

    在我們?nèi)粘I钪信紶枙?huì)遇到些自己不知道如何解決的問題,比如設(shè)置nvidia控制面板。那么我們應(yīng)該怎樣解決這種自己不知道如何設(shè)置nvidia控制面板的情況呢?那么接下來就由我來介紹
    的頭像 發(fā)表于 01-22 16:43 ?1.7w次閱讀
    nvidia<b class='flag-5'>控制面板</b>怎么設(shè)置

    CANoe控制面板的應(yīng)用

    CANoe控制面板的應(yīng)用說明。
    發(fā)表于 04-20 16:17 ?32次下載

    廢棄的控制面板開源分享

    電子發(fā)燒友網(wǎng)站提供《廢棄的控制面板開源分享.zip》資料免費(fèi)下載
    發(fā)表于 11-16 11:15 ?0次下載
    廢棄的<b class='flag-5'>控制面板</b>開源分享

    伺服控制面板開源分享

    電子發(fā)燒友網(wǎng)站提供《伺服控制面板開源分享.zip》資料免費(fèi)下載
    發(fā)表于 12-09 15:39 ?0次下載
    伺服<b class='flag-5'>控制面板</b>開源分享

    基于樹莓的家庭自動(dòng)化控制面板

    方案介紹我想構(gòu)建個(gè)低于 300 美元的解決方案控制面板,用于在家中處理我的 Arduino 設(shè)備。最初我研究了 iPad 支架,但后來它使用 Linux、Raspbian 和使用觸摸屏的 Web
    發(fā)表于 12-14 17:14 ?0次下載

    松下KAIROS控制面板的使用體驗(yàn)

    本期,來自松下的高級(jí)銷售專員Keith Vidger將為大家分享松下KAIROS控制面板的使用體驗(yàn)與實(shí)際操作中的重要性。
    的頭像 發(fā)表于 09-19 10:14 ?439次閱讀

    松下KAIROS控制面板選項(xiàng)的使用教程與技巧

    本期,來自松下的高級(jí)銷售工程師Keith Vidger將為大家分享松下KAIROS控制面板選項(xiàng)的使用教程與技巧。
    的頭像 發(fā)表于 09-19 10:17 ?523次閱讀
    RM新时代网站-首页