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

Когда вы уезжаете куда-то далеко на определенный срок времени? Ваши комнатные цветы некому поливать, поэтому приходится просить помощи у ваших соседей, которые, в свою очередь, могут халатно относиться к этому. В результате к вашему приезду растения будут чувствовать себя плохо. Чтобы этого не произошло, можно сделать систему автоматического полива. Для этой цели нам понадобится Arduino и датчик влажности почвы. В статье рассмотрим пример подключения и работы с датчиком FC-28. Он зарекомендовал себя с положительной стороны, с помощью него были созданы тысячи проектов.

О датчике FC-28

Датчиков для определения влажности земли великое множество, но самым популярным является модель FC-28. У него низкая цена, благодаря чему широко используется всеми радиолюбителями в своих проектах. Применяется датчик влажности почвы с Arduino. У него есть два зонда, которые проводят электрический ток через землю. Получается, что если почва влажная, то сопротивление между зондами меньше. При сухой земле, соответственно, сопротивление больше. Arduino принимает эти значения, сравнивает и при необходимости включает, например насос. Датчик способен работать как с цифровым режимом, так и с аналоговым, оба варианта подключения мы рассмотрим. Применяется FC-28 в основном в мелких проектах, например, при автоматическом поливе одного конкретного растения, так как использовать в больших масштабах его неудобно в силу размеров и минусов, которые мы также рассмотрим.

Где купить

Дело в том, что в российских магазинах датчики для работы с Arduino стоят относительно дорого. Средняя цена на этот датчик в России варьируется от 200 до 300 рублей, в то же время как в Aliexpress этот же датчик стоит всего лишь каких-то 30-50. Наценка огромная. Конечно, можно еще сделать датчик для измерения влажности почвы своими руками, но об этом ниже.

О подключении

Подключается датчик влажности к Arduino очень легко. В комплекте с ним идут компаратор и потенциометр для регулирования чувствительности датчика, а также для установки предельного значения при подключении с помощью цифрового выхода. Сигнал при выходе, как уже упоминалось выше, может быть цифровым и аналоговым.

Подключение с помощью цифрового выхода

Подключается практически так же, как и аналоговый:

  • VCC - 5V на Arduino.
  • D0 - D8 на плате на Arduino.
  • GND - земля.

Как уже упоминалось выше, на модуле датчика расположены компаратор и потенциометр. Работает все следующим образом: при помощи потенциометра мы устанавливаем предельное значение нашего датчика. FC-28 сравнивает значение с предельным, и после этого отправляет значение в Arduino. Допустим, значения датчика выше порогового, в таком случае датчик влажности почвы на Arduino передает 5V, если меньше - 0V. Все очень просто, но более точные значения - у аналогового режима, поэтому рекомендуется использовать его.

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

Программный код для Arduino при использовании цифрового режима приведен ниже.

Int led_pin =13; int sensor_pin =8; void setup() { pinMode(led_pin, OUTPUT); pinMode(sensor_pin, INPUT); } void loop() { if(digitalRead(sensor_pin) == HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); delay(1000); } }

Что же делает наш код? Первым делом были обозначены две переменные. Первая переменная - led_pin - служит для обозначения светодиода, а вторая - для обозначения датчика влажности земли. Далее мы объявляем контакт светодиода как выход, и контакт датчика как вход. Это нужно для того, чтобы мы могли получить значени, и при необходимости включить светодиод, чтобы визуально увидеть, что значения датчика выше порогового. В цикле мы считываем значения с датчика. Если значение выше предельного - включаем светодиод, если ниже - выключаем. Вместо светодиода может быть и насос, тут все зависит от вас.

Аналоговый режим

Для подключения при помощи аналогового выхода потребуется работать с A0. Емкостной датчик влажности почвы в Arduino принимает значения от 0 до 1023. Подключаем датчик следующим образом:

  • VCC подключаем на 5V к Arduino.
  • GND на датчике подключаем к GND на плате Arduino.
  • A0 подключаем к A0 на Arduino.

Int sensor_pin = A0; int output_value ; void setup() { Serial.begin(9600); Serial.println("Читаем сенсор"); delay(2000); } void loop() { output_value= analogRead(sensor_pin); output_value = map(output_value,550,0,0,100); Serial.print("Влажность "); Serial.print(output_value); Serial.println("%"); delay(1000); }

Итак, что же делает этот программный код? Первым делом были заданы переменные. Первая переменная нужна, чтобы определить контакт датчика, а другая будет хранить результаты, которые мы будем получать при помощи датчика. Далее мы считываем данные. В цикле мы записываем в созданную нами переменную output_value значения с датчика. Затем рассчитывается процент влажности почвы, после чего выводим их на монитор порта. Электрическая схема подключения изображена ниже.

Своими руками

Выше было рассмотрено, как подключить датчик влажности почвы к Arduino. Проблема этих датчиков в том, что они недолговечные. Дело в том, что они очень сильно склонны к коррозии. Некоторые фирмы делают датчики со специальным покрытием, чтобы увеличить срок службы, но это все равно не то. Также рассматривается вариант использования датчика не часто, а только когда требуется. Например, есть программный код, где каждую секунду датчик считывает значения о влажности почвы. Можно продлить срок службы, если включать его, например, один раз в день. Но если и это вам не подходит, то можно сделать своими руками датчик влажности почвы. Arduino разницы не почувствует. В принципе, система такая же. Просто вместо двух сенсоров можно поставить свои и использовать при этом материал, который менее подвержен коррозии. Идеально, конечно, использовать золото, но, учитывая его цену, это выйдет очень дорого. Вообще, дешевле выходит покупать, учитывая цену FC-28.

Плюсы и минусы

В статье были рассмотрены варианты подключения датчика влажности почвы к Arduino, также были представлены примеры программного кода. FC-28 является действительно хорошим датчиком для определения влажности почвы, но какие же конкретные плюсы и минусы этого датчика?

Плюсы:

  • Цена. Этот датчик имеет очень низкую цену, поэтому каждый радиолюбитель сможет купить и соорудить свою систему автоматического полива для растений. Конечно, при работе с большими масштабами этот датчик не подойдет, но он для этого и не предназначен. Если нужен датчик мощнее - SM2802B, то за него и отдать придется немаленькую сумму.
  • Простота. Освоить работу с этим датчиком влажности почвы в Arduino может каждый. Всего несколько проводов, пара строк кода - и все. Контроль влажности почвы сделан.

Минусы:

  • Подверженность коррозии. Это единственный недостаток этих датчиков. Но, учитывая цену, на это и глаза можно закрыть. В первую очередь эти датчики были сделаны скорее для обучения, нежели для практического использования в больших проектах.

В первой части статьи рассмотрим характеристики датчика температуры и влажности DHT11, научимся выводить значения в последовательный порт компьютера, во второй части усложним задачу и выведем показания на дисплей используя .

Компоненты для повторения (купить в Китае):

Основные технические характеристики:

Напряжение питания: 3 - 5В
. Определяемая влажность: 20 - 80% ± 5%
. Определяемая температура: 0 - 50º ± 2%
. Частота опроса: ≤ 1Гц
. Размеры: 30 x 14 x 6мм

Как мы видим, данные датчики не рассчитаны на работу в экстремальных условиях, однако их возможностей c головой хватит для осуществления большинства домашних и более серьезных поделок. Внутри датчика находится емкостной датчик влажности, термистор, и простенький аналогово-цифровой преобразователь значений температуры и влажности.

Подключение к Arduino

Модуль оборудован трех пиновым разъемом стандарта 2.54мм

G - Подключается к выводу GND

V - Подключается к выводу +5V

S - Подключается к цифровому выводу (в примере D4)

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

Библиотека необходимая для работы с модулем dht11

Её необходимо распаковать и добавить в папку "libraries" в папке с Arduino IDE. Не забывайте перезагрузить среду, если на момент добавления IDEшка была открыта.

Пример программного кода

#include // Добавляем библиотеку DHT11 dht11 DHT; #define DHT11_PIN 4 void setup (){ Serial .begin (9600); // Скорость работы порта Serial .println ("DHT TEST PROGRAM " ); // Выводим текст Serial .print ("LIBRARY VERSION: " ); // Выводим текст Serial .println (DHT11LIB_VERSION); Serial .println (); // Пустая строка } void loop (){ int chk; ; // Мониторинг ошибок chk = DHT.read (DHT11_PIN); // Чтение данных switch (chk){ case DHTLIB_OK: break ; case DHTLIB_ERROR_CHECKSUM: Serial .println ("Checksum error, \t" ); break ; case DHTLIB_ERROR_TIMEOUT: Serial .println ("Time out error, \t" ); break ; default : Serial .println ("Unknown error, \t" ); break ; } Serial .print ("Humidity = " ); Serial .print (DHT.humidity, 1); Serial .print (", Temp = " ); Serial .println (DHT.temperature,1); delay (1000); }

Открываем монитор порта. В него будут выводиться значения влажности и температуры.


Вывод значений на LCD I2C модуль

Выводить значения на компьютер это конечно отлично, однако в автономном устройстве не всегда позволительно. Как было написано вначале, во второй части статьи приведем пример вывода данных на ЖК дисплей, который в свою очередь управляется по интерфейсу I2C. Для подключения данного LCD модуля требуется всего 4 линии: + питания, земля, последовательная линия данных SDA (Serial DAta) и последовательная линия тактирования SCL (Serial CLock). Более подробно об основах работы с LCD I2C модулем вы сможете прочесть здесь.

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

В приведенном ниже скетче мы будем измерять и отсылать данные о состоянии температуры и влажности на ЖК дисплей.

Пример программного кода

//Тестировалось на Arduino IDE 1.0.5 #include // Добавляем необходимые библиотеки #include #include dht11 DHT; // Объявление переменной класса dht11 #define DHT11_PIN 4 // Датчик DHT11 подключен к цифровому пину номер 4 byte degree = // Битовая маска символа градуса { B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея void setup () { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.createChar (1, degree); // Создаем символ под номером 1 } void loop () { // Выводим показания влажности и температуры lcd.setCursor (0, 0); // Устанавливаем курсор в начало 1 строки lcd.print ("Humidity = % " ); // Выводим текст lcd.setCursor (11, 0); lcd.print (DHT.humidity, 1); lcd.setCursor (0, 1); // Устанавливаем курсор в начало 2 строки lcd.print ("Temp = \1C " ); // Выводим текст, \1 - значок градуса lcd.setCursor (11, 1); lcd.print (DHT.temperature,1); int chk; ; // Мониторинг ошибок chk = DHT.read (DHT11_PIN); // Чтение данных switch (chk){ case DHTLIB_OK: break ; case DHTLIB_ERROR_CHECKSUM: lcd.clear (); lcd.print ("Checksum error" ); break ; case DHTLIB_ERROR_TIMEOUT: lcd.clear (); lcd.print ("Time out error" ); break ; default : lcd.clear (); lcd.print ("Unknown error" ); break ; } delay (1000); }

Купить в России

Итак, датчик DHT11 имеет следующие характеристики:

  • диапазон измеряемой относительной влажности - 20..90% с погрешностью до 5%,
  • диапазон измеряемых температур - 0..50°C с погрешностью до 2°C;
  • время реакции на изменения влажности - до 15 секунд, температуры - до 30 секунд;
  • минимальный период опроса - 1 секунда.

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

2 Схема подключения датчика температуры и влажности DHT11

Рассмотрим схему подключения датчика температуры и влажности DHT11 к микроконтроллеру, в частности, к Arduino.


Давайте посмотрим, что показано на рисунке.

Обозначение на рисунке Описание Примечание
MCU Микроконтроллер или одноплатный компьютер Arduino / Raspberry Pi и др.
DHT11 Датчик температуры и влажности Выводы 1Pin, 2Pin и 4Pin задействованы в схеме, один из выводов датчика - 3-ий пин 3Pin - ни к чему не подключается.
DATA Шина данных Если длина соединительного кабеля от датчика к микроконтроллеру не превышает 20 метров, то эту шину рекомендуется подтянуть к питанию резистором 5,1 кОм; если больше 20 метров - то другой подходящий номинал (меньший).
VDD Питание датчика Допустимы напряжения от ~3,0 до ~5,5 вольт постоянного тока; если используется питание ~3,3 В, то желательно использовать питающий провод не длиннее 20 см.

Соберём рассмотренную схему. Я также по традиции включу в цепь логический анализатор, чтобы можно было изучить временную диаграмму информационного обмена с датчиком.



Сенсор DHT11 часто продаётся в виде готовой сборки с необходимой обвязкой - подтягивающими резистором и фильтрующим конденсатором (как на предыдущей фотографии). Для экспериментов с Arduino я рекомендую покупать именно такой.

3 Считывание данных с сенсора DHT11 при помощи Arduino

Давайте пойдём таким путём: скачаем библиотеку для датчика DHT11 , установим её стандартным способом (распаковав в директорию \libraries\ среды разработки для Arduino).

Напишем вот такой простенький скетч. Он будет выводить в последовательный порт компьютера каждые 2 секунды сообщения об относительной влажности и температуре, считанные с датчика DHT11.

#include // подключаем библиотеку dht11 sensor; // инициализация экземпляра датчика #define DHT11PIN 8 // вывод 8 будет шиной DATA void setup() { Serial.begin(9600); } void loop() { int chk = sensor.read(DHT11PIN); Serial.print("h="); Serial.print(sensor.humidity); Serial.print("%\t"); Serial.print("t="); Serial.print(sensor.temperature); Serial.println("C"); delay(2000); }

Загрузим этот скетч в Arduino. Подключимся к Arduino с помощью монитора COM-порта и увидим следующее:


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

4 Временная диаграмма информационного обмена датчика температуры и влажности DHT11 с микроконтроллером

С помощью временной диаграммы, полученной с логического анализатора, разберёмся, как осуществляется информационный обмен.

Для связи с микроконтроллером датчик температуры и влажности DHT11 использует однопроводный последовательный пакетный интерфейс. Один информационный пакет длительностью около 4 мс содержит: 1 бит запроса от микроконтроллера, 1 бит ответа датчика и 40 битов данных от датчика (16 битов информации о влажности, 16 битов информации о температуре и 8 проверочных битов). Давайте подробнее рассмотрим временную диаграмму информационного обмена Arduino с датчиком DHT11.



Временная диаграмма информационного обмена сенсора DHT11 с микроконтроллером

Из рисунка видно, что есть два типа импульсов: короткие и длинные. Короткие в данном протоколе обмена обозначают нули, длинные импульсы - единицы.

Итак, первые два импульса - это запрос Arduino к DHT11 и, соответственно, ответ датчика. Далее идут 16 бит влажности. Причём они разделены на байты, старший и младший, старший слева. То есть на нашем рисунке данные о влажности такие: 0001000000000000 = 00000000 00010000 = 0x10 = 16% относительной влажности.

Данные о температуре, аналогично: 0001011100000000 = 00000000 00010111 = 0x17 = 23 градуса Цельсия.

Контрольная сумма - это всего-навсего арифметическое суммирование 4-х полученных байтов данных:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 в двоичной системе или 0 + 16 + 0 + 23 = 39 в десятичной.

5 Работа с датчиком DHT11 без библиотеки

Теперь мы знаем достаточно для того чтобы написать собственную программу для работы с сенсором температуры и влажности DHT11 без использования сторонних библиотек. Напишем скетч, который будет опрашивать раз в секунду датчик и выводить в последовательный порт компьютера принятый пакет и данные о температуре, влажности, а также проверочный байт. На 13-ую ножку Arduino выведем контрольный сигнал и, подключившись в ней логическим анализатором, проверим, что мы верно считываем информацию от датчика.

Скетч для работы с DHT11 и Arduino без сторонних библиотек (разворачивается) #define DHT11pin 8 // для подключения шины DATA сенсора DHT11 #define LEDpin 13 // используем для контроля const int NUM_READS = 500; // зависит от частоты кварца и подбирается экспериментально long readsCounter = 0; // счётчик циклов чтения int reads; // сырой массив считанных значений void setup() { Serial.begin(9600); pinMode(DHT11pin, INPUT); pinMode(LEDpin, OUTPUT); } void loop() { if (readsCounter void initLink() { pinMode(DHT11pin, OUTPUT); digitalWrite(DHT11pin, LOW); delay(15); pinMode(DHT11pin, INPUT); } // Читает данные датчика DHT11 и записывает в массив: void readSerialDHT11() { int sensorValue = digitalRead(DHT11pin); reads = sensorValue; digitalWrite(LEDpin, sensorValue); // для проверки выводим на отдельную ножку readsCounter++; } // Обрабатывает массив данных за цикл с DHT11: void processDht11Data() { byte dht11Data = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // обработанный массив (биты пакета) int zeroLen = 1; // минимальная длительность бита "0" int oneLen = 3 * zeroLen; // примерная длительность бита "1" int wrongData = 6 * zeroLen; // допуск по длительности для данных int currentBitLen = 0; // длительность текущего бита int bitPosition = 0; // позиция бита в пакете for (int i=1; i = zeroLen) && (currentBitLen <= oneLen)) { dht11Data = 0; bitPosition++; } else if ((currentBitLen > oneLen) && (currentBitLen <= wrongData)) { dht11Data = 1; bitPosition++; } currentBitLen = 0; } else { if (reads[i] == HIGH) { // при сигнале HIGH currentBitLen += 1; // считаем длительность текущего бита } } } for (int i=0; i void getHumidTemperatureParity(byte data) { word humidity = 0; byte hLow = 0; byte hHi = 0; word temperature = 0; byte tLow = 0; byte tHi = 0; byte parity = 0; for (int i=1; i<9; i++){ //пропускаем первый импульс-подтверждение hLow = hLow | (data[i] << (8 - i)); } for (int i=9; i<17; i++){ hHi = hHi | (data[i] readsCounter = 0; }

Небольшая таблица даст дополнительные разъяснения к предлагаемому решению.

Функция Назначение

В статье рассмотрены основы работы с недорогими датчиками температуры и влажности серии DHT.

Эти сенсоры простые и медленные, но при этом отлично подходят для хобби-проектов на Arduino. Датчики DHT состоят из двух основных частей: ёмкостный датчик влажности и термистор. Также в корпусе установлен простенький чип для преобразования аналогового сигнала в цифровой. Считывать цифровой сигнал на выходе достаточно просто, можно использовать любой контроллер, не обязательно Arduino.

Технические характеристики DHT11 и DHT22

Существуют две версии сенсоров DHT. Выглядят они почти одинаково. Распиновка тоже одинаковая. Основные отличия - в технических характеристиках:

  • Очень дешевый.
  • Питание от 3 до 5В.
  • Рассчитан на измерение уровня влажности в диапазоне от 20% до 80%. При этом точность измерений находится в диапазоне 5%.
  • Измеряет температуру в диапазоне от 0 до 50 градусов с точностью плюс-минус 2%.
  • Частота измерений не более 1 Гц (одно измерение в секунду).
  • Размер корпуса: 15.5 мм x 12 мм x 5.5 мм.
  • Дешевый.
  • Питание от 3 до 5В.
  • Максимально потребляемый ток - 2.5мА при преобразовании (при запросе данных).
  • Рассчитан на измерение уровня влажности в диапазоне от 0% до 100%. При этом точность измерений находится в диапазоне 2%-5%.
  • Измеряет температуру в диапазоне от -40 до 125 градусов с точностью плюс-минус 0.5 градусов по Цельсию.
  • Частота измерений до 0.5 Гц (одно измерение за 2 секунды).
  • Размер корпуса: 15.1 мм x 25 мм x 7.7 мм.
  • 4 коннектора. Расстояние между соседними - 0.1".

Как видите, DHT22 более точный и имеет больший диапазон измеряемых значений. Оба датчика имеют по одному цифровому выходу. Запросы к ним можно отправлять не чаще чем один в секунду или две.

Подключение датчиков DHT к Arduino

Подключаются датчики легко. Так как у них достаточно длинные коннекторы 0.1", можно устанавливать их непосредственно на макетную или монтажную плату (смотрите на рисунке ниже).


Непосредственное подключение к Arduino тоже простое. На сенсоре 4 коннектора:

  • Питание (VCC) - от 3 до 5 В.
  • Вывод данных.
  • Не подключается.
  • Земля.

Коннектор 3 просто игнорируйте, он не подключается. Желательно подключить подтягивающий резистор на 10 кОм между питанием и сигналом. На Arduino есть встроенные резисторы, но их номинал 100кОм нам не подойдет.

На рисунке ниже приведена схема подключения DHT11 к Arduino. Подключите сигнал с датчика к пину 2, чтобы схема соответствовала примеру скетча, который приведен ниже. Этот пин можно изменить с соответствующими правками в коде.


Считывание данных с датчиков DHTxx

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

Продолжаем серию уроков . Сегодня мы разберем подключение к Arduino датчиков температуры и влажности DHT11 и DHT22.

Датчики DHT11 и DHT22 не обладают высоким быстродействием и точностью, но зато просты, недороги и отлично подходят для обучения. Они выполнены из двух частей — емкостного датчика влажности и термистора. Чип, находящийся внутри, выполняет аналого-цифровое преобразование и выдает цифровой сигнал, который можно считать с помощью любого микроконтроллера.

Список деталей для сборки модели

Для сборки проекта, описанного в этом уроке, понадобятся следующие детали:

  • плата Arduino (подробнее, о том как выбрать Arduino );
  • датчик DHT11 или DHT22 (можно купить, например, или );
  • Breadboard;
  • резистор на 10 кОм;
  • программа Arduino IDE, которую можно скачать с сайта Arduino .

Датчики DHT11 и DHT22

Чем отличаются датчики DHT11 и DHT22?

Две версии сенсоров DHT похожи друг на друга и имеют одинаковую распиновку. Их отличия в характеристиках. Спецификации:

Сенсор DHT11:

  • определение влажности в диапозоне 20-80%
  • определение температуры от 0°C до +50°C
  • частота опроса 1 раз в секунду

Сенсор DHT22:

  • определение влажности в диапазоне 0-100%
  • определение температуры от -40°C до +125°C
  • частота опроса 1 раз в 2 секунды

Таким образом, характеристики датчика DHT22 лучше по сравнению с DHT11, и поэтому он чуть-чуть дороже. Снимать показания чаще, чем раз в 1-2 секунды не получится, но, возможно, для вашего проекта более высокое быстродействие и не требуется.

Подключение сенсоров DHT к Arduino

Датчики DHT имеют стандартные выводы и их просто установить на breadboard.

Датчики DHT имеют 4 вывода:

  1. питание.
  2. вывод данных
  3. не используется.
  4. GND (земля).

Между выводами питания и вывода данных нужно разместить резистор номиналом 10 кОм.

Датчик DHT часто продается в виде готового модуля. В этом случае он имеет три вывода и подключается без резистора, т.к. резистор уже есть на плате.

Схема подключения датчика с резистором:

Схема подключения датчика DHT к Arduino

Arduino скетч

Воспользуемся библиотекой DHT.h, созданной специально для датчиков DHT. Ее можно скачать . Для использования нужно поместить скачанную папку в в папку /libraries.

Пример программы для работы модели с датчиком DHT22 (можно просто скопировать в Arduino IDE):
#include "DHT.h"
#define DHTPIN 2 // номер пина, к которому подсоединен датчик
// Раскомментируйте в соответствии с используемым датчиком
// Инициируем датчик
DHT dht(DHTPIN, DHT22);
//DHT dht(DHTPIN, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
// Задержка 2 секунды между измерениями
delay(2000);
//Считываем влажность
float h = dht.readHumidity();
// Считываем температуру
float t = dht.readTemperature();
// Проверка удачно прошло ли считывание.
if (isnan(h) || isnan(t)) {
Serial.println("Не удается считать показания");
return;
}
Serial.print("Влажность: "+h+" %\t"+"Температура: "+t+" *C ");
}
При использовании датчика DHT11 закомментируйте строку:
DHT dht(DHTPIN, DHT22);
И раскомментируйте строку:
//DHT dht(DHTPIN, DHT11);
Загрузите скетч в контроллер и проверьте правильность работы при помощи Сервис->Монитор порта:

Показания температуры и влажности (Монитор порта)

Вы должны увидеть температуру и влажность. Изменения можно увидеть, например, выдыхая на датчик (как для затуманивания окна). Дыхание увеличивает влажность.

Посты по урокам:

  1. Первый урок:
  2. Второй урок:
  3. Третий урок:
  4. Четвертый урок:
  5. Пятый урок:
  6. Шестой урок:
  7. Седьмой урок:
  8. Восьмой урок:
  9. Девятый урок:
Статьи по теме