結合樹莓派和Javascript的家庭自動設計

weixin_34391445發表於2017-09-05

結合樹莓派和Javascript的家庭自動設計

7527052-978bb94934b9fc92

連結到視訊

https://youtu.be/wh0OoLUTeM8 牆內的同學看不了

7527052-492b9d5697f3b390

介紹

自從我還是個一個孩子以來,就一直熱衷於電子化和不同種類的電子DIY。以前我用arduino做了一些其他的小型專案,像我的遊戲方向盤,還有我給我的車定製的LED轉速錶,語音控制LED等。最近我買了Raspberry PI 3和一些物聯網開發的套件,於是我決定開始自動化我的家。

技術棧

由於我非常熟悉javascript及其生態系統,所以決定通過自己的手機應用程式建立自己的手機應用程式react native,並將其連線websockets到NodeJS後臺。我使用ImmutableJS的記錄來保持資料結構的一致性和應用程式的效能。資料通過JSON字串在客戶端和伺服器之間傳送,當雙方收到時,它們將被轉換回到不可變記錄。我將共享模組(客戶端和伺服器之間)分離到單獨的本地npm軟體包 - home記錄和home-config。對於GPIO的控制(樹莓派的引腳),我結合pi-blaster並一起使用了wiringPi的庫。由於我找不到我的AC程式碼,於是我自己記錄之後,並將它們新增到lirc配置檔案中。Duckdnscron被用作動態dns,因為我的IP地址定期更改,我不需要每次重新編譯整個應用程式或更改配置。伺服器實時向所有連線的使用者廣播(應當譯為傳送)更改。手機應用程式位於/ phone-app資料夾中,伺服器位於/ server中。

https://github.com/deepsyx/home-automation

這裡是專案地址

硬體

Raspberry Pi 3

是控制單元。大功率器件(如LED條)通過外部12V 5A power supply(與PI共享接地)供電。AC通過950nm紅外LED控制。加熱系統通過繼電器(開和關)連線,舵機用於恆溫器。兩個白色LED和所述RGB經由連線IRLZ34N邏輯電晶體的PI。還有IR接收器,以防萬一我想記錄任何其他東西。溫度通過DS18B20溫度感測器測量。佈線如下:

7527052-cc4dd1cf98afbde2

新想法

我開放了關於不同模組的各種想法。如果您有一些想法,如果您將其新增到問題跟蹤器並將其標記為,我將非常欣賞

你的Idea。

軟體依賴

Node&Npm

Pi-Blaster

WiringPi庫

LIRC

相關文章