Publié le 5 décembre 2013 - par

Contrôlez votre Raspberry Pi depuis un smartphone Android

raspberry_control_250Le père Noël étant passé un peu en avance, j’ai l’occasion de troquer un vieux téléphone sous Windows Mobile (ben oui nul n’est parfait…) contre un Galaxy S4 sous Android !

Que fait un RasPinaute qui a un smartphone Android ? Il essaye de le connecter sur son Raspberry Pi… C’est ce que j’ai fait et je vais, si vous le voulez bien, vous en conter l’histoire. Elle commence bien entendu par le choix d’une appli Android à installer sur le smartphone pour pouvoir communiquer avec le Raspberry Pi. et là …..

Les applications Androïd pour le Raspberry Pi

applis androidÇa va ? Vous comprenez mon air dubitatif ? Laquelle choisir ? La liste est longue et le choix cornélien !

L’heure du choix

Finalement j’ai opté pour le premier de la liste, ce sera la première application essayée mais certainement pas la dernière…. Les raisons de ce choix ? Il était prem’s, il avait 4 étoiles ce qui est très bien et la bouille du robot orné d’une framboise est sympa. L’appli en est à la version 0.2 c’est du béta et il faudra être indulgent…

raspberry_control_400Le principe de Raspberry Pi Control

Raspberry Control se compose de deux parties :

Installer l’application Android

Pour l’installation de l’appli Android, rien de bien compliqué, connectez vous avec votre compte, cliquez sur le bouton Installer sur la page de l’application et… c’est tout. L’appli est téléchargée sur votre téléphone et s’installe. Elle est pas belle la vie ?

raspi_control_01

Installer le logiciel sur le Raspberry Pi

Côté Raspberry Pi ce n’est pas tout à fait aussi simple. Rendez vous sur le site de Lukasz Skalski. Il est en anglais et en polonais…

Raspberry Control

Raspberry Control

Téléchargez rpc_installer-2013-03-24.tar.gz (643.54 kB) sur le Raspberry Pi (ou téléchargez le sur un PC et transférez le sur le Raspberry Pi) :

pi@raspberrypi ~ $ wget http://lukasz-skalski.com/index.php/component/option,com_phocadownload/Itemid,90/download,36/id,1/view,category/
Résolution de lukasz-skalski.com (lukasz-skalski.com)... 78.46.180.38
Connexion vers lukasz-skalski.com (lukasz-skalski.com)|78.46.180.38|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 658980 (644K) [application/x-tar]
Sauvegarde en : «index.html»

100%[======================================>] 658'980      232K/s   ds 2.8s

2013-12-04 18:57:56 (232 KB/s) - «index.html» sauvegardé [658980/658980]

Il y a moins de 700Ko à télécharger, ce n’est pas très long si vous avez un débit correct.

Comme j’avais choisi de télécharger directement sur le Raspberry Pi, j’ai récupéré le fichier sous le nom de la page html. Je l’ai donc renommé rpc_installer.tar.gz puis décompacté avec la commande tar. Un dossier rpc_installer est créé. Il contient la partie logicielle à installer côté Raspberry Pi.

pi@raspberrypi ~ $ mv index.html rpc_installer.tar.gz
pi@raspberrypi ~ $ tar xvzf rpc_installer.tar.gz
rpc_installer/
rpc_installer/hardware.conf
rpc_installer/rpc_gpio
rpc_installer/shellinabox-2.14.tar.gz
rpc_installer/rpc_lirc
rpc_installer/rpc.conf
rpc_installer/rpc_utils
rpc_installer/rpc_export
rpc_installer/rpc_shellinaboxd
rpc_installer/quick2wire-gpio-admin.tar.gz
rpc_installer/rpc_onewire
rpc_installer/rpc_process
pi@raspberrypi ~ $ ls
Desktop  ocr_pi.png  python_games  <strong>rpc_installer</strong>  rpc_installer.tar.gz
pi@raspberrypi ~ $

Nous allons pouvoir passer à l’installation de tous ces logiciels. Changez de dossier pour aller travailler dans rpc_installer, surtout restez bien connecté en tant qu’utilisateur pi. N’utilisez ni sudo ni root !

pi@raspberrypi ~ $ cd rpc_installer
pi@raspberrypi ~/rpc_installer $ ./rpc_utils --install

Installation for user: pi

Updating system... (it takes several minutes)

Installation for user: pi

Updating system... (it takes several minutes)[OK]
Installing additional software...
Installing quick2wire-gpio-admin... (it takes several minutes) [OK]
Installing shellinaboxd... (it takes several minutes) [OK]
Installing rpc_export... [OK]
Installing rpc_gpio... [OK]
Installing rpc_onewire... [OK]
Installing rpc_process... [OK]
Installing rpc_utils... [OK]
Installing rpc_lirc... [OK]
Installing configuration files... [OK]
Installing rpc_shellinaboxd script... [OK]
Editing /etc/modules file... [OK]
Preparing LIRC... [OK]
PLEASE CONFIGURE LIRC (lircd.conf and rpc.conf files) BEFORE USE ..TV Control.. OPTIONS
Removing old installer... [OK]

Reboot now (strongly recommended)? [y/n] y

Broadcast message from root@raspberrypi (pts/0) (Wed Dec  4 19:14:08 2013):
The system is going down for reboot NOW!

Au passage notez que LIRC et shellinabox sont installés également.

  • LIRC (Linux Remote Commande est une télécommande infrarouge qui tourne sous Linux et reconnait une quantité de télécommandes)
  • shellinabox est un émulateur de terminal via navigateur web basé sur Ajax

Il faut ensuite configurer le fichier rpc.conf situé dans /etc/raspberry_control. Vous pouvez décider des ports GPIO qui seront affichés sur votre écran de smartphone et les nommer. Vient ensuite la configuration de LIRC dont je ne parlerai pas ici.

pi@raspberrypi /etc/raspberry_control $ cat rpc.conf
;#title           :/etc/rpc.conf
;#description     :"Raspberry Control" - configuration file
;#author          :Lukasz Skalski
;#date            :2013-03-17
;#version         :0.2
;#=========================================================

;GPIO EXPORT
;'yes' - export this GPIO to user space
;'no'  - don't export (this GPIO will be unavailable to control on Android Device)

[GPIO_EXPORT]
GPIO_7='no'     ;use GPIO_7 as LIRC INPUT
GPIO_8='yes'
GPIO_9='yes'
GPIO_10='yes'
GPIO_11='yes'
GPIO_14='yes'
GPIO_15='yes'
GPIO_17='yes'
GPIO_18='yes'
GPIO_22='yes'
GPIO_23='yes'
GPIO_24='yes'
GPIO_25='yes'

;GPIO NAME
;Assign names to GPIO's
;

[GPIO_NAME]
GPIO_7='GPIO 7'
GPIO_8='GPIO 8'
GPIO_9='GPIO 9'
GPIO_10='GPIO 10'
GPIO_11='GPIO 11'
GPIO_14='GPIO 14'
GPIO_15='GPIO 15'
GPIO_17='GPIO 17'
GPIO_18='GPIO 18'
GPIO_22='GPIO 22'
GPIO_23='GPIO 23'
GPIO_24='GPIO 24'
GPIO_25='GPIO 25'

;LIRC DEVICE 1
;NAME - insert device name from /etc/lirc/lircd.conf file
;COMMAND - insert commmand from /etc/lirc/lircd.conf file
.../...

Pour utiliser LIRC (si vous le souhaitez), il faut câbler une LED infrarouge sur le port GPIO7 pour commander TV et autres appareils :

raspberry_control_3Et ça fonctionne tout ça ?

Ma foi… Pas trop mal ! Voici quelques écrans qui le prouvent :

Screenshot_2013-12-04-18-31-481 – L’écran d’accueil sympa de l’appli Androïd Screenshot_2013-12-04-19-21-492 – Saisissez l’adresse du Raspberry Pi
Screenshot_2013-12-04-19-23-423 – puis validez en cliquant sur Connect Screenshot_2013-12-04-19-24-064 – Le menu vous permet de choisir ce que vous voulez faire
Screenshot_2013-12-04-19-24-155 – affichage du GPIO. Tous les ports sont en entrée Screenshot_2013-12-04-19-24-286 – Le GPIO8 est en sortie et il est activé
Screenshot_2013-12-04-19-25-047 – Les processus qui tournent sur le Raspberry Pi Screenshot_2013-12-04-19-25-238 – La télécommande
Screenshot_2013-12-04-19-25-459 – Aide pour la connexion d’un capteur 1-wire. L’appli affiche les valeurs envoyées par les capteurs 18B20 (température) Screenshot_2013-12-04-19-25-5210 – Un rappel du brochage du GPIO
Screenshot_2013-12-04-19-26-0411 – Écran de configuration du Raspberry Pi Screenshot_2013-12-04-19-26-2012 – Écran d’aide

Screenshot_2013-12-04-19-32-36C’est l’option Remote qui m’a posé problème : Elle est censée permettre de dialoguer avec le Raspberry Pi en mode console. C’est shellinabox qui se charge de l’opération. Malheureusement, c’est l’adresse par défaut qui est restée sur la page, donc je n’ai pas pu tester cette fonction sur le smartphone.

shellinaboxPar contre comme le montre l’écran ci-dessus, un navigateur de PC se connecte parfaitement au Raspberry Pi sur le port 4200 de shellinabox

Est-ce un bug, une erreur de ma part ? Je n’ai pas de réponse pour l’instant. Plusieurs essais depuis le smartphone ont abouti au même résultat.

Vidéo de démonstration

Conclusion

Pour un premier essai d’application Android c’est plutôt satisfaisant. Le problème d’accès en mode terminal est peut-être dû à une mauvaise manipulation ou à un bug. J’ai laissé un commentaire sur le site de l’auteur. Il y aura peu-être une suite…

Quoiqu’il en soit c’est une appli à tester, avec une interface très agréable et facile d’utilisation.

Si vous avez un avis ou si une autre application a retenu vos suffrages, les commentaires ci-dessous vous tendent les bras !

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. .

45 réflexions au sujet de « Contrôlez votre Raspberry Pi depuis un smartphone Android »

  1. viskor

    Pour ma part j’ai opté pour raspi-check, il n’y a rien besoin d’installer.

    Pour le SSH, j’ai pris Juice SSH, c’est un bon terminal 🙂

    et VNC viewer pour avoir acces a mon VNC 🙂

    Répondre
    1. admin Auteur de l’article

      Bonjour Viskor
      Merci pour cette info. Raspi-Check fait partie des prochains tests… Pour ma part j’utilise putty et VNCviewer avec tightvnc sur le RasPi, ou krdc sur une machine Debian. En fait chacun adopte la solution qui lui convient le mieux (habitude, ergonomie, facilité…)
      Mais je trouve que les efforts des développeurs de ces applis méritent d’être salués
      Cordialement
      François

      Répondre
  2. Ping : Contrôlez votre Raspberry Pi depuis un sm...

  3. Ping : Contrôlez votre Raspberry Pi depuis un sm...

  4. chipsetseo

    j’ai essayé de l’installer mais quand je lance la commande ./rpc_utils –install il me dit aucun fichier ou doosier de ce type alors que je suis sur qu’il est present

    Répondre
  5. Guillaume

    Bonjour,

    lorsque je lance la commande ./rpc_utils –install le pi m’indique au bout de quelques minutes [error]. cela vous est il arrivé ? une idée sinon ?

    merci beaucoup

    Guillaume

    Répondre
    1. admin Auteur de l’article

      Bonjour Guillaume
      Non pas de souci de mon côté lors de l’installation. Je suis parti d’une Raspbian « propre » tout juste installée sur la carte SD…
      Et pas d’idée sur ce qui peut se passer, jetez un coup d’œil aux logs.
      Bon courage
      Cordialement
      François

      Répondre
      1. Domi

        Bonjour,

        Je sais que ce message date un peu, mais ayant eu le même problème, et n’ayant pas trouvé réponse sur le Net, je poste la réponse à mon cas qui permettra peut-être un jour d’aider quelqu’un qui fera cette recherche.

        Pour mon cas, je passe par un proxy pour me connecter à Internet.

        Il faut donc créer un fichier /etc/apt/apt.conf et y inclure :
        Acquire::http::Proxy « http://utilisateur:motdepasse@example.com:port »;

        Relancer l’install.

        J’ai tenté au début avec un « export http_proxy=… » mais cela ne fonctionne pas.

        Répondre
  6. Ping : Contrôlez votre Raspberry Pi depuis un sm...

  7. Remo

    Bonjour, je suis novice et je me suis lancé il y à peu dans la conception d’un système nomade pour surfer de manière ‘sécurisée’ grâce au RasPi connecté à un smartphone (pas encore sûr de quelle façon ; SSH, VNC,..).
    Ma question est donc : serait il possible d’afficher le bureau du RasPi sur un smartphone via un câble micro hdmi (mon téléphone étant compatible)?

    Répondre
    1. admin Auteur de l’article

      Bonjour Remo
      pour autant que je sache ça marche dans l’autre sens ! le smartphone sort du HDMI qu’on peut envoyer sur une télé mais ce n’est pas un moniteur HDMI…
      cordialement
      François

      Répondre
  8. Gwénolé de Fréminville

    Bonjour et merci pour ce tuto fort utile !
    J’ai juste un petit souci : le password du login pi ne m’est pas connu 🙁
    Comment le trouver ?
    Par le galaxy S4 c’est bon mais avec un navigateur il faut le rentrer et je suis coincé !
    Cordialement.

    Répondre
  9. Ack

    Merci pour le tuto,
    Le remote control par shell ne fonctionnait pas au début. Puis en bidouillant il marche très bien. Je ne sais pas si c’est lié mais j’ai configuré toutes les infos (hostname, username et password) dans l’onglet settings de l’appli.

    Répondre
  10. Manel Fernandez

    Bon soir!
    Je suis catalan de Barcelona, et je pose ici ma question, car je m’expresse mieux en francais que en polonais, et j’ai vu que l’auteur du logiciel ne respond pas aux questions dans sa page.

    Le bug de l’option Remote est dans l’app d’android ou dans le logiciel de la Raspberry, qu’est-ce que vous pensez?

    J’ai aussi un autre problème, et en voyant ces ècrans je pense qu’il s’agît d’un autre bug. Le bouton du GPIO 18 dissaparait mysterieusement comme option si j’edite le conf et je ne peux pas le recuperer.
    C’est un probleme, car j’ai une plaque a relais (Ciseco Relay Slice) dont un des relais est connecté au GPIO 18.

    Répondre
    1. admin Auteur de l’article

      Bonjour Manel
      Je pense qu’il s’agit d’un bug de l’appli Androïd car je me connecte sans problème depuis un navigateur sur un PC au même RasPi en utilisant Shell in a Box.
      Pour le GPIO 18 je n’ai pas constaté ce défaut.
      J’essayerai d’autres applis quand j’aurai un moment.
      Cordialement
      François

      Répondre
  11. gege

    Salut.
    Etant debutant j’ai suivi votre tuto et je vous en remercie.
    Dans un 1er temps je souhaite piloter mon gpio pour commander mes relais
    le soucis c est que l’appli Android me dit « you don’t have any gpio exported to user space »
    j’ai fait cat rpc_conf et evidemment il est vierge et mes gpio sont a « yes ».
    Que dois je faire pour y avoir acces?
    Merci encore

    Répondre
  12. Tim

    Bonjour,

    Avant de me lancer dans la création d’une nouvelle application pour Android et Raspberry Pi, j’avais lu votre article avec beaucoup d’intérêt. Finalement, j’ai opté pour coder ma propre petite application permettant de lire des vidéos stockés sur une clé USB connectée à un Raspberry Pi. Mon téléphone Android me sert ainsi de télécommande pour lire mes vidéos. Je n’ai pour le moment aucun retour sur mon travail que je sais être de loin moins avancé que ce qui se fait déjà sur le market. Cependant, je pense que mon application a le mérite d’être simple justement. 🙂
    Seriez-vous intéressé d’y jeter un coup d’oeil ? Elle est gratuite. Le blog (en Anglais) est disponible à cette adresse : http://raspberryvideoscontrol.blogspot.fr/

    J’adorerai avoir un retour de votre part sur le sujet. Merci et bonne continuation.

    Tim

    Répondre
  13. Tom's

    Bonjour,
    J’ai beaucoup cherché sur internet mais il m’est impossible de trouver une réponse : est-il possible de se servir d’un smartphone en tant qu’écran pour un raspi via ssh ou d’une autre manière svp ? Merci d’avance pour votre réponse !

    Répondre
  14. Tom's

    Bonjour,
    Merci beaucoup de votre réponse (et de la rapidité !), j’ai enfin trouvé un moyen efficace aujourd’hui même, avec une appli nommée VNC viewer, le seul « problème » réside dans le fait qu’on ne puisse connecter le smartphone qu’après s’être loggé et avoir démarré la partie serveur sur le raspberry, choses qu’il faut donc faire sans écran, mais ce n’est pas un problème si l’on fait attention aux fautes de frappes. En tout cas c’est très pratique, merci encore et bonne continuation !
    Cordialement,
    Thomas

    Répondre
  15. John

    Bonjour,

    Et merci pour ce tuto bien sympathique. J’a i uand même deux questions :

    -Savez vous si il est possible de commander le raspberry depuis internet et non en wifi (possibilité de lancé la lumière de son garage par exemple avant d’arrivé chez soit).
    -Savez-vous dans le même genre si il y est possible à travers le serveur web (coder en python) d’envoyer un sms pré-défini pour allumer une lumière par exemple ?

    Merci d’avance.

    Répondre
  16. Mathieu

    Bonjour,

    Tout d’abord merci pour cet article. Cependant j’ai une petite question, est-il possible avec l’application Android d’ordonner au Raspberry d’exécuter un programme (de type Python par exemple) ?
    Car je souhaiterais par exemple lancer un programme depuis mon Android pour faire tourner un petit moteur.

    Merci d’avance pour votre réponse.

    Répondre
      1. Mathieu

        Merci pour votre réponse.
        En solution temporaire j’ai créé une petite page Web permettant de réaliser mes besoins. Or sachant que je souhaite prendre le contrôle à distance d’un petit robot sur 4 roues, les mouvements ne sont du coup pas très fluide car la page Web se recharge à chaque action de ma part..

        Je vais creuser ça !

        Répondre
  17. Nico

    Bonjour,

    Très bon article, malheureusement l’application n’est plus disponible sur le google play. Savez vous pourquoi l’application a été retiré? Conseillez vous une autre appli similaire?

    Répondre
  18. Ping : Raspberry Pi - Trucs | Pearltrees

  19. Ping : Raspberry Pi - Trucs | Pearltrees

  20. Ping : Hackable Magazine N°8 – Le plein de Rasberry Pi, SVP… | Framboise 314, le Raspberry Pi à la sauce française….

  21. Ping : RPi - jcb2 | Pearltrees

  22. Chevalier

    bonjour
    je n’arrive pas à trouver Raspberry Control sur Play Store !!
    je cherche à controler la température de ma maison secondaire
    il n’y a pas internet et je n’envisage pas d’installer une box
    avez vous une idée?
    cordialement

    Répondre
  23. Chevalier

    Bonjour
    j’ai installé rpc sur mon raspberry
    quand je démarre ssh j’ai ce message d’erreur
    login as: pi
    pi@192.168.0.44‘s password:

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    Last login: Mon Jan 4 10:17:48 2016
    rpc_export: eval: ligne 46: erreur de syntaxe près du symbole inattendu « ) »
    rpc_export: eval: ligne 46: `[GPIO_NAME] )’
    rpc_export: ligne 77: cfg.section.GPIO_EXPORT : commande introuvable
    pi@raspberrypi:~ $

    comment faire pour désinstaller proprement rpc ?

    cordialement

    Répondre
  24. Ping : Raspberry PI | Pearltrees

  25. AlainM

    Bonsoir,
    Visiblement l’application n’existe plus et donc je vais devoir désinstaller rpc
    Peut-être faudrait-il supprimer toutes ces explications!
    Cordialement

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.