精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用樹莓派DIY一個門禁報警控制面板

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

這個項目是一個DIY觸摸屏面板,用于布防/解除HomeAssistant的報警系統。它由RaspberryPi、3.5英寸觸摸屏顯示器、基于Python的自定義應用程序和MQTT提供支持。

本文將引導您完成項目的創建,并提供創建您自己的項目所需的一切!

家庭助理

HomeAssistant是一個了不起的開源家庭自動化平臺。它的眾多功能之一是能夠實現您自己的家庭安全警報系統。然后,您可以使用各種傳感器來確定是否/何時觸發警報。

就我而言,我的所有外門上都有幾個Z-Wave門傳感器。如果在警報激活時任何門打開,我會在手機電腦上收到即時推送通知。最終,我將把它擴展到包括運動傳感器和警報器。

雖然這工作正常,但布防/撤防設備的唯一方法是通過Web界面。不幸的是,手動警報沒有一個API接口,我們可以使用它來發送布防/撤防命令,同時還可以從HA接收即時狀態更改。

因此,我創建了新的手動MQTT警報組件,其功能與手動警報相同,但也允許通過MQTT進行雙向通信!有了這個組件,我們可以使用我們可以想象的任何網絡連接平臺輕松構建自己的遠程鍵盤。就我而言,我選擇使用帶有觸摸屏的RaspberryPi構建解決方案。

硬件

至少,您需要以下組件:

樹莓派

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

微型SD

用于供電的MicroUSB電纜

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

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

準備HomeAssistant和MQTT

HomeAssistantv0.50添加了我們需要使用的新alarm.manual_mqtt組件。這依賴于MQTT平臺的啟動和運行,因此請確保首先執行此操作。

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

pYYBAGJEGcuAHI_2AAAaqD91ZYM068.png

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

準備樹莓派

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

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

注意:此項目不需要X桌面環境,因為軟件直接繪制到屏幕的幀緩沖區。如果您按照上一個鏈接中的說明進行操作,只需跳過任何引用X11的部分。

此時,您的TFT上應該會出現一個功能齊全的LinuxCLI!

poYBAGJEGceAZI4aAAPMuXKMMZk101.png

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

現在我們可以在Pi上安裝報警面板軟件了!

軟件

要安裝它,請使用Git將存儲庫克隆到某個位置-我選擇了/srv:

pYYBAGJEGcOAUnQuAAA0862hw84558.png

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

PINS-您想使用的4位密碼的逗號分隔列表。

MQTT_HOST-MQTT服務器的IP或主機名

MQTT_USER-MQTT的用戶名

MQTT_PASS-MQTT對應的密碼

您現在可以運行該程序:

pYYBAGJEGbyAcWvoAAAOP5PnPsw647.png

最后,如果您希望警報面板在啟動時啟動,請將以下內容添加到您的rc.local文件(exit0行上方):

pYYBAGJEGbeAAcNrAAAPGypU7Ps884.png

可選運動傳感器/屏幕保護程序

為了最大限度地延長顯示器的使用壽命,可以使用PIR運動傳感器在無人時自動關閉顯示器。PiTFT顯示器在其底部方便地暴露了GPIO引腳,因此只需進行以下連接:

直流至5v

GND到地

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

poYBAGJEGbKAZx78AAQ8PTYn0SY614.png

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

PIR_GPIO_PIN=23

(如果您的控制面板已經在運行,那么您需要在進行此更改后重新啟動它。)

用法

應用程序啟動后,顯示器應自動連接到MQTT。

poYBAGJEGa6AETDQAALVgHYbXH8857.png

每當HomeAssistant中的鬧鐘狀態發生變化時,它都會通過MQTT自動將新狀態實時推送到顯示屏上。

要通過報警面板更改報警狀態,您必須先按相應的數字鍵輸入有效的PIN碼。如果您不小心按錯了按鈕,只需點擊被屏蔽的輸入、#鍵或*鍵即可清除您的輸入。

輸入有效的PIN將解鎖按鈕以更改狀態:

解除“武裝”

離開

按下其中任何一個都會通過MQTT向HomeAssistant發送命令以進行相應的更改。

底層-創建UI和應用程序

設計UI相當簡單。使用Photoshop,我創建了一個新的480x320工作區,并將其劃分為相等單位的網格,以確保按鈕的大小和對齊方式正確:

poYBAGJEGaiAdpWFAAG0vqjoUbA765.png

然后將每個按鈕及其不同狀態提取到PNG。

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

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

默認

按下

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

默認(禁用)

激活(警報系統的當前狀態)

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

甚至顯示當前屏蔽PIN的框也被繪制為帶有狀態的“按鈕”:

默認(沒有輸入)

輸入了1個號碼

輸入2個數字

輸入3個數字

輸入4個數字,PIN有效

輸入4個數字,PIN不正確

每個按鈕狀態都有自己的圖像-我們只需跟蹤當前狀態并根據需要在圖像之間切換。

應用程序本身運行一個簡單的事件循環——在每次迭代中,我們通過MQTT檢查屏幕觸摸或傳入狀態更改。UI狀態也會根據需要重新繪制。為了防止CPU以100%的速度運行并產生過多的熱量,我們還睡眠了很短的一段時間。

一旦輸入正確的PIN,操作按鈕就會解鎖。當按下未鎖定的操作按鈕時,我們會立即通過MQTT向HomeAssistant發出命令,以相應地更改警報狀態。

外殼

每個DIY項目都需要一個外殼,因此我嘗試設計一個定制的3D打印外殼來容納我的控制面板和PIR傳感器:

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

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

支柱可能更堅固。

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

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

設計非?;A(我不是設計師)。

由于這些原因,我將來可能會重新設計這個案例,但現在它已經足夠滿足我的需要了:)

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

poYBAGJEGaKAASU4AAYEiHJa6mU652.png

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

pYYBAGJEGZ2ADCwEAAQefA14QG4756.png

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 報警系統
    +關注

    關注

    5

    文章

    644

    瀏覽量

    74968
  • 面板
    +關注

    關注

    13

    文章

    1657

    瀏覽量

    53645
  • 樹莓派
    +關注

    關注

    116

    文章

    1679

    瀏覽量

    105250
收藏 人收藏

    評論

    相關推薦

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

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

    pcb 控制面板

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

    AllJoyn核心應用教程:Base Services服務之控制面板

    的UI進行動態渲染。控制面板服務抽象化了AllJoyn控制面板接口的細節,從而使其能夠調用更高級別的API以及代碼生成器,從而創建組件元素。控制
    發表于 09-21 10:40

    怎么實現基于msp430和電容式觸控技術的門禁控制面板電路設計?

    怎么實現基于msp430和電容式觸控技術的門禁控制面板電路設計?
    發表于 06-16 08:20

    數碼印像機的控制面板/存儲卡

    數碼印像機的控制面板/存儲卡  控制面板         &n
    發表于 12-23 14:38 ?870次閱讀

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

    Windows電腦中的控制面板往往包含針對系統設置的些高級選項,而微軟已準備逐步將控制面板從系統中移除。但這過程又是循序漸進的,現有系統中既有基于平板設計的設置界面又有傳統的
    的頭像 發表于 03-24 09:17 ?2297次閱讀

    win8控制面板在哪打開?

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

    再見,控制面板,Win10系統終于取消控制面板

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

    nvidia控制面板怎么設置

    在我們日常生活中偶爾會遇到些自己不知道如何解決的問題,比如設置nvidia控制面板。那么我們應該怎樣解決這種自己不知道如何設置nvidia控制面板的情況呢?那么接下來就由我來介紹
    的頭像 發表于 01-22 16:43 ?1.7w次閱讀
    nvidia<b class='flag-5'>控制面板</b>怎么設置

    CANoe控制面板的應用

    CANoe控制面板的應用說明。
    發表于 04-20 16:17 ?32次下載

    廢棄的控制面板開源分享

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

    伺服控制面板開源分享

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

    基于樹莓的家庭自動化控制面板

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

    松下KAIROS控制面板的使用體驗

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

    松下KAIROS控制面板選項的使用教程與技巧

    本期,來自松下的高級銷售工程師Keith Vidger將為大家分享松下KAIROS控制面板選項的使用教程與技巧。
    的頭像 發表于 09-19 10:17 ?219次閱讀