[STM32F1] 使用STM32 MCU实现温湿度监测系统

[复制链接]
3090|10
 楼主| Pulitzer 发表于 2024-9-29 07:53 | 显示全部楼层 |阅读模式
大家好!今天我想分享一下我最近在使用STM32微控制器时做的一个小项目——温湿度监测系统。这个项目不仅简单易懂,而且非常实用,适合入门学习STM32的朋友们。
项目背景在日常生活中,温湿度监测对我们的健康和环境管理至关重要。为了实现这个功能,我选择了STM32F103系列微控制器,并结合DHT11温湿度传感器来获取数据。以下是我实现这个项目的详细步骤和代码示例。
硬件连接
  • STM32F103开发板
  • DHT11传感器
  • 面包板和跳线
DHT11的连接方式如下:
  • VCC接3.3V
  • GND接地
  • 数据引脚接到STM32的某个GPIO口(例如PA0)
代码实现这里是我用HAL库编写的代码示例:
  1. #include "stm32f1xx_hal.h"
  2. #include "dht11.h"

  3. DHT11_HandleTypeDef DHT11;

  4. void SystemClock_Config(void);
  5. static void MX_GPIO_Init(void);
  6. static void MX_USART1_UART_Init(void);

  7. int main(void) {
  8.     HAL_Init();
  9.     SystemClock_Config();
  10.     MX_GPIO_Init();
  11.     MX_USART1_UART_Init();

  12.     while (1) {
  13.         float temperature, humidity;
  14.         if (DHT11_Read(&DHT11, &temperature, &humidity) == DHT11_OK) {
  15.             char buffer[50];
  16.             snprintf(buffer, sizeof(buffer), "Temp: %.1f C, Hum: %.1f %%\r\n", temperature, humidity);
  17.             HAL_UART_Transmit(&huart1, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);
  18.         }
  19.         HAL_Delay(2000); // 每2秒读取一次数据
  20.     }
  21. }

  22. static void MX_GPIO_Init(void) {
  23.     // GPIO初始化代码
  24. }

  25. static void MX_USART1_UART_Init(void) {
  26.     // UART初始化代码
  27. }

  28. void SystemClock_Config(void) {
  29.     // 时钟配置代码
  30. }
代码说明
  • 初始化:在main()函数中,首先初始化HAL库,然后设置时钟和GPIO。
  • 读取数据:使用DHT11_Read()函数从传感器获取温度和湿度值。
  • UART输出:将读取到的数据通过串口输出,便于观察。
项目扩展
  • 数据存储:可以将数据存储到SD卡或通过Wi-Fi模块发送到云端。
  • 图形界面:结合LCD屏幕或OLED显示屏,实时显示温湿度数据。
  • 报警功能:当温湿度超出设定范围时,通过蜂鸣器或LED进行报警。
希望这个小项目能给大家提供一些灵感,让我们一起在STM32的世界中探索更多可能性!如果有任何问题或建议,欢迎在评论区讨论。

公羊子丹 发表于 2024-9-29 07:54 | 显示全部楼层
哇,这个项目听起来不错!我也想试试温湿度监测,DHT11好用吗?
童雨竹 发表于 2024-9-29 07:55 | 显示全部楼层
代码看起来很简洁!请问UART的配置具体是怎样的呢?
周半梅 发表于 2024-9-29 07:55 | 显示全部楼层
感觉可以扩展得很有趣!如果加上Wi-Fi模块就更酷了。
帛灿灿 发表于 2024-9-29 07:55 | 显示全部楼层
我之前用过类似的传感器,发现DHT11在高湿度下不太准确,你有遇到过这种问题吗?

万图 发表于 2024-9-29 07:56 | 显示全部楼层
能不能分享一下你在调试过程中遇到的挑战?我总是容易卡壳
Wordsworth 发表于 2024-9-29 07:56 | 显示全部楼层
这个系统的实时数据通过串口输出,有没有考虑过加个显示屏呢?
Bblythe 发表于 2024-9-29 07:57 | 显示全部楼层
感觉这个项目特别适合新手,学习STM32的同时还能做个实用的东西!
Uriah 发表于 2024-9-29 07:57 | 显示全部楼层
温湿度监测在智能家居中很有用,真想把这个集成到我的家里!
Clyde011 发表于 2024-9-29 07:58 | 显示全部楼层
请问你是如何处理传感器的误差的?有没有什么建议?
qn7a12 发表于 2024-9-29 23:17 来自手机 | 显示全部楼层
我们的健康和环境管理至关重要
您需要登录后才可以回帖 登录 | 注册

本版积分规则

164

主题

6110

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部