更新文章:https://viktorkirilov.me/post/home-automation-raspberry-pi/
https://youtu.be/wh0OoLUTeM8
從小我就對電子和不同類型的機制充滿熱情。之前我用 arduino 做過不同的小項目,例如遊戲方向盤的手煞車、汽車的客製化 LED 轉速計(請參閱我的 github 儲存庫)、語音控制 LED 等等。最近,我購買了 Raspberry PI 3,並圍繞所有物聯網炒作,我決定開始自動化我的家庭。
由於我非常熟悉 javascript 及其生態系統,我決定透過react native
創建自己的手機應用程序,並透過websockets
將其連接到NodeJS
後端。我使用 ImmutableJS 的記錄來保持資料結構和應用程式效能的一致性。資料透過 JSON 字串在客戶端和伺服器之間傳送,當雙方收到時,這些資料將轉換回不可變記錄。我已將共用模組(客戶端和伺服器之間)分離到單獨的本機 npm 套件 - home-records 和 home-config。對於 GPIO 控制(樹莓派的引腳),我使用了pi-blaster
庫以及wiringPi
。由於我找不到我的AC的程式碼,我自己記錄了它們並將它們新增到lirc
設定檔中。 Duckdns
cron 用作動態 dns,因為我的 IP 位址會定期更改,因此我不必每次都重新編譯整個應用程式或更改配置。伺服器將更改即時廣播給所有連接的用戶。電話應用程式位於/phone-app資料夾中,伺服器位於/server中。為什麼不看看呢?
Raspberry Pi 3
是控制單元。高功率設備,例如 LED 燈帶,透過外部12V 5A power supply
(與 PI 共用地)供電。空調透過 950nm 紅外線 LED 進行控制。加熱系統透過繼電器(開啟和關閉)和恆溫器伺服系統進行接線,因為我避免拆卸。白光 LED 燈帶和 RGB 燈帶均透過IRLZ34N
邏輯電晶體連接到 PI。還有紅外線接收器,以防萬一我想錄製其他內容。溫度透過 DS18B20 溫度感測器測量。
接線如下:
我對關於不同模組的各種想法持開放態度。如果您有一些想法,如果您將其添加到問題追蹤器中並將其標記為Idea
,我將不勝感激。