Connecter ev3dev2 à Internet en WiFi

Pour pouvoir configurer ev3dev sur la brique EV3, mais aussi y télécharger et exécuter des programmes, celle-ci doit être connectée à l'ordinateur. La connexion filaire par un câble USB n'est pas très pratique, car le port USB, situé à coté des ports d'entrée A à D,  n'est pas forcément facilement accessible selon la complexité de la construction du robot.
La brique EV3 présente sur le coté un autre port USB sur lequel peut être connecté une clef WiFi. Cette dernière permet à la brique EV3de se connecter sans fil à l'ordinateur.
Le présent article explique comment établir une connexion sans fil entre la brique EV3 et l’ordinateur.

Configuration de la connexion WiFi sur la brique EV3

Pré-requis

  • La brique EV3 doit être démarrée sous ev3dev après avoir inséré la carte microSD dans la fente de la brique dédiée à cet usage.
  • Une clef Wifi doit être connectée sur le port USB sur le coté de la brique (ne pas confondre avec le port mini-USB utilisé habituellement pour connecter l'ordinateur à la brique situé en façade sous les ports A à D utilisé our connecter les moteurs).

Configure le Wifi

  • Choisir Wireless and Networks.
  • Choisir Wi-Fi.
  • Cocher la case Powered.
  • Choisir Start Scan. Après quelques instants, les connexions WiFi disponibles aux alentours.
  • Sous Networks, dérouler l'affichage du LCD jusqu'à trouver la connexion correspondant au routeur souhaité (la box). Choisir celui-ci (SFR_0C30 dans l'exemple).
  • Sous Please enter passphrase for XXXXXX (ou XXXXXX est le nom du routeur SFR_0C30 dans l'exemple), taper la clef WEP ou la clef WPA protégeant le routeur.
  • Cliquer le bouton [Accept].
Une nouvelle adresse IP est attribuée par le service DHCP du routeur à la clef Wifi. Cette adresse s'affiche en haut de l'écran LCD.

Ça ne marche pas !

La clef WiFi des routeurs est souvent très longue et contient alternativement des lettres, des chiffres et des caractères spéciaux. La saisie d'une telle clef à l'aide des boutons de la brique est fastidieuse. Et il est probable qu'un time-out se produise avant d'avoir terminé. Ce qui rend la connexion WiFi impossible à partir de la brique, sauf à simplifier la clef WPA du routeur, avec l'inconvénient de diminuer la protection de celui-ci et de devoir reconfigurer tous les autres appareil qui s'y connecte.

Configuration de la connexion WiFi en mode ligne de commande

La seule solution est de procéder en ligne de commande sur la brique EV3. Mais pour cela il faut déjà disposer d'une connexion entre l'ordinateur et la brique. Seulement, c'est justement pour établir une telle connexion que le WiFi est nécessaire. Cela revient à chercher le bâton de Moïse pour traverser la Manche à pieds secs en apprenant que celui-ci se trouve au British Museum de Londres.
Le plus simple est de reconnecter la brique EV3 à l'ordinateur à l'aide du câble USB. Cela permet de démarrer une session SSH à l'aide de Putty. L'adresse IP à indiquer à Putty est celle affichée en haut de l'écran LCD de la brique, une fois la connexion avec le câble USB est établie. L'identifiant est robot et le mot de passe maker.
La connexion WiFi se configure en ligne de commande dans la session SSH ouverte avec l'utilitaire Linux connmanctl.
login as: robot
Using keyboard-interactive authentication.
Password: maker
Linux ev3dev 4.14.117-ev3dev-2.3.4-ev3 #1 PREEMPT Thu May 9 15:13:01 CDT 2019 armv5tejl
             _____     _
   _____   _|___ /  __| | _____   __
  / _ \ \ / / |_ \ / _` |/ _ \ \ / /
 |  __/\ V / ___) | (_| |  __/\ V /
  \___| \_/ |____/ \__,_|\___| \_/

Debian stretch on LEGO MINDSTORMS EV3!
Last login: Sat Nov  9 00:21:49 2019 from 192.168.0.1

robot@ev3dev:~$ connmanctl
Error getting VPN connections: The name net.connman.vpn was not provided by any
connmanctl> enable wifi
Enabled wifi
connmanctl> scan wifi
Scan completed for wifi
connmanctl> services
*AO Wired                ethernet_b827ebbde13c_cable
    SFR_0C30             wifi_74da38f45aa1_5346525f30433330_managed_psk
    devolo-ebd           wifi_74da38f45aa1_6465766f6c6f2d656264_managed_psk
    devolo-69e           wifi_74da38f45aa1_6465766f6c6f2d363965_managed_psk
    SFR WiFi FON         wifi_74da38f45aa1_534652205769466920464f4e_managed_none
    SFR WiFi Mobile      wifi_74da38f45aa1_5346522057694669204d6f62696c65_managed_ieee8021x
    FreeWifi             wifi_74da38f45aa1_4672656557696669_managed_none
                         wifi_74da38f45aa1_hidden_managed_psk
    FreeWifi_secure      wifi_74da38f45aa1_46726565576966695f736563757265_managed_ieee8021x
connmanctl> agent on
Agent registered
connmanctl> connect wifi_74da38f45aa1_5346525f30433330_managed_psk
Agent RequestInput wifi_74da38f45aa1_5346525f30433330_managed_psk
  Passphrase = [ Type=psk, Requirement=mandatory ]
Passphrase? *************
Connected wifi_74da38f45aa1_5346525f30433330_managed_psk
connmanctl> quit

robot@ev3dev:~$

Quelques remarques :
  • La commande scan wifi peut prendre quelques secondes. Bien attendre le message Scan Completed for wifi avant de procéder à la suite.
  • Dans la liste affichée par la commande services la connexion active est signalée par *AO. Dans l'exemple, la connexion active est wired, c'est-à-dire la connexion filaire avec le câble USB.
  • Dans la liste affichée par la commande services, il faut repérer la connexion sur le routeur (SFR_0C30 dans l'exemple).
  • Derrière la commande connect il faut saisir le nom de la connexion commençant par wifi_ correspondant au routeur. La saisie étant fastidieuse, il est possible d'utiliser la touche TAB pour aider à la saisie à partir de quelques caractères tapés.
  • Derrière Passphrase?, il faut taper la clef WPA (ou la clef WEP) du routeur exactement.
  • Il faut taper la commande quit pour revenir au prompt Linux de la brique EV3.
Après avoir débranché le câble USB de la brique EV3, redémarrer celle-ci (Shutdown.../Reboot).
Une nouvelle adresse IP est attribuée par le service DHCP du routeur à la clef Wifi. Cette adresse s'affiche en haut de l'écran LCD.

Commentaires

Posts les plus consultés de ce blog

Connecter Visual Studio Code à un robot MindStorm EV3 avec ev3dev-browser

Installer les modules EV3DEV2 sur Python