Open Fidel68 opened 6 years ago
Ich würde den Wert mit dem Aufruf per GET an den Server übertragen. Dann kann man später die Werte auch loggen oder Warnungen ausgeben, wenn ein Akku zur Neige geht.
Könnte mal jemand ein beispiel aufzeigen ? Ist, das im Code schon enthalten ? Wenn ja wie lautet die URL für die GET abfrage ?
Ein Beispiel ist noch nicht vorhanden bzw. ggf. im Türsensor-Projekt zu finden (https://www.heise.de/select/ct/2018/2/1515447393533211). Jedoch sind noch zwei Punkte zu beachten:
GET
-Methode verwenden: GET
ist idempotent, d.h. der Aufruf der gleichen URL darf auf dem Server nichts verändern. Würde man Daten via GET übertragen (bsp. refresh im Browser), würde jeder Aufruf einen neuen Eintrag in der Datenbank erzeugen.Die korrekte Methoden um Daten auf den Server zu übertragen, sind PUT
oder POST
. Dies kennt man auch aus dem Browser: Lädt man eine Seite mit einem Formular neu, fragt dieser nach, ob die Daten wirklich erneut gesendet werden sollen.
Warum das Ganze wichtig ist?
1) Guter Stil
2) Wenn ein Bot (z.B. der GoogleBot) auf eine Seite stößt, folgt dieser Links (also GET
-Referenzen) -- diese sind ja idempotent. Ändere ich nun aber Daten auf dem Server via GET
, so kann der Bot dafür sorgen, dass innerhalb kürzester Zeit meine gesamte Datenbank voll geschrieben wird (gerade bei dynamischen Dokumenten).
Zurück zur Frage: Der Aufbau sieht ganz grob wie folgt aus:
V_Bat -- R1 -- R2 -- GND
. Dieser sollte so ausgelegt sein, dass die Spannung zwischen R1 und R2 die maximale Eingangsspannung des Microcontrollers nicht übersteigt. Im Falle des ESP32 wären das 3,3V. Nutzt man nun eine Batterie mit z.B. 4,7V und einen Spannungsteiler mit 2x 10kOhm liegen maximal 2,35V zwischen den beiden Widerständen an. (Eigentlich gehört da noch ein wenig Schutztechnik etc. mit dazu. Aber für den Anfang reicht es.)analogRead()
ausgelesen und entsprechend verarbeitet werden (-> via POST
zum Server oder irgendwie anders auf dem ESP verwenden).Übrigens: Eine so genannte Fuel Gauge liefert deutlich genauere Ergebnisse als ein Spannungsteiler.
Hoffe, dass das hilft.
Ich habe auch ein Lolin32 und einen 2500mAh Flachakku angeschlossen, mit 10 min sleeptime bin ich damit auf gut eine Woche Laufzeit gekommen. Ich überlege mir jetzt, die Akku-Messung aus dem Türsensor-Projekt mit einzubauen und den Wert auf das Display zu bringen. Ich bin mir nur nicht sicher, was dazu der beste Weg ist... im ESP-Code direkt auf‘s Display schreiben oder den Wert z.B. in die URL einbauen und vom index.php in die Grafik zeichnen lassen?