Quantcast
Viewing all articles
Browse latest Browse all 180
↧

Prendre la main Ă  distance sur le Raspberry Pi 3 avec VNC sur une tablette

Image may be NSFW.
Clik here to view.
ap_pi3_250px
Pourquoi illustrer cet article avec la lune et un appareil photo me direz vous ? A l’origine c’est une question de David, astrophotographe qui souhaite piloter depuis une tablette le Raspberry Pi en charge de commander son rĂ©flex 

En fait ça pourra servir Ă  bien d’autres applications d’oĂč la rĂ©daction de cet article qui explique comment transformer votre framboise en point d’accĂšs WiFi et vous y connecter Ă  distance depuis une tablette, un smartphone


Pour mettre en place le tout je me suis inspirĂ© d’un article de Phil MARTIN que je vous conseille si vous lisez l’anglais.

Matériel et logiciels utilisés :

  • Raspberry Pi 3
  • Raspbian PIXEL edition 20160923 mise Ă  jour
  • hostapd
  • dnsmasq
Image may be NSFW.
Clik here to view.
NIVEAU_avancé

Cliquez pour avoir une définition de ces niveaux

Prendre la main en WiFi sur le Raspberry Pi 3

Le cahier des charges

David utilise un tĂ©lescope Ă©quipĂ© d’un rĂ©flex pour faire des photos du ciel. Il souhaite prendre la main Ă  distance sur le RasPi Ă  partir d’une tablette connectĂ©e en WiFi, pour piloter le la prise de vue « comme s’il Ă©tait sur le Raspberry Pi lui-mĂȘme Â». Il utilise DslrDashboard un logiciel qui commande le rĂ©flex via le port USB et affiche Ă  l’écran une prĂ©visualisation de l’image captĂ©e par le rĂ©flex.

Image may be NSFW.
Clik here to view.
live_view_600px

Le RasPi Ă©tant isolĂ© au milieu du jardin, il n’y a pas lieu de prĂ©voir une connexion filaire Ă  Internet (sinon tout ça ne servirait Ă  rien Image may be NSFW.
Clik here to view.
🙂
) donc pas de routage non plus pour renvoyer la connexion Internet sur le WiFi


Image may be NSFW.
Clik here to view.
connection_screen_600px
Par contre il faut ĂȘtre en mode graphique pour afficher les informations fournies par DslrDashboard. DĂ©solĂ© pour les tenants du tout texte Image may be NSFW.
Clik here to view.
🙂

 Comment qu’on fait ?

Un Point d’accùs WiFi

Image may be NSFW.
Clik here to view.
telescope

TĂ©lescope – Image prise de jour
 Bin oui de nuit vous n’auriez rien vu Image may be NSFW.
Clik here to view.
🙂
Image http://www.webastro.net

Le tĂ©lescope est placĂ© Ă  distance (Ă  l’extĂ©rieur) et le rĂ©flex est connectĂ© Ă  un Raspberry Pi qui dirige les opĂ©rations.
Nous allons dans un premier temps crĂ©er un point d’accĂšs WiFi sur le Raspberry Pi. J’ai utilisĂ© un Raspberry Pi 3 avec WiFi intĂ©grĂ© mais la solution est valable pour un autre modĂšle de Raspberry Pi, voire un Raspberry Pi 3 dont le WiFi a Ă©tĂ© dĂ©sactivĂ© et qui a Ă©tĂ© Ă©quipĂ© d’une clĂ© WiFi.

Pourquoi ? Parce qu’une clĂ© WiFi avec une « vraie Â» antenne a une portĂ©e bien plus grande qu’un Pi3 avec sa toute chtite antenne Image may be NSFW.
Clik here to view.
😀

Image may be NSFW.
Clik here to view.
ap_pi3_02

A gauche l’antenne WiFi du Raspberry Pi, c’est ce tout petit parallĂ©lĂ©pipĂšde
 La portĂ©e est forcĂ©ment plus courte qu’avec une vraie antenne.

Installer hostapd

hostapd est le paquet qui permet d’utiliser le pĂ©riphĂ©rique WiFi intĂ©grĂ© au Raspberry Pi 3 comme un point d’accĂšs. Il fonctionne Ă©galement avec les clĂ©s USB reconnues par Raspbian.

On va commencer par le sempiternel et néanmoins obligatoire

sudo apt-get update
sudo apt-get upgrade

 

Une fois la mise à jour terminée on peut installer hostapd

pi@raspberrypi:/etc $ sudo apt-get install hostapd
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'Ă©tat... Fait
Les paquets supplémentaires suivants seront installés :
 libnl-route-3-200
Les NOUVEAUX paquets suivants seront installés :
 hostapd libnl-route-3-200
0 mis à jour, 2 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 559 ko dans les archives.
AprÚs cette opération, 1 473 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] o

Allez soyez gentil(le) dites lui voui et validez.

Nous voilĂ  donc avec hostapd installĂ©. ProblĂšme : qui va gĂ©rer l’adressage du WiFi
 hein ? Dans les versions actuelles de Raspian, la configuration de l’interface est gĂ©rĂ©e par dhcpcd par dĂ©faut. Nous devons lui dire d’ignorer wlan0, car nous allons le configurer avec une adresse IP statique.

 

Image may be NSFW.
Clik here to view.
Attention !
Si vous ĂȘtes connectĂ©(e) au Raspberry Pi via WiFi, pensez d’abord Ă  vous connecter via Ethernet, via le port sĂ©rie ou branchez un clavier. Sinon lorsque vous allez configurer le WiFi vous allez ĂȘtre dĂ©connectĂ©(e) sauvagement Image may be NSFW.
Clik here to view.
🙂
Image may be NSFW.
Clik here to view.
raspberry_pi_ap

Access-point réalisé avec un Raspberry Pi de premiÚre génération

Ouvrez le fichier de configuration de dhcpcd avec la commande sudo nano /etc/dhcpcd.conf et ajoutez la ligne suivante Ă  la fin du fichier:

denyinterfaces wlan0

Cette ligne doit ĂȘtre au-dessus des lignes concernant les interfaces que vous avez peut-ĂȘtre ajoutĂ©es dans dhcpcd.conf !

Maintenant, nous pouvons configurer wlan0 avec une IP statique. Ouvrez le fichier de configuration d’interface avec la commande

sudo nano /etc/network/interfaces

 

et modifiez la section wlan0 pour qu’elle ressemble à ceci:

allow-hotplug wlan0
#iface wlan0 inet manual
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface wlan0 inet static
address 172.16.0.1
netmask 255.255.255.0

Choisissez une adresse IP qui soit dans la plage des adresses privĂ©es. C’est le cas pour l’adresse que j’ai choisie : 172.16.0.1 mais vous pouvez choisir celle que vous voulez (pourvu qu’elle soit dans la plage des adresses privĂ©es). J’ai volontairement utilisĂ© une adresse IP en 172 pour bien diffĂ©rencier ce rĂ©seau du rĂ©seau 192.168.x.x  de la maison.

Redémarrez dhcpcd avec la commande

sudo service dhcpcd restart

puis rechargez la configuration de wlan0 avec la commande

sudo ifdown wlan0; sudo ifup wlan0

AprĂšs ce redĂ©marrage du rĂ©seau les nouveaux paramĂštres sont pris en compte, un ifconfig confirme que wlan0 a bien pris l’adresse prĂ©vue.

Image may be NSFW.
Clik here to view.
ifconfig_wlan0

Bon
 On peut continuer et paramétrer hostapd.

Paramétrage de hostapd

Image may be NSFW.
Clik here to view.
ap_pi3_01

Pour utiliser notre Raspberry Pi 3 comme point d’accĂšs, il faut configurer hostapd. CrĂ©ez un nouveau fichier de configuration pour hostapd :

sudo nano /etc/hostapd/hostapd.conf

et Ă©crivez (ou collez Image may be NSFW.
Clik here to view.
🙂
) les paramĂštres suivants dans ce fichier :

# Nom de l'interface WiFi que nous avons configurée
interface=wlan0

# Utiliser le pilote nl80211 avec le pilote brcmfmac
driver=nl80211

# Nom du réseau qui sera diffusé
ssid=Pi3-AP

# UUtiliser la bande 2,4 GHz
hw_mode=g

# Utiliser le canal 6
channel=6

# Activer le 802.11n
ieee80211n=1

# Activer WMM
wmm_enabled=1

# Activer les canaux en 40MHz avec un intervalle de garde 20 ns
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accepter toutes les adresses MAC
macaddr_acl=0

# Utiliser WPA pour l'authentication
auth_algs=1

# Exiger que les clients connaissent le nom du réseau
ignore_broadcast_ssid=0

# Utiliser WPA2
wpa=2

# Utilisez une clé pré-partagée
wpa_key_mgmt=WPA-PSK

# Mot de passe pour accéder au réseau
wpa_passphrase=raspberry

# Utiliser le chiffrage AES, au lieu de TKIP
rsn_pairwise=CCMP

Je vous sens impatient(e) de vérifier si ça fonctionne Image may be NSFW.
Clik here to view.
🙂
A ce stade de l’installation on peut le faire en exĂ©cutant la commande

sudo /usr/sbin/hostapd  /etc/hostapd/hostapd.conf

 

Image may be NSFW.
Clik here to view.
ap_pi3_07

Capture d’écran sur smartphone en fin de configuration : ici le smartphone s’est bien connectĂ© Ă  PI3-AP car dnsmasq est en fonction


Si tout s’est bien passĂ© jusqu’à prĂ©sent, vous devriez ĂȘtre en mesure de voir le rĂ©seau PI3-AP sur un smartphone ou une tablette !

Si vous essayez de vous y connecter vous ne recevrez pas d’adresse IP jusqu’à ce que nous mettions en place dnsmasq dans l’étape suivante. Utilisez Ctrl+C pour arrĂȘter l’exĂ©cution de hostapd.

Notre configuration n’est pas encore tout Ă  fait terminĂ©e, parce que nous devons aussi dire Ă  hostapd oĂč il doit aller chercher le fichier de configuration lors de son dĂ©marrage.

Ouvrez le fichier de configuration par défaut de hostpad avec la commande :

sudo nano /etc/default/hostapd

 

et trouvez la ligne

# DAEMON_CONF = ""

remplacez la  par

DAEMON_CONF = "/etc /hostapd/hostapd.conf"

Installer dnsmasq

dnsmasq est un serveur combinĂ© DHCP et DNS qui est trĂšs facile Ă  configurer. Si vous voulez quelque chose d’un peu plus « lourd Â», vous pouvez utiliser le serveur isc-dhcp-server et le paquet bind9 respectivement pour le DHCP et DNS , mais pour ce que nous avons Ă  faire, dnsmasq fonctionne trĂšs bien.

Installez dnsmasq avec la commande habituelle

sudo apt-get install dnsmasq

Le fichier de configuration installĂ© en mĂȘme temps que dnsmasq contient une foule de renseignements sur la façon de l’utiliser (lisez-le si vous voulez aller plus loin avec dnsmasq), mais la majoritĂ© de ces paramĂštres est inutile pour ce que nous voulons faire. Je vous conseille de le renommer (plutĂŽt que de le supprimer), et de crĂ©er un nouveau fichier dnsmasq.conf :

 

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.org
sudo nano /etc/dnsmasq.conf

Puis collez les lignes suivantes dans le fichier que vous aurez ouvert avec nano :

interface=wlan0 # Utiliser l interface wlan0
listen-address=172.16.0.1 # Specifier l adresse Ă  Ă©couter
bind-interfaces # Lier Ă  l interface pour etre sur; de ne rien envoyer ailleurs
server=8.8.8.8 # Renvoyer les demandes DNS au DNS de Google
domain-needed # Ne pas router les noms courts
bogus-priv # Ne pas router les adresses privees
dhcp-range=172.16.0.50,172.16.0.150,12h # Distribuer des adresses IP entre 172.16.0.50 et 172.16.0.150 avec une duree de bail de 12 heures 

Bon
 On y est presque !

Il nous reste à démarrer les services :

sudo service hostapd start
sudo service dnsmasq start

Voilà
 Vous devriez pouvoir vous connecter au Raspberry Pi en utilisant le WiFi intĂ©grĂ©.

Premiers tests du point d’accùs WiFi

Déconnectez le cùble Ethernet du Raspberry Pi pour les tests. Laissez connecté le cùble HDMI pour le moment
 Vous pouvez redémarrer le Raspberry Pi pour repartir de zéro.

Sur le Raspberry Pi ouvrez le menu de configuration du Raspberry Pi et dans l’onglet Interfaces, activez le serveur VNC :

Image may be NSFW.
Clik here to view.
ap_pi3_08

Vous devriez vois apparaĂźtre l’icĂŽne VNC dans la barre des tĂąches du Raspberry Pi, Ă  droite. Cliquez sur cette icĂŽne pour ouvrir la fenĂȘtre de gestion du serveur.

Image may be NSFW.
Clik here to view.
ap_pi3_09

Super ! L’adresse IP du serveur VNC est bien celle de notre WiFi Image may be NSFW.
Clik here to view.
🙂

Sortez votre tablette, c’est le moment !

Image may be NSFW.
Clik here to view.
tablette

Sur votre tablette ou smartphone, installez l’appli VNC. Dans les paramĂštres de la tablette/smartphone, accĂ©dez au WiFi : vous voyez le point d’accĂšs Pi3-AP (si vous ne le voyez pas c’est que vous avez ratĂ© quelque chose dans les Ă©pisodes prĂ©cĂ©dent
 Reprenez calmement depuis le dĂ©but)

Connectez vous à l’access-point. Cette fois ça doit aller jusqu’au bout, car dnsmasq distribue une adresse IP à votre smartphone/tablette.

Allez je vous emmĂšne directement lĂ  oĂč ça fait mal. Ouvrez Minecraft dans le menu Jeux.

Image may be NSFW.
Clik here to view.
minecraft_0
Mais pourquoi tant de haine ? L’écran de Minecraft reste dĂ©sespĂ©rĂ©ment noir Image may be NSFW.
Clik here to view.
🙁
!

RĂ©flĂ©chissez
 Bon Dieu ! Mais c’est
 bien sĂ»r ! Eh oui
 certaines applications Ă©crivent directement dans la mĂ©moire d’image (framebuffer) pour aller plus vite et
 les pixels apparaissent sur l’écran du Raspberry Pi mais pas sur l’écran distant !

Heureusement Monsieur VNC a pensĂ© Ă  nous et rajoutĂ© une fonction (encore expĂ©rimentale avec cette version) qui permet de rĂ©cupĂ©rer le contenu du framebuffer pour l’envoyer Ă  la machine distante. Voyons voir


Image may be NSFW.
Clik here to view.
vnc_options
Rouvrez la fenĂȘtre de VNC serveur sur le Raspberry Pi, cliquez en bas Ă  gauche sur le bouton Plus
 puis dans le menu choisissez Options > DĂ©pannage. Vous obtenez la fenĂȘtre ci-dessus dans laquelle vous cocherez Utiliser le mode de capture direct (expĂ©rimental). Je vous l’avais bien dit, que c’était expĂ©rimental, non ? Donc pas la peine de m’écrire pour protester si « Ă‡a marche pas Â» ou « Ă‡a marche mal Â» ou encore « Ă‡a plante« â€Š  Je n’y suis pour rien, je n’y peux rien et je ne peux rien y faire Image may be NSFW.
Clik here to view.
😀

Rouvrez Minecraft :

Image may be NSFW.
Clik here to view.
minecraft

Et lĂ  devant vos yeux Ă©bahis se produit un de ces miracles de la technologie moderne : L’écran de Minecraft s’affiche
 Elle est pas belle la vie ?

Essais de l’access-point avec prise en main à distance

Voici arrivĂ© le grand moment, on va tester le point d’accĂšs pour de vrai ! dĂ©branchez tout, emmenez le Raspberry Pi au fond du jardin euh
 non pas dans la cabane au fond du jardin Image may be NSFW.
Clik here to view.
🙂

Branchez la batterie sur le Raspberry Pi, Ă  moins que vous ayez le secteur ?

RĂ©veillez la tablette ou le smartphone, connectez vous au Raspberry Pi et
 quoi encore ?

Image may be NSFW.
Clik here to view.
ap_pi3_06
Quoi ? Elle ne vous plait pas l’image que vous obtenez ? Quoique
 Si on regarde de plus prĂšs, l’image de fond mesure normalement 1900×1200 pixels environ et les icĂŽnes seraient Ă©normes dans ce cas Image may be NSFW.
Clik here to view.
🙁
On va en avoir le cƓur net ! Capture d’écran et sortez le double-dĂ©cimĂštre

Image may be NSFW.
Clik here to view.
720x480
Effectivement c’est un peu court, jeune homme ! 720 par 480 pixels
 Ne serait-ce pas la rĂ©solution de la tĂ©lĂ© ? Diable, c’est comme si le Raspberry Pi  avait dĂ©marrĂ© sur la sortie composite (analogique).

Bin oui
 comme le Raspberry Pi n’a pas trouvĂ© d’écran HDMI il est passĂ© automatiquement en analogique. Mais il y a une solution :

Image may be NSFW.
Clik here to view.
communication_600px

On va faire croire Ă  la framboise qu’elle est branchĂ©e sur un Ă©cran HDMI et forcer la rĂ©solution Ă  une valeur qui nous sied. Le Raspberry Pi va gĂ©nĂ©rer en interne un Ă©cran aux bonnes dimensions, qui sera envoyĂ© Ă  la tablette/smartphone.

Ouvrez le fichier /boot/config.txt, repérez et modifiez les lignes suivantes :

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=28

hdmi_mode=28 correspond Ă  1200×800 pixels. Si vous voulez une autre rĂ©solution RTFM ou utilisez une de celles-ci

hdmi_mode=9    800×600
hdmi_mode=16   1024×768
hdmi_mode=23   1280×768
hdmi_mode=28   1280×800
hdmi_mode=35   1280×1024
hdmi_mode=51   1600×1200
hdmi_mode=69   1920×1200

Alors qu’est-ce que ça donne aprĂšs un redĂ©marrage ?

Image may be NSFW.
Clik here to view.
1280x800

VoilĂ , vous avez maintenant un Raspberry Pi sur lequel vous pouvez vous connecter en WiFi et utiliser le mode graphique Image may be NSFW.
Clik here to view.
🙂

Vidéo

 

Conclusion

J’espĂšre qu’avec ces informations ceux d’entre vous qui souhaitez accĂ©der en mode graphique Ă  un Raspberry Pi auront la rĂ©ponse Ă  leurs questions.

Image may be NSFW.
Clik here to view.
lune_600px

Au dĂ©part c’était une question pour de l’astrophoto. Si vous avez d’autres applications n’hĂ©sitez pas Ă  les mentionner dans les commentaires ci-dessous et pourquoi pas envoyer quelques copies d’écrans ? je les ajouterai Ă  la suite de cet article Image may be NSFW.
Clik here to view.
🙂

Sources

 

 

↧

Viewing all articles
Browse latest Browse all 180

Trending Articles