Arduino开发ESP32 S3(二):使用库读取SHT40温湿度


一、SHT40传感器介绍

在这里插入图片描述
SHT40是一款由Sensirion公司生产的数字湿度和温度传感器。采用I2C总线与上位机通讯,其包含4个引脚:

  • VCC
  • GND
  • SDA
  • SCL

二、硬件连接:

为方便连接,在某宝购买的成品SHT40模块 。将SHT40模块的接口按以下顺序连接到ESP32 S3开发板即可:

STH40ESP32 S3开发板
VCC3.3V
GNDGND
SDA引脚8
SCL引脚9

ESP32 S3开发板接口定义:
在这里插入图片描述

三、安装Adafruit_SHT4x库

在这里插入图片描述
在Arduino IDE 界面左侧的库管理中搜索:Adafruit_SHT4x,Arduino 将自动找到Adafruit_SHT4x库,点击安装即可。

四、导入Adafruit_SHT4x库自带的示例程序

点击库文件旁边的三个小点选择示例“SHTtest”。
在这里插入图片描述
“SHTtest”示例代码如下:

#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);
}

五、运行代码

将程序编译并下载到ESP32 S3开发板中,在串口监视器中会不断的有SHT40模块采集的温湿度数据打印出来。

在这里插入图片描述

总结

这里不得不惊叹Arduino开发的快捷,半小时就可搞定ESP32 S3对SHT40的温湿度值读取,其中大部分的时间都还是用于寻找ESP32 S3开发板在Arduino中I2C的默认定义引脚!

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值