Aller au contenu

Récupérer les informations de la batterie par le port micro USB


Recommended Posts

Bonjour à tous, j'ai pour projet de réaliser un dock de chargement de téléphone avec un alumage LED en fonction du poucentage de charge de la batterie. N'ayant pas reussi à faire la mesure du pourcentage de charge avec de l'électronique sur le câble de chargement je me demandais si il était possible de créer une tâche de fond pour récupérer les informations de la batterie (pourcentage de charge, temps de charge restant, température, voltage, amperage) et de les transmettres via le cable micro usb à une arduino. 

Le top serait que le programme sur l'arduino envoie un signal pour démarrer la tâche de fond lorsque le téléphone est branché dessus. 

Je ne pense pas que récupérer et envoyer ces informations soit possible sans appli codé sur le téléphone mais je me trompe peut être.

Je precise tout de même que je n'ai encore jamais programmé d'applications Android.

 

Merci d'avance de vos réponses à bientôt  : )

Lien vers le commentaire
Partager sur d’autres sites

Avec ce qu'il faut d'installé dans le Linux de ton Arduino pour qu'ADB fonctionne, et si le smartphone est configuré avec le debug USB activé, tu peux récupérer l'info sans programmer une appli par des commandes adb shell, du genre :

adb shell cat /sys/class/power_supply/battery/status

Voir tout ce qu'il y a dans /sys/class/power_supply/battery, il y a pas mal d'infos récupérables

De même, la commande adb shell am start ... permet de lancer une appli : https://falsinsoft.blogspot.com/2015/05/launch-app-from-android-shell-terminal.html

Lien vers le commentaire
Partager sur d’autres sites

Jai réussi à obtenir quelques informations sur la batterie depuis le terminal de mon pc et ADB  : 

Adb shell dumpsys battery 

Current battery Service state  : 

Ac powered  : false

USB powered  : true

Status : 2

Health : 2

Present  : true

Level : 54

Scale  : 100

Voltage  : 3919

Temperature : 237

Technology : Li-ion

 

Sais tu comment lancer cette fonction depuis une arduino  ? Faut-il une arduino speciale ou une nano fait laffaire ? 

Je me demandais aussi si le téléphone prenais en compte la quick charge pendant que je récupère les données sur l'Arduino?

Lien vers le commentaire
Partager sur d’autres sites

Si ton Arduino tourne une variante de Linux tu dois pouvoir installer ADB dessus comme sur un Linux desktop ordinaire.

Ah... à condition que les binaires Linux ARM d'ADB existent... ça je ne l'ai pas vérifié.

A priori oui : https://github.com/bonnyfone/adb-arm ou tu dois au moins pouvoir le recompiler.

Sur un Linux desktop, il y a aussi un peu de configuration à faire pour que le device USB ADB soit détecté.

Ca doit tourner autour de ça, à adapter pour la distribution qui tourne sur ton Arduino :

 

  1. Create an empty file in the /etc/udev/rules.d/ directory with the following name:
    • If you’re using the Ubuntu version Gusty/Hardy/Dapper, create the file with the name 50-android.rules. Execute the following command to do so:
      sudo gedit /etc/udev/rules.d/50-android.rules
    • If you’re using the Ubuntu version Karmic Koala/Lucid Lynx/Maverick Meerkat, create the file with the name 70-android.rules. Execute the following command to do so:
      sudo gedit /etc/udev/rules.d/70-android.rules
  2. Type the following content in the editor and save it.
    • For Gusty/Hardy: SUBSYSTEM==”usb”, SYSFS{idVendor}==”USB-VENDOR-ID”, MODE=”0666″
    • For Dapper: SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”USB-VENDOR-ID”, MODE=”0666″
    • For Karmic Koala: SUBSYSTEM==”usb”, SYSFS{idVendor}==”USB-VENDOR-ID”, MODE=”0666″
    • For Lucid Lynx: SUBSYSTEM==”usb”, SYSFS{idVendor}==”USB-VENDOR-ID”, MODE=”0666″
    • For Maverick Meerkat: SUBSYSTEM==”usb”, ATTR{idVendor}==”USB-VENDOR-ID”, MODE=”0666″

    Change the USB-VENDOR-ID string with the USB vendor ID of your device. You can get it from the table below:

    Manufacturer USB Vendor ID
    Acer 0502
    Dell 413c
    Foxconn 0489
    Garmin-Asus 091E
    HTC (Older Phones) 0bb4
    HTC (Newer phones) 18d1
    Huawei 12d1
    Kyocera 0482
    LG 1004
    Motorola 22b8
    Nexus One/S 18d1
    Nvidia 0955
    Pantech 10A9
    Samsung 04e8
    Sharp 04dd
    Sony Ericsson 0fce
    ZTE 19D2
  3. Now you have to append read permissions to the created file for all the profiles in the PC. Use one of the following command to do this:
    sudo chmod a+rx /etc/udev/rules.d/50-android.rules

    or

    sudo chmod a+rx /etc/udev/rules.d/70-android.rules
  4. Reboot your PC for the changes to take place.

 

Pour ce qui est du quick charge, je ne vois pas pourquoi ADB interférerait avec ça.

Lien vers le commentaire
Partager sur d’autres sites

Je ne vois pas du tout comment faire tourner une variante de linux sur une Arduino. Le micro processeur de l’Arduino n’exécute pas simplement un code rentré dans sa mémoire ?

 

Pour ce qui est du quick charge, je ne sais pas si quick charge nécessite simplement les fils + et - du câble usb ou si il a besoin des fils data aussi. Je suppose que les commande exécutées par ADB sont lancées et transmises uniquement sur les fils data. Si c'est le cas je pourrais alors charger le téléphone en quick charge par les fils + et - et récupérer les données sur la batterie via ADB et les fils data sur l’Arduino.

 

Lien vers le commentaire
Partager sur d’autres sites

Bon toujours aucune solution pour mon problème, j'ai essayé pas mal de choses mais ça ne donne rien de vraiment exploitable...

Penses-tu que par le wifi ou par Bluetooth je pourrais récupérer les données de la batterie?

Lien vers le commentaire
Partager sur d’autres sites

Ca me parait compliqué sans mettre en place un protocole client-serveur et donc développer une appli qui tournerait en permance sur le smartphone (ou seulement quand on le branche en recharge ? il doit être possible pour une appli de se déclencher là-dessus)

 

Ca dépasse largement mes compétences de programmation sous Android.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...