STM32F103C8T6最小系统板使用DHT11温湿度模块

本文介绍了使用STM32F103C8T6开发板配合DHT11温湿度传感器,通过I2C连接OLED显示屏实时显示温湿度数据的过程,同时分析了与小米温湿度计的对比结果,指出DHT11湿度测量存在约±5%的误差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.模块清单

2.功能展示

3.程序实现


1.模块清单

主要用到STM32F103C8T6最小系统板,0.96寸OLED4线IIC屏幕,DHT11温湿度传感器,在某宝上都可以买到。目前我买的这款DHT11温度可以读取到小数部分,湿度并不能读取到小数部分,不知道是啥原因。工程放在文末,免费获取

2.功能展示

我买了一个小米的温湿度计,然后根据温湿度计测出的数据对DHT11测出的数据进行一个对比,总体测量出来的话,DHT11湿度误差比较大,±5%,温度测量误差比较小±2℃。

3.程序实现

原理什么的就不多赘述了,b站和csdn上都有大量的讲解,我就贴出一些主要的代码部分,工程会放在文末。采样周期我是使用的tim定时器,1.5秒采样一次。

main.c部分

/**
  ******************************************************************************
	*
	*
	*			应用平台:STM32F103C8T6最小系统板
	*
	*
### 使用STM32F103C8T6最小系统板控制DHT11温湿度传感器 #### 硬件连接说明 为了使STM32F103C8T6能够成功读取来自DHT11的数据,需按照如下方式完成硬件连线: | DHT11 Pin | STM32F103C8T6 Pin | |-----------|-------------------| | VCC | 3.3V | | GND | GND | | DATA | GPIO (任意可用IO口)| 确保电源电压稳定,并且数据线应尽可能短以减少干扰。 #### 软件环境搭建 建议采用官方支持的IDE——STM32CubeMX配合Keil MDK或其他兼容工具链进行开发。利用STM32CubeMX初始化外设配置,特别是针对用于与DHT11交互的GPIO端口及时钟资源设置。 #### 示例代码实现 下面给出一段基于HAL库编写的简单程序来获取温度和湿度信息: ```c #include "main.h" #define DHT11_PIN GPIO_PIN_0 #define DHT11_PORT GPIOA void SystemClock_Config(void); static void MX_GPIO_Init(void); uint8_t dht11_read_data(uint8_t *data); // 定义函数原型 int main(void){ uint8_t data[5]; // 存储从DHT11读回的信息 HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while(1){ if(dht11_read_data(data)==OK){ // 成功接收则打印结果 printf("Temperature:%d.%dhumidity:%d.%d\r\n", data[2],data[3]/10,data[0],data[1]/10); } HAL_Delay(2000); // 延迟两秒再测一次 } } // 实现具体读取逻辑... uint8_t dht11_read_data(uint8_t *data){ /* 这里省略了具体的单总线通信细节, 参考实际应用中的完整实现 */ } ``` 上述代码片段展示了基本框架结构[^3]。需要注意的是`dht11_read_data()`内部涉及复杂的时序处理过程,这取决于所使用的驱动库版本和个人编码习惯;因此这里仅给出了大致思路而非完整的解决方案。 对于某些情况下湿度无法显示小数位的问题,可能是由于传感器本身精度限制或是软件解析错误引起[^2]。如果确实遇到此类情况,可尝试更新固件或调整算法提高准确性。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻梦旅程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值