SHT11 датчик температуры и влажности

Изучите всё о датчике SHT11: технические характеристики, распиновка, схемы подключения, datasheet и примеры кода для ESP32, Arduino, Raspberry

Окружающая среда Sensibus

Обзор

SHT11 — это цифровой датчик температуры и влажности от Sensirion с интерфейсом Sensibus. Это один из первых датчиков в линейке Sensirion, который широко используется в различных проектах благодаря простоте подключения и надёжности.

SHT11 — это цифровой датчик температуры и влажности от швейцарской компании Sensirion. Датчик использует проприетарный интерфейс Sensibus для связи с микроконтроллером. Несмотря на появление более новых моделей (SHT2x, SHT3x, SHT4x), SHT11 остаётся популярным благодаря низкой стоимости и широкой доступности.

Датчик SHT11
Быстрая навигация
Основные разделы
Примеры кода
Для разных платформ
Спецификации

Технические характеристики SHT11

Полные технические характеристики датчика температуры и влажности SHT11.

Интерфейс
Sensibus
Напряжение питания
2.4V - 5.5V
Диапазон температуры
-40 ~ 123.8 °C
Точность температуры
±0.4 °C
Диапазон влажности
0 ~ 100 % RH
Точность влажности
±3 % RH
Скачать полный Datasheet
Распиновка

Распиновка SHT11

SHT11 использует проприетарный 2-проводной протокол Sensibus (похож на I2C, но не идентичен) и имеет 4 активных вывода.

SHT11 Pinout
Особенности протокола

Использует протокол Sensibus — это НЕ стандартный I2C. Требуется специальная библиотека для работы.

Подтяжка линии DATA

Для стабильной работы линии DATA может потребоваться подтягивающий резистор 10кОм к VDD.

Таблица назначения пинов
1 GND Земля Подключите к общему минусу схемы.
2 DATA Данные Линия передачи данных (двунаправленная).
3 SCK Clock Линия тактирования для синхронизации данных.
4 VDD Питание Питание от 2.4В до 5.5В.
Подключение

Подключение SHT11 к ESP32

Подключите SHT11, используя протокол Sensibus, к двум любым цифровым выводам (например, GPIO21 и GPIO22).

SHT11 Wiring Diagram
Статус соединений
Проверено
4 Провода
Протокол
Sensibus
Важно

Sensibus — это НЕ I2C. Используйте библиотеку SHT1x. Любые GPIO подходят для работы.

Таблица соединений
Пин SHT11 Пин ESP32 Описание
VDD 3.3V Питание
GND GND Земля
DATA GPIO21 Линия данных
SCK GPIO22 Линия тактирования
Устранение неполадок

Устранение неполадок SHT11

Ниже приведены распространенные проблемы и способы их решения.

Ошибка инициализации

Датчик не инициализируется и данные не поступают.

Решение:

Убедитесь, что линии DATA и SCK правильно подключены. Проверьте напряжение питания (2.4В - 5.5В). Попробуйте добавить подтягивающий резистор 10кОм на линию DATA.

Неверные показания

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

Решение:

Не размещайте датчик рядом с источниками тепла. Избегайте попадания прямых солнечных лучей и конденсата. Дайте датчику время стабилизироваться после включения.

Примеры кода

Примеры программирования SHT11

Готовые примеры кода для различных платформ и фреймворков.

Arduino Core
Arduino
C++
Совместимо с Arduino IDE и платами ESP32

Этот код инициализирует датчик SHT11 с использованием библиотеки SHT1x.

#include <SHT1x.h>

#define dataPin 21
#define clockPin 22

SHT1x sht1x(dataPin, clockPin);

void setup() {
  Serial.begin(115200);
}

void loop() {
  float temp = sht1x.readTemperatureC();
  float humidity = sht1x.readHumidity();
  
  Serial.print("Температура: ");
  Serial.print(temp);
  Serial.println(" °C");
  
  Serial.print("Влажность: ");
  Serial.print(humidity);
  Serial.println(" %");
  
  delay(2000);
}
Как это работает:

Библиотека SHT1x реализует протокол Sensibus. В функции loop() мы считываем температуру в градусах Цельсия и влажность, после чего выводим их в монитор порта каждые 2 секунды.

ESP-IDF
ESP-IDF
C++
Официальный фреймворк Espressif

Пример использования SHT11 в профессиональном фреймворке ESP-IDF.

#include "sht1x.h"
#include "esp_log.h"

#define DATA_PIN GPIO_NUM_21
#define SCK_PIN GPIO_NUM_22

static const char *TAG = "SHT11";

void app_main() {
    ESP_LOGI(TAG, "Инициализация SHT11...");
    sht1x_dev_t dev;
    sht1x_init(&dev, DATA_PIN, SCK_PIN);

    while (1) {
        float temperature, humidity;
        if (sht1x_read_temperature(&dev, &temperature) == ESP_OK &&
            sht1x_read_humidity(&dev, &humidity) == ESP_OK) {
            ESP_LOGI(TAG, "Температура: %.2f°C", temperature);
            ESP_LOGI(TAG, "Влажность: %.2f%%", humidity);
        } else {
            ESP_LOGE(TAG, "Ошибка чтения данных с SHT11");
        }
        vTaskDelay(2000 / portTICK_PERIOD_MS);
    }
}
ESPHome
ESPHome
YAML
Конфигурация для Home Assistant
sensor:
  - platform: sht1x
    data_pin: GPIO21
    clock_pin: GPIO22
    temperature:
      name: "SHT11 Температура"
    humidity:
      name: "SHT11 Влажность"
    update_interval: 60s
Рекомендации

Для повышения точности избегайте прикосновений к сенсорному элементу и попадания пыли. Периодически продувайте датчик сухим воздухом.

Безопасность

Не превышайте напряжение питания 5.5В. Не допускайте попадания воды на контакты во избежание короткого замыкания.

Готовы начать работу с SHT11?

Используйте наши примеры кода и схемы подключения, чтобы быстро интегрировать датчик в свой проект.

Похожие варианты