Датчик температуры и влажности DHT22 (AM2302)/DHT11 для Orange Pi

Подключим датчик температуры и влажности к Orange Pi, напишем и скомпилируем фрагмент кода C, чтобы отобразить показания датчика.

Для этого проекта понадобится:

Датчик температуры и влажности DHT 22
Датчик температуры и влажности DHT 22

Описание датчика

DHT22 (AM2302)  представляет собой откалиброванный датчик влажности и температуры с цифровым выходом, для измерения используется емкостной датчик влажности и термистор, все показания передаются по цифровой информационной шине. Сверхмалый размер, низкое энергопотребление, дальность передачи сигнала до 20 метров. Сделало его лучшим выбором для всех видов приложений.

DHT22 имеет 3 вывода. Один предназначен для питания (VCC), другой — для выхода данных (DOUT), а третий — для заземления (GND).

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

Технические параметры

  • Модель: DHT22
  • Напряжение питания: 3.3 В … 5 В
  • Выходной сигнал: цифровой
  • Чувствительный элемент: полимерный конденсатор
  • Диапазон измерения влажности: 0 … 100%, погрешность ±2%
  • Диапазон измерения температуры:  -40°С … +80°С, погрешность  ±0.5°С
  • Задержка: 2с

Принцип работы датчика

DHT22 (AM2302) использует упрощенную технологию единой шины для связи, в которой для обмена и управления данными в системе применяется только одна линия данных. В приложениях обычно требуется внешний подтягивающий резистор, около 5,1 кОм. Когда шина свободна, ее статус переключится на HIGH. SDA используется для передачи данных и синхронизации между микропроцессором и AM2302. Он принимает формат данных с одной шиной, 40 бит данных в одной передаче, старший бит первым. Соответствующая временная диаграмма показана ниже.


НазваниеДанные по одной шине и формат сигнала
Start signal
(Стартовый сигнал )
Микропроцессор устанавливает SDA на LOW на период времени (не менее 800 мкс), чтобы информировать датчик для подготовки данных.
Response signal
(Ответный сигнал)
Датчик устанавливает SDA на LOW на 80 мкс, а затем на HIGH на 80 мкс, чтобы ответить на сигнал запуска.
Data format
(Формат данных)
После получения сигнала запуска датчик считывает строку данных (40 бит) через SDA, старший бит выводится сначала.
Humidity
(Влажность)
Разрешение по влажности 16 бит, старший бит первым; Значение, считываемое датчиком, в 10 раз превышает фактическую влажность.
Temp.
(Температура)
Разрешение по температуре составляет 16 бит, старший бит первый; Значение, считываемое датчиком, в 10 раз превышает фактическую температуру. Когда MSB (бит 15) равен «1», это указывает на отрицательную температуру; Когда MSB (бит 15) равен «0», это указывает на положительную температуру; Другие биты (бит 14 ~ бит 0) указывают на обнаруженное значение температуры.
Parity bit
(Бит четности)
Бит четности = влажность высокая + влажность низкая + температура высокая + температура низкая

Сравнение датчиков DHT22 и DHT11

Сравнение датчиков DHT22 и DHT11

Датчик DHT11:

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

Датчик DHT22:

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

Подключение к Orange Pi

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

Прежде всего, отключим питание Orange Pi при подключении датчиков. С помощью соединительных проводов соединим следующие контакты (датчик с пи):

  • DOUT к PIN 7 (GPCLK)
  • GND к PIN 6 (GND)
  • VCC к PIN 1 (VCC-3.3V)
Схема подключения DHT к Orange Pi

Настроив аппаратное обеспечение, нам нужно настроить программную часть.

Код C для выводов GPIO

Для того, чтобы прочитать данные , переданные с помощью датчика надо написать программу C. Для этого нам нужно установить библиотеку C, которая поможет получить доступ к выводам GPIO. Для Orange Pi соответствующая библиотека называется WiringOP . Установим его, выполнив команду в домашней папке:

Затем, следуя инструкциям на Github, запустим:

Можно подтвердить расположение выводов, выполнив команду, которая выведет макет таблицы GPIO:

Теперь можно написать и скомпилировать скрипт C, который считывает данные с датчика. Вернемся в домашнюю папку и откроем файл C с именем dht с помощью nano:

Затем, запишем в файл:

Затем сохраним код с помощью Ctrl + O, закроем командой Ctrl + X и скомпилируем командой:

Чтобы выполнить, просто запустим:

Результат должен быть:

И готово, скрипт выводит влажность и температуру из DHT22!

Руководство пользователя и Datasheet

Купить датчик температуры и влажности DHT22/DHT11

Купить DHT22 датчик температуры и влажности
Купить DHT11 датчик температуры и влажности
40PIN Dupont
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
avatar
  Подписаться  
Уведомлять
PcMiniPro