基于树莓派的家庭自动化系统
home-automation
智能家居
3/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结合开发物联网应用
需要远程控制家中灯光、空调、暖气等设备的用户
对红外遥控信号录制和学习感兴趣的技术爱好者