更新文章: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
,我将不胜感激。