Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)

Komponenten und Zubehör

Bauteil Menge
Arduino Nano R3 1
DHT22 Temperatursensor 1
BMP180 Drucksensor 1
LCD 16x2 (I2C, Weiß auf Blau) 1

Benötigte Werkzeuge

Apps und Online-Dienste

Über dieses Projekt

Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)

Kürzlich hatte meine Hochschule eine kleine Wissenschaftsausstellung. Meine Lehrerin bat mich, ein Projekt vorzustellen, um junge Schüler an Elektronik heranzuführen – ich hatte nur zwei Tage Zeit.

Da die klimatischen Bedingungen hier stark schwanken (kürzlich 34–40 °C), entschied ich mich für eine Wetterstation.

Was macht eine Wetterstation?

Eine Wetterstation erfasst Umweltdaten mithilfe verschiedener Sensoren:

Ziel: Eine tragbare Wetterstation mit folgenden Funktionen bauen:

Schritt 1: Einkaufsliste

Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)

Ich begann mit einem Uno, wechselte dann aber zur kompakteren Nano-Lösung (ein Micro wäre noch kleiner gewesen).

Budget & Teile:

Schritt 2: Temperatur & Luftfeuchtigkeit – DHT22

Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)

Beliebte Sensoren: DHT22, DHT11, SHT1x. Der DHT22 (AM2302) liefert kalibrierte Digitalsignale, hat hohe Zuverlässigkeit und Stabilität. Jeder Sensor ist temperaturkompensiert und in einer Kalibrierkammer justiert.

Vergleich:

Sensor Vorteile Nachteile
DHT11 Kein Löten nötig, günstigst, stabile Ausgabe schnell, Reichweite >20m Keine Auflösung, Fehler: ±2°C / ±5% RH, Messbereich 0–50°C
DHT22 Kein Löten, kleines Upgrade zum DHT11, glatte Kurve, kleinster Fehler, großer Bereich, >20m Empfindlicher, langsame Temp.-Nachführung, Bibliothek nötig
SHT1x Kein Löten, schnelle Reaktion, niedriger Verbrauch, Auto-Sleep, Langzeitstabilität Zwei digitale Schnittstellen, Feuchtefehler, gleicher Bereich wie DHT11

Anschluss DHT22:

Schritt 3: Barometer & Drucksensor – BMP180

Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)

Der BMP180 ist ein barometrischer Drucksensor mit I2C-Schnittstelle. Er misst den absoluten Luftdruck, der sich mit Wetter und Höhe ändert.

Wichtig: Mein Modul hatte einen 3,3V-Regler (662k), den ich versehentlich zerstörte – ich überbrückte ihn direkt. Damit ist nur 3,3V zulässig, höhere Spannungen zerstören den Chip. Andere Module haben evtl. keinen Regler – prüfen Sie dies!

Anschluss (I2C-Bus an Nano/Uno):

Druck, Höhe & Wettervorhersage

Atmosphärischer Druck variiert mit Wetter und Höhe. Druckabfall → feuchtes Wetter/Sturm; Druckanstieg → klares Wetter.

Zur Höhenberechnung nutzt man die Barometrische Höhenformel:

Höhe = 44330 * [1 - (P/P0)^(1/5.255)]

Mit Meeresspiegel-Druck (1013,25 hPa) als Basis P0 erhält man die Höhe über NN.

Wichtige Hinweise für BMP180:

Schritt 4: Schaltung aufbauen

Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)

Zuerst Stiftleisten für Nano zuschneiden, feilen, löten. Dann DHT22-Anschluss mit 10k Pull-Down-Widerstand (Data → GND). BMP180 an I2C-Bus (A4/A5) mit 3,3V. Zuletzt I2C-LCD am selben Bus.

(Ein vierter Steckplatz war für ein späteres RTC-Modul vorgesehen.)

Schritt 5: Programmierung

Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)

Benötigte Bibliotheken vorab installieren:

Getestet mit Arduino IDE 1.6.5 – sollte auch mit neueren Versionen funktionieren.

Complete Code:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <SFE_BMP180.h>

SFE_BMP180 pressure;

#define ALTITUDE 20.56          // Eigene Höhe in Metern anpassen!
#define I2C_ADDR 0x27           // I2C-Adresse des LCD (oft 0x27 oder 0x3F)
#define DHTPIN 2                // DHT22 Data-Pin
#define DHTTYPE DHT22           // DHT22 (AM2302)

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(I2C_ADDR, 16, 2); // 16x2 Display

float tempBMP, tempDHT;

void setup() {
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
  lcd.print("Wetterstation");
  delay(5000);
  dht.begin();
  pressure.begin();
}

void loop() {
  char status;
  double T, P, p0, a;

  // BMP180: Temperatur messen
  status = pressure.startTemperature();
  if (status != 0) {
    delay(status);
    status = pressure.getTemperature(T);
    if (status != 0) {
      tempBMP = T;
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("BMP Temp: ");
      lcd.print(T, 1);
      lcd.print(" C");
      delay(3000);

      // BMP180: Druck messen
      status = pressure.startPressure(3); // Oversampling 3 (höchste Auflösung)
      if (status != 0) {
        delay(status);
        status = pressure.getPressure(P, T);
        if (status != 0) {
          lcd.clear();
          lcd.setCursor(0,0);
          lcd.print("Druck: ");
          lcd.print(P, 1);
          lcd.print(" hPa");
          delay(3000);

          p0 = pressure.sealevel(P, ALTITUDE);
          a = pressure.altitude(P, p0);
          lcd.clear();
          lcd.setCursor(0,0);
          lcd.print("Hoehe: ");
          lcd.print(a, 0);
          lcd.print(" m");
          delay(3000);
        }
      }
    }
  }

  // DHT22: Feuchte & Temperatur
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  tempDHT = t;

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Feuchte: ");
  lcd.print(h, 1);
  lcd.print(" %");
  delay(3000);

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("DHT Temp: ");
  lcd.print(t, 1);
  lcd.print(" C");
  delay(3000);

  // Mittlere Temperatur aus beiden Sensoren
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Mittel Temp: ");
  lcd.print((tempBMP + tempDHT) / 2, 1);
  lcd.print(" C");
  delay(3000);
}

Schaltplan

Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)

Herstellungsprozess

  1. Outdoor-Wetterstation mit Raspberry Pi 2 & ADS-WS1 bauen
  2. Raspberry Pi Wetterstation bauen, die tägliche Wetterdaten per E-Mail sendet
  3. Fortgeschrittene Wetterstation v2.0: Echtzeit Temperatur, Druck, Feuchte & Höhe Monitoring
  4. Modellbahn DCC-Zentrale selbst bauen mit Arduino – Kostenlose App inklusive
  5. Arduino-gesteuerte 6-Shot-Getränkemischstation – Bauen Sie Ihren eigenen Cocktail-Automaten
  6. Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
  7. Tragbares kapazitives Touch-Piano mit Arduino & MPR121 – Bauanleitung
  8. DIY Arduino USB Gaming Controller – Bauen Sie Ihren eigenen High-Performance Gamepad
  9. Tragbarer Entfernungsmesser – Arduino Nano DIY-Kit mit HC-SR04, 18650-Akku und 3D-gedrucktem Gehäuse
  10. Pixel Chaser: Interaktives One-Tap-LED-Spiel mit Arduino Nano