Как да свържете DHT11 сензор за температура и влажност към Arduino

Съдържание:

Как да свържете DHT11 сензор за температура и влажност към Arduino
Как да свържете DHT11 сензор за температура и влажност към Arduino

Видео: Как да свържете DHT11 сензор за температура и влажност към Arduino

Видео: Как да свържете DHT11 сензор за температура и влажност към Arduino
Видео: Arduino Uno и Датчик температуры и влажности DHT11 (DHT22) 2024, Може
Anonim

Сензорът за температура и влажност DHT17 е популярен и евтин сензор, който може да се използва при доста широк диапазон от температури и относителна влажност. Нека видим как да го свържете с Arduino и как да четете данни от него.

DHT11 сензор за температура и влажност
DHT11 сензор за температура и влажност

Необходимо

  • - Arduino;
  • - DHT17 сензор за температура и влажност.

Инструкции

Етап 1

И така, сензорът DHT11 има следните характеристики:

- обхват на измерена относителна влажност - 20..90% с грешка до 5%, - обхват на измерените температури - 0..50 градуса по Целзий с грешка до 2 градуса;

- време за реакция на промени във влажността - до 15 секунди, температура - до 30 секунди;

- минималният период на гласуване е 1 секунда.

Както можете да видите, сензорът DHT11 не е много точен и температурният диапазон не покрива отрицателни стойности, което едва ли е подходящо за измервания на открито през студения сезон в нашия климат. Неговата ниска цена, малки размери и лекота на използване обаче частично компенсират тези недостатъци.

Фигурата показва външния вид на сензора и неговите размери в милиметри.

Външен вид и размери на сензора DHT11
Външен вид и размери на сензора DHT11

Стъпка 2

Помислете за схемата на свързване на сензора за температура и влажност DHT11 към микроконтролера, по-специално към Arduino. На изображението:

- MCU - микроконтролер (например Arduino или подобен) или едноплатен компютър (Raspberry Pi или подобен);

- DHT11 - сензор за температура и влажност;

- ДАННИ - шина за данни; ако дължината на свързващия кабел от сензора към микроконтролера не надвишава 20 метра, препоръчва се тази шина да се изтегли към захранването с резистор 5, 1 kOhm; ако повече от 20 метра, тогава друга подходяща стойност (по-малка).

- VDD - захранване на сензора; допустими напрежения от ~ 3.0 до ~ 5.5 волта DC; ако се използва захранване ~ 3.3 V, препоръчително е да се използва захранващ проводник не по-дълъг от 20 cm.

Един от сензорните проводници - третият - не е свързан с нищо.

Сензорът DHT11 често се продава като цялостен комплект с необходимите тръбопроводи - изтеглящ резистор и кондензатор на филтъра.

Схема на свързване на DHT11 сензор към микроконтролер
Схема на свързване на DHT11 сензор към микроконтролер

Стъпка 3

Нека съставим разглежданата схема. Също така ще свържа логически анализатор към веригата, за да мога да проуча времевата диаграма на комуникацията със сензора.

DHT11 сензор и Arduino
DHT11 сензор и Arduino

Стъпка 4

Нека отидем по простия начин: изтеглете библиотеката за сензора DHT11 (връзка в раздела "Източници"), инсталирайте я по стандартния начин (разопаковайте я в директорията / libraries / на средата за разработка на Arduino).

Нека напишем такава проста скица. Нека го заредим в Arduino. Тази скица ще изведе съобщенията RH и Temperature, прочетени от сензора DHT11 към серийния порт на компютъра на всеки 2 секунди.

Скица за работа със сензор за температура и влажност DHT11
Скица за работа със сензор за температура и влажност DHT11

Стъпка 5

Сега, използвайки времевата диаграма, получена от логическия анализатор, нека разберем как се извършва обменът на информация.

DHT11 сензорът за температура и влажност използва едножилен сериен интерфейс за комуникация с микроконтролера. Един обмен на данни отнема около 40 ms и съдържа: 1 бит за заявка от микроконтролера, 1 бит от реакцията на сензора и 40 бита за данни от сензора. Данните включват: 16 бита информация за влажност, 26 бита информация за температура и 8 контролни бита.

Нека разгледаме по-отблизо времевата диаграма на комуникацията на Arduino със сензора DHT11.

От фигурата се вижда, че има два вида импулси: къси и дълги. Късите импулси в този протокол за обмен означават нули, а дългите импулси - единици.

И така, първите два импулса са заявката на Arduino към DHT11 и съответно реакцията на сензора. Следва 16 бита влажност. Освен това те са разделени на байтове, високи и ниски, високо вляво. Тоест, на нашата фигура данните за влагата са както следва:

0001000000000000 = 00000000 00010000 = 0x10 = 16% относителна влажност.

Данни за температурата, подобни на:

0001011100000000 = 00000000 00010111 = 0x17 = 23 градуса по Целзий.

Контролни битове - контролната сума е само сумирането на 4 получени байта данни:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 в двоично или 16 + 23 = 39 в десетично.

Препоръчано: