電子發(fā)燒友App

硬聲App

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

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

3天內不再提示
創(chuàng)作
電子發(fā)燒友網>電子資料下載>電子資料>車庫門監(jiān)視器開源分享

車庫門監(jiān)視器開源分享

2023-06-16 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

hackster.io 和其他 Maker 網站上有很多車庫門監(jiān)控項目。我想要一個可擴展的項目,可以在此基礎上構建,用于未來的 IOT 項目。另外,我想要一個有據可查且得到良好支持的平臺。Adafruit 為 Makers 提供的云服務adafruit.io符合要求。

此外,我的動力來自個人需要。我的好鄰居經常在深夜打電話提醒我車庫門是開著的;-)

這在很大程度上受到Todd Treece 為 Adafruit的Adafruit IFTTT Door Detector項目以及reddit 上提到的其他工作的啟發(fā)和基礎,并進行了一些代碼調整和附加組件。

這篇文章以較長的形式出現,討論“創(chuàng)客之旅”。

該項目與 Adafruit IFTTT Door Detector 的區(qū)別:

  • GarageDoorMon 不使用電池,由 5V 壁式適配器供電;您需要從門上連接一根長電線,并將 Feather Huzzah 放置在電源附近
  • 邏輯相反,當車庫門打開時向 adafruit.io 發(fā)送“1”,關閉時發(fā)送“0”(SHUT)
  • 補充:樹莓派零W運行系統(tǒng)服務來監(jiān)控門的狀態(tài),顯示在4位顯示器上
  • 不需要 IFTTT!當然,您可以根據需要使用它,添加或替代。
  • pi 零 W 使用 MQTT 通過 python 客戶端代碼直接從 adafruit.io 訂閱源訂閱。

概述

Adafruit Feather Huzzah 通過磁性開關檢查車庫門是否打開/關閉,然后將當前狀態(tài)發(fā)送到 adafruit.io 提要。在屋內,帶有 4 位 alpha 顯示屏的 Raspberry Pi Zero W 通過 MQTT 訂閱源并顯示當前狀態(tài)。您還可以從 IFTTT 在手機上收到通知。

成本

有兩個版本:

選項 1:大約 20 美元,構建一個 Adafruit Huzzah 狀態(tài)檢查器并使用 IFTTT 將通知發(fā)送到您的手機(免費,需要注冊)

選項 2:約 40 美元(包括選項 1 成本),構建選項 1,并添加一個帶有 Raspberry Pi 零 W 的 LED 狀態(tài)顯示器

困難

簡單的。大約 2-3 小時,具體取決于選項。

過程

  • 如果您沒有,請注冊一個 adafruit.io 帳戶;為車庫門創(chuàng)建提要
  • 從 github 下載 GarageDoorMonitor.ino
  • 焊接 Huzzah 并個性化/上傳草圖GarageDoorMonitor.ino和 config.h
  • 用磁性開關連接車庫門并測試進料是否正常工作
  • 設置 IFTTT 以監(jiān)控提要
  • 下載最新的 Raspbian 并安裝在 pi zero W 上
  • 在 pi 零 W 上,git clone GarageDoorMon 并安裝其他軟件(尤其是 Adafruit Python LED Backpack)

建造它!

選項1

使用 Adafruit 文章Using IFTTT with Adafruit.IO to Make an IOT Door Detector up 通過 Adafruit IO 設置部分。通過鏈接,這將引導您完成注冊 adafruit.io 并啟動項目。創(chuàng)建一個名為 GarageDoor 的提要。

?
?
?
?
poYBAGOYIMCABsLtAAo8NqrWPYc351.jpg
?
1 / 2 ?安裝在車庫導軌上的磁性開關
?

硬件

Adafruit 項目安裝在室內門框上,由電池供電。我的車庫門框上有傳感器,開關上有長電線,可將 Huzzah 定位在 5V 壁式電源附近。打開時將傳感器安裝在車庫門上,傳感器與其磁鐵對齊

這是如何工作的!

遠離磁鐵時,磁性開關/傳感器為 NO(“常開”)。當磁鐵足夠靠近時,開關將“閉合”。Adafruit Door Detector post 預計敞開的門將是罕見的事件。如果門關閉,Adafruit Arduino 代碼不會發(fā)出任何通知!

Adafruit 的代碼

2020 年 9 月 2 日更新:

截至 2020 年 7 月,Adafruit 已更新其訪問 adafruit.io的安全“指紋” 。此更新包含在Adafruit IO Arduino庫中,由 Arduino IDE 的管理庫部分提供。您至少需要安裝 3.7.0 版。

下面討論代碼是如何按照文章中所寫的那樣工作的。我的代碼不同,它反轉了邏輯,因此低電平(連接到 GND/閉合開關)被發(fā)送到 Huzzah 引腳以打開門!

Huzzah 如何檢測打開或關閉的門?魔法!

嗯,抵抗的魔力。磁性開關連接到 GND 和一個被顯著電阻(10K 歐姆)“拉高”到 +V 的引腳。如果開關閉合(在有磁鐵的情況下),則 GND 側的電阻幾乎為零,但引腳側的電阻很高。使用阻力最小的路徑,這將注冊為“低”條件并且沒有通知。

但!如果門打開,傳感器被拉離磁鐵,則 GND 側的電阻幾乎可以認為是“無限的”。由于引腳側的電阻(與 +V 相關)為1 ,但小于無窮大,因此這記錄為“高”狀態(tài)。door_open(并且只有 door_open)的代碼運行,并且向 adafruit.io 提供了一個提要。

?
pYYBAGOYIMOAFH4CAAAR9JYA20w908.png
外部上拉接線,圖片:Adafruit
?

有關更多信息,請參閱關于上拉/下拉電阻器的出色 Adafruit教程。

我的構建存在問題 - 即使在代碼中設置了上拉電阻,值仍然保持浮動。我在原型板上使用了一個由 10K 歐姆和 100 歐姆電阻組成的外部上拉電阻網絡——修復了這個問題!Adafruit 代碼還使用了一個小技巧來定期運行。所有功能代碼都在 void setup 例程中 - 主循環(huán)沒有代碼!通過連接到 Huzzah 上的 RST 引腳,設置例程根據SLEEP_LENGTH變量的值(以秒為單位)重置(默認為 3 秒)。每次運行重置時都會運行設置例程 - 無需循環(huán)代碼!

我的代碼 - 與 Adafruit這個車庫監(jiān)視器的區(qū)別:

  • 使用墻壁電源而不是電池運行 - 沒有 Adafruit 版本中的電池充電檢查代碼
  • 從 void 循環(huán)連續(xù)運行,不按時間間隔重置
  • 當“狀態(tài)”(OPEN/SHUT)改變時發(fā)送一個新的 feed 值

如果您有一個免費的 Adafruit 帳戶,您應該監(jiān)控您的喂食率 - 最多 10 次喂食,每分鐘 30 次喂食。當您發(fā)送狀態(tài)更改的提要時,提要速率要低得多。

為什么我在代碼中更改了門邏輯?簡單 - 打開時開關會更靠近電源,需要更少的電線來連接它。使用文章中的Arduino 代碼部分設置和加載 Huzzah,但從 github 加載 Garage_Door_Monitor.ino 草圖及其所需的 config.h 文件。不要忘記!為您的 adafruit.io 用戶名和密鑰更改config.h文件,并提供您的 wifi SSID 和密碼。

將磁鐵和傳感器小心地放在車庫門上。您希望磁鐵和傳感器在觸發(fā)時水平對齊,相距約 6 毫米。將傳感器放在門的固定部分,將磁鐵放在移動門本身上。操作門時請注意不要有障礙物,以免磁鐵脫落。按照 Adafruit 文章接線部分中的說明設置您的 Huzzah :

  • 針 13到門傳感器的一側
  • GND到門磁對面

我將母跳線焊接到長線上。要連接到 Huzzah,請使用公對母跳線 - 母對 Huzzah,公對長線。通過操作門并從網頁監(jiān)控您的 adafruit.io 提要來測試它

當 Huzzah 和 adafruit.io 一起工作時,按照說明將IFTTT 設置到 adafruit.io。Adafruit 文章發(fā)送了一封電子郵件。下圖顯示了如何向手機發(fā)送通知:

?
?
?
?
pYYBAGOYIMiAZ1CQAAB7hV8hBIE977.png
?
1 / 7 ? IFTTT - 選擇 IF 觸發(fā)服務
?

選項 2

第 1 步:Raspbian Stretch Lite

在 Windows 上,創(chuàng)建一個名為 ssh 的空文件和一個名為 wpa_supplicant.conf 的文件,其內容如下所示(第二個框)。

對于 Linux/Mac:

sudo touch ssh   
sudo nano wpa_supplicant.conf

對于 Windows/Linux/Mac,輸入并保存以下內容,將 ssid 和 psk 更改為路由器的 ssid 和密碼:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev   
update_config=1   
country=US   
network={   
ssid="Your network SSID"   
psk="Your WPA/WPA2 security key"   
key_mgmt=WPA-PSK   
}

配置 Raspbian 后,無頭運行(無顯示器/鍵盤/鼠標) - 將 SD 卡插入您的 pi 并打開電源。等待幾分鐘讓 pi 完全啟動。如果您運行的是 Windows,請下載 putty 終端模擬以使用 SSH 連接到 pi。您應該能夠從路由器的網頁中找到 IP 地址。并且,從 Mac/Linux 終端通過 SSH 登錄:

ssh "192.168.0.xxx" -l pi

其中“192.168.0.xxx”=您的 pi 的 IP 地址(不帶引號)。默認密碼是覆盆子。確保在第一次登錄時更改它。您還應該通過以下方式配置其他設置:sudo raspi-config

  • 網絡選項/主機名(我將主機命名為 GarageMon)
  • 本地化選項
  • 高級選項 - 擴展文件系統(tǒng)

完成配置后,重啟。當您重新登錄時,更新軟件包并設置 git:

sudo apt-get update
sudo apt-get upgrade # This step takes a long time!   
sudo apt-get install git-core   
git clone http://github.com/thisoldgeek/GarageDoorMon

克隆這個 github 存儲庫將在 /home/pi/GarageDoorMon 下創(chuàng)建一個新目錄。此 GarageDoorMon 目錄包含此項目所需的所有資產,包括設置腳本和代碼。做:

sudo shutdown -h now

第 2 步:顯示和系統(tǒng)服務

按照 Adafruit 上的說明焊接 4 位 AlphaNumeric 顯示屏。Adafruit 在這里有一個接線圖。關閉電源后,安裝顯示器的電線:

  • 將display +(電源)連接Raspberry Pi 3.3V 或 5V 電源(紅線)。5V 更亮,但如果 I2C 總線上有其他設備,最好使用 3.3V
  • 顯示器 -(接地)連接Raspberry Pi 接地(黑線)。
  • 顯示器 D(數據/SDA)連接到Raspberry Pi SDA (橙色線)。
  • 顯示器 C(時鐘/SCL)連接到Raspberry Pi SCL (紫線)。
  • 如果有Vi2cIO引腳,也將其連接到 3.3V

備用電源。

從連接到樹莓派零 W 的終端,運行以下命令:

  • 按照 Adafruit使用說明安裝 14 段顯示器的軟件 - 向下滾動一點以找到示例腳本 (alphanum4_test.py) 以測試 14 段字母數字顯示器下的顯示器
git clone http://github.com/thisoldgeek/GarageDoorMon
cd ~/GarageDoorMon
  • 使用 pi 上的 nano 編輯器為您的 adafruit.io 用戶名和密鑰修改garage_mon.py;python3garage_mon.py 運行它,它應該顯示 STRT
chmod +x garage_mon.py
sudo cp garage_mon_service.txt  /etc/systemd/system/gmon.service
sudo chmod 644 /etc/systemd/system/gmon.service 
sudo systemctl enable gmon

顯示屏最初將顯示 STRT,直到數據饋送發(fā)生變化。之后,稍有延遲,它應該會顯示當前狀態(tài) - SHUT/OPEN。

更新:2019 年 12 月 15 日

在顯示屏上添加了一個可選的蜂鳴器,當首次收到 OPEN 狀態(tài)時會發(fā)出三聲蜂鳴聲。蜂鳴器腳本中有一個默認的“quiet_time”功能 - 在您設置的時間之間,蜂鳴器不會響起,目前在 21:00 和 09:00 之間。

新的 Python 腳本名為garage_mon_buzzer.py。下載這個腳本并像這樣復制它:

cd ~/GarageDoorMon 
sudo cp garage_mon_buzzer.py garage_mon.py
# Add the library: 
sudo apt-get install python-rpi.gpio python3-rpi.gpio

記住!復制后更改garage_mon.py 中的用戶名和AIO_Key。

使用有源壓電蜂鳴器,連接母對母跳線:

  • +/正極(通常是較長的引腳)到 BCM 引腳 17
  • -/負(較短的引腳)到 GND
sudo systemctl restart gmon # Restart the service

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費