Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

IoT – ESP8266 Wetterstation – akustische und optische Meldung bei überschreiten eines Schwellwertes

Posted on 9. Februar 20218. März 2024 by Stefan Draeger

In diesem Beitrag möchte ich dir zeigen, wie du eine akustische und optische Meldung bei Überschreitung eines Schwellwertes an der ESP8266 Wetterstation implementieren kannst.

Die ESP8266 Wetterstation habe ich dir bereits in den Beiträgen

  • ESP8266 DIY IoT Wetterstation mit OLED Display und DHT11 Sensor
  • ESP8266 DIY IoT Wetterstation, Webseite mit Sensordaten – Teil 2
  • ESP8266 Wetterstation mit ESP Easy

vorgestellt.

  • benötigte Bauteile
  • Aufbau der Schaltung
    • Anschluss der LEDs und des Piezo Buzzers
  • Programmierung der ESP8266 Wetterstation mit Schwellwert
    • Was ist ESP Easy?
    • Einrichten der I2C Konfiguration sowie des DHT11 Sensors und des OLED Displays
      • I2C Konfiguration
      • DHT11 Sensor einrichten
      • Daten auf dem OLED Display anzeigen
  • Einstellen des Schwellwertes in ESP Easy
    • Anzeigen des Reiters „Rules“
      • Programm erzeugen
      • implementieren eines Piezo Buzzers
  • das fertige Skript
  • Video

benötigte Bauteile

Für den Nachbau benötigst du folgende Bauteile:

  • einen Piezo Buzzer*,
  • drei LEDs, rot, gelb, grün*,
  • drei 220 Ohm-Widerstände*,
  • ein 170 Pin Breadboard*,
  • acht Breadboardkabel, 10 cm männlich – weiblich*

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Und natürlich benötigst du auch die ESP8266 Wetterstation mit DHT11 Sensor. Diese kannst du zum Beispiel über aliexpress.com für 6,59 € inkl. Versandkosten erstehen.

ESP8266 Wetterstation - auf Aliexpress.com
ESP8266 Wetterstation – auf Aliexpress.com

Aufbau der Schaltung

Der ESP8266 auf der IoT Wetterstation verfügt über 9 GPIOs für die digitalen und 1 einen für analoge Signale.
Des Weiteren sind die üblichen Pins wie VCC, GND sowie UART (TX, RX) vorhanden.

Wenn du die von mir gezeigte ESP8266 Wetterstation nicht hast, dann kannst du dir diese recht einfach auch mit einem Wemos D1 Mini aufbauen.

Aufbau - ESP8266 Wetterstation mit Wemos D1 Mini
Aufbau – ESP8266 Wetterstation mit Wemos D1 Mini

Anschluss der LEDs und des Piezo Buzzers

Die drei LEDs sowie der Piezo Buzzer werden auf das Breadboard gesteckt und mit den GPIOs verbunden.

Pins - ESP8266 Wetterstation
Pins – ESP8266 Wetterstation

In meinem Beispiel verbinde ich nun:

  • die rote LED mit IO16,
  • die gelbe LED mit IO12,
  • die grüne LED mit IO13, sowie
  • den Piezo Buzzer mit IO15

Da die I2C Kommunikation über GPIO14 erfolgt, kann dieser Pin nicht genutzt werden, da sonst das Display nicht „funktionierten“ würde!

LEDs und Piezo Buzzer auf 170 Pin Breadboard
Aufbau der Schaltung

Das kleine rote Breadboardkabel ist kein VCC Anschluss, sondern verdeutlicht in dem Bild nur die Kabelführung zum GPIO Pin!

Programmierung der ESP8266 Wetterstation mit Schwellwert

Wie man den angeschlossenen DHT11 Sensor ausliest, habe ich im oben verlinken Beitrag bereits gezeigt, jedoch möchte ich in diesem Beitrag ESP Easy nutzen, um am ESP8266 eine akustische & optische Meldung zu konfigurieren.

Was ist ESP Easy?

ESP Easy ist eine Firmware mit welcher man nicht programmiert, sondern konfiguriert d.h. in der Regel entfällt eine aufwändige Programmierung des Mikrocontrollers.

ESP Easy - Einstellungen für die I2C Pins
ESP Easy – Einstellungen für die I2C Pins

Die ESP8266 habe ich bereits für ESP Easy geflasht und kann somit per Browser auf diesen zugreifen.

Einrichten der I2C Konfiguration sowie des DHT11 Sensors und des OLED Displays

I2C Konfiguration

Bevor wir mit der Konfiguration (in diesem Fall ein Skript) der LEDs und des Piezo Buzzers beginnen können, müssen wir die I2C Pins einstellen. 

Das komplette Beispiel wie du die ESP8266 Wetterstation mit ESP Easy konfigurierst und betreibst findest du unter ESP8266 Wetterstation mit ESP Easy.

ESP Easy - Einstellungen für die I2C Pins
ESP Easy – Einstellungen für die I2C Pins

DHT11 Sensor einrichten

Des Weiteren richten wir den DHT11 Sensor ein.

ESP Easy - Einstellungen für den DHT11 Sensor
ESP Easy – Einstellungen für den DHT11 Sensor

Daten auf dem OLED Display anzeigen

Das verbaute OLED Display wird als „OLED SSD1306/SH1106 Framed“ eingerichtet. ACHTUNG es gibt auch einen Eintrag nur „Display – OLED SSD1306“ welcher etwas weniger Möglichenkeit zur Einstellung bietet.

Folgende Werte müssen angepasst werden:

  • Name „Display“
  • Enabled (Haken gesetzt)
  • Rotation: „Rotated“
  • Lines per Frame: „2“
  • Scroll: „Instant“
  • Header: „Date“
  • Header (alternate): „Time“
  • Line1: „Temp.: [DHT11#Temp]°C“
  • Line2: „Hum.: [DHT11#Hum]%“
  • Interval: „6“

Einstellen des Schwellwertes in ESP Easy

Anzeigen des Reiters „Rules“

Den Schwellwert konfigurieren bzw. Skripten wir über eine Rule dazu müssen wir zunächst diesen Reiter anzeigen lassen.

aktivieren des Reiters "Rules" in ESPeasy
aktivieren des Reiters „Rules“ in ESPeasy

Wenn dieser Reiter angezeigt wir erzeugen wir nun erstmal eine neue Rule damit wir dort den Temperaturwert auslesen und auf diesen reagieren können.

Programm erzeugen

Wenn der Reiter angezeigt wird dann können wir dort unser Skript erzeugen.

Zunächst müssen wir einen Timer beim starten des ESP8266 erzeugen und starten.

On System#Boot do 
   //setze den Timer 1 auf 10 Sekunden 
   timerSet,1,10 
endon

Im nächsten Schritt müssen wir nun darauf reagieren wenn der Timer „abgelaufen“ ist.

On Rules#Timer=1 do

Nun können wir unseren Schwellwert skripten, in meinem Fall prüfe ich die Temperatur des DHT11 Sensors.

Wenn der Sensor eine Temperatur kleiner 10°C liefert dann soll

  • die rote LED (GPIO16) aktiviert,
  • die gelbe LED (GPIO12) deaktiviert,
  • die grüne LED (GPIO13) deaktiviert

werden.

Das aktivieren einer LED wird mit „gpio,<PIN>,<STATUS>“ gemacht. In meinem ersten Fall wird die LED am GPIO 16 aktiviert (aktiviert = 1, deaktiviert = 0).

if [DHT11#Temp] < 10 
   gpio,16,1 
   gpio,12,0 
   gpio,13,0 
else

Wenn die Temperatur jedoch größer als 10°C ist und kleiner gleich 20°C dann soll

  • die rote LED (GPIO16) deaktiviert,
  • die gelbe LED (GPIO12) aktiviert,
  • die grüne LED (GPIO13) deaktiviert

werden.

if [DHT11#Temp] >= 10 and [DHT11#Temp] <= 20
   gpio,16,0
   gpio,12,1
   gpio,13,0
else

Wenn die Temperatur jedoch größer als 20°C ist dann soll

  • die rote LED (GPIO16) deaktiviert,
  • die gelbe LED (GPIO12) deaktiviert,
  • die grüne LED (GPIO13) aktiviert

werden.

if [DHT11#Temp] > 20
   gpio,16,0
   gpio,12,0
   gpio,13,1
endif

Hier nun das gesamte Skript:

//Wenn das System gestartet ist, dann...
On System#Boot do
   //setze den Timer 1 auf 10 Sekunden
   timerSet,1,10
 endon
//Wenn der Timer 1 abgelaufen ist, dann...
On Rules#Timer=1 do
   if [DHT11#Temp] < 10
     gpio,16,1
     gpio,12,0
     gpio,13,0
   else
     if [DHT11#Temp] >= 10 and [DHT11#Temp] <= 20
        gpio,16,0
        gpio,12,1
        gpio,13,0
     else
        if [DHT11#Temp] > 20
           gpio,16,0
           gpio,12,0
           gpio,13,1
        endif 
     endif
   endif
     
   //setze den Timer 1 auf 10 Sekunden
   timerSet,1,5
 endon

implementieren eines Piezo Buzzers

Nachdem nun die LEDs konfiguriert sind möchten wir noch eine akustische Meldung mit einem Piezo Buzzer ausgeben.

Wie du einen Piezo Buzzer mit ESP Easy konfigurierst wird dir auf der offiziellen Wiki-Seite von ESP Easy https://www.letscontrolit.com/wiki/index.php/Buzzer_(RTTTL) ausführlich erläutert.

Es gibt genau zwei Möglichkeiten einen Ton über ESP Easy auszugeben, einmal mit „tone“ und zum anderen mit „rttl“. Beide Funktionen stehen mit dem Update / Build vom 14.01.2021 zuverlässig zur Verfügung. D.h. solltest du deinen ESPx Microcontroller mit einem älteren Build geflasht haben, so solltest du diesen vorher aktualisieren.

Du kannst Töne bzw. Tonfolgen über ESP Easy auf den GPIOs 12 bis 16 ausgegeben!

Ich nutze hier eine kleine Tonfolge (aus dem ESP Easy Wiki Beitrag)

rtttl,15:d=10,o=6,b=180,c,e,g

Diese Tonfolge (c,e und g) wird am digitalen GPIO Pin 15 ausgegeben. 

das fertige Skript

//Wenn das System gestartet ist, dann...
On System#Boot do
   //setze den Timer 1 auf 10 Sekunden
   timerSet,1,10
 endon
//Wenn der Timer 1 abgelaufen ist, dann...
On Rules#Timer=1 do
   if [DHT11#Temp] < 10
     gpio,16,1
     gpio,12,0
     gpio,13,0
     rtttl,15:d=10,o=6,b=180,c,e,g
   else
     if [DHT11#Temp] >= 10 and [DHT11#Temp] <= 20
        gpio,16,0
        gpio,12,1
        gpio,13,0
     else
        if [DHT11#Temp] > 20
           gpio,16,0
           gpio,12,0
           gpio,13,1
        endif 
     endif
   endif
     
   //setze den Timer 1 auf 10 Sekunden
   timerSet,1,5
 endon

Video

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}