資料介紹
描述
hackster.io 和其他 Maker 網站上有很多車庫門監控項目。我想要一個可擴展的項目,可以在此基礎上構建,用于未來的 IOT 項目。另外,我想要一個有據可查且得到良好支持的平臺。Adafruit 為 Makers 提供的云服務adafruit.io符合要求。
此外,我的動力來自個人需要。我的好鄰居經常在深夜打電話提醒我車庫門是開著的;-)
這在很大程度上受到Todd Treece 為 Adafruit的Adafruit IFTTT Door Detector項目以及reddit 上提到的其他工作的啟發和基礎,并進行了一些代碼調整和附加組件。
該項目與 Adafruit IFTTT Door Detector 的區別:
- GarageDoorMon 不使用電池,由 5V 壁式適配器供電;您需要從門上連接一根長電線,并將 Feather Huzzah 放置在電源附近
- 邏輯相反,當車庫門打開時向 adafruit.io 發送“1”,關閉時發送“0”(SHUT)
- 補充:樹莓派零W運行系統服務來監控門的狀態,顯示在4位顯示器上
- 不需要 IFTTT!當然,您可以根據需要使用它,添加或替代。
- pi 零 W 使用 MQTT 通過 python 客戶端代碼直接從 adafruit.io 訂閱源訂閱。
概述
Adafruit Feather Huzzah 通過磁性開關檢查車庫門是否打開/關閉,然后將當前狀態發送到 adafruit.io 提要。在屋內,帶有 4 位 alpha 顯示屏的 Raspberry Pi Zero W 通過 MQTT 訂閱源并顯示當前狀態。您還可以從 IFTTT 在手機上收到通知。
成本
有兩個版本:
選項 1:大約 20 美元,構建一個 Adafruit Huzzah 狀態檢查器并使用 IFTTT 將通知發送到您的手機(免費,需要注冊)
選項 2:約 40 美元(包括選項 1 成本),構建選項 1,并添加一個帶有 Raspberry Pi 零 W 的 LED 狀態顯示器
困難
簡單的。大約 2-3 小時,具體取決于選項。
過程
- 如果您沒有,請注冊一個 adafruit.io 帳戶;為車庫門創建提要
- 從 github 下載 GarageDoorMonitor.ino
- 焊接 Huzzah 并個性化/上傳草圖GarageDoorMonitor.ino和 config.h
- 用磁性開關連接車庫門并測試進料是否正常工作
- 設置 IFTTT 以監控提要
- 下載最新的 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 并啟動項目。創建一個名為 GarageDoor 的提要。
Adafruit 項目安裝在室內門框上,由電池供電。我的車庫門框上有傳感器,開關上有長電線,可將 Huzzah 定位在 5V 壁式電源附近。門打開時將傳感器安裝在車庫門上,傳感器與其磁鐵對齊。
這是如何工作的!
當遠離磁鐵時,磁性開關/傳感器為 NO(“常開”)。當磁鐵足夠靠近時,開關將“閉合”。Adafruit Door Detector post 預計敞開的門將是罕見的事件。如果門關閉,Adafruit Arduino 代碼不會發出任何通知!
Adafruit 的代碼
2020 年 9 月 2 日更新:
截至 2020 年 7 月,Adafruit 已更新其訪問 adafruit.io的安全“指紋” 。此更新包含在Adafruit IO Arduino庫中,由 Arduino IDE 的管理庫部分提供。您至少需要安裝 3.7.0 版。
下面討論代碼是如何按照文章中所寫的那樣工作的。我的代碼不同,它反轉了邏輯,因此低電平(連接到 GND/閉合開關)被發送到 Huzzah 引腳以打開門!
Huzzah 如何檢測打開或關閉的門?魔法!
嗯,抵抗的魔力。磁性開關連接到 GND 和一個被顯著電阻(10K 歐姆)“拉高”到 +V 的引腳。如果開關閉合(在有磁鐵的情況下),則 GND 側的電阻幾乎為零,但引腳側的電阻很高。使用阻力最小的路徑,這將注冊為“低”條件并且沒有通知。
但!如果門打開,傳感器被拉離磁鐵,則 GND 側的電阻幾乎可以認為是“無限的”。由于引腳側的電阻(與 +V 相關)為1 ,但小于無窮大,因此這記錄為“高”狀態。door_open(并且只有 door_open)的代碼運行,并且向 adafruit.io 提供了一個提要。
有關更多信息,請參閱關于上拉/下拉電阻器的出色 Adafruit教程。
我的構建存在問題 - 即使在代碼中設置了上拉電阻,值仍然保持浮動。我在原型板上使用了一個由 10K 歐姆和 100 歐姆電阻組成的外部上拉電阻網絡——修復了這個問題!Adafruit 代碼還使用了一個小技巧來定期運行。所有功能代碼都在 void setup 例程中 - 主循環沒有代碼!通過連接到 Huzzah 上的 RST 引腳,設置例程根據SLEEP_LENGTH變量的值(以秒為單位)重置(默認為 3 秒)。每次運行重置時都會運行設置例程 - 無需循環代碼!
我的代碼 - 與 Adafruit這個車庫監視器的區別:
- 使用墻壁電源而不是電池運行 - 沒有 Adafruit 版本中的電池充電檢查代碼
- 從 void 循環連續運行,不按時間間隔重置
- 當“狀態”(OPEN/SHUT)改變時發送一個新的 feed 值
如果您有一個免費的 Adafruit 帳戶,您應該監控您的喂食率 - 最多 10 次喂食,每分鐘 30 次喂食。當您僅發送狀態更改的提要時,提要速率要低得多。
為什么我在代碼中更改了門邏輯?簡單 - 打開時開關會更靠近電源,需要更少的電線來連接它。使用文章中的Arduino 代碼部分設置和加載 Huzzah,但從 github 加載 Garage_Door_Monitor.ino 草圖及其所需的 config.h 文件。不要忘記!為您的 adafruit.io 用戶名和密鑰更改config.h文件,并提供您的 wifi SSID 和密碼。
將磁鐵和傳感器小心地放在車庫門上。您希望磁鐵和傳感器在觸發時水平對齊,相距約 6 毫米。將傳感器放在門的固定部分,將磁鐵放在移動門本身上。操作門時請注意不要有障礙物,以免磁鐵脫落。按照 Adafruit 文章接線部分中的說明設置您的 Huzzah :
- 針 13到門傳感器的一側
- GND到門磁對面
我將母跳線焊接到長線上。要連接到 Huzzah,請使用公對母跳線 - 母對 Huzzah,公對長線。通過操作門并從網頁監控您的 adafruit.io 提要來測試它
當 Huzzah 和 adafruit.io 一起工作時,按照說明將IFTTT 設置到 adafruit.io。Adafruit 文章發送了一封電子郵件。下圖顯示了如何向手機發送通知:
選項 2
第 1 步:Raspbian Stretch Lite
- 下載 Debian Stretch Lite
- 安裝到micro sd卡。這是一套很好的說明。
- 需要將兩個文件添加到新的 sd 映像卡上的 /boot 目錄中。
在 Windows 上,創建一個名為 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)
- 本地化選項
- 高級選項 - 擴展文件系統
完成配置后,重啟。當您重新登錄時,更新軟件包并設置 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 下創建一個新目錄。此 GarageDoorMon 目錄包含此項目所需的所有資產,包括設置腳本和代碼。做:
sudo shutdown -h now
第 2 步:顯示和系統服務
按照 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 (紫線)。
- 如果有Vi2c或IO引腳,也將其連接到 3.3V
備用電源。
從連接到樹莓派零 W 的終端,運行以下命令:
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,直到數據饋送發生變化。之后,稍有延遲,它應該會顯示當前狀態 - SHUT/OPEN。
更新:2019 年 12 月 15 日
在顯示屏上添加了一個可選的蜂鳴器,當首次收到 OPEN 狀態時會發出三聲蜂鳴聲。蜂鳴器腳本中有一個默認的“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
- Pi Skype監視器開源分享
- 無線串口監視器開源分享
- 蜂窩連接的蜂巢監視器開源分享
- 樹莓派監視器開源項目
- 管道監視器開源設計
- CPU和RAM使用監視器開源分享
- 模擬讀取串行監視器開源硬件
- Blynk車庫門監視器/開啟器
- 工廠監視器(傳感器到前端)開源分享
- 城市花園監視器開源分享
- 小馬駒監視器開源分享
- 車庫MC(監視器和控制器)開源分享
- 健康監視器開源分享
- OctoPrint打印監視器開源分享
- 電源監視器開源項目
- 典型電池監視器電路圖分享 605次閱讀
- 簡單的電池監視器電路圖 558次閱讀
- 如何創建自定義監視器? 517次閱讀
- 光纖應用中的監視器校準 881次閱讀
- 如何通過Raspberry Pi設置CE電流監視器 2124次閱讀
- ISL28022數字功率監視器評估套件及相關基礎知識 2967次閱讀
- Cypress懷孕監視器CY8C38系列的性能特性及應用方案 2355次閱讀
- KUKA C4如何使用診斷監視器? 3596次閱讀
- 具監視器的800mA單電阻器堅固型線性穩壓器LT3089 1123次閱讀
- 單片機PIC16的外設--故障保護時鐘監視器解析 1944次閱讀
- 揭秘液晶顯示器和液晶監視器的七大不同點 2091次閱讀
- 鋰離子電池和穩壓器監視器電路圖 1767次閱讀
- 基于LTC2991系統監視器的相對濕度測量 1934次閱讀
- 液晶監視器的選購與保養 1022次閱讀
- 120Hz+全高清LCD監視器新技術應用解析 1335次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多