#371MittelIoT

ESP32 IoT-Raumstation (Relais + DHT22)

Schalte deine Lampe per Handy ein und sieh Temperatur und Luftfeuchtigkeit deines Zimmers live, egal wo du bist. Dieses Projekt ist die Schritt-für-Schritt-Anleitung zur IoT-Vorlage Raumstation in der App, gebaut mit einem ESP32, einem Relaismodul und einem DHT22. Geh zu Werkstatt › Geräte › Gerät hinzufügen und wähle Raumstation; Ohmi erstellt den Code mit deinem Geräteschlüssel. Der Code hier ist ein Beispiel: Schlüssel und WLAN-Daten sind Platzhalter.

0.0(0)
1 abgeschlossen
ESP32 IoT-Raumstation (Relais + DHT22)
Du willst das Licht einschalten, ohne vom Sofa aufzustehen, oder unterwegs sehen, wie warm dein Zimmer ist? Dann ist dieses Projekt genau richtig. Das Board schaltet eine Lampe über ein Relais, ein Temperatur- und Feuchtesensor schickt alle paar Sekunden Messwerte an dein Handy, wo sie sich in einem Diagramm sammeln. Den Code erstellt die App, du verbindest die Kabel und lädst ihn hoch. Zuerst testest du mit einer LED statt einer Lampe und lernst Verkabelung und Sicherheit, bevor du an Netzspannung gehst.
IoT · FernsteuerungDein erstes Gerät ist kostenlos

Steuere dieses Gerät mit der App

Verbinde deinen ESP32 oder Raspberry Pi Pico W mit dem WLAN, schalte ihn vom Handy aus ein und aus und sieh die Messwerte live. Den Code bereitet Ohmi vor; du gibst nur deine WLAN-Daten ein und lädst ihn hoch.

Vorlage in der App: Raumstation

  • Wo finde ich das in der App?Füge im Tab Werkzeuge oder unter Werkstatt › Geräte ein neues Gerät hinzu und wähle diese Vorlage.
  • Arduino-BibliothekÖffne in der Arduino IDE den Bibliotheksverwalter, suche nach BlueGraysIoT und installiere sie.
App kostenlos laden

Im kostenlosen Plan: 1 Gerät, 1 Diagramm und 24 Stunden Verlauf. Mit Premium mehr Geräte, mehr Diagramme und längerer Verlauf.

Schaltplan

ESP32 IoT-Raumstation (Relais + DHT22) - Circuit

Quellcode

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   ESP32 IoT-Raumstation (Relais + DHT22)
4// ─────────────────────────────────────────
5// Die IoT-Vorlage "Raumstation" aus der BlueGrays-App: Du schaltest eine
6// Lampe über ein Relais per Handy ein und aus, und der DHT22 schickt
7// Temperatur und Luftfeuchtigkeit des Zimmers alle 2 Sekunden an die App.
8// Den echten Code erstellt Ohmi in der App mit deinem eigenen
9// Geräteschlüssel (Werkstatt › Geräte › Gerät hinzufügen); der Code hier
10// ist ein Beispiel, Geräteschlüssel und WLAN-Daten sind Platzhalter.
11// Bibliotheksverwaltung: BlueGraysIoT (mit Abhängigkeiten). Das Board
12// verbindet sich nur mit 2,4-GHz-WLANs. Das Relais schaltet bei LOW. Eine
13// 230-V-Lampe nur mit jemandem anschließen, der sich auskennt; teste
14// zuerst mit einer LED.
15//
16// Pins:
17//   GPIO26 -> Relaismodul IN
18//   5V, GND -> Relaismodul VCC, GND
19//   Relais COM -> 5V, NO -> 220 Ohm -> LED-Anode, LED-Kathode -> GND
20//   GPIO4 -> DHT22 OUT (Daten)
21//   3V3, GND -> DHT22 VCC, GND
22//   Pico W: Relais IN GP15, DHT22 OUT GP16
23
24/*
25 * Raumstation · BlueGrays IoT
26 * BlueGrays · bluegrays.com
27 * Teile diesen Code nicht: Er enthält deinen Geräteschlüssel und dein WLAN-Passwort.
28 */
29
30#include <BlueGraysIoT.h>
31#include <DHT.h>
32
33const char *DEVICE_KEY = "DEIN_GERAETESCHLUESSEL";
34const char *WIFI_NAME = "DEIN_WLAN_NAME";
35const char *WIFI_PASSWORD = "DEIN_WLAN_PASSWORT";
36
37BlueGraysIoT bg(DEVICE_KEY);
38
39const int RELAY_PIN = 26;
40const bool RELAY_ACTIVE_LOW = true;  // die meisten Relaismodule schalten bei LOW
41void setRelay(bool on) { digitalWrite(RELAY_PIN, (on != RELAY_ACTIVE_LOW) ? HIGH : LOW); }
42DHT dht(4, DHT22);
43unsigned long lastReadMs = 0;
44
45void setup() {
46  Serial.begin(115200);
47  pinMode(RELAY_PIN, OUTPUT);
48  setRelay(false);
49  bg.onSwitch("lamba", setRelay);
50  dht.begin();
51  bg.setDeadband("sicaklik", 0.1);
52  bg.setDeadband("nem", 1.0);
53  bg.setDebug(Serial);
54  bg.setLanguage(BG_LANG_EN);
55  bg.begin(WIFI_NAME, WIFI_PASSWORD);
56}
57
58void loop() {
59  bg.loop();  // hier keine langen delay()-Aufrufe
60  if (millis() - lastReadMs >= 2000) {
61    lastReadMs = millis();
62    bg.send("sicaklik", dht.readTemperature());
63    bg.send("nem", dht.readHumidity());
64  }
65}
66

FAQ

Kann ich den Code von dieser Seite direkt hochladen?

Hochladen kannst du ihn, verbinden wird er sich aber nicht: Geräteschlüssel und WLAN-Daten darin sind Platzhalter. Geh in der App zu Werkstatt › Geräte › Gerät hinzufügen und wähle Raumstation; Ohmi erstellt den Code mit deinem Schlüssel, deinem Netzwerknamen und deinem Passwort. Kopier diesen Code und lade ihn hoch. Den ganzen Code siehst du später unter Gerät › Code und Schlüssel.

Geht das auch mit einem Pico W?

Ja. Wähl beim Hinzufügen des Geräts Pico W als Board; der Code bleibt gleich, nur die Pins ändern sich: das Relais an GP15, der DHT22 an GP16. Installiere in der Arduino IDE das Paket "pico" über den Boardverwalter. Schaltung und Foto auf dieser Seite sind mit einem ESP32 entstanden.

Kann ich eine echte 230-V-Lampe anschließen?

230 V können tödlich sein und Brände auslösen. Teste zuerst mit einer LED, wie auf dieser Seite. Wenn du auf eine echte Lampe umsteigst, mach das mit jemandem, der sich mit Elektrik auskennt: Stecker raus, nur der Außenleiter läuft über die Kontakte COM und NO des Relais, kein blanker Draht liegt frei, die Schaltung sitzt in einem geschlossenen Gehäuse und die Leistung der Lampe bleibt unter der Grenze, die auf dem Modul steht.

Sind mein WLAN-Passwort und mein Geräteschlüssel sicher?

Dein WLAN-Passwort bleibt auf deinem Handy und wird nie an unseren Server geschickt; es wird auf dem Handy in den Code eingesetzt. Der Geräteschlüssel reist nur im Header der sicheren Verbindung und wird nie im seriellen Monitor ausgegeben. Beides steht trotzdem im Code, also teile den Code aus der App mit niemandem. Hat jemand deinen Schlüssel gesehen, hol dir mit Schlüssel erneuern einen neuen und lade den neuen Code hoch.