Обзор
SHT30 — это высокоточный цифровой датчик температуры и влажности от Sensirion, использующий технологию CMOSens®. Он обеспечивает полностью откалиброванные, линеаризованные и компенсированные по температуре цифровые выходы, что делает его идеальным для приложений, требующих точных и надежных измерений окружающей среды.
SHT30 — это высокоточный цифровой датчик температуры и влажности от швейцарской компании Sensirion. Датчик использует запатентованную технологию CMOSens® и обеспечивает полностью откалиброванные цифровые выходы. Благодаря низкому энергопотреблению и высокой стабильности, он широко используется в промышленных и потребительских приложениях.
⚡ Ключевые особенности
- Высокая точность — ±2% влажности, ±0.3°C температуры
- Технология CMOSens® — интегрированный чип с датчиками
- Интерфейс I²C — простая и надежная коммуникация
- Полная калибровка — готов к использованию из коробки
- Низкое энергопотребление — идеально для батарейных устройств
Приобретите SHT30
Технические характеристики SHT30
Распиновка SHT30
Питание (2.4V - 5.5V)
Земля
I2C данные
I2C тактирование
- 🔌 I2C адрес — 0x44 (ADDR=L) или 0x45 (ADDR=H)
- 📏 Длина провода — до 10 метров
- ⏱️ Частота — до 1МГц
- 🔋 Питание — 2.4V - 5.5V (рекомендуется 3.3V)
Подключение SHT30 к ESP32
| Вывод SHT30 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| VCC | Требуется | 3.3V | Питание |
| GND | Требуется | GND | Земля |
| SDA | Требуется | GPIO21 | I2C данные |
| SCL | Требуется | GPIO22 | I2C тактирование |
- 📍 Адрес I2C — выбирается перемычкой ADDR (0x44 или 0x45)
- 🔧 Подтяжка — встроенные резисторы, могут потребоваться внешние
- 🔋 Питание — 3.3V рекомендуется для ESP32
Устранение неполадок SHT30
Датчик не определяется
I2C сканер не находит датчик
Датчик не определяется
I2C сканер не находит датчик
Проблема: Датчик не обнаруживается по I2C.
Причины:
- Неправильный адрес I2C
- Проблемы с подключением
- Нестабильное питание
Решение: Проверьте адрес (0x44 или 0x45), проверьте подключение SDA/SCL, убедитесь в стабильном питании 3.3V.
Нестабильные показания
Значения прыгают или некорректны
Нестабильные показания
Значения прыгают или некорректны
Проблема: Показания датчика нестабильны.
Причина: Помехи на линии I2C или нестабильное питание.
Решение: Добавьте конденсатор 100nF между VCC и GND, используйте более короткие провода.
- 🔌 Используйте I2C сканер для проверки адреса
- 🔧 Проверьте подтягивающие резисторы
- 📏 Длина провода — не более 10 метров
Примеры программирования SHT30
Arduino
Совместимо с Arduino IDE и ESP32
C++
Arduino
Совместимо с Arduino IDE и ESP32
#include <Wire.h>
#include <Adafruit_SHT31.h>
Adafruit_SHT31 sht31 = Adafruit_SHT31();
void setup() {
Serial.begin(115200);
Wire.begin(21, 22); // SDA=21, SCL=22 на ESP32
if (!sht31.begin(0x44)) { // Адрес 0x44 (ADDR=L)
Serial.println("SHT30 не найден!");
while (1) delay(1);
}
Serial.println("SHT30 инициализирован!");
}
void loop() {
float t = sht31.readTemperature();
float h = sht31.readHumidity();
if (!isnan(t) && !isnan(h)) {
Serial.print("Температура: ");
Serial.print(t);
Serial.println(" °C");
Serial.print("Влажность: ");
Serial.print(h);
Serial.println(" %");
} else {
Serial.println("Ошибка чтения!");
}
delay(1000);
}
Пример использует библиотеку Adafruit_SHT31. Датчик подключен к адресу 0x44 (ADDR вывод на GND).
ESPHome
Конфигурация для Home Assistant
YAML
ESPHome
Конфигурация для Home Assistant
i2c:
sda: GPIO21
scl: GPIO22
scan: true
sensor:
- platform: sht3x
address: 0x44
temperature:
name: "Living Room Temperature"
unit_of_measurement: "°C"
humidity:
name: "Living Room Humidity"
unit_of_measurement: "%"
update_interval: 60s
Конфигурация ESPHome для SHT30 с адресом 0x44. Датчик автоматически создает сенсоры температуры и влажности.
MicroPython
Python для микроконтроллеров
Python
MicroPython
Python для микроконтроллеров
from machine import I2C, Pin
import time
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)
SHT31_ADDR = 0x44 # Адрес датчика
def read_sht31():
# Отправка команды на измерение (высокая точность)
i2c.writeto(SHT31_ADDR, bytes([0x24, 0x00]))
time.sleep_ms(15)
# Чтение 6 байт данных
data = i2c.readfrom(SHT31_ADDR, 6)
# Расчет температуры и влажности
temp = -45 + 175 * ((data[0] << 8 | data[1]) / 65535.0
hum = 100 * ((data[3] << 8 | data[4]) / 65535.0)
return temp, hum
while True:
try:
temp, hum = read_sht31()
print(f"Температура: {temp:.1f}°C, Влажность: {hum:.1f}%")
except Exception as e:
print("Ошибка:", e)
time.sleep(1)
MicroPython пример для чтения SHT30 без внешней библиотеки. Данные считываются напрямую через I2C.
Итоги SHT30
Датчик SHT30 — это промышленный стандарт для измерения температуры и влажности. Благодаря технологии CMOSens® и швейцарскому качеству Sensirion, он обеспечивает высокую точность и надежность в различных приложениях.
Преимущества
Высокая точность ±0.3°C, интерфейс I2C, низкое энергопотребление, полная калибровка.
Ограничения
Дороже чем DHT датчики, требует I2C.