Обзор
SHT11 — это цифровой датчик температуры и влажности от Sensirion с интерфейсом Sensibus. Это один из первых датчиков в линейке Sensirion, который широко используется в различных проектах благодаря простоте подключения и надёжности.
SHT11 — это цифровой датчик температуры и влажности от швейцарской компании Sensirion. Датчик использует проприетарный интерфейс Sensibus для связи с микроконтроллером. Несмотря на появление более новых моделей (SHT2x, SHT3x, SHT4x), SHT11 остаётся популярным благодаря низкой стоимости и широкой доступности.
Технические характеристики SHT11
Полные технические характеристики датчика температуры и влажности SHT11.
Распиновка SHT11
SHT11 использует проприетарный 2-проводной протокол Sensibus (похож на I2C, но не идентичен) и имеет 4 активных вывода.
Использует протокол Sensibus — это НЕ стандартный I2C. Требуется специальная библиотека для работы.
Для стабильной работы линии DATA может потребоваться подтягивающий резистор 10кОм к VDD.
| 1 | GND | Земля | Подключите к общему минусу схемы. |
| 2 | DATA | Данные | Линия передачи данных (двунаправленная). |
| 3 | SCK | Clock | Линия тактирования для синхронизации данных. |
| 4 | VDD | Питание | Питание от 2.4В до 5.5В. |
Подключение SHT11 к ESP32
Подключите SHT11, используя протокол Sensibus, к двум любым цифровым выводам (например, GPIO21 и GPIO22).
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
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
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
YAML
Конфигурация для Home Assistant
sensor:
- platform: sht1x
data_pin: GPIO21
clock_pin: GPIO22
temperature:
name: "SHT11 Температура"
humidity:
name: "SHT11 Влажность"
update_interval: 60s
Для повышения точности избегайте прикосновений к сенсорному элементу и попадания пыли. Периодически продувайте датчик сухим воздухом.
Не превышайте напряжение питания 5.5В. Не допускайте попадания воды на контакты во избежание короткого замыкания.
Используйте наши примеры кода и схемы подключения, чтобы быстро интегрировать датчик в свой проект.
Похожие варианты
HTE501
Высокоточный цифровой датчик влажности и температуры для сложных условий.
DHT22 / AM2302
Популярный и недорогой датчик для измерения температуры и влажности.
DHT20
Цифровой датчик нового поколения с интерфейсом I2C и низким энергопотреблением.