Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino

Компоненты и материалы

Приложения

О проекте

Четвертый учебный проект автора. DHT11 измеряет температуру и влажность. Три светодиода визуализируют температурный диапазон:

При экстремальных температурах (холодно/жарко) звучит пьезо-динамик на 1 секунду. Данные выводятся в Serial Monitor.

Необходимые библиотеки

Установите через менеджер библиотек (Sketch → Include Library → Manage Libraries).

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

Схема в Fritzing (файл dht11_with_leds_and_piezo_speaker_JRpaa8ISfy.fzz) в разделе «Schematics».

Код (C/C++ для Arduino)

#include 
#include 

int speakerPin = 9;
#define DHTPIN 5
#define DHTTYPE DHT11
#define LED_TOO_COLD A0
#define LED_PERFECT  A1
#define LED_TOO_HOT  A2

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHT11 test!");
  dht.begin();
  pinMode(speakerPin, OUTPUT);
  pinMode(LED_TOO_COLD, OUTPUT);
  pinMode(LED_PERFECT,  OUTPUT);
  pinMode(LED_TOO_HOT,  OUTPUT);
}

void loop() {
  delay(2000); // DHT11 требует ≥2 сек между измерениями

  float h = dht.readHumidity();
  float t = dht.readTemperature();     // °C
  float f = dht.readTemperature(true); // °F

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t");
  Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C");

  if (t <= 20) {
    Serial.println("Too cold!");
    digitalWrite(LED_TOO_COLD, HIGH);
    digitalWrite(speakerPin, HIGH);
    delay(1000);
    digitalWrite(speakerPin, LOW);
    digitalWrite(LED_TOO_COLD, LOW);
  }
  else if (t > 20 && t < 27) { // исправлено: было (20 < t < 27) — в C++ так не работает
    Serial.println("Perfect temperature!");
    digitalWrite(LED_PERFECT, HIGH);
    delay(2000);
    digitalWrite(LED_PERFECT, LOW);
  }
  else if (t >= 29) {
    Serial.println("Too hot!");
    digitalWrite(LED_TOO_HOT, HIGH);
    digitalWrite(speakerPin, HIGH);
    delay(1000);
    digitalWrite(speakerPin, LOW);
    digitalWrite(LED_TOO_HOT, LOW);
  }
  // Примечание: диапазон 27–29 °C не обрабатывается (ни один светодиод не горит)
}

Примечания по коду

Производственный процесс

  1. Создайте свой первый IoT-проект с Raspberry Pi, DHT11 и ThingSpeak
  2. Создайте автоматизированную аэропоническую систему с Raspberry Pi и датчиком влажности
  3. Интеграция термопары с Arduino Portenta H7 через MAX6675
  4. Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
  5. Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
  6. Unopad: Бесшовный Arduino MIDI-контроллер для Ableton Live
  7. Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
  8. Умная банка на ESP8266 + Arduino: мониторинг наполненности в реальном времени
  9. Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
  10. Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266