基于STM32F103C8T6的智能温度监测系统设计
创作时间:
作者:
@小白创作中心
基于STM32F103C8T6的智能温度监测系统设计
引用
亚马逊官方网站
等
8
来源
1.
https://www.amazon.com/EC-Buying-Non-Contact-Temperature-Acquisition/dp/B0B63K5V7T
2.
https://www.amazon.com/Teyleten-Robot-MLX90614-MLX90614ESF-Temperature/dp/B0CLDGFQYS
3.
https://github.com/AhmedSamymoh/Firmware-Over-The-Air
4.
https://news.mit.edu/2024/mit-derived-algorithm-helps-forecast-frequency-extreme-weather-0326
5.
https://community.st.com/t5/stm32-mcus-products/stm32-for-high-speed-adc-gt-100-msps/td-p/731722
6.
https://www.sciencedirect.com/science/article/abs/pii/S1359431124002394
7.
https://community.st.com/t5/stm32-mcus-products/adc-measurement-noise-on-stm32g0-based-mcus/td-p/646002
8.
https://community.st.com/t5/stm32-mcus-embedded-software/adc-read-maximizing-precision-and-accuracy/td-p/654969
随着物联网技术的快速发展,智能温度监测系统在工业控制、智能家居、环境监测等领域发挥着越来越重要的作用。基于STM32F103C8T6单片机的温度监测系统,以其高集成度、低功耗和强大的处理能力,成为众多开发者的选择。本文将详细介绍如何利用STM32F103C8T6和GY-906温度传感器,设计一个具有无线数据传输功能的智能温度监测系统。
01
硬件选型与设计
为什么选择STM32F103C8T6?
STM32F103C8T6是意法半导体(STMicroelectronics)推出的一款基于Cortex-M3内核的32位微控制器,具有以下特点:
- 高性能:运行频率可达72MHz,提供充足的处理能力
- 丰富的外设:集成多个定时器、USART、SPI、I2C等通信接口
- ADC性能:具有12位分辨率的ADC,采样速率可达1MSPS
- 低功耗:多种低功耗模式,适合电池供电应用
- 成本优势:在高性能微控制器中具有较高的性价比
温度传感器GY-906
GY-906是一款非接触式红外温度传感器,基于MLX90614红外传感器芯片,具有以下特点:
- 测量范围:-70°C至+380°C
- 精度:±0.5°C(在-20°C至+50°C范围内)
- 接口:支持I2C和PWM输出
- 使用方便:模块化设计,易于集成
硬件连接
STM32F103C8T6与GY-906的连接:
- VCC连接到3.3V电源
- GND接地
- SDA连接到STM32的PB7
- SCL连接到STM32的PB6
STM32F103C8T6与ESP8266的连接:
- VCC连接到3.3V电源
- GND接地
- TXD连接到STM32的PA2(USART2_RX)
- RXD连接到STM32的PA3(USART2_TX)
02
软件设计
ADC配置
在本设计中,我们将使用STM32F103C8T6的ADC来读取温度传感器的模拟信号。以下是ADC配置的关键参数:
ADC_HandleTypeDef hadc;
void MX_ADC_Init(void) {
hadc.Instance = ADC1;
hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
hadc.Init.Resolution = ADC_RESOLUTION_12B;
hadc.Init.ScanConvMode = DISABLE;
hadc.Init.ContinuousConvMode = DISABLE;
hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc.Init.DMAContinuousRequests = DISABLE;
hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
if (HAL_ADC_Init(&hadc) != HAL_OK) {
// 错误处理
}
ADC_ChannelConfTypeDef sConfig = {0};
sConfig.Channel = ADC_CHANNEL_0; // 对应PA0
sConfig.Rank = 1;
sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) {
// 错误处理
}
}
温度数据读取
由于GY-906是通过I2C接口通信,我们需要使用I2C协议来读取温度数据。以下是一个简单的读取函数:
#include "stm32f1xx_hal.h"
#include "i2c.h"
#define MLX90614_I2C_ADDRESS 0x5A
#define MLX90614_TA_REGISTER 0x06
#define MLX90614_TOBJ1_REGISTER 0x07
float read_temperature() {
uint16_t raw_temp = 0;
uint8_t data[2];
HAL_I2C_Mem_Read(&hi2c1, MLX90614_I2C_ADDRESS << 1, MLX90614_TOBJ1_REGISTER, I2C_MEMADD_SIZE_8BIT, data, 2, HAL_MAX_DELAY);
raw_temp = (data[0] << 8) | data[1];
float temperature = (raw_temp * 0.02) - 273.15; // 转换为摄氏度
return temperature;
}
数据传输
为了实现无线数据传输,我们使用ESP8266作为WiFi模块。以下是一个简单的数据发送示例:
#include "stm32f1xx_hal.h"
#include "usart.h"
void send_data_to_esp8266(float temperature) {
char buffer[50];
sprintf(buffer, "AT+CIPSEND=0,%d\r\n", strlen(buffer));
HAL_UART_Transmit(&huart2, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);
sprintf(buffer, "%f\r\n", temperature);
HAL_UART_Transmit(&huart2, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);
}
03
数据分析与预测
为了增加系统的智能化程度,我们可以对温度数据进行简单的趋势预测。这里我们采用移动平均法进行预测:
#define MOVING_AVERAGE_SIZE 10
float temperature_buffer[MOVING_AVERAGE_SIZE];
uint8_t buffer_index = 0;
void update_temperature_buffer(float temperature) {
temperature_buffer[buffer_index] = temperature;
buffer_index = (buffer_index + 1) % MOVING_AVERAGE_SIZE;
}
float predict_temperature() {
float sum = 0;
for (int i = 0; i < MOVING_AVERAGE_SIZE; i++) {
sum += temperature_buffer[i];
}
return sum / MOVING_AVERAGE_SIZE;
}
04
系统运行流程
- 系统上电后,STM32F103C8T6初始化ADC、I2C和USART等外设
- 通过I2C读取GY-906的温度数据
- 将温度数据通过USART发送给ESP8266
- ESP8266将数据上传到云端服务器
- 云端服务器对数据进行存储和分析,用户可以通过手机APP查看实时温度和历史数据
通过以上步骤,我们构建了一个完整的智能温度监测系统。该系统不仅能够实时监测环境温度,还能通过无线网络将数据传输到云端,实现远程监控和数据分析。这种设计在智能家居、工业控制、环境监测等领域具有广泛的应用前景。
热门推荐
485光纤收发器能接多少设备?如何正确连接?
多功能餐边柜如何让生活更美好?几个改造步骤让你的家焕然一新!
Web自动化测试:WebDriverWait元素等待和全局设置
12mm的抗倍特板:优质建材的选择与应用
用例子说明科学和技术关系
硬件、政策、补贴齐飞,这些城市正在成为影视发展的热土
饮品界的清流之争:苏打水、矿物质水与纯净水的深度横评
乳香精油光敏之疑与白天面部使用探讨
项目管理安全文明施工指南
双缩脲法蛋白检测服务
《卡拉马佐夫兄弟》:陀思妥耶夫斯基的巅峰之作?
玩紫砂壶,别让盲目成为误区
DeepSeek爆火,但被AI抛弃的人,无人关心
血管保卫战的神奇武器:13种食物等你解锁!
追寻承德避暑山庄的前世今生
咽喉炎的5大症状及应对指南
被中国制造取代?美国制造业“空心化”真的只是表面现象吗?
历史研究应避免"否定的普遍性"问题
什么人性化管理
英镑汇率刷新近一年高点!英国通胀压力仍存,服务业通胀率超出英国央行预测
健康捉谣记 | 发烧时捂汗就能退烧?
“七杀生正印”是什么有何寓意
遭遇家暴如何收集证据?一文详解五大证据类型及收集方法
面试完第二天问面试结果合适吗
白脉软膏的作用与功效
茶艺表演礼仪全攻略:从准备到结束的每一个细节
电磁场微波技术与天线:规则金属波导详解
明年工作计划怎么写
胃动力不足、消化差,学会三点提高胃动力
全国事业单位公开招聘系统的安全性如何保障?