Датчик температуры и влажности (Troyka-модуль)

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

Подключение и настройка

Датчик общается с управляющей электроникой по 3 проводам. При подключении к Arduino удобно использовать Troyka Shield. Для примера подключим шлейф от модуля к группе контактов Troyka Shield, относящихся к пину 11. В своём проекте вы можете использовать любые пины.

Пример работы

В качестве примера выведем в Serial-порт текущее значение температуры и влажности. Для запуска примера скачайте и установите библиотеку TroykaDHT11.

DHT11_test.ino
// библиотека для работы с датчиком DHT11
#include <TroykaDHT11.h>
// создаём объект класса DHT11 и передаём номер пина к которому подключён датчик
DHT11 dht(11);
 
void setup()
{
  // открываем последовательный порт для мониторинга действий в программе
  Serial.begin(9600);
  dht.begin();
}
 
void loop()
{
  // переменная состояния датчика
  int check;
  // мониторинг ошибок
  // считывание данных с датчика DHT11
  check = dht.read();
  switch (check) {
    // всё OK
    case DHT_OK:
      // выводим показания влажности и температуры
      Serial.print("Temperature = ");
      Serial.print(dht.getTemperatureC());
      Serial.print("C \t");
      Serial.print("Humidity = ");
      Serial.print(dht.getHumidity());
      Serial.println("%");
      break;
    // ошибка контрольной суммы
    case DHT_ERROR_CHECKSUM:
      Serial.println("Checksum error");
      break;
    // превышение времени ожидания
    case DHT_ERROR_TIMEOUT:
      Serial.println("Time out error");
      break;
    // неизвестная ошибка
    default:
      Serial.println("Unknown error");
      break;
  }
  // ждём 1 секунду
  delay(1000);
}

Протокол датчика

Выходом датчика является цифровой сигнал. Температура и влажность передаются по одному сигнальному проводу (S). DHT11 общается с принимающей стороной, такой как Arduino по собственному протоколу. Коммуникация двунаправлена и в общих чертах выглядит так:

  1. Микроконтроллер говорит о том, что хочет считать показания. Для этого он устанавливает сигнальную линию в 0 на некоторое время, а затем устанавливает её в 1
  2. Сенсор подтверждает готовность отдать данные. Для этого он аналогично сначала устанавливает сигнальную линию в 0, затем в 1
  3. После этого сенсор передаёт последовательность 0 и 1, последовательно формирующих 5 байт (40 бит). В первых двух байтах передаётся температура, в третьем-четвёртом — влажность, в пятом — контрольная сумма, чтобы микроконтроллер смог убедиться в отсутствии ошибок считывания

Благодаря тому, что сенсор делает измерения только по запросу, достигается энергоэффективность: пока общения нет, датчик потребляет ток 100 мкА.

Элементы платы

Датчик DHT11

Цифровой датчик DHT11 является составным датчиком, который выдаёт калиброванный цифровой сигнал с показаниями температуры и влажности.

Сенсор включает в себя резистивный компонент измерения влажности и компонент измерения температуры с отрицательным температурным коэффициентом (NTC), которые подключены к высокопроизводительному 8-битному микроконтроллеру.

Каждый датчик DHT11 проходит калибровку на заводе изготовителе. Коэффициенты калибровки хранятся в однократно программируемой энергонезависимой памяти и используются во внутренних процессах обработки сигнала.

Контакты подключения 3-проводного шлейфа

Модуль подключается к управляющей электронике по трём проводам. Назначение контактов 3-проводного шлейфа:

  • Питание (V) — красный провод. На него должно подаваться напряжение питания от 3,3 до 5 В;
  • Земля (G) — чёрный провод. Должен быть соединён с землёй микроконтроллера;
  • Сигнальный (S) — жёлтый провод. Подключается к цифровому выходу микроконтроллера. Через него сенсор общается с микроконтроллером по собственному протоколу.

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

  • Напряжение питания: 3,3–5 В
  • Потребляемый ток:
    • в режиме запроса данных: 2,5 мА
    • в режиме покоя: 100 мкА
  • Диапазон измеряемой температуры: 0–50 °С
  • Погрешность температуры: ±2 °С
  • Диапазон влажности: 20–90%
  • Погрешность влажности: ±5%
  • Габариты: 25×25 мм