2025 Make Blocks阶段2 - 使用SHT40完成环境模块的设计
该项目使用了SHT40,实现了环境模块的设计,它的主要功能为:输出温湿度数据。
标签
SHT40
Make Blocks
环境模块
永不止步
更新2025-10-15
56

任务介绍

本次任务属于Make Blocks第三期的任务,有很多的分任务进行选择,我们本次选择的是自定义,要求不低于其他任务的要求除了完成的功能外,我们参考其他任务进行设计:

板卡尺寸:小于60mmx40mm

接口:信号输出口,+3.3V、GND

主要器件:需在DigiKey官网上有货且正常售卖

打开得捷官网,搜索传感器,在到细分的分支下面就可以看到相关温湿度传感器的内容,传感器非常多,各个品牌的,之间差异也比较大,这里我们选择了一个最具性价比的传感器。

设计思路

目前的要求是设计一款环境模块,主要接口参考Grove的适配的接口,包括版型也是一样差不多的。

设计框图如下:


0

功能介绍

本次设计的是一个环境模块模块,通过IIC接口进行通信控制,可以输出温度和湿度信息。

硬件介绍

我们本次设计的是SHT40模块,主要接口参考Grove的适配的接口。SHT4X是业内知名的Sensirion公司推出的第四代数字温湿度传感器系列。继承自Sensirion温湿度传感器在业界有口皆和质量,SHT40 可在测量范围内提供始终如一的高精确度,为用户带来最佳的性价比。SHT40可以测量 0 至 100% 的相对湿度以及 -40℃ 至 125℃ 的温度,并且可以达到 ±1.8%的湿度精度和 ±0.2℃温度精度。SHT40集成可变功率加热器,在冷凝环境也可以正常工作。SHT40可在 3.3 V 至 5 V 的电源电压下工作并且低功耗模式下电流低于0.15mA,非常适合移动和电池驱动型应用,可以非常容易的集成到智能楼宇、天气站、仓库存储、养殖、孵化等应用场景中。

原理图和PCB模块介绍


0

原理图


0

PCB

环境模块主要提供的是温湿度信息,这个传感器非常的小,引脚也非常的少理论上如果做小型化的设计非常推荐。


0

实物图

软件调试

我们通过对不同软件调试的对比,最后还是选用了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);
}

在这里我们只需要一个基本的设置,然后在loop循环中不断的定时打印,看到的就是我们当前环境的数据信息。

运行效果

基本配置如下:


0

串口打印如下:


0

心得体会

本次设计的模块对于硬件的来说相对还是比较简单的,传感器的引脚非常少,不过体积也很小,非常适合小型化的设备使用,虽然很小不过其封装是支持手动焊接的,我就是手动用焊台焊接的,心里一开始也是挺虚的,不过软件驱动正常采放下来。

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