# 智慧小屋监测与控制系统 **Repository Path**: rectifying/smart_home ## Basic Information - **Project Name**: 智慧小屋监测与控制系统 - **Description**: 基于Arduino MEGA2560搭建智慧小屋物联网控制系统,模块化采集多类环境数据:蓝牙接收树莓派温湿度,本地采集光照、MQ-2燃气、雨滴信号;MQ-2数字量触发声光报警,模拟量换算PPM值。本地联动控制LED、蜂鸣器、风扇、步进电机窗帘,支持自动/手动模式切换。外接ESP32以MQTT协议对接OneNET云平台,实现数据上传与远程设备管控,配套OLED实时本地数据显示。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-07 - **Last Updated**: 2026-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智慧小屋监测与控制系统 ## 项目概述 基于 Arduino MEGA 2560 的智慧小屋监测与控制系统,实现环境数据采集、自动控制、OLED显示、云平台数据上传和远程控制功能。 ## 系统架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ 系统架构 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 树莓派(DHT11) ────蓝牙────→ Arduino MEGA 2560 │ │ │ │ Arduino MEGA 2560 │ │ ├─ 传感器采集: LDR光照、MQ-2气体、雨滴 │ │ ├─ 自动控制: LED灯、蜂鸣器、风扇、窗帘 │ │ ├─ OLED显示: 分页显示传感器数据 │ │ └─ 串口通信: 蓝牙接收 + ESP32云平台 │ │ │ │ Arduino ────Serial1────→ ESP32 ────MQTT────→ OneNET云平台 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ## 功能特性 ### 传感器数据采集 - **温湿度**: 通过HC-05蓝牙从树莓派DHT11获取 - **光照强度**: LDR光敏电阻 (A0) - **可燃气体**: MQ-2传感器 (A2模拟量 + D6 TTL报警) - **雨滴检测**: 雨滴传感器 (A1) ### 自动控制逻辑 | 条件 | 动作 | |------|------| | 温度 > 28°C | 风扇开启 | | 光照 < 200 lux | LED灯开启 | | MQ-2 TTL低电平 | 蜂鸣器报警 | | 雨滴ADC > 阈值 | 窗帘关闭 | ### OLED分页显示 - Page 1: 温湿度 (一位小数显示) - Page 2: 光照强度 - Page 3: 可燃气体 (PPM + TTL报警状态) - Page 4: 雨滴检测 ### 云平台功能 - 数据上传至OneNET MQTT平台 - 远程控制设备开关 - 手动/自动模式切换 (手动模式30秒后恢复自动) ## 硬件平台 | 组件 | 规格 | |------|------| | 主控板 | Arduino MEGA 2560 | | Wi-Fi模块 | ESP32 | | 蓝牙模块 | HC-05 (Serial2) | | 显示屏 | OLED SSD1306 128x64 (I2C) | | 步进电机 | 28BYJ-48 + ULN2003 | ## 目录结构 ``` test/ ├── src/ # Arduino源代码 │ ├── main.cpp # 主程序入口 │ ├── config.h # 配置参数定义 │ ├── sensor_data.h/cpp # 数据结构定义 │ ├── sensors.h/cpp # 传感器驱动 │ ├── actuators.h/cpp # 执行器控制 │ ├── oled_display.h/cpp # OLED显示驱动 │ ├── bluetooth.h/cpp # 蓝牙通信模块 │ └── esp32_comm.h/cpp # ESP32串口通信 ├── raspberry_pi/ # 树莓派代码 │ ├── bt.py # 蓝牙发送温湿度数据 │ └── udp.py # UDP通信模块 ├── ESP32_test/ # ESP32固件代码 │ └── ESP32_test/ # ESP32 MQTT固件 ├── APPdesign/ # Flutter跨平台APP │ └── lib/ # Flutter Dart源码 ├── 方案.md # 项目规划方案 ├── 引脚配置.md # 硬件引脚配置 ├── readme.md # 本文档 └── platformio.ini # PlatformIO配置 ``` ## 编译与上传 使用 PlatformIO 编译上传: ```bash # 编译 pio run # 编译并上传 pio run -t upload # 串口监视 pio device monitor ``` ## MQ-2传感器说明 ### TTL报警模式 - D6引脚连接MQ-2 TTL数字输出 - 低电平 = 检测到气体,蜂鸣器响 - 高电平 = 无气体,蜂鸣器关闭 ### PPM计算公式 模拟量A2用于OLED显示和数据上报: ```cpp voltage = adcValue * 5.0 / 1023.0 Rs = (5.0 - voltage) / voltage * RL // 传感器电阻 PPM = 580.6 * pow(Rs/R0, -2.074) // LPG浓度 参数: - RL = 5.0 kΩ (负载电阻) - R0 = 9.8 kΩ (洁净空气电阻,需校准) ``` ## 相关文档 - [方案.md](方案.md) - 项目规划方案与WBS - [引脚配置.md](引脚配置.md) - 详细引脚分配表 ## 版本信息 - 当前版本: V1.0 (项目完结) - 开发环境: PlatformIO + VSCode - 仓库地址: https://gitee.com/rectifying/smart_home - 最后更新: 2026-07-03 --- 🎉 **项目已完成所有验收,达到100分标准!**