19浏览
查看: 19|回复: 0

[ESP8266/ESP32] 【FireBeetle 2 ESP32-C5】IIC驱动SHT40

[复制链接]
       要实现智能家居的HomeAssistant的数据传输,我们首先要找一个数据来源,这个就是本次测试使用的传感器模块,主要基于的是SHT40传感器,这类模块也有很多,各大厂家也都有对应的模块。
       SHT4x是一个数字传感器平台,用于测量不同精度等级的相对湿度和温度。其I2C接口提供多个预配置的I2C地址,同时保持超低功耗预算(0.4 μW)。电源修剪的内部加热器可以在三个加热级别使用,从而使传感器在苛刻的环境中运行。四针双平面无引线封装适用于表面贴装技术(SMT)加工,包括可选的封装上专利PTFE[1]膜或可拆卸的保护罩。根据ISO17025的传感器特定校准证书,可通过唯一序列号识别。
【FireBeetle 2 ESP32-C5】IIC驱动SHT40图3

       这里也同时测试一下IIC引脚的功能,C5套件中对IIC也进行了引出,这里可以看出IIC所使用的引脚主要是9脚和10脚:
【FireBeetle 2 ESP32-C5】IIC驱动SHT40图2

       传感器板子上的接口是Qwiic接口,实际上就是SH1.0的4 针 JST 连接器,其中包括以下线路:
              3.3 VDC
              GND
              SDA:串行数据
              SCL:串行时钟
       我们需要一个SH1.0转杜邦插母的连接线,整体的连接如下:

3.3 VDC
3.3V
GND
GND
SDA
9脚/D
SCL
10脚/C


       我们还要确认一下,上拉情况,IIC是必须上拉的:
【FireBeetle 2 ESP32-C5】IIC驱动SHT40图1

       经过查验C5套装并没有上拉,不过传感器开发板上有引脚电平适配,有上拉,实际连接如下:
【FireBeetle 2 ESP32-C5】IIC驱动SHT40图5

       接下来我们就开始安装对应的库文件:
【FireBeetle 2 ESP32-C5】IIC驱动SHT40图4

       测试代码如下:
  1. #include <Wire.h>
  2. #include "Adafruit_SHT4x.h"
  3. int led = 15;
  4. Adafruit_SHT4x sht4;
  5. void setup() {
  6.   // put your setup code here, to run once:
  7.   Serial.begin(115200);
  8.   while (!Serial) {
  9.     ; // wait for serial port to connect. Needed for native USB port only
  10.   }
  11.   Wire.begin(9, 10); // GPIO9 为 SDA,GPIO10 为 SCL
  12.   Serial.println("I2C initialized");
  13.   
  14.   pinMode(led,OUTPUT);
  15.   digitalWrite(led,HIGH);
  16.   if (! sht4.begin(&Wire)) {
  17.     Serial.println(F("SHT40 sensor not found!"));
  18.     while (1) ;
  19.   }
  20.    else
  21.   {
  22.     Serial.print(F("SHT40 detected!\t"));
  23.     Serial.print(F("Serial number:\t"));
  24.     Serial.println(sht4.readSerial(), HEX);   
  25.   }
  26.   sht4.setPrecision(SHT4X_HIGH_PRECISION);
  27.   switch (sht4.getPrecision()) {
  28.      case SHT4X_HIGH_PRECISION:
  29.        Serial.println(F("SHT40 set to High precision"));
  30.        break;
  31.      case SHT4X_MED_PRECISION:
  32.        Serial.println(F("SHT40 set to Medium precision"));
  33.        break;
  34.      case SHT4X_LOW_PRECISION:
  35.        Serial.println(F("SHT40 set to Low precision"));
  36.        break;
  37.   }
  38. // 6 different heater settings
  39.   sht4.setHeater(SHT4X_NO_HEATER);
  40.   switch (sht4.getHeater()) {
  41.      case SHT4X_NO_HEATER:
  42.        Serial.println(F("SHT40 Heater turned OFF"));
  43.        break;
  44.      case SHT4X_HIGH_HEATER_1S:
  45.        Serial.println(F("SHT40 Heater: High heat for 1 second"));
  46.        break;
  47.      case SHT4X_HIGH_HEATER_100MS:
  48.        Serial.println(F("SHT40 Heater: High heat for 0.1 second"));
  49.        break;
  50.      case SHT4X_MED_HEATER_1S:
  51.        Serial.println(F("SHT40 Heater: Medium heat for 1 second"));
  52.        break;
  53.      case SHT4X_MED_HEATER_100MS:
  54.        Serial.println(F("SHT40 Heater: Medium heat for 0.1 second"));
  55.        break;
  56.      case SHT4X_LOW_HEATER_1S:
  57.        Serial.println(F("SHT40 Heater: Low heat for 1 second"));
  58.        break;
  59.      case SHT4X_LOW_HEATER_100MS:
  60.        Serial.println(F("SHT40 Heater: Low heat for 0.1 second"));
  61.        break;
  62.   }  
  63. }
  64. void loop() {
  65.   // put your main code here, to run repeatedly:
  66.   sensors_event_t humidity, temp;
  67.   sht4.getEvent(&humidity, &temp);// populate temp and humidity objects with fresh data
  68.   
  69.   float tem = temp.temperature;
  70.   Serial.println("Temp *C = " + String(tem));
  71.   float hum = humidity.relative_humidity;
  72.   Serial.println("Hum. % = " + String(hum));
  73.   delay(5000);
  74. }
复制代码
      在程序里我们首先配置了一下Wire库中IIC对应的引脚,要和引出的引脚对应上,然后进行传感器的初始化测试,通过后进行传感器的相关配置,就可以进行数据的读取了。
       串口打印如下:
【FireBeetle 2 ESP32-C5】IIC驱动SHT40图6

       可以看到虽然今年的寒冷来的比较早,不过封闭的小屋里面还是能够到到24度左右,这个温度还是挺舒适的,不过这个湿度确实挺高的,看着窗户上的挂的冷凝水,这个湿度应该也差不多。
       传感器的数据采集是本次测试活动的基础之一,毕竟没有数据对于知智能家居项目来说会显得很苍白。









您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail