STM32连接温湿度传感器

📅 2026/8/5 21:51:04
STM32连接温湿度传感器
1清单STM32F103C8T6DHT22温湿度传感器0.96寸4针IIC接口OLED显示屏万用板2接线STM32F103C8T6DHT22温湿度传感器0.96寸4针IIC接口OLED显示屏3.3V3.3V5V5V(图中接的是3.3V建议接5V)GNDGNDGNDB6SCLB7SDAB9DAT3实现功能显示温湿度值程序下载完成使用5V电压。4程序#include Arduino.h #include U8g2lib.h #include Wire.h #include DHT.h // 引脚定义 #define DHTPIN PB9 // DHT 传感器引脚 #define DHTTYPE DHT22 // DHT22 传感器类型 #define I2C_ADDR 0x3C // OLED I2C 地址 #define I2C_SDA_PIN PB7 // I2C SDA 引脚 #define I2C_SCL_PIN PB6 // I2C SCL 引脚 // OLED 屏幕尺寸 #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 // 全局变量 DHT dht(DHTPIN, DHTTYPE); // 初始化 U8G2 库 U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, I2C_ADDR); // 传感器数据 struct SensorData { float temperature 0.0; float humidity 0.0; } sensorData; // 函数声明 void initOLED(); void readDHTData(); void updateDisplay(); void setup() { // 初始化硬件 Serial.begin(9600); // 初始化 OLED initOLED(); // 初始化 DHT 传感器 dht.begin(); delay(2000); // 显示启动信息 2 秒 } void loop() { // 读取 DHT 传感器数据 readDHTData(); // 更新显示 updateDisplay(); delay(2000); // 主循环延迟 2 秒 } void initOLED() { Wire.begin(I2C_SDA_PIN, I2C_SCL_PIN); u8g2.begin(); u8g2.setPowerSave(0); u8g2.enableUTF8Print(); // 启用 UTF-8 支持 u8g2.setFont(u8g2_font_lunar); Serial.println(OLED 初始化完成); } void readDHTData() { // 读取湿度 sensorData.humidity dht.readHumidity(); // 读取温度(摄氏度) sensorData.temperature dht.readTemperature(); // 检查是否有读取失败 if (isnan(sensorData.humidity) || isnan(sensorData.temperature)) { Serial.println(无法从 DHT 传感器读取数据!); return; } } void updateDisplay() { u8g2.clearBuffer(); u8g2.setFont(u8g2_font_lunar); // 显示温度 u8g2.setCursor(0, 15); u8g2.print(温度: ); u8g2.print(sensorData.temperature, 1); u8g2.print(℃); // 显示湿度 u8g2.setCursor(0, 35); u8g2.print(湿度: ); u8g2.print(sensorData.humidity, 1); u8g2.print( %); u8g2.sendBuffer(); }附录STM32简介STM32 是意法半导体 (STMicroelectronics) 推出的 32 位 ARM Cortex-M 内核微控制器系列‌根据 ST 海外官网信息该系列涵盖从入门级到高性能的多种型号支持多种通信接口和外设广泛用于嵌入式开发 。‌‌发展历史意法半导体STMicroelectronics集团于1987年6月成立是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司意法半导体是世界最大的半导体公司之一。从成立之初至如今ST的增长速度超过了半导体工业的整体增长速度。自1999年起ST始终是世界十大半导体公司之一。据最新的工业统计数据意法半导体STMicroelectronics是全球第五大半导体厂商在很多市场居世界领先水平。例如意法半导体是世界第一大专用模拟芯片和电源转换芯片制造商世界第一大工业半导体和机顶盒芯片供应商而且在分立器件、手机相机模块和车用集成电路领域居世界前列。意法半导体STMicroelectronics整个集团共有员工近50000名拥有16个先进的研发机构、39个设计和应用中心、15主要制造厂并在36个国家设有78个销售办事处。公司总部设在瑞士日内瓦同时也是欧洲区以及新兴市场的总部公司的美国总部设在德克萨斯州达拉斯市的卡罗顿亚太区总部设在新加坡日本的业务则以东京为总部中国区总部设在上海负责香港、大陆和台湾三个地区的业务。ST超低功耗ARM Cortex™-M3微控制器STM32L系列产品基于超低功耗的ARM Cortex-M4处理器内核采用意法半导体独有的两大节能技术130nm专用低泄漏电流制造工艺和优化的节能架构提供业界领先的节能性能。该系列属于意法半导体阵容强大的32位STM32微控制器产品家族该产品家族共有200余款产品全系列产品共用大部分引脚、软件和外设优异的兼容性为开发人员带来最大的设计灵活性。ST超低功耗ARM Cortex™-M0微控制器STM32F0系列产品基于超低功耗的ARM Cortex-M0处理器内核整合增强的技术和功能瞄准超低成本预算的应用。该系列微控制器缩短了采用8位和16位微控制器的设备与采用32位微控制器的设备之间的性能差距能够在经济型用户终端产品上实现先进且复杂的功能。 [2]互联型全新STM32互联型Connectivity系列微控制器增加一个全速USBOTG接口使终端产品在连接另一个USB设备时既可以充当USB主机又可充当USB从机还增加一个硬件支持IEEE1588精确时间协议PTP的以太网接口用硬件实现这个协议可降低CPU开销提高实时应用和联网设备同步通信的响应速度。全新互联型系列还是STM32家族中首款集成两个CAN2.0B控制器的产品让开发人员能够研制可连接两条工业标准CAN控制器区域网总线的网关设备。此外新系列微控制器还支持以太网、USB OTG和CAN2.0B外设接口同时工作因此开发人员只需一颗芯片就能设计整合所有这些外设接口的网关设备。STM32互联型系列产品强化了音频性能采用一个先进的锁相环机制实现音频级别的I2S通信。结合USB主机或从机功能STM32可以从外部存储器U盘或MP3播放器读取、解码和输出音频信号。设计人员还可以在新系列微控制器上开发人机界面HMI功能如播放和停止按键以及显示器界面。这个功能使其可用于各种家庭音响设备如音响底座系统、闹钟/音乐播放器和家庭影院。新系列产品整合先进的面向连接的外设标准的STM32外设包括一个PWM定时器高性能的32位ARM Cortex-M3 CPU这些特性使开发人员可以在设备上如家电、楼宇或工业自动化整合多种功能如马达控制、用户界面控制和设备互连功能。其它目标应用包括需要联网、数据记录或USB外设扩展功能的系统如病患监视、销售终端机、自动售货机和保安系统。包括新的互联型系列在内的STM32系列微控制器具有多种配套软件和开发工具其中包括意法半导体免费提供的软件库以及第三方工具厂商的广泛支持。意法半导体还将推出一个新的评估板正在向大客户提供STM32F105和STM32F107互联型系列的样片。STM32 有啥特点和用途‌核心特点‌STM32 基于 ARM Cortex-M0/M0/M3/M4/M7/M33/M55 等多种内核架构具有高性能、低功耗、低成本的优势工作电压范围通常为 1.7V 至 3.6V。‌性能范围广‌主频从 32MHz 到 500MHz 不等Flash 容量从 16KB 到 2MBSRAM 从 4KB 到 1MB。‌低功耗设计‌提供休眠、停止、待机等多种低功耗模式待机电流可低至 2μA。‌外设丰富‌集成 ADC、DAC、定时器、USART、SPI、I2C、USB、CAN 等多种外设接口 。‌‌‌主要应用领域‌‌工业控制‌电机驱动、生产线控制、机械臂操作等 。‌物联网设备‌智能传感器、电燃气表、血糖仪等医疗设备 。‌消费电子‌智能家居中枢、可穿戴设备、家电控制等 。‌汽车电子‌车身控制、车载信息系统等 。‌‌‌产品系列分类‌‌主流系列‌STM32F0/F1/F3/G0/C0性价比高适合通用控制场景 。‌超低功耗系列‌STM32L0/L4/L5/U5适合电池供电设备 。‌高性能系列‌STM32F4/F7/H7/H5/N6支持 AI 加速和复杂计算 。‌无线系列‌STM32WB/WBA/WL集成蓝牙、Zigbee、LoRa 等无线功能 。‌微处理器系列‌STM32MP1/MP2支持 Linux 系统适合边缘计算 。‌‌‌开发 STM32 用啥软件‌官方开发工具链‌‌STM32CubeMX‌图形化配置工具可设置引脚、时钟、外设参数自动生成初始化代码 。‌STM32CubeIDE‌集成开发环境基于 Eclipse支持代码编辑、编译、调试一体化 。‌STM32CubeProgrammer‌用于代码烧写和固件升级 。‌ST-LINK 调试器‌官方在线调试和编程工具从 V2 发展到 V3 系列 。‌‌‌‌第三方开发环境‌‌Keil MDK-ARM‌老牌 ARM 开发工具社区资源丰富 。‌IAR Embedded Workbench‌商业 IDE优化性能好 。‌PlatformIO‌开源跨平台开发工具支持 VS Code 集成 。‌Arduino (STM32duino)‌适合初学者快速上手 。‌‌‌‌操作系统支持‌‌FreeRTOS‌轻量级实时操作系统广泛使用 。‌Zephyr RTOS‌开源物联网操作系统 。‌Linux‌STM32MP 系列可运行 OpenSTLinux、Android 等系统 。‌‌国产替代方案情况‌国产 MCU 品牌‌‌兆易创新 (GigaDevice)‌GD32 系列与 STM32F1/F3/F4 等引脚兼容是国内出货量较大的替代方案。‌华大半导体‌HC32 系列覆盖低功耗和通用控制场景。‌雅特力‌AT32 系列主打高性能和高性价比。‌国民技术‌N32 系列注重安全加密功能。‌兼容性说明‌多数国产 MCU 在引脚排列、外设功能上与 STM32 保持高度兼容代码迁移成本较低。但寄存器细节、时钟配置、中断优先级等可能存在差异需参考具体型号数据手册。开发工具链方面部分国产芯片支持 STM32Cube 工具部分需使用厂商自有工具。‌选择建议‌如果对供应链安全有要求可优先考虑国产方案。如果项目依赖 STM32 特定生态如官方库、社区资源建议继续使用 STM32。新设计可评估国产芯片的供货稳定性和技术支持能力。本次主要使用到的模块型号是STM32F103C8T6引脚图如下DHT22温湿度传感器简介AM2302湿敏电容数字温湿度模块DHT22)是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术确保产品具有较高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个高精度NTC测温元件并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比比较高等优点。每个传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在单片机中传感器内部在检测信号的处理过程中要调用这些校准系数。标准单总线接口使系统集成变得简易快捷。较小的体积、较低的功耗信号传输距离可达20米以上使其成为各类应用甚至最为苛刻的应用场合的较佳选择。产品分为3引线单总线接口和4引线连接方便可自由选择任何一种总线方式。特殊封装形式可根据用户需求而提供。产品特色超低能耗传输距离远全部自动化校准采用电容式湿敏元件完全互换标准数字单总线输出卓越的长期稳定性采用高精度NTC应用范围暖通空调、除湿机、测试及检测设备、消费品、汽车、自动控制、数据记录器、家电、湿度调节器、医疗、气象站、及其他相关湿度检测控制等。产品参数型号AM2302供电电压DC: 3.3-5.5V测量范围温度-40~80℃ 湿度0~99.9%RH精度温度±0.5℃ 湿度±2%RH (25℃)分辨率温度0.1℃ 湿度0.1%RH衰减值温度0.1℃/年 湿度0.5%RH/年传感器电容式湿度传感器输出信号单总线数字信号外壳材料PC塑料传感器性能温度特性表参数条件mintypmax单位分辨率0.1℃16bit精度±0.5±1℃量程范围-4080℃重复性±0.2℃互换性可互换响应时间1/e(63%)10S漂移±0.3℃/yr25℃时相对湿度的最大误差参数条件mintypmax单位分辨率0.1%RH量程范围099.9%RH精度¹25℃±2%RH重复性±0.3%RH互换性可互换响应时间²1/e(63%)5S迟滞0.3%RH漂移³典型值0.5%RH/yr直流特性参数条件mintypmax单位供电电压3.355.5V功耗休眠1015μA测量500μA平均300μA低电平输出电压0300mV高电平输出电压Rp25 kΩ90%100%VDD低电平输入电压下降030%VDD高电平输入电压上升70%100%VDDRpuVDD 5V, VIN VSS304560kΩ输出电流开8mA三态(关)1020μA采样周期2S引脚说明0.96寸4针IIC接口OLED显示屏简介4 针 IIC OLED 屏幕通过‌VCC/GND 供电‌、‌SCL/SDA 双线同步通信‌由主控发送指令与显存数据驱动芯片如 SSD1306解析后控制有机像素自发光成像 。‌‌核心工作机制‌物理层连接‌4 引脚分别为‌VCC‌3.3V/5V 电源、‌GND‌共地、‌SCL‌时钟线主控提供时序、‌SDA‌数据线双向传输命令/图像数据总线采用‌开漏输出 上拉电阻‌结构空闲时为高电平 。‌通信协议流程‌主控发起‌起始信号‌SCL 高时 SDA 由高变低→ 发送‌7 位从机地址 读写位‌OLED 通常为 0x78 写/0x79 读→ 发送‌控制字节‌区分命令或数据→ 传输‌8 位数据‌每字节后需从机 ACK 应答→ ‌停止信号‌SCL 高时 SDA 由低变高结束 。‌显示驱动逻辑‌驱动芯片接收命令配置寄存器如对比度、扫描方向、内存模式随后将数据写入‌GDDRAM‌图形显示数据 RAM芯片内部扫描电路按行列时序读取 GDDRAM 内容驱动对应有机二极管通电发光实现像素级控制 。‌‌关键特性与注意事项‌自发光原理‌无需背光像素通电即亮断电即灭纯黑对比度极高功耗与显示内容相关黑底省电。‌地址配置‌常见 7 位基地址为 0x3C总线地址 0x78部分模块可通过硬件跳线切换至 0x3D总线地址 0x7A。‌时序依赖‌IIC 为同步通信SCL 频率通常 100kHz标准模式或 400kHz快速模式软件模拟时需严格遵循建立/保持时间 。‌数据模式‌支持命令模式配置参数与数据模式写入显存写入数据时通常需指定控制字节如 0x40 表示后续为数据。‌‌