2026 Make Blocks #2阶段2 - 基于SHT40的环境参数采集模块的设计
该项目使用了SHT40,实现了环境参数采集模块的设计,它的主要功能为:采集温度湿度。
标签
SHT40
Make Blocks
环境参数采集模块
孤独的单行者
更新2026-06-15
81

任务介绍

本次的任务都是自动控制主题的,相关的具体任务也是设计很多方面,自动控制肯定少不了环境采集,所以我们选择了本次的任务4-温度采集,设计一款传感器采集板,能采集温度(或其他环境参数)并将数据通过数字接口输出,为后续控制系统提供数据源。具体要求如下:

  1. 至少包含一种温度传感器(数字或模拟)
  2. 提供数字通信接口(I2C/SPI/1-Wire/ADC,至少一种)供MCU读取数据
  3. 板载信号调理电路(如ADC参考电压、滤波电容等) - 使用数字传感器(如DS18B20、BME280)方案时可省略此项
  4. 支持3.3V或5V供电
  5. 提供标准接口,方便与MCU开发板连接。

硬件介绍

本次设计的传感器模块基于SHT40-AD1B-R3传感器为核心构建,SHT40-AD1B-R3是Sensirion推出的一款高精度数字温湿度传感器,采用I2C接口通信,具备出色的性能与可靠性。其湿度测量范围为0%RH至100%RH,精度达±1.8%RH;温度测量范围为-40°C至+125°C,精度为±0.2°C,适用于各种极端环境。传感器输出16位数字信号,支持快速模式+(1MHz速率),确保数据高效读取。它工作电压低至1.08V,空闲电流仅80nA,典型功耗仅0.4μA,非常适合电池供电设备。采用DFN-4封装(1.5×1.5×0.5mm),表面贴装设计兼容标准SMT工艺,支持回流焊。其底部裸露焊盘优化了热传导路径,提升温度检测响应速度。此外,该传感器符合RoHS 3规范,湿气敏感等级(MSL)为1级,可无限期暴露于车间环境。凭借其高精度、低功耗和小尺寸等优势,SHT40-AD1B-R3广泛应用于智能家居、工业控制、农业监测等领域。

模块介绍

方案设计主要要求任务要求进行设计选型,尽可能做的小一点,基本方案模块组成如下:
0

原理图和PCB模块介绍
0

原理图

68e5365b-c490-47cd-bc64-0c2c0398d0cc.png
PCB

本次的设计主要注意的就是传感器附近尽量不覆铜,如果可以做避空更好,我们这次通过做槽进行避空。
74a5c784-4ff1-499e-90f9-d89a9c2df192.png

3D效果图
0

实物图

测试调试

本项目使用 Adafruit_SHT4x 库,该库提供了完整的传感器驱动支持。硬件平台使用的是arduino R4,通过arduinoIDE进行开发,本次主要是验证硬件问题,目标是能够进行正常的温湿度读取和打印,我们需要搭建一下测试系统:
0

本程序采用经典的 setup() + loop() 结构,这是 Arduino 平台的标准程序框架,代码如下:

#include "Adafruit_SHT4x.h"

Adafruit_SHT4x sht4 = Adafruit_SHT4x();

void setup() {
Serial.begin(115200);

while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens

Serial.println("Adafruit SHT4x test");
if (! sht4.begin()) {
Serial.println("Couldn't find SHT4x");
while (1) delay(1);
}
Serial.println("Found SHT4x sensor");
Serial.print("Serial number 0x");
Serial.println(sht4.readSerial(), HEX);

// You can have 3 different precisions, higher precision takes longer
sht4.setPrecision(SHT4X_HIGH_PRECISION);
switch (sht4.getPrecision()) {
case SHT4X_HIGH_PRECISION:
Serial.println("High precision");
break;
case SHT4X_MED_PRECISION:
Serial.println("Med precision");
break;
case SHT4X_LOW_PRECISION:
Serial.println("Low precision");
break;
}

// You can have 6 different heater settings
// higher heat and longer times uses more power
// and reads will take longer too!
sht4.setHeater(SHT4X_NO_HEATER);
switch (sht4.getHeater()) {
case SHT4X_NO_HEATER:
Serial.println("No heater");
break;
case SHT4X_HIGH_HEATER_1S:
Serial.println("High heat for 1 second");
break;
case SHT4X_HIGH_HEATER_100MS:
Serial.println("High heat for 0.1 second");
break;
case SHT4X_MED_HEATER_1S:
Serial.println("Medium heat for 1 second");
break;
case SHT4X_MED_HEATER_100MS:
Serial.println("Medium heat for 0.1 second");
break;
case SHT4X_LOW_HEATER_1S:
Serial.println("Low heat for 1 second");
break;
case SHT4X_LOW_HEATER_100MS:
Serial.println("Low heat for 0.1 second");
break;
}

}


void loop() {
sensors_event_t humidity, temp;

uint32_t timestamp = millis();
sht4.getEvent(&humidity, &temp);// populate temp and humidity objects with fresh data
timestamp = millis() - timestamp;

Serial.print("Temperature: "); Serial.print(temp.temperature); Serial.println(" degrees C");
Serial.print("Humidity: "); Serial.print(humidity.relative_humidity); Serial.println("% rH");

Serial.print("Read duration (ms): ");
Serial.println(timestamp);

delay(1000);
}

串口输出如下:

image.png

心得体会

本项目顺利构建了基于Arduino平台与SHT4x传感器的温湿度监测系统。通过此项目的实践,我们深入掌握了SHT4x传感器的卓越性能特性及操作方法,透彻理解了运用Arduino平台开发传感器应用的核心流程,熟练掌握了利用第三方库实现高效快速开发的技术要领,并积累了嵌入式系统调试及问题解决的宝贵经验。SHT4x传感器以其高精度、低功耗及稳定可靠的显著优势,非常适合在各类温湿度监测场景中广泛应用。本项目的成果将为后续环境监测、智能农业、仓储管理等领域的应用开发提供有力的参考与借鉴。

附件下载
SHT4test.zip
Module-SHT40.zip
团队介绍
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号