Датчик температуры и влажности GXHT30.

Датчик от китайского производителя клонов GXCAS, GXHT30 \ GXHT31 \ GXHT35 являются функциональными аналогами серии датчиков SHT3x от Sensirion.

Характеристики:

  • Диапазон измерения температуры: от -40 до +125 °C
  • Диапазон измерения влажности: от 0 до 100% RH
  • Связь: I²C. адрес 0x44 (pin 2 to VSS) или 0x45 (pin 2 to VDD)
  • Разрешение: 16 Bit.
  • Точность относительной влажности ±3% (типичная)
  • Точность измерения температуры ±0,3 °C (типичная)

Электрические параметры:

мин.тип.макс.
Напряжение питания2.43.35.5В
Потребление в режиме измерения8001500μA
Потребление в спящем режиме.0.22.0μA

Внешний вид и разновидности модулей:

У модулей нет мануфактурных обозначений и подписаны они просто как GXHT30. Платы модулей те же что и у SHT3x. На али можно посмотреть тут.

Модули различаются не только цветом и способом монтажа, на зеленом модуле выведены дополнительные выводы ALERT и RESET.

Схема:

Схема зеленого модуля, с дополнительными выходами.

V2:

Также без обозначений. Минималистичный модуль с шагом контактов 1,27. На али, тут.


Подключение датчика к Arduino:

Как и всё с интерфейсом I2C. Датчик толерантен к 5 вольтовой логике, но питание лучше «воткнуть» в 3,3.


Софт:

Датчик полностью совместим с SHT3x. Библиотеку можно взять тут.

Без библиотек:

.


STM8 и Код на С:

Туть
#include <Wire.h>
#include <Serial.h>

#define SHT30_address 0x45

void setup() {
  Wire_begin();
  Serial_begin(9600); 
}

void loop() {      
  // SHT30
    byte data[6];
    Wire_beginTransmission(SHT30_address);
    Wire_write(0x2C);
    Wire_write(0x06);    
    Wire_endTransmission();
      delay(500);
    Wire_requestFrom(SHT30_address, 6);
      for (byte i = 0; Wire_available() > 0; i++){
        data[i] = Wire_read();
      }  
  // конвертируем данные с датчика в понятный  
    float temp = ((((data[0] * 256.0) + data[1]) * 175) / 65535.0) - 45;
    float hum = ((((data[3] * 256.0) + data[4]) * 100.0) / 65535.0);
 
  // отправляем в монитор порта
    Serial_print_s("temp:");
    Serial_print_f(temp);
    Serial_print_s("hum:");
    Serial_println_f(hum);

  delay(1000);
  
     
}  


Даташит:


Видео: