Handy Laden und mit Mikrocontroller gleichzeitig Akkustand abfragen?

Gast #4435841
Lesenswert?
• ▲
▼
Hallo ich bin absoluter neuling und entschuldige mich schonmal für dumme 
fragen.

Ich möchte während das Handy geladen wird per Mikrocontroller über die 
USB Verbindung mit dem Handy abfragen wie viel Akku das Handy gerade 
hat, während es lädt. Wenn das Handy mehr als 50% Akku hat soll eine Led 
Lampe leuchten.

Welcher Controller ist notwendig um dies zu tun, und wie programmiere 
ich das?
Ganz dumm gefragt, wie geht das?
#4435857
Lesenswert?
• ▲
▼
Reihenfolge der Aufgaben:
1. Finde heraus, welches Handy du überhaupt hast
2. Lerne eine Programmiersprache für Mikrocontroller (z.B. C)
3. Suche dir einen Mikrocontroller aus, der einen USB Host hat
4. Lerne diesen zu programmieren
5. Arbeite dich in USB ein
6. Lerne eine Programmiersprache, um eine Applikation für dein Handy zu 
entwickeln
7. Programmiere eine Applikation für dein Handy, die den Akkustand 
abfragt, und per USB mit deinem Mikrocontroller kommuniziert
8. Ich helfe dir dann in 2 Jahren, wenn es darum geht, die LED an den 
Mikrocontroller anzuschließen.
#4435866
Lesenswert?
• ▲
▼
Entweder Handy-firmware reverse-engineeren oder eigene Software auf das 
handy bringen, um den Ladezustand überhaupt per usb abfragbar zu machen. 
(akkustand dürfte in /proc  oder /sys irgendwo stehen)
Dann einen Controller mit Usb Host nehmen und abfragen (empfehle der 
einfachkeit halber ein Raspberry pi oder ähnliches wo schon ein linux 
drauf läuft.
Gast #4435913
Lesenswert?
• ▲
▼
Heißt das, ich brauche eine App auf dem Handy um den Akkustand 
herauszufinden?
Geht das nicht, wenn ich nur den Mikrocontroller mit usb hab und dass er 
das durch die usb verbindung rausbekommt? Hab irgendwo was gelesen dass 
man USB Theathering oder sowas aktivieren muss beim handy
(Firma: matzetronics) #4435979
Lesenswert?
• ▲
▼
Markus schrieb:
> Hab irgendwo was gelesen dass
> man USB Theathering oder sowas aktivieren muss beim handy

Warum sollte ein Handy jemals über USB den Ladezustandes seines Akku 
rausrücken? Und mit welchem USB Profil sollte das wohl gehen? Nur fürs 
Handy selbst ist sein Ladezustand wichtig.

Nein, das Telefon erkennt nur, was für eine Sorte USB Host an der 
anderen Seite ist und schlägt dann vor, nur zu laden, sich als 
Massenspeicher anzubinden oder, oder...
#4436002
Lesenswert?
• ▲
▼
Markus schrieb:
> Ich möchte während das Handy geladen wird per Mikrocontroller über die
> USB Verbindung mit dem Handy abfragen wie viel Akku das Handy gerade
> hat, während es lädt. Wenn das Handy mehr als 50% Akku hat soll eine Led
> Lampe leuchten.

Wenn Du währen des Ladens (USB-) Daten übertragen willst dauert das 
Laden deutlich länger, denn das Mobiltelefon darf dann nur noch 500 mA 
Stom aufnehmen.

S. R. schrieb:
> Oder per Bluetooth.

Das dürfte die bessere Lösung sein. Eine App auf dem Telefon wird 
ohnehin benötigt.
(Firma: matzetronics) #4436635
Lesenswert?
• ▲
▼
S. R. schrieb:
> Dazu brauchst du mindestens eine App auf dem
> betreffenden Gerät, welche den Ladezustand auf der USB-Schnittstelle
> erzählt.

Und das ist ja nur die eine Hälfte. Auf der anderen Seite muss auch noch 
ein USB Host hängen, der sowas auswerten kann. Ein HID Devicetreiber 
weiss davon nichts und alle anderen Treiber muss man sich selber 
schreiben. Nicht mal USB Funkmäuse geben ihren Batteriezustand preis und 
Bluetooth Mäuse auch nicht.
Gast #4436715
Lesenswert?
• ▲
▼
Bei Android Smartphones kann man den Batteriestatus über die USB 
Schnittstelle abfragen, wenn die "Entwickleroptionen" und darin das 
"Debugging über USB" aktiviert sind.

Einfach das Android SDK auf einen PC installieren, konfigurieren und 
folgenden Befehl ausführen:

./adb shell cat /sys/class/power_supply/battery/batt_attr_text

Nun musst du "nur" noch die Funktionen von adb mit einem Mikrocontroller 
nachbilden. Ich würde dafür aber lieber einen mini PC verwenden - ist 
ganz bestimmt viel viel einfacher.
Moderator Persönliche Seite #4436742
Lesenswert?
• ▲
▼
S. R. schrieb:
> Dazu brauchst du mindestens eine App auf dem
> betreffenden Gerät, welche den Ladezustand auf der USB-Schnittstelle
> erzählt.
>
> Oder per Bluetooth.

Kopple ich mein Android-Handy per Bluetooth mit der Freisprechanlage 
meines Autos, zeigt dieses auf dem Radio-Display neben den 
Netzwerkbalken auch den Batterieladezustand des Handys an.

 - Ohne spezielle App
 - Ohne Kabelverbindung

Es muss also über Bluetooth ziemlich einfach gehen.
Gast #4436784
Lesenswert?
• ▲
▼
Stefan U. schrieb:
> Bei Android Smartphones kann man den Batteriestatus über die USB
> Schnittstelle abfragen, wenn die "Entwickleroptionen" und darin das
> "Debugging über USB" aktiviert sind.
>
> Einfach das Android SDK auf einen PC installieren, konfigurieren und
> folgenden Befehl ausführen:
>
> ./adb shell cat /sys/class/power_supply/battery/batt_attr_text
>
> Nun musst du "nur" noch die Funktionen von adb mit einem Mikrocontroller
> nachbilden. Ich würde dafür aber lieber einen mini PC verwenden - ist
> ganz bestimmt viel viel einfacher.

Das hört sich doch nach ner guten Lösung an. Aber was meinst du mit Mini 
PC? Ich will ja dass der chip diesen batteriestatus verwendet um eine 
Lampe an bzw aus zuschalten.
Moderator Persönliche Seite #4436826
Lesenswert?
• ▲
▼
Frank M. schrieb:
> Kopple ich mein Android-Handy per Bluetooth mit der Freisprechanlage
> meines Autos, zeigt dieses auf dem Radio-Display neben den
> Netzwerkbalken auch den Batterieladezustand des Handys an.

Ich habe mal ein wenig recherchiert. Das Geheimnis, wie man einem 
Mobiltelefon über Bluetooth den Akkuladezustand entlockt, ist in der 
sogenannten "Hands free profile specification", welche die Kommunikation 
mit einer Freisprechanlage beschreibt, dokumentiert:

  https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=238193&_ga=1.95975068.1635866346.1453465510

Mit dem Kommando AT+CMER kann man den Ladezustand auslesen. Die Antwort 
sieht folgendermaßen aus:

     +CIEV: <Battery level Ind>,<Value>

Siehe Kapitel 4.7 in obiger Dokumentation.

Also:

  - Bluetooth-Adapter an µC
  - Bluetooth Verbindung herstellen mit dem Mobiltelefon
  - Ladezustand abfragen
  - Wenn Schwellwert erreicht, LED an.

In das "Hands free profile" muss man sich natürlich erstmal reinfuchsen. 
Die Dokumentation (siehe obigen Link) scheint aber ausführlich genug 
dafür zu sein.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.