基于树莓派的家庭自动化系统 home-automation

智能家居 3/5 🧩 软硬件结合 已发布
deepsyx 972 Stars 未知 BOM 完整度: 0/5 教程完整度: 0/5
基于树莓派的家庭自动化系统

项目简介

Raspberry Pi 3 based home automation with NodeJS and React Native.


这是一个基于树莓派和JavaScript构建的智能家居自动化开源项目,由开发者deepsyx利用业余时间打造。项目核心解决的是如何用低成本硬件和现代Web技术,实现家庭设备的集中控制与自动化。技术栈上,前端采用React Native开发手机App,后端使用Node.js,两者通过WebSocket实现实时双向通信。数据层引入了ImmutableJS的Record来保证数据结构的一致性和性能,客户端与服务器之间通过JSON交换数据,并共享了名为home-records和home-config的本地npm包。硬件方面,树莓派3作为控制中枢,通过pi-blaster和wiringPi库操控GPIO引脚,连接了多种设备:高功率LED灯带由外部12V 5A电源供电并与树莓派共地;空调通过950nm红外LED控制;供暖系统则通过继电器和舵机分别控制开关与恒温器;白色和RGB LED灯带通过IRLZ34N逻辑晶体管连接;还配备了红外接收器用于录制遥控信号,以及DS18B20温度传感器监测室温。项目还利用DuckDNS的定时任务解决公网IP变化问题,实现远程访问。适用场景包括希望低成本入门智能家居的爱好者、想用JavaScript全栈开发物联网应用的开发者,以及需要灵活定制家庭自动化方案的用户。项目代码结构清晰,分为phone-app和server两个主要目录,并欢迎社区贡献新模块创意。

标签

项目特点

使用React Native开发跨平台手机App,通过WebSocket与服务器实时通信
支持控制多种设备:LED灯带(白色和RGB)、空调、暖气系统
使用ImmutableJS Records保证数据一致性,提升应用性能
前后端共享模块分离为独立npm包(home-records和home-config)
通过pi-blaster和wiringPi库控制GPIO引脚
支持红外遥控学习功能(通过lirc录制空调编码)
集成DuckDNS动态域名解析,适应IP变化
服务器实时广播状态变化给所有连接用户

技术规格

控制单元 Raspberry Pi 3
后端框架 NodeJS
移动端框架 React Native
通信协议 WebSocket
数据格式 JSON(Immutable Records)
GPIO控制 pi-blaster + wiringPi
红外控制 lirc + 950nm红外LED
温度传感器 DS18B20
动态DNS DuckDNS
电源 12V 5A外部电源(与Pi共地)

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
Raspberry Pi 3 1 控制单元
12V 5A电源适配器 1 为高功率设备供电
白色LED灯带 1 通过IRLZ34N逻辑晶体管控制
RGB LED灯带 1 通过IRLZ34N逻辑晶体管控制
950nm红外LED 1 控制空调
红外接收器 1 录制红外信号
继电器模块 1 控制暖气开关
舵机 1 控制暖气恒温器
DS18B20温度传感器 1 测量室温
IRLZ34N逻辑电平MOSFET 2 驱动LED灯带

能力画像

⚪ 记忆与知识检索: 2/5
🔵 逻辑推演: 3/5
⚪ 表达与交流: 1/5
⚪ 感知与观察: 2/5
⚪ 数理与计算: 2/5
🔵 动手与操作: 4/5
⚪ 狂热与坚持: 3/5
⚪ 创造与创新: 3/5

视频

所需技能

🔧 **动手能力**:需要焊接电子元件、连接电路、安装硬件设备,熟悉面包板原型测试 💻 **编程能力**:需要掌握NodeJS后端开发、React Native移动端开发、WebSocket通信、npm包管理 ⚡ **电子电路**:需要理解GPIO控制、MOSFET晶体管驱动、红外信号录制与发射、继电器控制、温度传感器接口

适用场景

智能家居DIY爱好者,希望用JavaScript技术栈构建家庭自动化系统
希望学习Raspberry Pi与NodeJS/React Native结合开发物联网应用
需要远程控制家中灯光、空调、暖气等设备的用户
对红外遥控信号录制和学习感兴趣的技术爱好者