Hallo zusammen, ich möchte mir dieses Jahr eine Wetterstation bauen und habe Fragen zur Datenübertragung. Hintergrund: Ich möchte aufgenommene Messdaten alle 5 min per ESP32 und WLAN verschicken. Am Ende möchte ich die Daten in einer Textdatei auf meiner am Heimnetzwerk angeschlossenen NAS (Synology) abspeichern. Nur der Weg dazwischen ist mir etwas unklar. Mit Herumgooglen bin ich auf verschiedene Lösungsansätze gekommen, aber man sucht sich da schnell ins Nirvana und ich möchte ungern 10 Stunden Zeit in den falschen Weg investieren. Ideen: 1) ESP32 loggt sich direkt am Router-WLAN ein und überträgt die Daten per FTP auf die NAS. Von Synology gibt es wohl Anleitungen dafür, sollte also machbar sein. Da ich den ESP gerne mit der Arduino IDE programmieren möchte, weiß ich allerdings nicht, ob es dort den entsprechenden Code gibt. Zudem müsste ich wohl am Router wieder entsprechende Portfreigaben einrichten und ich möchte mir eigentlich kein Sicherheitsproblem ins Haus holen, weil auf der NAS auch empfindliche Daten liegen. Außerdem müsste ich irgendwo noch einen korrekten Zeitstempel in die Daten kriegen. 2) Zwischenstation mit Raspberry Pi 4: Diesen könnte ich per LAN an den Router / Heimnetzwerk hängen und ihm einen WLAN Stick geben. Der RP4 spannt ein eigenes WLAN Netz auf, und bekommt dort die Daten vom ESP. Ob das geht und einfacher / besser ist, keine Ahnung. 3) Eine mir unbekannte Lösung, die Ihr kennt. Vielleicht kennt Ihr für mein spezielles Anliegen ja die beste Lösung. Ich hoffe eine eher einfach umsetzbare Lösung zu finden ohne viel Schnickschnack. Die Hauptarbeit bei diesem Hobby-Projekt soll eigentlich nicht auf der IT liegen.
Warum in einer "Textdatei"? Ist doch Kindergarten. Auf einer Synology läuft ganz bequem (über die App-Verwaltung zu installieren) eine SQL-Datenbank "MariaDB 10.x" (Nachfolger/Fork von MySQL, 100% befehls-kompatibel). Das bekannte Tool PHPMyAdmin kann auf dem selben Weg installiert und zur Erstellung und Rechte-Vergabe auf die Datenbank benutzt werden. Man kann nun auf zwei Arten mit der Datenbank kommunizieren: a) man lässt zusätzlich auf der Synology ein PHPSkript laufen (welches vom ESP32 per HTTP-Request aufgerufen wird) und das erledigt dann die Kommunikation bzw. Eintragung in die Datenbank b) der ESP32 kommuniziert direkt selbst mit der DB-Engine über deren natives TCP-Protokoll auf Port 3306/3307. Das finde ich persönlich wesentlich eleganter. Mit SQL müsstest du dich so oder so beschäftigen. Für den ESP32 gibts mehrere Libs für den direkten Kontakt, um mit MariaDB bzw. MySQL zu kommunizieren, das hier z.B.: https://github.com/ChuckBell/MySQL_Connector_Arduino Aber da gibts bestimmt noch 100 andere Varianten ...
:
Bearbeitet durch User
Ich habe einen RasPi direkt im Heimnetz hängen, auf dem NodeRed läuft. Angeschlossen eine Datenbank. Mit NodeRed kann man auch schön visualisieren oder zusätzlich Heimautomation betreiben.
@ Frank. E: Danke schon mal für die Infos. Ich hatte diese Version beim selber googlen auch schon gefunden, waren mir dann aber zuviele neue Begriffe (klingt kindisch, ist aber ein guter Hinweis, ob die Lösung eher schnell geht oder lange dauert). Deswegen das Ding mit der Textdatei, das ginge prinzipiell schnell und ich kann es nach Belieben öffnen. Allerdings möchte ich später auch mal eine Wetteranzeige im Wohnzimmer anzeigen, und Fernzugriff wäre auch nice. Vielleicht schaue ich mir das doch mal noch genauer an. Zumindest wenn es gut ausformulierten Code gibt, den ich nur etwas anpassen müsste. @ Helmut: Würde das dann so laufen mit LAN/WLAN, wie ich oben gemeint hatte?
Bei ESP nimm Homeassistent mit ESP Home. Das liefert all deine Anforderungen Out of the Box mit.
Moin, - es ist erstaunlich dass noch keiner MQTT vorgeschlagen hatte: ESP32 libraries in verschiedener Geschmacksrichtungen (auch gut dokumentiert). @TO: Hast Du Dir die Stromversorgung ueberlegt? WLAN geht ueber 4pi, der Stromverbrauch der WLAN-Sender/Empfaenger beim Verbindungsaufbau ist im Bereich von 150-200mA. Gruesse Th.
@Kevin M.: Sieht interessant aus, werde ich mal einen Blick darauf werfen. @Thomas W.: Die Stromversorgung werde ich in der ersten Ausbaustufe per Netzteil bereitstellen, dann bin ich nicht limitiert. Langfristig wäre zwar Solarzelle nett, aber das muss richtig ausgelegt werden, speziell für den Winter. Und ich weiß noch nicht, was ich alles brauche, z.B. auch einen Lüfter für das Gehäuse zur Temperaturmessung. Vielen Dank für die Antworten bisher. Jetzt stehe ich allerdings wieder vor dem gleichen Problem wie vorher. Diese Begriffe hatte ich beim selber googlen auch fast alle gefunden und mir war das zu unübersichtlich, weil ich mit keiner der Lösungen bisher zu tun hatte und nicht wirklich abschätzen kann, was davon für mich das richtige ist. Aber vielleicht muss ich da einfach durch.
Mario schrieb: > @ Helmut: > Würde das dann so laufen mit LAN/WLAN, wie ich oben gemeint hatte? Also bei mir hängt der Raspi per LAN am Router und die ESPs hängen per WLAN im Netz. Die senden ihre Daten per MQTT an NodeRed, das sie auch in die Datenbank weiterleitet. Da die ESPs ziemliche Stromfresser sind, hängen die alle per 5V-Wandwarzen an 230V. Meine außerhäusigen Wettersensoren, die auch Stromfresser sind (z.b. Regensensor wg. Heizung und ähnliche) werden mit 12V versorgt. Dann gibt's Temperatursensoren, die hängen an Solarzellen und LiFePO4-Akkus. Die sind mit LoRa und Arduino Pro-Mini ausgestattet und senden die Daten an ein zentrales Gateway, das die Daten per WLAN und MQTT an den RasPi weiterleitet. LoRa deswegen, weil die Sender sehr stromsparend sind und eine große Reichweite haben. Mit NodeRed mache ich auch die Visualisierung. Da gibt es so viele PlugIns, dass für alle Anwendungsfälle was passendes zu finden ist.
:
Bearbeitet durch User
@Helmut: Das klingt schon sehr interessant. Ich möchte aber die Daten definitiv auf der NAS haben und mit beliebigen Geräten (PC, Laptop, extern per openVPN, µC) darauf zugreifen können. Aber ich glaube, so machst du das nicht, oder?
Nodered ist eine Applikation von NodeJS, NodeJS ist quasi die Javascript Version für den Host, damit kann man zum Beispiel einen http Socket erstellen der Json als Post Daten annimmt und in sqlite wegspeichert. Dazu kann man dann noch die Daten mit Charts als Browserseite visualisieren. Das steckt quasi alles nur anders in node-red.
Helmut -. schrieb: > Also bei mir hängt der Raspi per LAN am Router und die ESPs hängen per > WLAN im Netz. Die senden ihre Daten per MQTT an NodeRed, das sie auch in > die Datenbank weiterleitet Helmut -. schrieb: > Die sind mit LoRa und Arduino Pro-Mini ausgestattet und senden die Daten > an ein zentrales Gateway, das die Daten per WLAN und MQTT an den RasPi > weiterleitet. So mache ich es auch. Bei mir ist die Datenbank auf dem RasPi Postgresql. Alle Telegramme über MQTT sind in JSON und enden in einer Tabelle mit zwei Spalten: Zeitstempel und Jsonb. Davon wird dann alles abgeleitet. Ach, und noch ein Detail: mosquitto läuft bei mir auf dem zentralen Router unter OpenWRT und ist dadurch in allen VLANs erreichbar. LG, Sebastian
Hallo zusammen, ich wollte mal ein Update geben, weil ich das Ganze mittlerweile zum Laufen gebracht habe. Vielen Dank nochmal für die verschiedenen Vorschläge. Ich bin im Großen und Ganzen dem Vorschlag von Frank E. gefolgt mit Lösung a). Dazu bin ich erst mal diesem Beispiel gefolgt: https://esp32io.com/tutorials/esp32-mysql Dort installiert man eine Datenbank auf einem PC und erstellt dort das php-Skript. Der ESP32 wird über Arduino IDE 2 programmiert, verbindet sich mit meinem WLAN und schickt eine http-Anweisung (im Endeffekt $_GET) an das php-Skript. Das hat gut funktioniert. Dann war der nächste Schritt, statt dem PC meine Synology NAS zu nehmen. Hierzu habe ich MariaDB installiert und greife mit phpMyAdmin darauf zu und erstelle dort Benutzer und Datenbanken / Tabellen. Aktuellen Zeitstempel kann man dort auch leicht einstellen. Um das php-Skript auch auf der NAS zu haben, habe ich dort noch einen Webserver installiert. Für Neulinge: es gibt viele Anleitungen im Internet, wie das geht. Letztendlich waren aber die Infos von Synology selbst die richtigen. Nun läuft das alles, und ich kann Werte von ESP32 auf eine NAS-Datenbank schicken. Nächster Schritt wird das Auslesen der Daten, am besten mit einer schönen Oberfläche. Habe hier im Moment Grafana im Blick.
Genauso habe ich es auch gerade gemacht... Schlicht und einfach, da ein Webserver und ein Datenbankserver sowieso schon im Netz hängt, bloß mit einem Pico W statt eines ESP32: PicoW sammelt Temperatur und Luftfeuchte: Daten per http://n.n.n.n/data.php?id=1&typ=1&value=12.34 an den Webserver schicken. Dort warten ein Script, welches die Daten aufwertet und an eine MySQL weiterleitet. Fertsch... Ich habe erst mit MQTT "rumprobiert" - nunja - das ist schon nen bissle overkill wenn man nur ein Sensor abfragen will. In der Cloud kostet es was und zu Hause habe ich zwar nen Container dafür erstellt. Aber die Daten aufzubereiten oder an meinen DB Server durchzureichen - da hat es dann irgendwie gescheitert. EDIT: Jaaa... ich habe den Schreibfehler im Bild auch gerade gesehen :-D
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.