Yllesia Posté(e) 30 juillet 2017 Share Posté(e) 30 juillet 2017 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 : ) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ultrix Posté(e) 31 juillet 2017 Share Posté(e) 31 juillet 2017 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yllesia Posté(e) 31 juillet 2017 Auteur Share Posté(e) 31 juillet 2017 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? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ultrix Posté(e) 31 juillet 2017 Share Posté(e) 31 juillet 2017 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 : 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 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 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 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yllesia Posté(e) 1 août 2017 Auteur Share Posté(e) 1 août 2017 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ultrix Posté(e) 1 août 2017 Share Posté(e) 1 août 2017 Excuse-moi, je me suis planté. Je croyais que l'Arduino était un truc plus ou moins comme un Raspberry Pi, mais ce n'est pas le cas. Il n'y a pas vraiment d'O/S à bord c'est ça ? Dans ce cas, je ne vois plus du tout... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yllesia Posté(e) 1 août 2017 Auteur Share Posté(e) 1 août 2017 Non il n'y a effectivement pas d'OS a bord de l’Arduino. Peut être qu'en passant par la communication série ou I2C de l’Arduino il serait possible de traduire une commande afin de l'exécuter ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ultrix Posté(e) 1 août 2017 Share Posté(e) 1 août 2017 La, franchement je n'en sais rien. Ca me dépasse. Je n'ai aucune idée de la façon dont on code pour ce truc-là Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yllesia Posté(e) 4 août 2017 Auteur Share Posté(e) 4 août 2017 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? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ultrix Posté(e) 4 août 2017 Share Posté(e) 4 août 2017 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.