Forum: Mikrocontroller und Digitale Elektronik HM-10 BLE benötigt durchgehend 8mA -> wie Strom sparen?


von asd (Gast)


Lesenswert?

Hallo,

ich habe hier zwei HM-10 Module. Mit denen schaffe ich es Daten zu 
übertragen, entweder im RS232-Transparent-Modus, oder indem ich den 
einen HM-10 die periphere Rolle zuweise und am Master per AT+PIO21 beim 
Peripheren HM-10 einen Pin schalte.
Nur ist es so dass der periphere HM-10 nach Aufbau einer Verbindung 
konstant 8mA Strom zieht. So habe ich mir Blutooth "low-energy" nicht 
vorgestellt.
Ein AT+SLEEP hilft nur solang noch keine Verbindung aufgebaut ist. Ein 
AT+ADVI9 spart auch keinen Strom (+ die Signalübertragung ist trotzdem 
mehr oder weniger instantan, von einem 1,2 Sekunden Zeitslot ist nichts 
zu bemerken).
Ein AT+PWRM0 hat auch keinen Unterschied bewirkt.

Wie spart man nun Energie? Ich will ca. 1x pro Sekunde (oder alle 10s) 
einen Zustand vom Slave abfragen bzw. einen Ausgang schalten. Schneller 
als 10s muss der Slave nicht reagieren, aber er muss 1Jahr aus einer 
Batterie laufen. 8mA sind damit nicht akzeptabel. Was kann ich tun?

Vielen Dank im voraus.

von Rainer U. (r-u)


Lesenswert?

asd schrieb:
> aber er muss 1Jahr aus einer
> Batterie laufen. 8mA sind damit nicht akzeptabel.

Mit einer Autobatterie - kein Problem..?

von Werner P. (Gast)


Lesenswert?

Es müssen beide in den Sleep Modus.

Mit "AT" beendest Du die Verbindung. Danach beide in den Sleep Modus. 
Möchtest Du etwas senden dann weckst Du das Modul auf, baust die 
Verbindung auf und danach legst du beide wieder schlafen.

Du kannst die Module auch so konfigurieren dass nach dem Beenden der 
Verbindung die Module automatisch in den Sleep Modus wechseln.

Ich habe hier HM-11 Module. Die verbrauchen im Sleep Modus ca. 0,4 mA.

Grüße

von asd (Gast)


Lesenswert?

Vielen Dank für den Hinweis.

Ich habe den HM-10 für den Peripheral Mode jetzt so weit dass er im 
Schlafmodus nur wenig Strom braucht, und vom zweiten HM10 im Central 
Mode trotzdem kontaktiert werden kann.
Ich kann die Verbindung auch beenden indem ich bei einem der beiden "AT" 
sende, jedoch baut sich die Verbindung nach einer Sekunde automatisch 
wieder auf. Ein "AT+IMME1" hilft da nur nach Power-Up, vor der ersten 
Verbindung.

2.Frage: Was ist eigentlich mit dem Modus von BLE, dass das Periphere 
Gerät sehr stromsparend alle paar Sekunden kurze Datenpakete an eine 
dauerhaft Empfangende Zentrale schicken kann? Die Zentrale ist wegen der 
dauerhaften Empfangsbereitschaft natürlich nicht so stromsparend.
Hat das HM-10 diesem Modus? So wie ich das bisher verstanden habe muss 
ich beim HM-10 immer wieder die Verbindung auf- und abbauen?

von Werner P. (Gast)


Lesenswert?

das mit dem automatischen Wiederverbinden hatte ich auch mal. Bin mir 
nicht sicher aber versuch mal:

AT+ERASE
AT+RESET

Ist die Zentrale auch ein HM Modul? Mein Modul ist immer empfangsbereit 
und verbraucht nur 0,4 mA im Sleep Modus.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hallo Fremder,

asd schrieb:

> 2.Frage: Was ist eigentlich mit dem Modus von BLE, dass das Periphere
> Gerät sehr stromsparend alle paar Sekunden kurze Datenpakete an eine
> dauerhaft Empfangende Zentrale schicken kann? Die Zentrale ist wegen der
> dauerhaften Empfangsbereitschaft natürlich nicht so stromsparend.
> Hat das HM-10 diesem Modus? So wie ich das bisher verstanden habe muss
> ich beim HM-10 immer wieder die Verbindung auf- und abbauen?

das ist mit BLE durchaus möglich, aber vielleicht mit Deinen Modulen 
nicht.

Der Ansatz mit dem einen Verbindungsaufbau pro Sekunde und der Latenz 
von 10ms ist schwierig: Damit innerhalb von 10ms eine Verbindung 
aufgebaut werden kann, muss das peripheral schon mit maximal 10ms 
Interval advertisen, damit das Central sich auf so ein Advertisment hin 
verbinden kann. Real wirst Du eher noch viel weniger nehmen müssen.

Wenn die Daten in das Advertisment Packet passen, dann würde ich die da 
mit rein tun. Dann bekäme Dein Central die Daten bereits beim Scannen 
und müsste erst keine Verbindung aufbauen.

Ansonsten guck mal, ob Du die Slave-Latency erhöhen kannst und damit die 
Leistungsaufnahme während einer Verbindung reduzieren kannst.

Hast Du mal den Hersteller dieser Module auf dieses Verhalten 
angesprochen?

mfg Torsten

von sdf (Gast)


Lesenswert?

asd schrieb:
> Ich habe den HM-10 für den Peripheral Mode jetzt so weit dass er im
> Schlafmodus nur wenig Strom braucht ...

Wie auch immer du das festgestellt hast - zeigt das Ding auch konkrete 
Zahlen an oder gibt es da nur eine rot/grün Anzeige für "viel"/"wenig"?

von asd (Gast)


Lesenswert?

> Wenn die Daten in das Advertisment Packet passen, dann würde ich die da
> mit rein tun. Dann bekäme Dein Central die Daten bereits beim Scannen
> und müsste erst keine Verbindung aufbauen.

Leider bekomme ich beim Scannen mit AT+DISC? nur die MAC Adresse, und 
sonst keine Informationen (nicht mal den Device-Namen, obwohl das im 
Datenblatt erklärt wurde. Krieg ich aber nicht aktiviert. Auf AT+FILT0 
reagiert der HM-10 nicht, Firmware Version 545).

> Ansonsten guck mal, ob Du die Slave-Latency erhöhen kannst und damit die
> Leistungsaufnahme während einer Verbindung reduzieren kannst.

Während einer Verbindung braucht das Modul konstant 8mA. Irgendwelche 
Parameter haben das nie verändert.

> Wie auch immer du das festgestellt hast - zeigt das Ding auch konkrete
> Zahlen an oder gibt es da nur eine rot/grün Anzeige für "viel"/"wenig"?

Während einer Verbindung braucht das Modul konstant 8mA.
Ohne Verbindung steht das Multimeter bei 0, mit gelegentlichen 
Ausschlägen bei ca. 0,3mA. Ich deute das als pulsförmige Stromaufnahme 
deren Mittelwert ich nicht genau bestimmen kann (auf jeden Fall: weniger 
als 8mA)

> Ist die Zentrale auch ein HM Modul? Mein Modul ist immer empfangsbereit
> und verbraucht nur 0,4 mA im Sleep Modus.

Ja, ist es. Aber da hab ich die Stromaufnahme nicht gemessen weil mich 
das nicht interessiert hat.

von Jim M. (turboj)


Lesenswert?

asd schrieb:
> Während einer Verbindung braucht das Modul konstant 8mA.
> Ohne Verbindung steht das Multimeter

Hui, ein BLE Modul mit Multimeter zu vermessen ist sehr optimistisch. 
Da nimmt man dann doch besser einen Oszi zur Hilfe.

Wenn es unbedingt ein Multimeter sein muss, schalte einen dicken Elko 
(>=1000µF, je mehr desto besser) parallel zur Versorgungsspannung zwecks 
Glättung des Stroms.

BT Module ziehen fiese Pulsströme die mit einem Multimeter i.d.R. nicht 
korrekt erfassbar sind.

von asd (Gast)


Lesenswert?

Für die Akten: Auf diese Weise kann man stromsparend ein Statuswort 
übermitteln:

Den HM-10 im Peripherie Modus kann man als iBeacon betreiben, dann in 
den Sleepmodus schalten.
Das Sendeintervall ist dann auf 1284ms fest gelegt.
Stromverbrauch irgendwas um die 0,5mA.
AT+MINO0x0123 : stellt das 16 Bit Wort "minor" auf Hex 0123
AT+MARJ0x4567 : stellt das 16 Bit Wort "major" auf Hex 4567
AT+IBEA1      : startet den I-beacon Modus
AT+SLEEP      : schaltet in den Schlaf-Modus (aufwachen durch senden 
einer langen Zeichenkette mit >80 Zeichen)


Die IBeacon-Daten kann man mit einem anderen HM-10 im "Central" Modus 
scannen, per:
AT+DISI?
Dieser Befehl stand nicht in der Anleitung die ich hatte.
Quelle:
https://stackoverflow.com/questions/40026094/using-hm-10-as-an-ibeacon-scanner-i-see-only-a-maximum-of-6-ibeacons

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.