Какие характеристики у датчика температуры и влажности Ардуино? Модуль DHT11 подключение к Arduino Датчик влажности со сменой полярности ардуино
Тарас Каленюк
Время на чтение: 4 минуты
А А
Для самых разнообразных процессов может быть необходимо поддержание определенных условий, микроклимата. Существуют различные приборы и установки, помогающие сохранению нужной среды в определенном месте.
Независимо от сложности системы, контроль за ее работой невозможен без специальных приборов - и влажности. Именно они отслеживают необходимые параметры и передают их в центр управления, который, основываясь на полученных данных, регулирует уровень, необходимый для поддержания необходимого климата в отдельно взятой среде.
Такие устройства могут применяться в птицеводстве (в инкубаторах), в растениеводстве, для измерения влажности почвы, воздуха, древесины и многого другого. В быту подобные приборы, как правило, применяются в Умных Домах, в банях, теплицах и т. д.
Это плата размером чуть больше спичечного коробка, которая может применяться для создания огромного количества самых разнообразных приборов и устройств, начиная от простейших лампочек-сигнализаторов, заканчивая целыми сложными системами, наподобие Умного Дома.
Благодаря огромному количеству разнообразных гнезд и контактов, а также возможности соединять несколько плат в одну систему, возможности Ардуино становятся практический неограниченными. Плата, позволяющая расширить количество возможностей, называется шилд (shield)
Годами не стихающий интерес к Ардуино можно объяснить многими причинами, среди которых простота и доступность. Программы для устройств пишутся на С++, а загружаются они при помощи приложения Arduino IDE, которое доступно к бесплатному скачиванию для любого ПО.
А что особенно приятно - для того, чтобы собрать действующий прибор, не нужно ничего паять - все в Ардуино подключается при помощи перемычек и макетных досок.
Для начала работы с такой системой есть возможность приобретения готового набора, дабы не ломать голову - что купить, где найти и с чего начать.
Для измерения же уровня влажности применяется гигрометр - конденсатор в корпусе из токопроводящего материала, который изменяет свою проницаемость в зависимости от количества попадающей на него влаги.
Для измерения вышеописанных параметров в Ардуино применяется датчик температуры и влажности DHT11. Данный прибор состоит из двух частей - термистора и гигрометра, информация с которых передается на чип, преобразующий полученные данные в цифровой формат для дальнейшей их передачи к центру управления.
Сравнительные характеристики DHT11 и DHT22 (если нет уточнений, значит данный параметр подходит для обоих типов):
- питание 3-5 В;
- потребляемый ток 2,5 мА;
- габариты 15,1/12/5,5 миллиметров;
- четыре коннектора, расположенных на расстоянии 0,1“ друг о друга;
- диапазон измерения влажности 20-80% с погрешностью 5% у 11 модели; от нуля до ста процентов с погрешностью 2-5%, в зависимости от уровня влаги, у DHT22;
- температурный диапазон у DHT11 составляет 0-50 градусов Цельсия, а у его конкурента он значительно шире – -40/+125, причем погрешности измерения во втором случае практически равны нулю;
- частота DHT11 равна 1 Гц; у DHT22 – 0,5 Гц.
Исходя из перечисленных выше характеристик, можно сделать вывод, что датчик температуры и влажности Ардуино DHT22 является более точным прибором, способным работать с бОльшим диапазоном измеряемых величин, но, естественно, это скажется и на его цене.
Стоит отметить, что оба этих прибора выпускаются в двух вариантах:
- как отдельный датчик;
- как готовый модуль.
Если пользователь решает собрать прибор с нуля, имея на руках только «голый» датчик, необходимо будет дополнительно иметь плату, макетную доску, светодиоды, резистор с показателем 10 К.
Если же посчастливилось приобрести уже модуль, то все предельно упрощается простым подключением его к Ардуино.
В обоих случаях необходимо строго следовать инструкции и соблюдать полярность.
После сбора устройства подключаются к ПК, на них загружается необходимое ПО, после чего можно приступить к диагностике. Для проверки термистора нужно помещать его в места с разным температурным показателем и следить за получаемыми данными, а для диагностики гигрометра достаточно будет на него просто подышать.
Датчик температуры DS18B20
Данный прибор направлен на измерение уровня температуры заданного объекта или среды. Температура, с которой может работать термодатчик составляет от -55 до +125 градусов Цельсия.
Датчик температуры DS18B20 преобразует полученные данные в числовой код (9-12 бит) и передает их в головную систему с помощью протокола 1-Wire.
Существует возможность подключения к одной шине сразу нескольких датчиков, что позволяет увеличить охват измеряемой области. А уникальное имя каждого датчика позволит не перепутать их и вовремя определить точное место сигнала.
Время сбора данных при максимальном разрешении составляет 750 мс.
Терморезистор NTC
Как было сказано выше, термистор - это температурный детектор, который преобразует тепловые показания в уровень сопротивления.
Существует два типа таких датчиков:
- PTC – positive temperature coefficient – измеритель, в котором уровень сопротивления повышается вместе с ростом температурных показателей;
- NTC – negative temperature coefficient – датчик, снижающий показатель сопротивления при повышении уровня тепла.
В случае с Arduino датчик температуры подобного типа, который можно было бы привести в качестве примера - это NTC MF 58 100K.
Итак, датчик 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
Загрузим этот скетч в 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; }Небольшая таблица даст дополнительные разъяснения к предлагаемому решению.
Функция | Назначение |
---|
В этой инструкции я использую датчик DHT11 в связке с Ардуино Уно, чтобы отобразить текущую температуру и влажность на дисплее размером 16 х 2. Кроме того, я также встроил в девайс три диода, которые отображают показания датчика температуры (холодно, горячо, экстремально).
DHT11 – это цифровые датчики, позволяющие вам получать данные о температуре и влажности. Из-за их низкой цены и небольшого размера, DHT11 идеально подходят для разных самодельных проектов, связанных с электроникой. Некоторые проекты, где используется DHT11, также включают в себя удаленные погодные станции, системы управления домашней обстановкой и системы мониторинга садовых участков.
Спецификация DHT11:
- Диапазон измерения влажности: 20-90% RH
- Точность измерения влажности: ±5% RH
- Диапазон измерения температуры: 0-50 °C
- Точность измерения температуры: ±2% °C
- Рабочее напряжение: от 3 до 5.5V
Шаг 1: Вещи, необходимые для проекта
- Макетная плата
- Дисплей LCD 16 X 2
- Провода с джамперами
- Плата Arduino UNO и установленный на компьютере Arduino IDE
- 3 светодиода (разных цветов)
- Небольшая макетная плата (не обязательно)
- Датчик температуры и влажности DHT11
Это всё, что вам нужно для начала сборки датчика влажности воздуха и температуры на Ардуино.
Шаг 2: Настраиваем соединение с Ардуино
Соединение компонентов – самая важная часть проекта. Удостоверьтесь, что всё сделали правильно, иначе вы можете уничтожить датчик. Изображение выше и в шаге 3 отображает соединение на макетной плате в чистом виде. Темно-синие провода отвечают за напряжение 5V, черные – заземление.
- Дисплей содержит 16 пинов, которые отмечены на обратной стороне модуля разными именами. Удостоверьтесь, что соединяете нужные пины.
- Чтобы определить, где какие пины у датчика DHT11, смотрите диаграмму, приложенную выше. Если диаграмма выглядит слишком сложной, то соединяйте устройства по этому списку:
- GND Ардуино к отрицательному контакту печатной платы (все черные провода соединяются здесь)
- 5V Ардуино к положительному контакту платы (все тёмно-синие провода соединяются здесь)
- Положительный пин DHT11 на положительный контакт печатной платы
- Отрицательный пин к отрицательному контакту
- Сигнальный пин DHT11 на налоговый пин A0 Arduino (по нему данные с DHT11передаются на Arduino)
- LCD 1 на отрицательный контакт печатной платы
- LCD 2 на положительный контакт
- LCD на отрицательный контакт печатной платы (если вы соедините его с потенциометром, то сможете управлять яркостью дисплея)
- LCD 4 на цифровой пин 12 Arduino (координаты символов на дисплее)
- LCD 5 на отрицательный контакт печатной платы
- LCD 6 на цифровой пин (ЦП) 11 Arduino (команда инициализации LCD)
- LCD 11 на ЦП 5 Arduino
- LCD 12 на ЦП 4 Arduino
- LCD 13 на ЦП 3 Arduino
- LCD 14 на ЦП 2 Arduino
- LCD на положительный контакт печатной платы
- LCD 16 на отрицательный контакт печатной платы
- Положительный пин холодного/зеленого светодиода на ЦП 7 Arduino (отрицательный пин на отрицательный контакт платы)
- Положительный пин горячего/желтого светодиода на цифровой пин 8 (отрицательный пин на отрицательный контакт платы)
- Положительный пин экстремального/красного светодиода на цифровой пин 9 Arduino (отрицательный пин на отрицательный контакт платы)
Если вы всё соединили правильно, то вы выполнили практически половину проекта, так как следующие шаги будут достаточно простыми.
Шаг 3: Что у вас примерно должно получиться
Я приложил несколько фотографий, чтобы вы смогли увидеть, что у вас в итоге получится. Так как это сложная схема, то я постарался наилучшим образом сделать всё чисто и аккуратно. Надеюсь, что это поможет вам при сборке.
Теперь, перед тем, как приступить к шагу с программированием, нам нужно скачать две библиотеки Ардуино для дисплея и датчика DHT11. Мне потребовалось некоторое время, чтобы найти работающую библиотеку для DHT11, так как большинство из них оказались устаревшими. Библиотека дисплея встроена в IDE Ардуино, но я приложу обе библиотеки.
Если вы не знаете, как установить библиотеки Ардуино внутри IDE, то откройте Arduino IDE Sketch Include Library Add Library и выберите файлы.zip.
Файлы
Шаг 4: Скетч (код Ардуино)
Вот код, который вам нужно будет скомпилировать и загрузить на плату Ардуино Уно. Если вы соединили всё правильно и установили две нужные библиотеки, то у вас не должно возникнуть ошибок.
#include #include #include "DHT.h" #define DHTPIN A0 // what pin we"re connected to #define DHTTYPE DHT11 // we are using the DHT11 sensor LiquidCrystal lcd(12, 11, 5, 4, 3, 2); DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); for (int DigitalPin = 7; DigitalPin <= 9; DigitalPin++) { pinMode(DigitalPin, OUTPUT); } lcd.begin(16,2); //16 by 2 character display dht.begin(); } void loop() { delay(1000); // Reading temperature or humidity takes about 250 milliseconds! float h = dht.readHumidity(); float t = dht.readTemperature(); // Read temperature as Celsius (the default) lcd.clear(); lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(t); //printing temperarture to the LCD display lcd.print(""C"); lcd.setCursor(0,1); lcd.print("Humid: "); lcd.print(h); //printing humidity to the LCD display lcd.print("%"); //the 3-led setup process if (t22) { digitalWrite(8, HIGH); digitalWrite(7, LOW); digitalWrite(9, LOW); } else if (t>=35) { digitalWrite(9, HIGH); digitalWrite(7, LOW); digitalWrite(8, LOW); } } Файлы
- Если температура ниже 22℃, то горит холодный светодиод (зеленый)
- Если температура между 22 — 35℃, будет светиться горячий светодиод (желтый)
- Если температура выше 35℃, будет гореть экстремальный светодиод (красный)
Вы можете настроить данные для светодиодов по своему усмотрению.
Я приложил две фотографии с нормальной для нашей местности температурой в 31 ℃ (с горящим желтым светодиодом). Затем я расположил датчик недалеко от кубика льда, чтобы понизить температуру до 22℃ (чтобы загорелся зеленый светодиод).
На приложенном видео вы увидите, как температура меняется с 19 до 24 градусов и соответственно меняется горящий светодиод.
Составной датчик DHT11 включает в себя сразу два полезных измерительных прибора — термометр и гигрометр. Первый, очевидно, измеряет температуру, а второй — влажность воздуха. Обычно, датчик можно приобрести в таком вот пластиковом корпусе:
Для удобства использования, мы в RobotClass сделали модуль в форм-факторе 23×23мм, на котором датчик DHT11 уже имеет необходимый для правильной работы резистор подтяжки и штыревой трёхконтактный разъём.
Характеристики датчика:
- напряжение питания: от 3 до 5 В;
- потребляемый ток: 2,5 мА в момент опроса (в остальное время меньше);
- диапазон измерений влажности: от 20 до 80%, при точности — 5%;
- диапазон измерений температур: от 0 до 50°C, при точности ±2°C;
- частота опроса: 1 Гц (раз в секунду).
Датчик DHT11 можно использовать для создания простой погодной станции или для контроля влажности в теплице.
Кроме DHT-11, существует множество аналогичных датчиков, которые отличаются точностью, энергопотреблением, интерфейсом. Например, у датчика DHT-22 диапазон измерений влажности составляет от 0 до 100%, а температуры от -40 до 125°C.
У датчика DHT11 есть четыре вывода, один из которых (№3) не используется.
Как видно на фото, выводы нумеруются слева на право, если смотреть на корпус датчика со стороны решетки и ногами вниз. Подключаем выводы к Ардуино Уно по следующей схеме:
Датчик DHT11 | 1 | 2 | 4 |
Ардуино Уно | +5V | 2 | GND |
Принципиальная схема
Внешний вид макета
Важно отметить, что второй вывод датчика мы подключаем не только ко второй линии GPIO на Ардуино, но еще и к плюсу питания через резистор подтяжки 4,7 кОм. Таким образом, мы, что называется, «подтягиваем» линию данных датчика к плюсу. Это необходимо для правильного функционирования DHT11.
Подключение модуля DHT11 ROC к Ардуино
В случае использования модуля от RobotClass, подключение будет выглядеть следующим образом.
Принципиальная схема
Внешний вид макета
Программа для работы с DHT11
Теперь, когда датчик подключен, приступим к программированию контроллера. Первое, что нам следует сделать — установить в Arduino IDE дополнительную библиотеку. Существует множество библиотек для работы с DHT, но мы выберем вариант с портала Adafruit. Ссылка на библиотеку имеется в конце урока.
Устанавливаем библиотеку и составляем тестовую программу:
#include
#include
#include
// датчик подключен к контакту №2
#define DHTPIN 2
// выбираем модель датчика, раскомментировав нужную строку
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// создаем объект dht, с которым будем работать
DHT_Unified dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
// инициализируем датчика
dht.begin();
}
void loop() {
sensors_event_t event;
// получаем значение температуры
dht.temperature().getEvent(&event);
if (isnan(event.temperature)) {
// в случае проблем с датчиком температуры выводим следующий текст
Serial.println("Error reading temperature!");
}
else {
// вывод в COM порт текста Temperature: xxx°C
Serial.print("Temperature: ");
Serial.print(event.temperature);
Serial.println("°C");
}
// получаем значение влажности
dht.humidity().getEvent(&event);
if (isnan(event.relative_humidity)) {
// в случае проблем с датчиком влажности выводим следующий текст
Serial.println("Error reading humidity!");
}
else {
// вывод в COM порт текста Humidity: xxx%
Serial.print("Humidity: ");
Serial.print(event.relative_humidity);
Serial.println("%");
}
delay(1000); // пауза 1 сек перед следующим опросом датчика
}
В верхней части программы имеется три строки с директивой define, две из которых закомментированы (перед ними стоят два слеша). В зависимости от типа датчика мы можем раскомментировать нужную строку. Сейчас выбран датчик DHT11.
Загружаем программу в Ардуино Уно, открываем монитор последовательного порта (Tools/Serial Monitor) и наблюдаем результаты измерений!
Задания
- Автоматическая теплица. Требуется собрать автоматический регулятор влажности, состоящий из контроллера Ардуино Уно, датчика влажности DHT11 и реле. Программа регулятора должна каждые 3 секунды проверять значение влажности и температуры. В случае, если во время очередной проверки влажность опускается ниже 50% при температуре не ниже +20 градусов, с помощью реле включается вентилятор. Для простоты, к реле можно подключить обычный светодиод.
Заключение
Хотя датчик влажности DHT11 и является самым популярным, он не отличается выдающимися характеристиками. К примеру, его более продвинутый собрат DHT22 имеет больший диапазон измерений влажности и температуры, а также большую точность.
Полезные материалы
Скачать архив с библиотекой для работы с DHT11 можно по следующей ссылке:
Также библиотеку можно установить через менеджер библиотек в Arduino IDE. В поисковой строке менеджера необходимо ввести «DHT sensor library by Adafruit «.
В первой части статьи рассмотрим характеристики датчика температуры и влажности 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
Открываем монитор порта. В него будут выводиться значения влажности и температуры.
Вывод значений на LCD I2C модуль
Выводить значения на компьютер это конечно отлично, однако в автономном устройстве не всегда позволительно. Как было написано вначале, во второй части статьи приведем пример вывода данных на ЖК дисплей, который в свою очередь управляется по интерфейсу I2C. Для подключения данного LCD модуля требуется всего 4 линии: + питания, земля, последовательная линия данных SDA (Serial DAta) и последовательная линия тактирования SCL (Serial CLock). Более подробно об основах работы с LCD I2C модулем вы сможете прочесть здесь.
Схема подключения будет выглядеть следующим образом.
В приведенном ниже скетче мы будем измерять и отсылать данные о состоянии температуры и влажности на ЖК дисплей.
Пример программного кода
//Тестировалось на Arduino IDE 1.0.5
#include
Купить в России