Forum: Mikrocontroller und Digitale Elektronik Low power esp8266 Sensor board i.O,?


von Jonathan (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich will mit einem kleinen Board periodisch i2c Sensorwerte ins Netz 
schicken.

Die Idee ist einen Attiny13 + ESP8266 zu benutzen[1]. Ersterer soll 
einen Buck/Boost Converter alle 10 Minuten einschalten. Es soll der Bus 
gelesen und die Batteriespannung gemessen werden.

Ich habe dafür einen "ein/ausschaltbaren" Schaltkreis für einen Voltage 
Divider gefunden[2] und für meine Volt Werte (max 3x 1,5 AA ~ 5,1V) 
angepasst. Der ADC des Esp kannt analog zwischen 0 bis 1V entscheiden, 
weshalb für eine saubere Messung maximal 1V ankommen darf.

Der Converter ist ein TPS63031[3].

Die Besonderheit an dem Board soll sein, dass man den ESP und den Attiny 
direkt darauf programmieren kann. Sprich die Pins für ISP und die UART 
Schnittstelle des Esp sind freigelegt.

Damit der Attiny nicht von zwei Stromquellen gespeist wird, kann man 
mittels Jumper zwischen Batterie oder den 5v aus dem ISP Interface 
entscheiden.

Ich habe einen Schaltplan und dazu ein Board gemacht und würde mich 
freuen wenn ihr da mal drüber schauen könnt.

Ich hab dem ESP einen 10uF Glättungskondensator vorgesetzt. Ist dieser 
ausreichen? Der Esp kann bis 200mA ziehen.

Ist der Voltage Divider in Ordnung? Durch EN_ADC auf High wird der 
P-Mosfet ausgelöst, der wiederum den N-Mosfet schaltet, wodurch die 
externe Batteriespannung zwischen den beiden Widerständen gemessen 
werden kann.
Gibt es dafür Besonderheiten, die es auf dem Platinenlayout zu 
berücksichtigen gilt?

Für den Konverter hab ich aus dem Datenblatt ein empfohlenes Layout 
übernommen. (Es sind noch nicht alle Routen geroutet)

Noch einen schönen Abend.

[1]http://homecircuits.eu/blog/battery-wifi-iot-temp-hum-soil-moisture-sensors/
[2]https://www.electricimp.com/docs/hardware/power_story/
[3]http://www.ti.com/lit/ds/symlink/tps63031.pdf

von --- (Gast)


Lesenswert?

Je seltener WiFi angemacht werden muss, umso groesser ist der
Spareffekt. So ein "Winz"-AVR ist da voellig fehl am Platz.

Ich wuerd da eher zu einem STM8 tendieren. Selbst die kleinsten
haben 2 kB RAM und koennen damit viel mehr Daten bis zum
Versand zwischenpuffern.
10 bit AD-Wandler haben sie ausserdem.
Fuer 12 bit AD-Wandler: STM8L.

> Ich hab dem ESP einen 10uF Glättungskondensator vorgesetzt.

Viel zu wenig. Eher 500 - 1000 uF.

Zum Schalten von irgendwelchen Stromversorgungen wuerde ich
einen IRML6402 nehmen.

Betriebsspannungen kann man einfach mit einem Spannungsteiler
ohne komplizierte Mimik messen.

von DraconiX (Gast)


Lesenswert?

--- schrieb:
> Je seltener WiFi angemacht werden muss, umso groesser ist der
> Spareffekt. So ein "Winz"-AVR ist da voellig fehl am Platz.
>
> Ich wuerd da eher zu einem STM8 tendieren. Selbst die kleinsten
> haben 2 kB RAM und koennen damit viel mehr Daten bis zum
> Versand zwischenpuffern.
> 10 bit AD-Wandler haben sie ausserdem.
> Fuer 12 bit AD-Wandler: STM8L.

Mir hat es den Anschein, und ich denke so ist es auch gewollt, ist der 
AVR ausschließlich dafür da den Buck Booster ein und auszuschalten. Mehr 
muss und braucht er auch nicht zu tun, und wenn man es ganz genau nehmen 
würde: dafür ist er dann auch schon völlig überdimensioniert - da würde 
auch schon ein Tiny10 6-Pin mit 1kb reichen.

von Jonathan (Gast)


Lesenswert?

Danke für das Feedback. Der Tiny10 klingt super und hat noch weniger 
Verbraucht im DeepSleep,top.

Genau, der Avr soll lediglich den ESP hoch und runter fahren, indem der 
Converter über den EN Pin eingeschaltet wird. Nachdem der ESP seine 
Aufgabe erledigt hat, schickt er einen Interrupt an den AVR, der dann 
den Konverter ausschaltet und nach 10min wieder aufwacht und EN wieder 
auf high setzt.

Wenn ich den Spannungsteiler ohne die Mosfets mache, wird direkt Strom 
verbaucht, sobald der Konverter Saft auf die Leitung gibt. Da ich 
möglichst lange mit den Batterien auskommen will, sollte die 
Spannungsmessung effizient laufen. Der Mosfet sieht interessant aus, 
werde später mal die Datenblätter gegenchecken, danke!

von (prx) A. K. (prx)


Lesenswert?

Jonathan schrieb:
> Genau, der Avr soll lediglich den ESP hoch und runter fahren, indem der
> Converter über den EN Pin eingeschaltet wird.

Der ESP8266 benötigt im Deep Sleep 20µA. Du bist ganz sicher, dass sich 
das lohnt? Normale AA Zellen mit 2 Ah haben bei 20µA eine Laufzeit von 
nominell 100.000h, also 11 Jahre. Da ist die Selbstentladung grösser.

: Bearbeitet durch User
von Andreas K. (necromancer1982)


Angehängte Dateien:

Lesenswert?

Hallo Jonathan,

habe ein ähnliches Projekt realisiert...
Warum lässt du den zusätzlichen µC nicht einfahc ganz weg und schickst 
den ESP in den DeepSleep? Aufwecken kannst ihn dann indem du den GPIO16 
mit dem Reset Pin verbindest.

Was mir noch auffällt zu deinem Layout, die Spannungsversorgung 
(Leiterbahnen) zum ESP sind für meinen Geschmack deutlich zu dünn.
Ich hatte immer wieder Probleme, daß der ESP, trotz dickem Elko, 
unregelmäßig Resets durchführte.
Erst seit ich die Leiterbahnen zur Stromversorgung des ESP mind. 1mm 
breit mache ist damit Ruhe.

Gruß Andreas

von Pete K. (pete77)


Lesenswert?

- Die GND-Plane sollte nicht unter der Antenne sein
- Die drei blauen Leiterbahnen können auch noch auf TOP geroutet werden
- Unbenutze Pins des ESP könnte man auf separate Header-Pins legen

von Christian S. (solder)


Lesenswert?

Deep Sleep dürfte bei 4,5V nicht gehen. Dann müsste die 
Spannungsversorgung (Buck Boost) immer eingeschaltet bleiben. Insofern 
ist der AVR schon sinnvoll (in dem Fall hätte ich es auch so gemacht). 
Allerdings hätte ich auf den Buck Boost verzichtet und einen Ultra Low 
Drop verwendet. Das ist deutlich einfacher aufzubauen. Auch verstehe ich 
die komplizierte Messschaltung für die Batterie nicht. Wenn man sowieso 
immer nur kurz einschaltet, kann man die Batterie auch direkt messen.

Wenn die 4,5V aus Batterien kommen, dann kann man einfach nur 2 
einsetzen. Der ESP arbeitet auch bei 2,5V noch, auch wenn es nicht im 
Datenblatt steht. Alternative wäre ein LiFePO4-Akku mit günstigem 
Spannungsbereich.

Für Batteriespannungsmessung lege ich das obere Ende immer auf einen 
PortPin und schalte den für die Messung auf H. Das war bisher genau 
genug und ich kann den Spannungsteiler trotzdem abschalten. Letztlich 
ist doch in dem Port auch nur ein MosFET, der nach VCC schaltet. Geht 
aber natürlich nicht, wenn die Batteriespannung erst heruntergesetzt 
wird.

Solder

: Bearbeitet durch User
von Jonathan (Gast)


Lesenswert?

A. K. schrieb:
> Du bist ganz sicher, dass sich
> das lohnt?

Da ich den Strom umwandeln muss und der Konverter die ganze Zeit laufen 
würde, ja. Mit dem Attiny sinkt der Verbrauch dann effektiv auf unter 
5uA.

Andreas K. schrieb:
> Erst seit ich die Leiterbahnen zur Stromversorgung des ESP mind. 1mm
> breit mache ist damit Ruhe.

Danke für den Tipp, das werde ich ausbessern! Zum DeepSleep, der 
Konverter müsste parallel dazu die ganze Zeit laufen, wodurch die 
Batterien nicht lange mitmachen würden.

Pete K. schrieb:
> - Die GND-Plane sollte nicht unter der Antenne sein
Danke! Wäre es besser für die Antenne, wenn sie gänzlich freistehen 
würde, also das ich den GND Plane möglichst weiträumig um sie herum 
rausnehme? Oder reicht auch nur der Bereich den sie bedeckt?

Christian S. schrieb:
> Deep Sleep dürfte bei 4,5V nicht gehen. Dann müsste die
> Spannungsversorgung (Buck Boost) immer eingeschaltet bleiben.

Genau. Ich habe noch nicht viele Batterie Anwedungen umgesetzt, deswegen 
denke ich das LDOs eher für Anwendungen mit Netzteilen ausgelegt sind. 
Außer den etwas komplexeren Aufbau spricht doch eigentlich nichts gegen 
den BuckBoost.

von Wolfgang (Gast)


Lesenswert?

Jonathan schrieb:
> Der Esp kann bis 200mA ziehen.

Das reicht noch nicht. Bei Betrieb eines ESP-01 an einem Linearregler 
mit 100µF am Eingang (U_in 7V), geht der Eingangsstrom in Peaks von 
2..3ms Dauer durchaus auf 300mA hoch.

von X4U (Gast)


Lesenswert?

würde  erstmal dem Schaltplan einen ERCverpassen. Oder sind die nicht 
angebunden (auch ohne gelbes Gummiband) Kondensatorpins links neben dem 
4pol Stecker Absicht?

> Wäre es besser für die Antenne, wenn sie gänzlich freistehen würde ..
Die Antenne muss frei von Kupfer sein, besser noch ganz in der Luft. 
Unter der Antenne also min. rectangels auf den keepout und restrict 
layern legen. Besser noch an den Rand und ausfräsen (wenn's nix extra 
lostet)

Jonathan schrieb:
> Die Besonderheit an dem Board soll sein, dass man den ESP und den Attiny
> direkt darauf programmieren kann. Sprich die Pins für ISP und die UART
> Schnittstelle des Esp sind freigelegt.

Ähem, gibt es irgendjemanden der den anderen Weg geht (fertig 
programmierte OTP's aufzulöten)?


> Ich habe einen Schaltplan und dazu ein Board gemacht und würde mich
> freuen wenn ihr da mal drüber schauen könnt.

Meine Empfehlung wäre 2 Netzklassen anzulegen (class befehl)
- Power  0.4 in  vias 0,8mm
- Signal 0.2 in  vias 0,6mm

und mit ch class die Leitungen im .sch zuzuordnen

Dann das board aufrippeln  ( ri * ;) und neu routen. Dann bekommst du 
wie von Zauberhand vernünftige Leiterbahnbreiten.

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.