Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В этом уроке мы попробуем датчик DHT11 с использованием Arduino.
DHT11 можно использовать для измерения температуры и влажности.
Необходимые компоненты:
- Ардуино Нано
- Датчик температуры и влажности DHT11
- USB мини
- Соединительные кабели
Требуемая библиотека:
Библиотека DHT
Шаг 1. Подключите DHT11 к Arduino
Подключите DHT11 к Arduino с помощью перемычек.
Смотрите изображение или следуйте инструкциям ниже.
DHT11 для Arduino
+ => + 5 В
из => D12
- => GND
Затем подключите ардуино к компьютеру с помощью мини-USB.
Шаг 2: Добавьте библиотеку DHT
Библиотеку DHT можно скачать здесь:
Библиотека DHT11.
Чтобы добавить библиотеку, см. Изображение выше или следуйте инструкциям ниже:
Откройте Sketch ==> Включить библиотеку ==> добавить библиотеку. Zip
Найдите загруженный вами файл библиотеки.
В случае успеха закройте Arduino и откройте его снова.
Шаг 3: Выберите плату Arduino
Перейдите в Инструменты и настройте плату Arduino, как показано на рисунке выше.
Плата "Ардуино Нано"
Процессор "ATmega328P (старый загрузчик)"
Для более полной статьи вы можете прочитать «Как использовать Arduino Nano v.3», которую я написал ранее.
Шаг 4: программа
Включите этот код, чтобы прочитать значение с датчика DHT11
// Датчик температуры и влажности DHT // Пример унифицированной библиотеки датчиков // Написано Тони ДиКолой для Adafruit Industries // Выпущено по лицензии MIT.
// ТРЕБУЮТСЯ следующие библиотеки Arduino:
// - Библиотека датчиков DHT: https://github.com/adafruit/DHT-sensor-library // - Библиотека унифицированных датчиков Adafruit:
#включают
#include #include
#define DHTPIN 2 // Цифровой вывод, подключенный к датчику DHT
// Feather HUZZAH ESP8266 примечание: используйте контакты 3, 4, 5, 12, 13 или 14 - // Контакт 15 может работать, но DHT должен быть отключен во время загрузки программы.
// Раскомментируйте тип используемого датчика:
// # определение DHTTYPE DHT11 // DHT 11 # определение DHTTYPE DHT22 // DHT 22 (AM2302) // # определение DHTTYPE DHT21 // DHT 21 (AM2301)
// Подробную информацию о подключении и использовании датчика см. В руководстве:
//
DHT_Unified dht (DHTPIN, DHTTYPE);
uint32_t delayMS;
void setup () {
Serial.begin (9600); // Инициализируем устройство. dht.begin (); Serial.println (F («Пример унифицированного датчика DHTxx»)); // Распечатать информацию о датчике температуры. sensor_t датчик; dht.temperature (). getSensor (& sensor); Serial.println (F ("------------------------------------")); Serial.println (F («Датчик температуры»)); Serial.print (F ("Тип датчика:")); Serial.println (имя датчика); Serial.print (F ("Версия драйвера:")); Serial.println (сенсорная версия); Serial.print (F ("Уникальный идентификатор:")); Serial.println (sensor.sensor_id); Serial.print (F ("Максимальное значение:")); Serial.print (sensor.max_value); Serial.println (F («° C»)); Serial.print (F ("Мин. Значение:")); Serial.print (sensor.min_value); серийный. Отпечаток (sensor.min_value); Serial.println (F («° C»)); Serial.print (F ("Разрешение:")); Серийный. Отпечаток (сенсор. Разрешение); Serial.println (F («° C»)); Serial.println (F ("------------------------------------")); // Распечатать данные датчика влажности. dht.humidity (). getSensor (& sensor); Serial.println (F («Датчик влажности»)); Serial.print (F ("Тип датчика:")); Serial.println (имя датчика); Serial.print (F ("Версия драйвера:")); Serial.println (сенсорная версия); Serial.print (F ("Уникальный идентификатор:")); Serial.println (sensor.sensor_id); Serial.print (F ("Максимальное значение:")); Serial.print (sensor.max_value); Serial.println (F ("%")); Serial.print (F ("Мин. Значение:")); Serial.print (sensor.min_value); серийный. Отпечаток (sensor.min_value); Serial.println (F ("%")); Serial.print (F ("Разрешение:")); Серийный. Отпечаток (сенсор. Разрешение); Serial.println (F ("%")); Serial.println (F ("------------------------------------")); // Устанавливаем задержку между показаниями датчика на основе деталей датчика. delayMS = sensor.min_delay / 1000; }
void loop () {
// Задержка между измерениями. задержка (delayMS); // Получить событие температуры и распечатать его значение. sensor_event_t событие; dht.tempera (). getEvent (& событие); if (isnan (event.temperature)) {Serial.println (F («Ошибка чтения температуры!»)); } else {Serial.print (F ("Температура:")); Serial.print (событие.температура); Serial.println (F («° C»)); } // Получить событие влажности и распечатать его значение. dht.humidity (). getEvent (& событие); if (isnan (event.relative_humidity)) {Serial.println (F («Ошибка чтения влажности!»)); } else {Serial.print (F ("Влажность:")); Серийный.принт (event.relative_humidity); Serial.println (F ("%")); }}
Или загрузите файл под эскизом, который я предоставил ниже.
Затем нажмите «Загрузить» и дождитесь его завершения.
Шаг 5: Результат
Чтобы увидеть результаты измерений температуры и влажности, нажмите Serial Monitor. Результаты будут отображены там.
В случае успеха результаты будут выглядеть как на Рисунке 1.
если датчик не установлен, он будет выглядеть как на изображении 2
спасибо что прочитали, если есть вопросы просто напишите в колонку комментариев