in diesem Artikel möchte ich euch zeigen, wie ihr einen Windsensor mit einem Wemos D1 Mini (ja, genau der kleine ESP8266) in Kombination mit einem Arduino-Skript aufsetzt. Das Besondere daran: Der Code wurde mit Hilfe von ChatGPT erstellt, da ich mich nicht wirklich mit der Programmierung von Arduino und Co. auskenne – und um ehrlich zu sein, wollte ich einfach mal testen, ob man mit der Unterstützung einer KI auch ohne viel Erfahrung zu einem funktionierenden Ergebnis kommen kann.
Und spoiler alert: Es funktioniert!
Was ist das Ziel des Projekts?
Das Ziel war es, die Windgeschwindigkeit mit einem WH-SP-WS01-Sensor zu messen und die Werte über MQTT zu übertragen. Der Windsensor sendet Impulse, die mit einer bekannten Formel in die Windgeschwindigkeit umgerechnet werden können. Dabei werden die berechneten Werte wie Durchschnitt, Min und Max in km/h und m/s übertragen.
Der Wemos D1 Mini und der Windsensor
Wie gesagt, wir nutzen den Wemos D1 Mini, ein kleines, aber leistungsstarkes Entwicklungsboard auf Basis des ESP8266. Das Board bietet eine einfache Möglichkeit, mit Wi-Fi zu arbeiten und kann dank zahlreicher Bibliotheken ganz einfach in Projekte integriert werden.
Der verwendete Windsensor ist der WH-SP-WS01. Dieser Sensor arbeitet mit einer Impulszählung und sendet für jede gemessene Windgeschwindigkeit einen Impuls. In diesem Fall entspricht ein Wind von 2,4 km/h genau einem Impuls pro Sekunde (1 Hz). Dies ist wichtig, weil der Code auf diesen Werten aufbaut, um die Windgeschwindigkeit zu berechnen.
Wie funktioniert der Sketch?
Der Sketch berechnet kontinuierlich die Windgeschwindigkeit basierend auf den Impulsen, die vom Sensor gesendet werden. Diese Impulse werden gezählt und in zwei Zeiträumen ausgewertet:
- 10 Sekunden (für schnelle, aktuelle Messwerte)
- 30 Sekunden (für einen Durchschnitt über einen längeren Zeitraum)
Es werden durchschnittliche Werte, der Maximalwert und der Minimalwert für beide Zeiträume (10s und 30s) ermittelt und über MQTT an einen Server (z.B. ioBroker) gesendet.
Der Sketch selbst erledigt folgende Aufgaben:
- Impulse zählen: Der Sensor sendet Impulse, die vom Wemos D1 Mini über einen Interrupt gezählt werden.
- Berechnung der Windgeschwindigkeit: Die Impulse werden in Windgeschwindigkeit umgerechnet – und zwar in km/h und m/s.
- Veröffentlichung über MQTT: Alle berechneten Werte wie Durchschnitt, Max und Min werden über MQTT an den Server gesendet.
Standardwerte und Anpassungen
Im Sketch gibt es zwei wichtige Werte, die für die Berechnung der Windgeschwindigkeit verantwortlich sind:
- factor_kmh = 2.4 (Umrechnungsfaktor für km/h)
- divisor_ms = 3.6 (Umrechnungsfaktor für m/s)
Dies sind die Standardwerte, die im Skript gesetzt sind. Diese Werte passen gut für den WH-SP-WS01 Windsensor. Sollte der Sensor geändert oder andere Umrechnungsfaktoren benötigt werden, können diese Werte jederzeit angepasst werden. Der Code ermöglicht es, die Werte über MQTT zu ändern, und auch nach einem Neustart bleiben diese Einstellungen erhalten.
Der Anschluss des Sensors
Der Sensor wird ganz einfach an einen der digitalen Pins des Wemos D1 Mini angeschlossen – in diesem Fall verwenden wir D5. Die Impulse des Sensors werden dort empfangen und gezählt. Der Anschluss selbst ist also sehr simpel und kann mit minimalem Aufwand erledigt werden.
Das MQTT-Thema
Die Werte werden in einer MQTT-Topic-Struktur werden wie folgt veröffentlicht:
- windsensor/speed_10s/kmh/average
- windsensor/speed_10s/kmh/min
- windsensor/speed_10s/kmh/max
- windsensor/speed_30s/kmh/average
- windsensor/speed_30s/kmh/min
- windsensor/speed_30s/kmh/max
- windsensor/speed_10s/ms/average
- windsensor/speed_10s/ms/min
- windsensor/speed_10s/ms/max
Die Werte für Durchschnitt, Min und Max sind für beide Zeiträume (10s und 30s) verfügbar, sowohl für km/h als auch für m/s.
Der Arduino-Sketch
Hier kannst du den Sketch downloaden.
Fazit
In diesem Projekt habe ich dank ChatGPT und dem Wemos D1 Mini in kurzer Zeit ein funktionierendes System erstellt, das zuverlässig die Windgeschwindigkeit misst und per MQTT überträgt. Ich habe nicht viel Erfahrung mit der Arduino-Programmierung, aber der Sketch zeigt, dass es durchaus möglich ist, mit ein wenig Unterstützung von KI und etwas Bastelarbeit ein tolles Ergebnis zu erzielen.
Die nächsten Schritte sind jetzt ein Gehäuse zu konstruieren und 3D-Drucken, sowie die Montage im Außenbereich. Wie sich der Sensor bewährt wird in einem Folgeartikel behandelt.
Also, falls du auch mal mit einem Windsensor experimentieren möchtest, ist dieses Setup ein einfacher Einstieg – und ein praktisches Beispiel, wie du mit dem Wemos D1 Mini und MQTT smarte Messwerte senden kannst.
Schreibe einen Kommentar