Bygga en temperatur- och fuktmonitor med DHT11/DHT22 och Arduino

Övervakning av miljöförhållanden som temperatur och luftfuktighet är avgörande för olika applikationer, från hemautomation till växthushantering. Med den mångsidiga Arduino -plattformen och sensorer som DHT11 eller DHT22 är det både prisvärt och enkelt att skapa en pålitlig temperatur- och fuktmonitor. I den här guiden leder vi dig genom de komponenter som behövs, installationsprocessen och kodningen som krävs för att få din bildskärm till liv.

Komponenter du behöver

  • Arduino uno
  • DHT11 eller DHT22 -sensor
  • 10 k ohm motstånd
  • Breadboard och jumpertrådar
  • LCD -display (valfritt)
  • USB -kabel

Förstå DHT11/DHT22 -sensorerna

DHT11 och DHT22 är populära sensorer för att mäta temperatur och fuktighet. DHT11 är kostnadseffektivt och lämpligt för grundläggande tillämpningar, vilket erbjuder ett temperaturintervall på 0-50 ° C med ± 2 ° C noggrannhet och fuktområde på 20-80% med ± 5% noggrannhet. DHT22, å andra sidan, ger ett bredare temperaturintervall på -40 till 80 ° C med ± 0,5 ° C noggrannhet och fuktighetsintervall på 0-100% med ± 2-5% noggrannhet, vilket gör det idealiskt för mer krävande projekt.

Koppla sensorn till Arduino

Följ dessa steg för att ansluta din DHT -sensor till Arduino:

  1. Strömanslutningar: Anslut VCC -stiftet på DHT -sensorn till 5V -stiftet på Arduino och GND -stiftet till marken (GND).
  2. Datastift: Anslut datastiftet för DHT -sensorn till en digital ingångsstift på Arduino (vanligtvis stift 2).
  3. Pull-up-motstånd: Placera ett 10K ohm -motstånd mellan VCC och Data Pin för att säkerställa stabil dataöverföring.
  4. LCD -display (valfritt): Om du använder en LCD, anslut den till lämpliga Arduino -stift för att visa avläsningarna.

Programmering av Arduino

För att läsa data från DHT -sensorn kommer vi att använda DHT.h bibliotek, vilket förenklar processen. Nedan är ett provkodavsnitt för att komma igång:

// Include the DHT library
#include <DHT.h>

// Define the sensor type and the pin it's connected to
#define DHTPIN 2
#define DHTTYPE DHT22 // Change to DHT11 if you're using that model

// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  // Start serial communication
  Serial.begin(9600);
  // Initialize the DHT sensor
  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements
  delay(2000);

  // Read humidity and temperature
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  // Check if any reads failed
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // Print the results to the Serial Monitor
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" *C");
}

Förklaring av koden:

  • De DHT.h Biblioteket ingår för att underlätta kommunikation med sensorn.
  • Vi definierar datalin och sensortyp med hjälp av #define.
  • I setup() Funktion, vi initialiserar seriekommunikation och DHT -sensorn.
  • De loop() Funktionen läser fuktigheten och temperaturen varannan sekund och skriver ut dem till seriell monitor.

Visar uppgifterna

För en mer användarvänlig installation kan du visa avläsningarna på en LCD. Ändra koden för att skicka data till LCD -skärmen istället för seriemonitorn. Se till att du har rätt LCD -bibliotek installerat och konfigurera stiften i enlighet därmed.

Exempelkod för LCD -display:

// Include necessary libraries
#include <DHT.h>
#include <LiquidCrystal.h>

// Define sensor and LCD pins
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// Initialize the LCD (adjust pin numbers as needed)
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);

void setup() {
  // Start serial communication
  Serial.begin(9600);
  dht.begin();
  // Initialize the LCD
  lcd.begin(16, 2);
  lcd.print("Temp & Humidity");
}

void loop() {
  delay(2000);

  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  if (isnan(humidity) || isnan(temperature)) {
    lcd.clear();
    lcd.print("Sensor Error");
    return;
  }

  // Display on LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temperature);
  lcd.print(" C");
  lcd.setCursor(0, 1);
  lcd.print("Humidity: ");
  lcd.print(humidity);
  lcd.print(" %");
}

Testa din installation

När du har laddat upp koden till din Arduino öppnar du seriell monitor (om du använder seriell utgång) eller observera LCD -skärmen. Du bör se realtidstemperatur och fuktighetsavläsningar. Se till att dina anslutningar är säkra och sensorn fungerar korrekt. Om du stöter på problem, dubbelkontrollera ledningarna och verifiera att rätt sensortyp definieras i din kod.

Förbättringar och nästa steg

Nu när du har en grundläggande temperatur- och fuktmonitor, tänk på följande förbättringar:

  • Datavoggning: Anslut din Arduino till en SD -kortmodul för att logga data över tid för analys.
  • Trådlös övervakning: Använd moduler som ESP8266 eller Bluetooth för att skicka data till din smartphone eller molntjänster.
  • Varningar: Implementera tröskelbaserade varningar med lysdioder eller summer för att meddela dig om extrema förhållanden.
  • Flera sensorer: Expandera din installation för att inkludera ytterligare sensorer för parametrar som luftkvalitet eller ljusintensitet.

Slutsats

Att bygga en temperatur- och fuktmonitor med DHT11/DHT22 och Arduino är ett utmärkt projekt för både nybörjare och entusiaster. Det ger praktisk erfarenhet av sensorintegration, databehandling och visningstekniker. Oavsett om det är personligt bruk eller som en grund för mer komplexa system, visar detta projekt kraften och flexibiliteten i Arduino -ekosystemet. Glad byggnad!

Lämna en kommentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.