Hallo,
aktuell habe ich durch ein parallelen Aufbau mehrere 18650er eine
Stromquelle von 3.6V die zusammen Rund 10.000mAh zur Verfügung stellen.
Zusätzlich habe ich einen Kondensator von 470uF eingebaut, um die
Spannung konstant zu erhalten.
Ich würde mit diesem Aufbau gerne einen ESP8266-01 betreiben, auf
welchem ein simpler Webserver läuft, welcher beim Request durch ein
Client einfach einen durch einen Sensor gemessenen Wert zurückliefert.
Nun liegt mein Problem darin, dass der ESP8266-01 einen hohen
Stromverbrauch aufweist, weshalb die Akkus nicht allzulang halten.
Da ich in meinem Setup leider auf keine Stromquelle zurückgreifen kann
(und auch nicht möchte), überlege ich, inwiefern ich mein Setup
verbessern kann. Ebenfalls das Betreiben eines Solarpanels o.Ä. bietet
sich in diesem Fall nicht an.
Zuerst habe ich überlegt, ob ich ein WOL (WakeOnLan) zum ESP schicken
könnte, dieser dann 5 Sekunden lang den Webserver startet und ich in der
Zwischenzeit den Wert abfrage, im Anschluss würde der ESP8266 wieder in
den Deepsleep gehen, aber auch hierfür müsste der ESP8266-01
Empfangsbereit sein.
Ich verwende aktuell kein Sleeps oder Ähnliches in meinem Script. Habt
ihr Erfahrung in diesem Bereich und könnt mir für die Lösung meines
Problems Tricks/Tipps verraten?
Freue mich auf eure Ideen/Vorschläge.
Wie sieht der Client aus? Kannst du eine zweite (Low-Power, nRF24L oder
so) Funkverbindung o.ä. vorsehen, die den ESP aufweckt? Kannst du
umgekehrt den Client ununterbrochen laufen lassen, sodass der ESP8266
periodisch aufwachen kann und seine Werte übertragen?
Falls beides nicht geht, glaube ich nicht, dass es dafür eine
Möglichkeit gibt. Außer du nimmst eben größere Einschränkungen im Kauf,
also z.B. alle 5 Minuten aufwachen und für 5 Sekunden an bleiben, und
bis dahin merkt sich der Client eben den Request ...
Der Webserver ist im Sleep Modus nicht erreichbar, also muss er immer
normal laufen. Und das verbraucht etwa 100mA. WLAN ist nicht für's
Strom-Sparen ausgelegt.
Wake-On-Wlan kann im Sleep Modus auch nicht funktionieren, falls es das
überhaupt gibt.
Da ich die Werte nur auf Anfrage brauche und dann Live, ist ein Senden
alle 5Minuten leider nicht möglich.
Der Client ist mein Raspberry-PI der immer läuft. Eine Komponente
einbauen, die den ESP weckt wäre möglich, dies müsste aber auch in
diesem Fall live (1-5Sekunden Verzögerung wäre ok) passieren. Leider
bringt mir das Ergebnis im Falle einer Verzögerung von Größer 5 Sekunden
nichts, da somit die zeitliche Differenz zu groß wäre. (Luxusproblem)
WWhite schrieb:> Der Client ist mein Raspberry-PI der immer läuft.
Dann drehe das doch um, mache den Raspberry Pi zum Server und den ESP
zum Client. Dann wacht der ESP auf, wenn er etwas melden möchte.
Diese Variante ist ohnehin sehr viel einfacher zu programmieren, denn
auf dem Raspi kannst du einen handelsüblichen Webserver mit Scripting
Engine (z.B. Apache mit PHP) verwenden.
Die Frage ist halt ob der ESP zu deinem WLAN in <5 Sekunden eine
Verbindung aufbauen kann, mit DHCP und allem. Meiner kann das jedenfalls
nicht ...
Evtl. direkt ein anderes Funkmodul nehmen, z.B. das bereits erwähnte
nRF24L01? Wenn du eh ein RPi als Client hast, ist das WLAN eigentlich
nicht wirklich nötig.
Renate schrieb:> LoRa-Module kosten auch nicht viel und brauchen sehr wenig Strom.
Ohne irgendwelche Informationen zu der Anwendung ist es schwierig zu
sagen, ob das eine Alternative wäre.
Sven B. schrieb:> Die Frage ist halt ob der ESP zu deinem WLAN in <5 Sekunden eine> Verbindung aufbauen kann, mit DHCP und allem. Meiner kann das jedenfalls> nicht ...
Also ich habe einen ESP8285 als Wetterstation am laufen. Der wacht alle
2 Minuten aus dem Deepsleep auf und sendet die Daten dann via MQTT an
meinen RPi. Parallel dazu lasse ich mir auch die Zeit mitschicken wie
lange er für den Wifi-Connect (inkl. DHCP Request) benötigt. Im mittel
sind es bei mir 200ms und hin und wieder mal ausreißer bis hoch zu 3
Sekunden im schlimmsten Fall. Sollte er nach 3 Sekunden die Verbindung
nicht aufgebaut haben schicke ich ihn wieder in Deepsleep. Mein 800mAh
Akku hält so 1-2 Monate. Die Hellblaue Linie ist die Zeit für den MQTT
Connect.
Die Zeiten hängen sehr stark davon ab, mit wie vielen Leuten du dir das
Funknetz teilst. Bei mir sind es typischerweise 3 Sekunden, manchmal
aber auch 5. Mit festen IP Adressen kann das angeblich merklich
verkürzen, habe ich aber noch nicht ausprobiert weil die 3 Sekunden für
mich Ok sind.
Im Prinzip geht es darum, wenn der ESP8266-01 angefunkt wird, je nach
Request der eingeht ein Schrittmotor zu steuern und anschließend solang
zu warten, bis der nächste Request rein kommt. Den selben Anwendungsfall
habe ich noch für einen Sensor, welcher den Wert eines
Entfernungsmessers (HC-SR04) zurückgibt.
Ich habe im hoffentlich endgültigen Zustand zukünftig nur keinen
direkten ZUgriff auf die ESP8266-01 (sind fest verbaut), weshalb die
möglichst lang auf Akkus laufen sollen.
Das wichtigste Auswahlkriterium ist der Stromverbrauch des Empfängers
bei einer Spannung zwischen 2,5 und 3,6 V. Wobei die Reichweite nicht
außer acht gelassen werden darf.
Da die Übertragungsgeschwindigkeit wesentlich entscheidet für den
Stromverbrauch ist, und diese für die Anwendung nicht erforderlich ist,
scheidet IP aus.
Grundsätzlich ist die Frage ob eine Webinterface für
Maschinen/Maschineninterface überhaupt optimal ist, es sind unnötig
viele Daten zu übertragen.
Der MRF89XAM8A arbeitet im ISM-Band auf 868 MHz und braucht im
empfangsbereiten Zustand typisch 3mA. Der Stromverbrauch des MC (z..B.
MSP430G2553) sollte im Stromverbrauch zu vernachlässigen sein.
Damit ließe das System über 4 Monate betreiben. Je nachdem wieviel
gesendet werden muss und welche Aktivitäten noch parallel laufen ist die
Laufzeit entsprechend kürzer.
WWhite schrieb:> Im Prinzip geht es darum, wenn der ESP8266-01 angefunkt wird, je nach> Request der eingeht ein Schrittmotor zu steuern und anschließend solang> zu warten, bis der nächste Request rein kommt.
Dann muss der ESP8266 wohl die Rolle des Servers einnehmen und somit
permanent ca. 100mA Strom aufnehmen. Geht mit WLAN nicht anders.
Das Problem ist, dass in einem Anwendungsfall der ESP als Akteur dient
also auf Bedarf eine Aktion ausführt. Für den Anwendungsfall mit den
Sensoren auslesen stimme ich euch zu.
Ich denke die Antwort auf das Thema ist relativ eindeutig, und wurde ja
auch schon mehrmals genannt. WLAN ist nicht die richtige Technologie, um
Low-Power, Low-Bandwidth-Anwendungen umzusetzen, besonders wenn man
Kontrolle über Sender und Empfänger hat. Du kannst dich m.E. entweder
mit einem der genannten anderen Module auseinandersetzen oder wählen,
welchen Todes du mit dem WLAN sterben willst. ;)