資料介紹
描述
hackster.io 和其他 Maker 網(wǎng)站上有很多車庫門監(jiān)控項(xiàng)目。我想要一個(gè)可擴(kuò)展的項(xiàng)目,可以在此基礎(chǔ)上構(gòu)建,用于未來的 IOT 項(xiàng)目。另外,我想要一個(gè)有據(jù)可查且得到良好支持的平臺。Adafruit 為 Makers 提供的云服務(wù)adafruit.io符合要求。
此外,我的動(dòng)力來自個(gè)人需要。我的好鄰居經(jīng)常在深夜打電話提醒我車庫門是開著的;-)
這在很大程度上受到Todd Treece 為 Adafruit的Adafruit IFTTT Door Detector項(xiàng)目以及reddit 上提到的其他工作的啟發(fā)和基礎(chǔ),并進(jìn)行了一些代碼調(diào)整和附加組件。
這篇文章以較長的形式出現(xiàn),討論“創(chuàng)客之旅”。
該項(xiàng)目與 Adafruit IFTTT Door Detector 的區(qū)別:
- GarageDoorMon 不使用電池,由 5V 壁式適配器供電;您需要從門上連接一根長電線,并將 Feather Huzzah 放置在電源附近
- 邏輯相反,當(dāng)車庫門打開時(shí)向 adafruit.io 發(fā)送“1”,關(guān)閉時(shí)發(fā)送“0”(SHUT)
- 補(bǔ)充:樹莓派零W運(yùn)行系統(tǒng)服務(wù)來監(jiān)控門的狀態(tài),顯示在4位顯示器上
- 不需要 IFTTT!當(dāng)然,您可以根據(jù)需要使用它,添加或替代。
- pi 零 W 使用 MQTT 通過 python 客戶端代碼直接從 adafruit.io 訂閱源訂閱。
概述
Adafruit Feather Huzzah 通過磁性開關(guān)檢查車庫門是否打開/關(guān)閉,然后將當(dāng)前狀態(tài)發(fā)送到 adafruit.io 提要。在屋內(nèi),帶有 4 位 alpha 顯示屏的 Raspberry Pi Zero W 通過 MQTT 訂閱源并顯示當(dāng)前狀態(tài)。您還可以從 IFTTT 在手機(jī)上收到通知。
成本
有兩個(gè)版本:
選項(xiàng) 1:大約 20 美元,構(gòu)建一個(gè) Adafruit Huzzah 狀態(tài)檢查器并使用 IFTTT 將通知發(fā)送到您的手機(jī)(免費(fèi),需要注冊)
選項(xiàng) 2:約 40 美元(包括選項(xiàng) 1 成本),構(gòu)建選項(xiàng) 1,并添加一個(gè)帶有 Raspberry Pi 零 W 的 LED 狀態(tài)顯示器
困難
簡單的。大約 2-3 小時(shí),具體取決于選項(xiàng)。
過程
- 如果您沒有,請注冊一個(gè) adafruit.io 帳戶;為車庫門創(chuàng)建提要
- 從 github 下載 GarageDoorMonitor.ino
- 焊接 Huzzah 并個(gè)性化/上傳草圖GarageDoorMonitor.ino和 config.h
- 用磁性開關(guān)連接車庫門并測試進(jìn)料是否正常工作
- 設(shè)置 IFTTT 以監(jiān)控提要
- 下載最新的 Raspbian 并安裝在 pi zero W 上
- 在 pi 零 W 上,git clone GarageDoorMon 并安裝其他軟件(尤其是 Adafruit Python LED Backpack)
建造它!
選項(xiàng)1
使用 Adafruit 文章Using IFTTT with Adafruit.IO to Make an IOT Door Detector up 通過 Adafruit IO 設(shè)置部分。通過鏈接,這將引導(dǎo)您完成注冊 adafruit.io 并啟動(dòng)項(xiàng)目。創(chuàng)建一個(gè)名為 GarageDoor 的提要。

硬件
Adafruit 項(xiàng)目安裝在室內(nèi)門框上,由電池供電。我的車庫門框上有傳感器,開關(guān)上有長電線,可將 Huzzah 定位在 5V 壁式電源附近。門打開時(shí)將傳感器安裝在車庫門上,傳感器與其磁鐵對齊。
這是如何工作的!
當(dāng)遠(yuǎn)離磁鐵時(shí),磁性開關(guān)/傳感器為 NO(“常開”)。當(dāng)磁鐵足夠靠近時(shí),開關(guān)將“閉合”。Adafruit Door Detector post 預(yù)計(jì)敞開的門將是罕見的事件。如果門關(guān)閉,Adafruit Arduino 代碼不會(huì)發(fā)出任何通知!
Adafruit 的代碼
2020 年 9 月 2 日更新:
截至 2020 年 7 月,Adafruit 已更新其訪問 adafruit.io的安全“指紋” 。此更新包含在Adafruit IO Arduino庫中,由 Arduino IDE 的管理庫部分提供。您至少需要安裝 3.7.0 版。
下面討論代碼是如何按照文章中所寫的那樣工作的。我的代碼不同,它反轉(zhuǎn)了邏輯,因此低電平(連接到 GND/閉合開關(guān))被發(fā)送到 Huzzah 引腳以打開門!
Huzzah 如何檢測打開或關(guān)閉的門?魔法!
嗯,抵抗的魔力。磁性開關(guān)連接到 GND 和一個(gè)被顯著電阻(10K 歐姆)“拉高”到 +V 的引腳。如果開關(guān)閉合(在有磁鐵的情況下),則 GND 側(cè)的電阻幾乎為零,但引腳側(cè)的電阻很高。使用阻力最小的路徑,這將注冊為“低”條件并且沒有通知。
但!如果門打開,傳感器被拉離磁鐵,則 GND 側(cè)的電阻幾乎可以認(rèn)為是“無限的”。由于引腳側(cè)的電阻(與 +V 相關(guān))為1 ,但小于無窮大,因此這記錄為“高”狀態(tài)。door_open(并且只有 door_open)的代碼運(yùn)行,并且向 adafruit.io 提供了一個(gè)提要。

有關(guān)更多信息,請參閱關(guān)于上拉/下拉電阻器的出色 Adafruit教程。
我的構(gòu)建存在問題 - 即使在代碼中設(shè)置了上拉電阻,值仍然保持浮動(dòng)。我在原型板上使用了一個(gè)由 10K 歐姆和 100 歐姆電阻組成的外部上拉電阻網(wǎng)絡(luò)——修復(fù)了這個(gè)問題!Adafruit 代碼還使用了一個(gè)小技巧來定期運(yùn)行。所有功能代碼都在 void setup 例程中 - 主循環(huán)沒有代碼!通過連接到 Huzzah 上的 RST 引腳,設(shè)置例程根據(jù)SLEEP_LENGTH變量的值(以秒為單位)重置(默認(rèn)為 3 秒)。每次運(yùn)行重置時(shí)都會(huì)運(yùn)行設(shè)置例程 - 無需循環(huán)代碼!
我的代碼 - 與 Adafruit這個(gè)車庫監(jiān)視器的區(qū)別:
- 使用墻壁電源而不是電池運(yùn)行 - 沒有 Adafruit 版本中的電池充電檢查代碼
- 從 void 循環(huán)連續(xù)運(yùn)行,不按時(shí)間間隔重置
- 當(dāng)“狀態(tài)”(OPEN/SHUT)改變時(shí)發(fā)送一個(gè)新的 feed 值
如果您有一個(gè)免費(fèi)的 Adafruit 帳戶,您應(yīng)該監(jiān)控您的喂食率 - 最多 10 次喂食,每分鐘 30 次喂食。當(dāng)您僅發(fā)送狀態(tài)更改的提要時(shí),提要速率要低得多。
為什么我在代碼中更改了門邏輯?簡單 - 打開時(shí)開關(guān)會(huì)更靠近電源,需要更少的電線來連接它。使用文章中的Arduino 代碼部分設(shè)置和加載 Huzzah,但從 github 加載 Garage_Door_Monitor.ino 草圖及其所需的 config.h 文件。不要忘記!為您的 adafruit.io 用戶名和密鑰更改config.h文件,并提供您的 wifi SSID 和密碼。
將磁鐵和傳感器小心地放在車庫門上。您希望磁鐵和傳感器在觸發(fā)時(shí)水平對齊,相距約 6 毫米。將傳感器放在門的固定部分,將磁鐵放在移動(dòng)門本身上。操作門時(shí)請注意不要有障礙物,以免磁鐵脫落。按照 Adafruit 文章接線部分中的說明設(shè)置您的 Huzzah :
- 針 13到門傳感器的一側(cè)
- GND到門磁對面
我將母跳線焊接到長線上。要連接到 Huzzah,請使用公對母跳線 - 母對 Huzzah,公對長線。通過操作門并從網(wǎng)頁監(jiān)控您的 adafruit.io 提要來測試它
當(dāng) Huzzah 和 adafruit.io 一起工作時(shí),按照說明將IFTTT 設(shè)置到 adafruit.io。Adafruit 文章發(fā)送了一封電子郵件。下圖顯示了如何向手機(jī)發(fā)送通知:

選項(xiàng) 2
第 1 步:Raspbian Stretch Lite
- 下載 Debian Stretch Lite
- 安裝到micro sd卡。這是一套很好的說明。
- 需要將兩個(gè)文件添加到新的 sd 映像卡上的 /boot 目錄中。
在 Windows 上,創(chuàng)建一個(gè)名為 ssh 的空文件和一個(gè)名為 wpa_supplicant.conf 的文件,其內(nèi)容如下所示(第二個(gè)框)。
對于 Linux/Mac:
sudo touch ssh
sudo nano wpa_supplicant.conf
對于 Windows/Linux/Mac,輸入并保存以下內(nèi)容,將 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 后,無頭運(yùn)行(無顯示器/鍵盤/鼠標(biāo)) - 將 SD 卡插入您的 pi 并打開電源。等待幾分鐘讓 pi 完全啟動(dòng)。如果您運(yùn)行的是 Windows,請下載 putty 終端模擬器以使用 SSH 連接到 pi。您應(yīng)該能夠從路由器的網(wǎng)頁中找到 IP 地址。并且,從 Mac/Linux 終端通過 SSH 登錄:
ssh "192.168.0.xxx" -l pi
其中“192.168.0.xxx”=您的 pi 的 IP 地址(不帶引號)。默認(rèn)密碼是覆盆子。確保在第一次登錄時(shí)更改它。您還應(yīng)該通過以下方式配置其他設(shè)置:sudo raspi-config
- 網(wǎng)絡(luò)選項(xiàng)/主機(jī)名(我將主機(jī)命名為 GarageMon)
- 本地化選項(xiàng)
- 高級選項(xiàng) - 擴(kuò)展文件系統(tǒng)
完成配置后,重啟。當(dāng)您重新登錄時(shí),更新軟件包并設(shè)置 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
克隆這個(gè) github 存儲庫將在 /home/pi/GarageDoorMon 下創(chuàng)建一個(gè)新目錄。此 GarageDoorMon 目錄包含此項(xiàng)目所需的所有資產(chǎn),包括設(shè)置腳本和代碼。做:
sudo shutdown -h now
第 2 步:顯示和系統(tǒng)服務(wù)
按照 Adafruit 上的說明焊接 4 位 AlphaNumeric 顯示屏。Adafruit 在這里有一個(gè)接線圖。關(guān)閉電源后,安裝顯示器的電線:
- 將display +(電源)連接到Raspberry Pi 3.3V 或 5V 電源(紅線)。5V 更亮,但如果 I2C 總線上有其他設(shè)備,最好使用 3.3V
- 將顯示器 -(接地)連接到Raspberry Pi 接地(黑線)。
- 將顯示器 D(數(shù)據(jù)/SDA)連接到Raspberry Pi SDA (橙色線)。
- 將顯示器 C(時(shí)鐘/SCL)連接到Raspberry Pi SCL (紫線)。
- 如果有Vi2c或IO引腳,也將其連接到 3.3V
備用電源。
從連接到樹莓派零 W 的終端,運(yùn)行以下命令:
- 按照 Adafruit使用說明安裝 14 段顯示器的軟件 - 向下滾動(dòng)一點(diǎn)以找到示例腳本 (alphanum4_test.py) 以測試 14 段字母數(shù)字顯示器下的顯示器
git clone http://github.com/thisoldgeek/GarageDoorMon
cd ~/GarageDoorMon
- 使用 pi 上的 nano 編輯器為您的 adafruit.io 用戶名和密鑰修改garage_mon.py;用 python3garage_mon.py 運(yùn)行它,它應(yīng)該顯示 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,直到數(shù)據(jù)饋送發(fā)生變化。之后,稍有延遲,它應(yīng)該會(huì)顯示當(dāng)前狀態(tài) - SHUT/OPEN。
更新:2019 年 12 月 15 日
在顯示屏上添加了一個(gè)可選的蜂鳴器,當(dāng)首次收到 OPEN 狀態(tài)時(shí)會(huì)發(fā)出三聲蜂鳴聲。蜂鳴器腳本中有一個(gè)默認(rèn)的“quiet_time”功能 - 在您設(shè)置的時(shí)間之間,蜂鳴器不會(huì)響起,目前在 21:00 和 09:00 之間。
新的 Python 腳本名為garage_mon_buzzer.py。下載這個(gè)腳本并像這樣復(fù)制它:
cd ~/GarageDoorMon
sudo cp garage_mon_buzzer.py garage_mon.py
# Add the library:
sudo apt-get install python-rpi.gpio python3-rpi.gpio
記住!復(fù)制后更改garage_mon.py 中的用戶名和AIO_Key。
使用有源壓電蜂鳴器,連接母對母跳線:
- +/正極(通常是較長的引腳)到 BCM 引腳 17
- -/負(fù)(較短的引腳)到 GND
sudo systemctl restart gmon # Restart the service
- Pi Skype監(jiān)視器開源分享
- 無線串口監(jiān)視器開源分享
- 蜂窩連接的蜂巢監(jiān)視器開源分享
- 樹莓派監(jiān)視器開源項(xiàng)目
- 管道監(jiān)視器開源設(shè)計(jì)
- CPU和RAM使用監(jiān)視器開源分享
- 模擬讀取串行監(jiān)視器開源硬件
- Blynk車庫門監(jiān)視器/開啟器
- 工廠監(jiān)視器(傳感器到前端)開源分享
- 城市花園監(jiān)視器開源分享
- 小馬駒監(jiān)視器開源分享
- 車庫MC(監(jiān)視器和控制器)開源分享
- 健康監(jiān)視器開源分享
- OctoPrint打印監(jiān)視器開源分享
- 電源監(jiān)視器開源項(xiàng)目
- 典型電池監(jiān)視器電路圖分享 814次閱讀
- 簡單的電池監(jiān)視器電路圖 726次閱讀
- 如何創(chuàng)建自定義監(jiān)視器? 656次閱讀
- 光纖應(yīng)用中的監(jiān)視器校準(zhǔn) 1083次閱讀
- 如何通過Raspberry Pi設(shè)置CE電流監(jiān)視器 2342次閱讀
- ISL28022數(shù)字功率監(jiān)視器評估套件及相關(guān)基礎(chǔ)知識 3192次閱讀
- Cypress懷孕監(jiān)視器CY8C38系列的性能特性及應(yīng)用方案 2498次閱讀
- KUKA C4如何使用診斷監(jiān)視器? 3877次閱讀
- 具監(jiān)視器的800mA單電阻器堅(jiān)固型線性穩(wěn)壓器LT3089 1189次閱讀
- 單片機(jī)PIC16的外設(shè)--故障保護(hù)時(shí)鐘監(jiān)視器解析 2072次閱讀
- 揭秘液晶顯示器和液晶監(jiān)視器的七大不同點(diǎn) 2125次閱讀
- 鋰離子電池和穩(wěn)壓器監(jiān)視器電路圖 1807次閱讀
- 基于LTC2991系統(tǒng)監(jiān)視器的相對濕度測量 2063次閱讀
- 液晶監(jiān)視器的選購與保養(yǎng) 1077次閱讀
- 120Hz+全高清LCD監(jiān)視器新技術(shù)應(yīng)用解析 1403次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論