我爱编程

结合树莓派和Javascript的家庭自动设计

2017-09-05  本文已影响308人  玩转树莓派

结合树莓派和Javascript的家庭自动设计

链接到视频

https://youtu.be/wh0OoLUTeM8 墙内的同学看不了

介绍

自从我还是个一个孩子以来,就一直热衷于电子化和不同种类的电子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温度传感器测量。布线如下:

新想法

我开放了关于不同模块的各种想法。如果您有一些想法,如果您将其添加到问题跟踪器并将其标记为,我将非常欣赏

你的Idea。

软件依赖

Node&Npm

Pi-Blaster

WiringPi库

LIRC

上一篇下一篇

猜你喜欢

热点阅读