Forum: Mikrocontroller und Digitale Elektronik ESP Sensordaten Datenbank mit Micropython


von ESPler (Gast)


Lesenswert?

Hallo Gemeinde,

folgendes Szenario:
Ich habe einen ESP8266 mit DHT-Sensor auf dem Micropython läuft, der 
bisher erfolgreich Luftfeuchtigkeit und Temperatur messen kann und über 
WLAN mit verbunden ist. Die gemessenen Daten sollten im nächsten Schritt 
in einer Datenbank gespeichert werden und mit Hilfe einer Abfrage in 
einer Tabelle bzw. später Graph in Grafik ausgegeben werden.

Bedingung hierbei ist: Es sollte möglichst viel in (Micro-)python 
programmiert werden.

Nun bin ich am Überlegen, welches der beste und kostengünstigste Weg 
ist, dies umzusetzen. Mir hat man einen MQTT-Broker empfohlen, doch 
leider speichern diese die Daten nicht lang genug (HiveMQ bspw. nur 3 
Tage).

Leider habe ich bei meinem Webspace-Hoster (Strato) auch nicht gesehen, 
dass dieser einen externen Datenbankzugriff erlaubt, so dass die Daten 
direkt dort hineingelangen können (wahrscheinlich auch aus 
sicherheitstechnischen Gründen (?)).
Ungern möchte ich mir für diese Spielerei extra einen RasPi zulegen, da 
das Geld als Schüler nicht unendlich ist und dies nur ein kleines 
Testprojekt sein sollte.

Ich freue mich über Ideen/Anregungen, da ich noch Neuling in diesem 
Gebiet bin.

von Kolja L. (kolja82)


Lesenswert?

Du brauchst eine Datenbank bei strato und ein php Skript, dass der ESP 
mit den Messwerten in der url aufruft.

von Stefan F. (Gast)


Lesenswert?

Kolja L. schrieb:
> Du brauchst eine Datenbank bei strato und ein php Skript, dass der ESP
> mit den Messwerten in der url aufruft.

Oder eben eine lokale Datenbank + PHP Server.

ESPler schrieb:
> Mir hat man einen MQTT-Broker empfohlen, doch
> leider speichern diese die Daten nicht lang genug

Das ist ja auch nicht deren Aufgabe.

von ESPler (Gast)


Lesenswert?

Vielen Dank für Eure Antworten!


Kolja L. schrieb:
> Du brauchst eine Datenbank bei strato und ein php Skript, dass der
> ESP
> mit den Messwerten in der url aufruft.

Wenn ich das richtig verstanden habe - kann ich (weil es möglichst viel 
in (Micro)Python mittels urequest einen HTML-Link erstellen und ggf. (da 
muss ich mich vorher noch schlau machen) mit PyScript die Daten in eine 
Datenbank schreiben - richtig? (somit wird php umgangen - vermutlich 
eignet sich PHP eher, aber hier geht es (leider) nicht um Eignung 
sondern um Python) oder habe ich da jetzt einen Denkfehler?


Danke schon einmal für Eure Antworten.

Stefan ⛄ F. schrieb:
> Kolja L. schrieb:

> Das ist ja auch nicht deren Aufgabe.

Habe ich so ja auch nicht behauptet ;)
wollte nur die Möglichkeiten, mit denen ich mich auseinandergesetzt habe 
bzgl. des Themas erwähnen, damit man als potenzieller Hinweisgeber 
(unnötig) Arbeit hineinsteckt, weil dies nicht für meine vorgestellten 
Zwecke geeignet ist.

Stefan ⛄ F. schrieb:
> Oder eben eine lokale Datenbank + PHP Server.

Dann muss der Rechner, auf dem die DB läuft beim Einfügen und Abfrage 
permanend laufen, oder? Somit ist die gehostete Version für mich im 
Zeiten der exorbitanten Stromkosten günstiger, zumal ein kleines 
Hostingpaket mit PHP-Unterstützung vorliegt - oder sehe ich das falsch?

Viele Grüße

von Stefan F. (Gast)


Lesenswert?

ESPler schrieb:
> Dann muss der Rechner, auf dem die DB läuft beim Einfügen und Abfrage
> permanend laufen, oder?

Ja. Weil die ESP die meiste Zeit schlafen und nur ab und zu Daten an den 
Server übermitteln, muss der Server ständig empfangsbereit sein.

Umgekehrt würden deine Batterien nicht lange genug halten. Du kannst 
nicht die ESP Module ständig bereit haben damit man bei Bedarf die Daten 
abholen kann.

PHP wurde deswegen empfohlen, weil die meisten Webhoster das ohne 
großartigen Aufpreis anbieten. Die Integration von Python in den 
Webserver ist möglich, aber eben unüblich. Man muss nehmen, was man 
kriegen kann.

Du kannst auch deinen eigenen Webserver zu hause betreiben. Nur ist 
dessen Stromaufnahme oft schon teurer, als Webspace zu mieten. Kosten 
für Hardware, Wartung, Hacker-Abwehr, Einbindung ins DNS System kommen 
da noch oben drauf.

von mIstA (Gast)


Lesenswert?

ESPler schrieb:
> (somit wird php umgangen - vermutlich eignet sich PHP eher,
> aber hier geht es (leider) nicht um Eignung
> sondern um Python)

Ich würde eher nicht meinen, daß Python für serverseitige Scripte 
weniger geeignet ist als PHP, aber PHP ist in dem Bereich halt der 
absolute (Mindest)standard, der bei praktisch jedem Hostingpaket 
inkludiert ist, jedenfalls sofern auch eine DB mit dabei ist. 
Python-Unterstützung ist in diesem Bereich deutlich seltener bzw. ggf. 
erst bei größeren Hosting-Paketen verfügbar.


ESPler schrieb:
> zumal ein kleines Hostingpaket mit PHP-Unterstützung vorliegt

Wenn Du PHP umgehen willst, wird Dir die inkludierte PHP-Unterstützung 
halt wenig nützen.

von mIstA (Gast)


Lesenswert?

ESPler schrieb:
> Die gemessenen Daten sollten im nächsten Schritt
> in einer Datenbank gespeichert werden und mit Hilfe einer
> Abfrage in einer Tabelle bzw. später Graph in Grafik
> ausgegeben werden.
>
> Bedingung hierbei ist: Es sollte möglichst viel in
> (Micro-)python programmiert werden.

Solange es bei nur zwei Meßwerten + Timestamp pro Datensatz bleibt, muß 
man diese Aufgabe sicher nicht unbedingt mit einer DB erschlagen, das 
sollte durchaus auch mit einer simplen Textdatei (pro Tag/Woche/Monat je 
nach Meßinterval) hinreichend performant zu schaffen sein.

Ganz verrückte Idee: Nachdem Du möglichst viel in Micro-Python 
realisieren willst, könntest Du ja mal versuchen, das auf einem zweiten 
ESP (ggf. ESP32 falls ein ESP8266 doch zu lahm ist) hinzukriegen; den 
durchlaufen zu lassen ist wohl leistbar.

Beitrag #7130660 wurde von einem Moderator gelöscht.
von Frank K. (fchk)


Lesenswert?

ESPler schrieb:

> Wenn ich das richtig verstanden habe - kann ich (weil es möglichst viel
> in (Micro)Python mittels urequest einen HTML-Link erstellen und ggf. (da
> muss ich mich vorher noch schlau machen) mit PyScript die Daten in eine
> Datenbank schreiben - richtig? (somit wird php umgangen - vermutlich
> eignet sich PHP eher, aber hier geht es (leider) nicht um Eignung
> sondern um Python) oder habe ich da jetzt einen Denkfehler?

Bei Deinem Webspace wirst Du PHP benutzen müssen, um auf Deine dort 
gehostete Datenbank zuzugreifen. Dir steht dort nichts anderes zur 
Verfügung. Ist jetzt halt so, kannst Du nicht ändern.

Du kannst Dir aber z.B. hier
https://www.netcup.de/bestellen/produkt.php?produkt=2948
einen vServer ordern. Da kannst Du dann natürlich installieren, was Du 
gerne möchtest. Wenn es Python sein muss, dann eben Python.

fchk

von Kolja L. (kolja82)


Lesenswert?

Frank K. schrieb:
> Bei Deinem Webspace wirst Du PHP benutzen müssen, um auf Deine dort
> gehostete Datenbank zuzugreifen. Dir steht dort nichts anderes zur
> Verfügung. Ist jetzt halt so, kannst Du nicht ändern.

Die meisten PHPs haben SQLite als eigene Datenbank, das sollte mehr als 
ausreichend sein.

Irgendwo müsste ich auch noch so ein script rumliegen haben. Daten 
empfangen, speichern und als Graph ausgeben. Ist nicht so aufwändig 
gewesen.

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
Noch kein Account? Hier anmelden.