WiFi-Wetterstation mit ESP8266 & DHT22 – Daten zu ThingSpeak
Komponenten & Materialien
| Espressif ESP8266 ESP-01 | ×1 |
| DHT22 Temperatur- & Feuchtesensor | ×1 |
| Steckbrett & Jumper-Wires | ×1 Satz |
| UDOO USB/Serial Debug Modul (oder FTDI/CP2102/CH340 Adapter) | ×1 |
| Arduino UNO (nur als USB-Serial-Adapter für ESP-Flash) | ×1 |
Projektbeschreibung
Eine kompakte Wetterstation, die Temperatur & Luftfeuchte per ESP8266 direkt per WLAN an ThingSpeak sendet. Der ESP-01 wird über die Arduino IDE programmiert (nicht der Arduino UNO!). Der UNO dient nur als USB-Seriell-Wandler zum Flashen.
Schritt-für-Schritt Aufbau
1. ESP8266 Flash-Vorbereitung
- ESP-01 GPIO0 → GND (Flash-Modus)
- ESP-01 TX → Arduino TX, RX → Arduino RX (UNO Reset an GND halten!)
- VCC → 3,3V (UNO 3,3V Pin reicht oft nicht → externer 3,3V Regler/LDO empfohlen!)
- CH_PD → 3,3V
- In Arduino IDE: Board "Generic ESP8266 Module", Flash Mode "DOUT", Flash Size "1M (no SPIFFS)", Upload Speed 115200
- Code hochladen → GPIO0 von GND trennen → Reset → Normalbetrieb
2. DHT22 Anschluss
- VCC → 3,3V (oder 5V, DHT22 verträgt beides)
- GND → GND
- DATA → GPIO2 (Pin 2 auf ESP-01)
- Pull-Up 4,7kΩ–10kΩ DATA → VCC (wichtig!)
3. ThingSpeak Kanal einrichten
- ThingSpeak.com → Neuer Kanal
- Feld 1: "Humidity" (%), Feld 2: "Temperature" (°C)
- Write API Key notieren
- Channel ID notieren
Arduino/ESP8266 Code
#include
#include
#include
#define DHTPIN 2 // GPIO2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// ThingSpeak Config
unsigned long myChannelNumber = 167319; // ERSETZEN!
const char * myWriteAPIKey = "XXXP9V86RWR7R9Y"; // ERSETZEN!
const char* ssid = "DEIN_WLAN_SSID";
const char* password = "DEIN_WLAN_PASSWORT";
WiFiClient client;
void setup() {
Serial.begin(115200);
delay(10);
dht.begin();
Serial.println();
Serial.print("Verbinde mit ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWLAN verbunden");
Serial.print("IP: ");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Fehler beim Lesen DHT22!");
delay(2000);
return;
}
Serial.print("Feuchte: "); Serial.println(h);
Serial.print("Temp: "); Serial.println(t);
// ThingSpeak: max 1 Update / 15s (Free Tier)
ThingSpeak.writeField(myChannelNumber, 1, h, myWriteAPIKey);
delay(20000); // 20s Wartezeit
ThingSpeak.writeField(myChannelNumber, 2, t, myWriteAPIKey);
delay(20000);
}
Wichtige Hinweise
- Stromversorgung: ESP8266 zieht Spitzen bis 300–400mA (WLAN TX). UNO 3,3V Pin liefert nur ~50mA → Externer 3,3V Regler (AMS1117, LD1117) oder fertiges ESP-01 Adapterboard mit Regler zwingend nötig!
- Deep Sleep: Für Batteriebetrieb:
ESP.deepSleep(300e6)(300s) + GPIO16 → RST Brücke. - ThingSpeak Limit: Free Account: 1 Update / 15s pro Kanal. Code nutzt 20s pro Feld = 40s/Zyklus = OK.
- DHT22 Timing: Mindestens 2s zwischen Reads (Lib beachte das).
- WLAN-Reconnect: Code hat kein Reconnect-Logic – bei WLAN-Verlust hängt er.
WiFi.reconnect()in Loop einbauen.
Erweiterungsideen
- Weitere Sensoren: BMP280 (Luftdruck), BH1750 (Helligkeit), Wind/Regensensor
- Lokales Display (OLED 0,96″ I2C) für Standalone-Betrieb
- MQTT statt ThingSpeak (Home Assistant, Node-RED)
- Solar-Panel + LiPo + TP4056 für autarke Außenstation
- OTA-Updates (ArduinoOTA)
Schaltplan
Im Artikel enthalten (Bild).
Fazit
Ein minimalistisches, kostengünstiges IoT-Wetterstations-Projekt. Der ESP-01 ist limitiert (wenig GPIO, Stromhungrig), für Einstieg ideal. Für ernsthafte Projekte: ESP-12E/F (NodeMCU, Wemos D1 Mini) mit mehr Pins, onboard Regler, USB. ThingSpeak ist einfach für den Start, langfristig bietet MQTT + InfluxDB/Grafana mehr Kontrolle.
Herstellungsprozess
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Raspberry Pi Wetterstation bauen, die tägliche Wetterdaten per E-Mail sendet
- Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20
- Raspberry Pi Sensor & Aktuator Steuerung meistern: Beschleunigungsmesser, Servo und Datenstreaming
- Feuchtigkeitssensor verifizieren und kalibrieren für präzise Messungen
- Präzise Temperatur- & Feuchtigkeitsüberwachung mit SHT15 unter Windows 10 IoT Core
- Thermofühler (Thermocouple) mit Arduino Portenta H7 über MAX6675 IC integrieren
- DHT11 Temperatur- & Feuchtesensor mit LED-Anzeige & Piezo-Summer
- Smart IoT-Glas bauen: Füllstand überwachen mit ESP8266, Arduino & Ultraschall
- River Health Monitor: Arduino-basiertes Wasserqualitäts-Messsystem