Pi3 + ESP8266/ESP32 + BME280 als WLAN Temperaturstation

  • Hallo,

    ich bin noch recht neu beim Pi. Da ich letzte Woche zum ersten Mal einen Unifi Controller und Pi-Hole aufgespielt habe, bin ich auf den Geschmack gekommen.


    Ich möchte per ESP8266/32 + BME280 Sensor per WLAN am Pi auswerten, das Ganze soll eine batteriebetriebene Wetterstation werden.


    Es gibt ja diverse Anleitungen im Netz, zum Teil leider recht Alte, dort werden dann einige benötigten Programme nicht mehr unterstützt.

    Auf den ESP könnte man auch direkt einen Webserver starten und die Werte abfragen, benötigt nur viel Batterie, daher nicht optimal, da ich auf dem Nordbalkon keine Steckdose besitze.


    Ich habe mir das Ganze so vorgestellt:


    Ich würde mir einen zusätzlichen Pi 3 zum testen bestellen, da ich meine laufende Umgebung nicht zerschroten möchte.


    ESP8266 oder ESP32 sendet mir die Werte vom BME280 alle 30 Minuten an eine Datenbank im Raspberry und geht dann in den Deep Sleep für 30 Minuten.

    Über den Pi lässt sich dann die Datenbank im Netzwerk per Website aufrufen.


    Es wäre super, wenn mir jemand einen Tipp geben könnte, welche Datenbank dafür am besten geeignet ist (mysql & node.js hatte ich schon mal im Auge). Ich denke ich müsste im ESP den Pfad der Datenbank angeben und diese übernimmt die Werte.

    Aktuell würden mir die Werte in einer einfach Tabelle reichen, später dann mit Datenschreiber und etwas edler Optik.


    Sehe ich das soweit richtig ? Ich bin bei so etwas sehr ehrgeizig, bräuchte aber etwas Unterstützung bzw. einen Klapps in die richtige Richtung :danke_ATDE:

  • Das klang schon mal ganz gut.

    Ich bestelle mir mal die benötigten Teile, um dann hoffentlich nicht verrückt zu werden :D


    Für den ESP32 benötige ich soweit ich gesehen habe, kein Adapter oder ähnliches? USB Micro sollte reichen?


    Bluetooth hat aber eine nicht so gute Reichweite und wir haben bunkerähnliche Wände und Decken, selbst das Handynetz ist manchmal weg.

    Schauen wir mal was daraus wird. :angel:

    Edited once, last by hYtas ().

  • So kleines Update.


    Alles läuft und ich bekomme auch Daten ins Grafana per InfluxDB, nur MQTT startet noch nicht 100%ig von selbst nach einem Reboot.

    Deep Sleep fehlt noch, die beiden Punkte werde ich evtl heute beheben.


    Eine Frage: Mein Pi hat eine dynamische IP erhalten. Ich möchte diesem aber eine feste zuweisen. An sich sollte dies ja kein Problem sein, InfluxDB usw laufen ja alle auf localhost, nur im ESP müsste ich die IP anpassen korrekt?


    Oder gibt es dann Probleme mit den Datenbanken?

  • Mein Pi hat eine dynamische IP erhalten. Ich möchte diesem aber eine feste zuweisen.

    Für Server-Anwendungen ist es besser eine feste IP zu haben.

    Was hindert dich daran die IP fest zu vergeben? Das kannst du doch z.B in der Fritz.Box einstellen "immer die selbe IP vergeben".

    Glaube ersetzt kein Wissen

  • Hindern tut mich nichts daran, war nur die Frage, ob es dann Probleme mit den Datanbanken gibt, aber scheint nicht so zu sein.

    Zum testen wollte ich erstmal eine dynamische IP nutzen, da es nun läuft stelle ich es um.


    Ich benutze Unifi-Produkte, ich hatte gedacht, die IP im Raspberry selbst zu ändern, per Router ginge dies natürlich auch.

  • per Router ginge dies natürlich auch.

    Normal hast du nur einen Chef der die IP vergibt.

    [Historie]

    In den allerersten Anfängen hat man die Auflösung der Namen zu den IP-Adressen in der Datei /etc/hosts vorgenommen (das ist auch der Grund warum es unter Windows auch diese Datei gibt C:\windwos\system32\driver\etc\hosts). das wurde schnell unpraktikabel, da die Datei an jedem Rechner geändert werden musste, wenn sich etwas an dem Netz änderte. Da war dann der Admin der Chef, der die IP zuteilte.


    Also ersann man die Möglichkeit die Vergabe zentral zu regeln. Daraus erwuchs dann der DNS-Server, der ab da der Chef war. Mit DNS hat man zwar die Auflösung von Namen zu IP-Adresse, nur die Vergabe der IP selbst war nicht geregelt.


    Deswegen wurde der DHCP-Server eingeführt, der sorgt nun dafür, wenn ein Rechner sich am Netz anmeldet, dass dieser von der Zentrale (DHCP-Server) eine IP bekommt.


    Da der DNS-Server mit dem DHCP-Server eng zusammenarbeitet gibt es "Kombi"-Programme wie dnsmasq. Da das aber für den Normal-User zu schwer ist, übernehmen die DSL-Router heutzutage diese Aufgabe.

    [/Historie]


    Deswegen ist es besser wenn du das in deinem DSL-Router machst, ausser du weisst was du tust und hast auch die Notwendigkeit einen anderen DNS-/DHCP-Server zu installieren.


    Und wie gesagt es kann immer nur einen geben!


    PS: Man möge mir mache Fehler in Historie verzeihen, insbesondere in der Reihenfolge.

    Glaube ersetzt kein Wissen

  • Danke für die Erläuterung! Mein erster Pi hat auch direkt ne feste IP bekommen und nicht im Router. Ich weiß da schon ganz gut, was ich tue :)

    Ich vergebe immer manuell am Gerät die IPs, der Router vergibt erst ab 10.x.x.50 IPs. IPs 1-49 sind für mich und meine festen Geräte reserviert.


    Gäste kommen ins 192er Netz.


    DNS läuft auf dem Pi per Pi-Hole (DCHP ist aus).


    Wenn alles 100%ig läuft, werde ich versuchen eine schicke Anleitung zu erstellen.

  • Es läuft :) Aktuell jede Minute, ändere ich über Nacht zu alle 10 Minuten.



    Nur ich muss nach einem Reboot ein Python Script starten, damit die Werte abgefragt werden. Influx Grafana usw starten alle von selbst.

  • Schick, aber <klugscheissmode> mit einem BME280 kannst du Temperatur getrost auf 1 Nachkommastelle und Feuchte auf Integer runden </klugscheissmode>.

    Menschen die keine Ironie verstehen finde ich super!

  • Wenn alles 100%ig läuft, werde ich versuchen eine schicke Anleitung zu erstellen.

    Siehe da, wenn alles auch über Tage läuft, erstell ich eine Anleitung.

    Das kannst du doch auch automatisch starten lassen

    Per Cronjob oder wie ? :)

    Schick, aber <klugscheissmode> mit einem BME280 kannst du Temperatur getrost auf 1 Nachkommastelle und Feuchte auf Integer runden </klugscheissmode>.

    Runden ginge, werde ich anpassen.

  • Kann ich dir in 15 Minuten sagen, habe leider Grafana zerschossen.. muss das Backup wiederherstellen :/ :D


    Laderegler und ein Li Ion Akku sind bestellt, damit das Teil autark funktioniert.

    Edited once, last by hYtas ().

  • Das ist der Code, die Datei liegt in /home/pi/main.py