Обзор
SHT40 — это высокоточный цифровой датчик температуры и влажности от Sensirion четвёртого поколения. Он отличается компактным дизайном и низким энергопотреблением, что делает его идеальным решением для батарейных устройств и IoT-проектов.
SHT40 — это высокоточный датчик температуры и влажности от швейцарской компании Sensirion. Датчик обеспечивает отличную точность ±0.2°C и ±1.8% RH при минимальном энергопотреблении. Благодаря широкому диапазону питания 1.08V-3.6V, он идеально подходит для батарейных устройств IoT.
⚡ Ключевые особенности
- Высокая точность — ±0.2°C для температуры, ±1.8% RH для влажности
- Сверхнизкое питание — диапазон 1.08V-3.6V, идеально для батарейных устройств
- Минимальное энергопотребление — всего 0.4 мкА при частоте 1 Гц
- Компактный размер — 1.5x1.5x0.5 мм
- I2C интерфейс — простая интеграция с ESP32, Arduino
Приобретите SHT40
Технические характеристики SHT40
Скачайте полный технический даташит для получения подробной информации о характеристиках и режимах работы датчика.
Скачать datasheetРаспиновка SHT40
Питание (1.08V - 3.6V)
Земля
Линия данных I2C
Линия тактирования I2C
- 🔌 I2C адрес — 0x44 (фиксированный)
- 📏 Точность — ±0.2°C температура, ±1.8% влажность
- 🔋 Энергопотребление — всего 0.4 мкА при 1 Гц
- 📱 Применение — батарейные IoT устройства
Подключение SHT40 к ESP32
| Вывод SHT40 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| VDD | Требуется | 3.3V | Питание (1.08V-3.6V) |
| GND | Требуется | GND | Земля |
| SDA | Требуется | GPIO21 | I2C данные |
| SCL | Требуется | GPIO22 | I2C тактирование |
- 📍 GPIO21/22 — стандартные I2C пины на ESP32
- 🔧 I2C адрес — 0x44 (фиксированный, не настраивается)
- 🔌 Подтяжка — резисторы 10kΩ обычно уже установлены на модуле
- 🔋 Питание — SHT40 работает от 1.08V до 3.6V
Устранение неполадок SHT40
Датчик не инициализируется
Сенсор не определяется при запуске
Датчик не инициализируется
Сенсор не определяется при запуске
Проблема: Датчик не инициализируется, данные не считываются.
Причины:
- Неправильное подключение SDA/SCL
- Напряжение питания вне диапазона 1.08V-3.6V
- Отсутствие подтягивающих резисторов
- Неправильный I2C адрес
Решение: Проверьте подключение SDA→GPIO21, SCL→GPIO22. Убедитесь, что питание в диапазоне 1.08V-3.6V. Проверьте наличие подтягивающих резисторов.
Неточные показания
Температура или влажность некорректны
Неточные показания
Температура или влажность некорректны
Проблема: Датчик показывает неточные значения температуры или влажности.
Причины:
- Датчик расположен рядом с источниками тепла
- Прямое солнечное освещение
- Конденсат или капли воды на датчике
- Недостаточное время стабилизации после включения
Решение: Переместите датчик в место без прямых источников тепла. Дайте датчику стабилизироваться после включения (несколько минут). При необходимости проведите калибровку.
Прерывистая связь I2C
Связь с датчиком пропадает
Прерывистая связь I2C
Связь с датчиком пропадает
Проблема: Связь с датчиком прерывается или пропадает.
Причины:
- Неправильный I2C адрес (должен быть 0x44)
- Плохие соединения проводов
- Отсутствие подтягивающих резисторов
- Слишком длинные провода
Решение: Проверьте I2C адрес (0x44). Проверьте качество соединений. Добавьте подтягивающие резисторы 10kΩ при необходимости. Укоротите провода.
- 🔌 Используйте I2C сканер для проверки адреса
- 📊 Проверьте Serial Monitor на наличие ошибок
- 🔧 Проверьте питание мультиметром
- 🔗 Убедитесь в надёжности соединений
Примеры программирования SHT40
Arduino
Совместимо с Arduino IDE и ESP32
C++
Arduino
Совместимо с Arduino IDE и ESP32
#include <Wire.h>
#include "Adafruit_SHT4x.h"
Adafruit_SHT4x sht4 = Adafruit_SHT4x();
void setup() {
Serial.begin(115200);
if (!sht4.begin()) {
Serial.println("Не найден SHT4x!");
while (1) delay(10);
}
Serial.println("Найден датчик SHT4x");
}
void loop() {
sensors_event_t humidity, temp;
sht4.getEvent(&humidity, &temp);
Serial.print("Температура: ");
Serial.print(temp.temperature);
Serial.println(" °C");
Serial.print("Влажность: ");
Serial.print(humidity.relative_humidity);
Serial.println(" %");
delay(2000);
}
Пример использует библиотеку Adafruit SHT4x. Датчик автоматически определяется по адресу 0x44.
ESP-IDF
Официальный фреймворк Espressif
C++
ESP-IDF
Официальный фреймворк Espressif
#include "sht4x.h"
#include "esp_log.h"
#define I2C_MASTER_SCL_IO 22
#define I2C_MASTER_SDA_IO 21
#define I2C_MASTER_FREQ_HZ 100000
#define SHT40_ADDR 0x44
static const char *TAG = "SHT40";
void app_main() {
ESP_LOGI(TAG, "Инициализация SHT40...");
sht4x_dev_t dev;
sht4x_init(&dev, I2C_MASTER_SCL_IO, I2C_MASTER_SDA_IO, I2C_MASTER_FREQ_HZ, SHT40_ADDR);
while (1) {
float temperature, humidity;
if (sht4x_read_temperature(&dev, &temperature) == ESP_OK &&
sht4x_read_humidity(&dev, &humidity) == ESP_OK) {
ESP_LOGI(TAG, "Температура: %.2f°C", temperature);
ESP_LOGI(TAG, "Влажность: %.2f%%", humidity);
} else {
ESP_LOGE(TAG, "Ошибка чтения SHT40");
}
vTaskDelay(2000 / portTICK_PERIOD_MS);
}
}
Пример для ESP-IDF использует библиотеку sht4x. Данные считываются каждые 2 секунды.
ESPHome
Конфигурация для Home Assistant
YAML
ESPHome
Конфигурация для Home Assistant
sensor:
- platform: sht4x
temperature:
name: "SHT40 Temperature"
humidity:
name: "SHT40 Humidity"
address: 0x44
update_interval: 2s
Конфигурация ESPHome для подключения SHT40. Данные обновляются каждые 2 секунды.
PlatformIO
Профессиональная среда разработки
C++
PlatformIO
Профессиональная среда разработки
platformio.ini:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps = adafruit/Adafruit SHT4x Library
monitor_speed = 115200
main.cpp:
#include <Wire.h>
#include "Adafruit_SHT4x.h"
Adafruit_SHT4x sht4 = Adafruit_SHT4x();
void setup() {
Serial.begin(115200);
if (!sht4.begin()) {
Serial.println("Не найден SHT4x!");
while (1) delay(10);
}
Serial.println("Найден датчик SHT4x");
}
void loop() {
sensors_event_t humidity, temp;
sht4.getEvent(&humidity, &temp);
Serial.print("Температура: ");
Serial.print(temp.temperature);
Serial.println(" °C");
Serial.print("Влажность: ");
Serial.print(humidity.relative_humidity);
Serial.println(" %");
delay(2000);
}
Конфигурация PlatformIO для ESP32 с использованием библиотеки Adafruit SHT4x.
Итоги SHT40
Датчик SHT40 — это отличный выбор для батарейных IoT-проектов благодаря сверхнизкому энергопотреблению и широкому диапазону питания. Высокая точность и компактный размер делают его идеальным решением для портативных устройств и систем удалённого мониторинга.
Преимущества
Сверхнизкое питание 1.08-3.6V, минимальное энергопотребление 0.4 мкА, высокая точность ±0.2°C, компактный размер.
Ограничения
Фиксированный I2C адрес 0x44, требует модуль для 3.3V.
Готовы начать?
Теперь, когда у вас есть вся необходимая информация, пришло время подключить SHT40 к вашему проекту!