# smart-thermometer **Repository Path**: holdCoder/smart-thermometer ## Basic Information - **Project Name**: smart-thermometer - **Description**: 本项目基于STM32F103RBT6主控板设计并实现了一套智能语音交互电子体温计系统。系统采用经过校准的DHT11传感器实现对人体体温的高精度测量。创新性地集成小智AI语音助手服务,用户可通过语音指令查询体温信息。系统通过ESP8266 WiFi模块将体温数据上传至云平台,支持网页前端远程监控。当体温超过预设健康阈值时,系统将同时触发体温计内蜂鸣器报警和小智AI语音播报超温温度。 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-02-11 - **Last Updated**: 2026-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能电子测温仪 - 基于STM32的智能测温监测平台
环境监测系统 *实时监测,智能预警,连接云端* [![STM32](https://img.shields.io/badge/STM32-F103RBT6-blue.svg)](https://www.st.com/) [![Keil](https://img.shields.io/badge/Keil-MDK5-orange.svg)](https://www.keil.com/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Platform](https://img.shields.io/badge/Platform-STM32%20%7C%20ESP8266%20%7C%20Cloud-lightgrey.svg)]() ## 📖 项目简介 本项目基于STM32F103RBT6主控板,设计并实现了一套创新性的智能语音交互电子体温计系统。系统集成了高精度体温测量、自然语音交互和云端远程监控等功能,为用户提供智能化的健康监测体验。 ## ✨ 主要特性 ### 🚀 核心功能 - **多参数监测**:同步采集温度、湿度等体温数据 - **实时显示**:OLED显示屏动态展示监测数据 - **云端传输**:通过ESP8266将数据实时上传至云平台 - **智能报警**:体温参数超阈值自动触发报警机制 - **稳定可靠**:采用硬件IIC和定时器中断确保系统稳定性 ### 🛡️ 技术特点 - **高效驱动**:基于HAL库的硬件驱动配置 - **多任务处理**:定时器中断实现数据采集与显示分时复用 - **通信协议**:USART AT指令配置ESP8266透传模式 - **数据处理**:ADC采集光照强度,数字接口读取温湿度 ### 🎨 用户体验 - **直观界面**:OLED分时显示体温、湿度参数 - **实时反馈**:LED指示灯显示系统状态 - **自动切换**:定时轮换显示温度、湿度、光照数据 - **远程监控**:云平台实时数据查看和历史记录 ## 🏗️ 系统架构 ### 硬件架构 ``` STM32F103RBT6 (主控核心) ↓ 外围设备接口 ├── DHT11 (温湿度传感器) ├── AMS TSL (光照传感器) ├── OLED (显示模块) ├── ESP8266 (WiFi通信) └── LED指示灯 (状态显示) ``` ### 软件架构 ``` 主循环 (数据采集与处理) ↓ 定时器中断 (显示刷新) ↓ 传感器驱动层 (DHT11/TSL/OLED) ↓ 通信协议层 (IIC/USART) ↓ 云平台接口 (TCP长连接) ``` ## 📦 硬件组成 ### 主要组件 - **主控芯片**: STM32F103RBT6 - **温湿度传感器**: DHT11 - **光照传感器**: AMS TSL2561 - **显示模块**: 0.96寸OLED (IIC接口) - **通信模块**: ESP8266 WiFi模块 - **开发环境**: Keil MDK5 ### 接口配置 - **IIC接口**: OLED显示、光照传感器 - **USART接口**: ESP8266通信 - **GPIO接口**: DHT11温湿度传感器、LED指示灯 - **ADC接口**: 光照强度模拟量采集 ## 🔧 安装与配置 ### 开发环境要求 - **IDE**: Keil MDK5 - **编译器**: ARMCC 5.06+ - **调试器**: ST-Link V2 - **库支持**: STM32CubeMX HAL库 ### 工程配置步骤 1. **导入工程** ```bash # 使用Keil MDK打开项目文件 打开 EnvironmentalMonitor.uvprojx ``` 2. **硬件配置** - 确认STM32F103RBT6芯片选型 - 配置系统时钟为72MHz - 初始化相关外设接口 3. **编译下载** ```bash # 在Keil中 Project → Build Target Project → Download → Download to Flash ``` ### 硬件连接说明 | 模块 | 接口 | 引脚配置 | | --------- | ----- | ------------------ | | OLED | IIC | SDA: PB7, SCL: PB6 | | ESP8266 | USART | TX: PA2, RX: PA3 | | DHT11 | GPIO | DATA: PA0 | | TSL2561 | IIC | SDA: PB7, SCL: PB6 | | LED指示灯 | GPIO | PC1, PC3, PC7 | ## 📋 使用指南 ### 系统启动流程 1. **硬件初始化**:系统上电,各外设模块初始化 2. **传感器校准**:DHT11和TSL2561传感器初始化检测 3. **网络连接**:ESP8266自动连接WiFi并接入云平台 4. **数据采集**:开始循环采集体温参数 5. **实时显示**:OLED分时显示监测数据 ### 操作说明 - **数据查看**:通过OLED显示屏查看实时体温数据 - **状态指示**:LED灯显示系统运行状态和报警信息 - **云端访问**:通过云平台查看历史数据和报警记录 ## 🔍 技术实现细节 ### 传感器数据采集 - **DHT11温湿度**:单总线协议,精确到0.1℃和1%RH - **TSL2561光照**:IIC接口,量程0.1-40000+ Lux - **数据滤波**:移动平均算法消除数据波动 ### 显示优化策略 ```c // 分时显示实现 void display_rotation(void) { static uint8_t display_mode = 0; if(HAL_GetTick() - last_switch_time > 2000) { display_mode = (display_mode + 1) % 3; last_switch_time = HAL_GetTick(); } switch(display_mode) { case 0: display_temperature(); break; case 1: display_humidity(); break; case 2: display_light(); break; } } ``` ### 网络通信协议 - **AT指令集**:配置ESP8266工作模式 - **TCP长连接**:保持与云平台的稳定通信 - **数据封装**:JSON格式传输传感器数据 - **心跳机制**:定期发送心跳包维持连接 ## 🐛 故障排除 ### 常见问题及解决方案 1. **传感器无数据** - 检查传感器接线是否正确 - 验证IIC/USART接口配置 - 确认传感器供电正常 2. **OLED显示异常** - 检查IIC地址配置 - 验证刷新频率设置 - 确认段码表数据正确 3. **网络连接失败** - 检查WiFi账号密码配置 - 验证AT指令响应 - 确认云平台地址和端口 4. **数据上传异常** - 检查TCP连接状态 - 验证数据格式封装 - 确认网络信号强度 ## 🔄 数据处理流程 ### 数据采集周期 ``` 定时器中断(每2秒) ↓ 切换显示模式 → 采集传感器数据 → 更新显示 ↓ 数据有效性校验 → 阈值判断 → 触发报警 ↓ 封装数据包 → 通过网络发送 → 云平台存储 ``` ### 报警机制 ```c // 阈值检测示例 void check_thresholds(void) { if(temperature > TEMP_THRESHOLD) { trigger_alarm(TEMP_ALARM); } if(light_intensity < LIGHT_THRESHOLD) { trigger_alarm(LIGHT_ALARM); } } ``` ## 👥 开发团队 - **项目发起人**: 杨家翔 - **主要开发**: 杨家翔 - **测试维护**: 杨家翔 ## 📞 技术支持 - **问题反馈**: 通过GitHub Issues提交问题 - **联系方式**: 15097601713@163.com ## 🎯 版本规划 ### 当前版本 v1.0 - [x] 基础体温参数监测 - [x] OLED本地显示 - [x] 云平台数据上传 - [x] 阈值报警功能 - [x] 集成小智AI - [x] 手机APP远程控制 - [x] 语音提示功能 ### 未来版本规划 - [ ] 数据历史曲线显示 - [ ] 多节点组网监测 - [ ] 能耗优化管理 - [ ] 太阳能供电支持 ---
**智能电子测温仪** - 让体温感知更智能,让生活健康更安心