Commander Sa Maison À Distance Avec Un Raspberry Pi
Commander Sa Maison À Distance Avec Un Raspberry Pi
Commander Sa Maison À Distance Avec Un Raspberry Pi
2
Commander sa maison à distance avec un Raspberry Pi
Je m’appelle Michel Martin. Passionné d’informatique depuis toujours, je me suis récemment intéressé
au Raspberry Pi. A travers le site Mediaforma Learning, je vous propose de partager ma passion au
travers de différents projets à la portée de tous et de toutes les bourses. Il y a de grandes chances que
vous tombiez rapidement sous le charme du Raspberry en entrevoyant les immenses perspectives qu’il
va vous offrir et la facilité avec laquelle vous pourrez les mettre en œuvre.
Ce projet va vous permettre de transformer votre Raspberry Pi en un « objet connecté ». Ainsi, vous
pourrez commander des équipements reliés à votre Raspberry Pi (lumières, TV, chauffage électrique,
etc.) où que vous vous trouviez dans le monde ! Beau défi n’est-ce pas ?
Vous vous demandez peut-être si vos connaissances en informatique sont suffisantes pour mener à bien
ce projet. Je vous garantis que oui, quel que soit votre passé en informatique. Toutes les étapes à suivre
seront décrites en vidéo. Il vous suffira de suivre à la lettre les manipulations que vous verrez pour
obtenir le même résultat. Vous préférez un support écrit plutôt que vidéo ? Pas de problème : un eBook
est fourni avec cette formation. Il contient de nombreuses illustrations et des instructions précises. Vous
pourrez même l’imprimer sur des feuilles A4 si vous souhaitez un support papier.
Prêt à vous lancer dans l’aventure ? Commençons par les éléments que vous devez vous procurer.
Un Raspberry Pi 2 Modèle B.
Une carte microSDHC Sandisk Ultra 16 Go Classe 10 Speed 80Mo/s 533x.
Un écran VGA classique neuf ou de récupération pour la mise au point du projet. Par la suite,
l’écran ne sera plus nécessaire.
Un clavier et une souris USB neufs ou de récupération pour la mise au point du projet. Par la
suite, le clavier et la souris ne seront plus nécessaire.
Un convertisseur HDMI/VGA ou HDMI/DVI pour relier le Raspberry à l’écran.
Une alimentation secteur mini USB.
Un boîtier Raspberry Pi 2 officiel.
Un PC muni d’un lecteur de cartes SD pour copier le système d’exploitation Raspbian sur la carte
micro SD que vous insèrerez dans votre Raspberry Pi.
Une LED, une résistance de 100 Ohms, une carte d’expérimentation et un ou plusieurs relais 5
Volts.
Une prise 220 V femelle, une prise 220 Volts mâle et quelques mètres de fil électrique.
Vous êtes certainement déjà en possession de certains de ces éléments. En particulier un écran, un
clavier et une souris. En ce qui me concerne, j’ai utilisé un écran BenQ de 17 pouces qui avait été mis
3
au rebut pour être remplacé par un écran de taille supérieure. Quant au clavier et à la souris, il s’agit de
modèles d’entrée de gamme tels que ceux que l’on connecte sur un PC.
Si vous n’avez pas encore un Raspberry Pi ainsi que les éléments qui viennent d’être cités, vous pouvez
vous les procurer sur Amazon en allant sur la page http://goo.gl/aNOyda :
4
Connecteur Fonction
1 Port Ethernet 10/100 BaseT
2 Quatre ports USB
3 Jack à 4 contacts pour audio et vidéo composite
4 Port HDMI
5 Alimentation du Raspberry Pi 2 en 5V
6 Connecteur GPIO 40 broches
7 Connecteur pour afficheur DSI
8 Connecteur pour caméra
5
Connecteur Fonction
9 Connecteur microSD
Sur votre PC, ouvrez un navigateur Web et rendez-vous sur la page http://raspbian-
france.fr/telechargements/ :
6
Téléchargez la dernière version de Raspbian au format ZIP. Ici, la version téléchargée date du 21
Novembre 2015. Il se peut que cette page vous propose une version plus récente de Raspbian. Dans
tous les cas, téléchargez la dernière version proposée. Armez-vous de patience, le fichier à télécharger
pèse quelques 1,32 Go !
Une fois le fichier ZIP téléchargé, ouvrez le Gestionnaire de fichiers, rendez-vous dans le dossier où le
fichier ZIP a été téléchargé, cliquez du bouton droit sur ce fichier et sélectionnez Extraire tout dans le
menu :
7
Une boîte de dialogue s’affiche et vous propose d’extraire le contenu du fichier ZIP dans le dossier
raspbian_latest :
Validez en cliquant sur Extraire. Lorsque la décompression est terminée, vous obtenez un dossier
nommé raspbian_latest qui contient un seul fichier d’extension .img. Ici, ce fichier est nommé 2015-11-
21-raspbian-jessie.img. Si vous ne voyez pas les extensions dans le gestionnaire de fichiers, basculez sur
l’onglet Affichage et cochez la case Extension de noms de fichiers dans le groupe Afficher/Masquer :
8
Copie de Raspbian sur la carte microSD
Pour copier le fichier IMG sur la carte microSD du Raspberry, vous allez utiliser l’application Win32 Disk
Imager.
9
Cliquez sur le bouton vert Download pour télécharger le fichier Win32DiskImager-0.9.5-install.exe.
Une fois le fichier téléchargé, installez Disk Imager en mode administrateur. Pour cela, cliquez du bouton
droit sur l’icône Win32DiskImager-0.9.5-install.exe et choisissez Exécuter en tant qu’administrateur dans
le menu.
Si votre lecteur de cartes est capable de lire des cartes micro SD, insérez-y votre carte micro SD. Dans
le cas contraire, insérez la carte micro SD dans l’adaptateur SD fourni avec la carte, puis insérez
l’adaptateur SD dans le lecteur de cartes.
Cliquez sur Démarrer, tapez win32 et cliquez sur Win32DiskImager, dans la partie supérieure du menu
Démarrer. La fenêtre de Win32 Disk Imager s’affiche. Cliquez sur l’icône qui représente un dossier et
désignez le fichier Raspbian Jessie (1). Désignez la carte dans la liste déroulante (2) puis cliquez sur
Write :
10
Selon la vitesse de la carte et le type de connexion du lecteur de cartes, le temps nécessaire pour copier
l’image peut varier dans de larges proportions. A titre d’exemple, nous avons utilisé une carte Classe 10
80x de 16 Go. Insérée dans un lecteur de cartes USB2, il a fallu un peu plus de 1h30 pour copier l’image.
Insérée dans un lecteur de cartes USB3 comme celui-ci, ce temps est descendu à moins de 30 minutes.
Bien entendu, ce lecteur de carte doit être connecté sur un port USB3 de l’ordinateur pour profiter de
ce gain de temps.
Lorsque le processus d’écriture est terminé, une boîte de dialogue indique Write Successful :
Ejectez la carte micro SD. Pour cela, cliquez sur la flèche dans la zone de notification, cliquez sur l’icône
Retirer le périphérique et désignez la carte dans le menu :
11
Insérez la carte micro SD dans le Raspberry. Pour cela, retournez le Raspberry pour voir la face du
dessous et insérez la carte dans le connecteur de façon à voir les inscriptions qui figurent au-dessus de
la carte :
Arrêtez d’enfoncer la carte micro SD lorsque vous entendez un petit clic. La carte doit alors dépasser du
Raspberry d’environ 2 millimètres.
Connectez au Raspberry :
1) Le câble Ethernet.
2) Le clavier USB.
3) La souris USB.
12
4) Le convertisseur HDMI/VGA ou HDMI/DVI (4), et bien évidemment le câble de l’écran à la prise
femelle VGA ou DVI du convertisseur.
5) La prise mini USB de l’adaptateur secteur.
Il ne vous reste plus qu’à relier l’adaptateur secteur à une prise 220V. La diode rouge du Raspberry
s’allume et la diode verte clignote pendant une minute environ puis elle s’éteint. Vous l’aurez compris,
la diode rouge indique que le Raspberry est sous tension et la diode verte s’allume à chaque
lecture/écriture sur la carte micro SD.
Malheureusement, il n’y a aucun affichage sur l’écran. Rassurez-vous, votre Raspberry n’est pas
défectueux et tous les câbles ont bien été connectés. Le problème vient du mode de fonctionnement
par défaut du Raspberry. Nous allons remédier à cela dans l’étape suivante.
Mais qu’est-ce qu’une connexion SSH ? Ces trois lettres sont l’abréviation de Secure SHell. Ce terme
désigne un protocole de communication entre deux matériels. Par exemple, entre un PC et un Raspberry
Pi. Avec SSH, vous allez pouvoir ouvrir une fenêtre Invite de commandes (un Shell) sur le Raspberry et
afficher cette fenêtre sur le PC. Vous pourrez alors entrer des commandes à destination du Raspberry
depuis le PC. Les informations affichées en retour apparaîtront dans le Shell sur le PC.
Pour entrer en communication par SSH avec le Raspberry, vous aurez besoin de deux programmes :
13
Advanced IP Scanner, qui vous permettra de connaître l’adresse IP du Raspberry Pi.
PuTTY pour établir une connexion SSH avec le Raspberry Pi.
Cliquez sur Télécharger gratuitement. Une nouvelle fenêtre s’ouvre. Cliquez sur Télécharger :
14
Quelques instants plus tard, le fichier ipscan24.exe se trouve dans votre dossier de téléchargement.
Double-cliquez dessus pour l’exécuter. Indiquez la langue du programme : Français. Etant donné que ce
programme ne sera exécuté qu’occasionnellement, vous n’allez pas l’installer, mais plutôt exécuter sa
version « portable ». Choisissez Exécuter pour l’exécuter sans l’installer, puis cliquez sur Suivant :
15
Parcourez le contrat de licence, sélectionnez l’option Je comprends et l’accepte les termes du contrat de
licence puis cliquez sur Exécuter. La fenêtre d’Advanced IP Scanner s’affiche. Cliquez sur Analyser et
patientez jusqu’à ce que le Raspberry Pi soit identifié :
Ici, le Raspberry a pour adresse IP 192.168.0.110. Notez soigneusement cette adresse. Vous l’utiliserez
par la suite pour accéder Raspberry depuis le PC.
16
Quelques instants plus tard, le programme putty.exe se trouve dans votre dossier de téléchargement. Il
s’agit d’un programme portable. Aucune installation n’est donc nécessaire. Double-cliquez dessus pour
l’exécuter. Une fenêtre nommée PuTTY Configuration s’affiche. Entrez l’adresse IP du Raspberry Pi dans
la zone de texte Host Name. En ce qui nous concerne, cette adresse est 192.168.0.110. Assurez-vous
que le port est bien 22 et que l’option SSH est sélectionnée, puis cliquez sur Open :
17
Une boîte de dialogue d’avertissement vous demande de confirmer que ce serveur est digne de
confiance. Cliquez sur Oui :
Login as : pi
Password : raspberry
18
Après avoir tapé le nom d’utilisateur pi, appuyez sur la touche Entrée du clavier. De même après avoir
tapé le mot de passe raspberry, appuyez sur la touche Entrée du clavier. Vous devriez obtenir quelque
chose comme ceci :
Si une erreur indique que vous n’avez pas entré les bons identifiants, assurez-vous que tous les
caractères ont été saisis en minuscules et que la touche Verr Maj n’est pas active :
Les caractères affichés en vert sont appelés « invite de commande ». Ils apparaitront systématiquement
après chacune des commandes que vous taperez dans la fenêtre.
sudo raspi-config
Puis appuyez sur la touche Entrée du clavier. Voici ce que vous devez obtenir :
19
Pour vous déplacer dans cet écran, n’utilisez pas la souris : elle est incapable d’agir dans une fenêtre
SSH. Appuyez plutôt sur les touches flèches Haut et Bas du clavier pour déplacer la barre de sélection
de couleur rouge, sur les touches Droite et Gauche pour vous déplacer horizontalement et sur la touche
Entrée pour exécuter l’option ainsi sélectionnée.
Pour commencer, vous allez exécuter la première option pour que tout l’espace disponible sur la carte
micro SD soit accessible au système Raspbian Jessie. Pour cela, la barre rouge étant sur la première
option, il vous suffit d’appuyer sur la touche Entrée du clavier. Quelques instants plus tard, un écran
indique que l’opération s’est terminée avec succès :
20
Pour que ces changements soient effectifs, vous devez rebooter le Raspberry. Appuyez sur Entrée pour
simuler un clic sur OK, puis appuyez à deux reprises sur la touche Droite pour que l’option <Finish> soit
surlignée en rouge. Appuyez alors sur Entrée pour exécuter cette option.
Un nouvel écran vous demande si vous voulez rebooter le Raspberry. L’option <Yes> étant surlignée en
rouge, appuyez sur Entrée pour confirmer le redémarrage :
21
Cliquez sur OK et fermez la fenêtre de PuTTY.
Comme par magie, le Raspberry redémarre et quelques instants plus tard, vous vous retrouvez sur le
Bureau de Raspbian :
Ne vous réjouissez pas trop vite : si vous arrêtez puis redémarrez votre Raspberry, rien ne s’affichera
sur l’écran. D’autre part, vous avez peut-être remarqué que l’affichage est en anglais et pas en français.
Pour résoudre ces problèmes, cliquez sur Menu. Oui, j’ai bien dit de cliquer car la souris fonctionne
parfaitement dans l’interface graphique de Jessie. Cliquez donc sur Menu, dans l’angle supérieur gauche
de l’écran, pointez Preferences et cliquez sur Raspberry Pi Configuration. La boîte de dialogue Raspberry
Pi Configuration s’affiche, onglet System sélectionné :
22
Vérifiez que l’option To Desktop est sélectionnée et que la case Login as user ‘pi’ est cochée, comme
dans cet écran, puis basculez sur l’onglet Localisation. Vous allez maintenant demander à Jessie
d’afficher son interface graphique en français et lui indiquer que votre clavier est de type AZERTY :
23
Cliquez sur Set locale et choisissez :
Validez en cliquant sur OK. Cliquez sur Set Timezone. Choisissez Europe dans la liste déroulante Area et
Paris dans la liste déroulante Location. Validez en cliquant sur OK.
Cliquez sur Set Keyboard. Choisissez France dans la zone de liste Country et French dans la zone de liste
Variant. Testez ce paramétrage en cliquant dans la zone de texte dédiée et en frappant quelques
touches sur votre clavier.
24
Validez en cliquant sur OK, puis fermez la boîte de dialogue Raspberry Pi Configuration en cliquant sur
OK. Une boîte de dialogue vous propose de redémarrer l’ordinateur. Cliquez sur Yes :
25
Remarque
L’interface graphique de Jessie n’est pas à 100% en français. Ceci est en particulier vrai en ce qui
concerne l’aide en ligne du système, certaines applications fournies avec Jessie et d’autres applications
que vous installerez par la suite. Mais il faut bien avouer que le changement de langue ne vous a pas
pris trop longtemps. Imaginez ce que vous auriez dû faire sous Windows ou Mac OSX !
Ne croyez pas que votre Raspberry est entièrement configuré. Si vous l’arrêtez en cliquant sur Menu,
puis sur Shutdown, en sélectionnant Shutdown dans la boîte de dialogue End session puis en cliquant
sur Valider, il ne sera pas capable de redémarrer en mode graphique sur votre écran. Pour y arriver,
vous allez devoir modifier un fichier texte nommé config.txt et situé dans le dossier /boot/.
Si vous n’avez jamais utilisé un système d’exploitation Linux comme Raspbian Jessie, vous ne voyez
certainement pas très bien à quoi correspond le dossier /boot/. Le premier « / » fait référence à la racine
de la carte micro SD. Quant à « boot/ », il s’agit du dossier boot situé à la racine de la carte micro SD.
Pour pouvoir modifier le fichier config.txt, vous allez devoir avoir les droits réservés aux administrateurs.
Ouvrez une fenêtre Invite de commandes en cliquant sur l’icône LXTerminal, à droite du bouton Menu :
Tapez la commande suivante dans la fenêtre LXTerminal, puis appuyez sur la touche Entrée du clavier :
26
Le mot sudo donne les droits d’un administrateur à la commande qui suit.
Le mot leafpad correspond à l’éditeur de texte (Text Editor) fourni par défaut avec Jessie.
Le paramètre /boot/config.txt est destiné à leafpad. Il indique le fichier à ouvrir.
hdmi_force_hotplug
hdmi_group
hdmi_mode
27
La ligne hdmi_force_hotplug=1 force l’affichage sur le port HDMI.
La ligne hdmi_group indique si le port HDMI est utilisé sur une télévision (1) ou sur un écran d’ordinateur
(2). Ici, comme le port HDMI est connecté à un écran d’ordinateur, vous devez lui affecter la valeur 2 :
hdmi_group=2
Enfin, la ligne hdmi_mode donne la résolution et la fréquence de rafraîchissement par défaut. Utilisez
la résolution et la fréquence de rafraichissement natives de votre écran. Ces informations sont fournies
avec l’écran ou peuvent être trouvées sur le Web en faisant une recherche sur le modèle exact de l’écran
et en entrant les mots clés « résolution native » et « fréquence de rafraichissement ».
Les valeurs possibles pour hdmi_mode sont résumées dans le tableau suivant :
28
13 800x600 120 Hz
14 848x480 60 Hz
16 1024x768 60 Hz
17 1024x768 70 Hz
18 1024x768 75 Hz
19 1024x768 85 Hz
20 1024x768 120 Hz
21 1152x864 75 Hz
22 1280x768 X
23 1280x768 60 Hz
24 1280x768 75 Hz
25 1280x768 85 Hz
26 1280x768 120 Hz X
27 1280x800 X
28 1280x800 60 Hz
29 1280x800 75 Hz
30 1280x800 85 Hz
31 1280x800 120 Hz X
32 1280x960 60 Hz
33 1280x960 85 Hz
34 1280x960 120 Hz X
35 1280x1024 60 Hz
36 1280x1024 75 Hz
37 1280x1024 85 Hz
38 1280x1024 120 Hz X
39 1360x768 60 Hz
40 1360x768 120 Hz X
41 1400x1050 X
42 1400x1050 60 Hz
43 1400x1050 75 Hz
44 1400x1050 85 Hz
45 1400x1050 120 Hz X
46 1440x900 X
47 1440x900 60 Hz
48 1440x900 75 Hz
49 1440x900 85 Hz
50 1440x900 120 Hz X
51 1600x1200 60 Hz
52 1600x1200 65 Hz
53 1600x1200 70 Hz
54 1600x1200 75 Hz
55 1600x1200 85 Hz
56 1600x1200 120 Hz X
57 1680x1050 X
58 1680x1050 60 Hz
59 1680x1050 75 Hz
60 1680x1050 85 Hz
61 1680x1050 120 Hz X
62 1792x1344 60 Hz
63 1792x1344 75 Hz
29
64 1792x1344 120 Hz X
65 1856x1392 60 Hz
66 1856x1392 75 Hz
67 1856x1392 120 Hz X
68 1920x1200 X
69 1920x1200 60 Hz
70 1920x1200 75 Hz
71 1920x1200 85 Hz
72 1920x1200 120 Hz X
73 1920x1440 60 Hz
74 1920x1440 75 Hz
75 1920x1440 120 Hz X
76 2560x1600 X
77 2560x1600 60 Hz
78 2560x1600 75 Hz
79 2560x1600 85 Hz
80 2560x1600 120 Hz X
81 1366x768 60 Hz
82 1080p 60 Hz
83 1600x900 X
84 2048x1152 X
85 720p 60 Hz
86 1366x768 X
En ce qui nous concerne, l’écran utilisé, un BENQ Q7T4 de 17 pouces, a une résolution native de
1280x1024 pixels en 60 Hz. La valeur de hdmi_mode est donc 35.
Lancez la commande Enregistrer dans le menu Fichier, puis fermez la fenêtre Text Editor. Ça y est, votre
Raspberry est maintenant configuré pour utiliser par défaut l’écran relié au port HDMI, dans sa
résolution et sa fréquence de rafraîchissement natives.
Vous pouvez arrêter le Raspberry en cliquant successivement sur Menu, sur Shutdown, puis sur Valider.
Débranchez puis rebranchez le bloc d’alimentation du Raspberry. Raspbian redémarre
automatiquement en mode graphique sur l’écran relié au port HDMI, en utilisant la résolution et la
fréquence de rafraîchissement choisies. Si nécessaire, ajustez ces paramètres en modifiant la valeur
affectée à la variable hdmi_mode dans le fichier /boot/config.txt.
30
De couleurs framboise et blanc, ce boîtier est entièrement démontable et parfaitement fonctionnel.
Tous les ports sont facilement accessibles : USB, réseau, audio, HDMI, alimentation et microSD. Pour
accéder au port GPIO, il suffit d’enlever une des plaques latérales :
31
Commander des LED
Le Raspberry Pi 2 modèle B dispose un port d’extension de 40 broches mâles désigné sous le nom GPIO
(General Purpose Input Output, soit Entrées/sorties à usage général en français). Chacun des
connecteurs du GPIO est repéré par son numéro, compris entre 1 et 40, comme dans ce schéma :
Si vous disposez le Raspberry verticalement, connecteur GPIO à droite et connecteur Ethernet en bas
et à gauche, voici à quoi correspondent les 40 broches :
32
33
Pour avoir un aperçu de l’état des broches, ouvrez une fenêtre LXTerminal en cliquant sur l’icône
LXTerminal, à droite du bouton Menu. Tapez la commande suivante et appuyez sur la touche Entrée :
gpio readall
Voici le résultat :
Nom Signification
BCM Ancienne numérotation des bornes
wPi Numérotation utilisée dans les commandes gpio
Name Nom des bornes
Mode En ce qui nous concerne, seuls les modes Entrée (IN) et Sortie (OUT) seront
utilisés
V 0 correspond à 0 Volt, 1 correspond à 3,3 Volts
Physical Numérotation physique des bornes
Vous allez maintenant créer un petit montage pour lequel vous aurez besoin des éléments suivants :
34
Si vous ne les avez pas encore, tous ces éléments peuvent être achetés sur la page
http://goo.gl/aNOyda.
Pour ceux qui ne sauraient pas comment fonctionne une carte d’expérimentation :
Les connecteurs « Moins » sont tous reliés entre eux, comme indiqué par les deux traits bleus.
Les connecteurs « Plus » sont tous reliés entre eux, comme indiqué par les deux traits rouges.
La plaque d’expérimentation se divise en deux parties. Sur chaque partie, et de façon
indépendante, les connecteurs 1 à 30 sont reliés entre eux verticalement, comme indiqué par
les traits mauves.
Selon leur état, les bornes GPIO du Raspberry délivrent 0 Volt (état 0) ou 3,3 Volts (état 1). Dans ce
montage, nous allons utiliser la borne GPIO 7 (borne physique 7) et une borne Ground (par exemple la
borne 8) pour réaliser le montage suivant :
35
Pour trouver la valeur de la résistance, nous sommes partis des constatations suivantes :
La LED a une tension proche de 2V à ses bornes et supporte un courant maximal de 20 mA.
La tension entre les bornes GPIO 7 et Ground est de 0 Volt ou de 3,3 Volts.
U représente la tension aux bornes de la résistance et I le courant maximal qui la traverse. La tension
maximale aux bornes de la résistance est égale à 3,3 Volts – 2 Volts, soit 1,3 Volts. La résistance minimale
est donc :
En adoptant une résistance de 100 Ohms, donc supérieure à la valeur qui produit un courant maximal
dans la LED, on est assuré de ne griller ni la LED, ni le Raspberry.
Avant de passer au câblage, observez la diode LED. Une de ses pattes est plus longue que l’autre. Il s’agit
de la borne Plus, celle qui doit se trouver côté GPIO. Si vous la câblez dans l’autre sens, il n’y a aucun
danger, mais elle ne s’allumera pas !
36
Si vous êtes curieux, vous vous demandez peut-être ce que signifient toutes ces couleurs sur la
résistance. Eh bien, elles donnent sa valeur en Ohms, en respectant la convention suivante :
37
Dans notre exemple, la résistance a quatre bandes : marron, noir, marron et argent.
Ce qui donne :
Maintenant que le câblage est terminé, nous allons demander à la diode de s‘allumer.
Dans un premier temps, indiquez que la borne GPIO 7 va être utilisée en sortie avec la commande
suivante :
Appuyez sur Entrée pour valider cette commande puis tapez ceci :
gpio write 7 1
Lorsque vous appuyez sur la touche Entrée, la diode s’allume. Si ce n’est pas le cas, vérifiez que vous
avez bien respecté le schéma de montage et que la borne Plus de la diode est bien connectée à la
résistance et non à la borne physique 9 du Raspberry.
Cette commande a envoyé la valeur 1 sur la borne GPIO 7. Cette borne est donc passée à 3,3 Volts et la
LED s’est allumée. Pour éteindre la LED, tapez simplement :
gpio write 7 0
38
Une prise mâle 220 Volts.
Une prise femelle 220 Volts.
Un a cinq mètres de câbles électriques.
Un appareil électrique quelconque. Par exemple, une lampe de bureau, branchée sur la prise
femelle 220 Volts.
Si vous ne les avez pas encore, tous ces éléments peuvent être achetés sur la page
http://goo.gl/aNOyda.
39
Chaque relais dispose de trois contacts en sortie. Nous utilisons deux d’entre eux pour ouvrir ou fermer
un circuit 220 Volts relié à une prise femelle. Le relais peut supporter jusqu’à 10 Ampères en 220 Volts.
Vous pourrez donc commander des appareils ayant une puissance maximale de 2200 Watts sur la prise
femelle.
Une fois le câblage réalisé, ouvrez une fenêtre LXTerminal en cliquant sur l’icône LXTerminal. Dans un
premier temps, indiquez que la borne GPIO 7 va être utilisée en sortie avec la commande suivante :
Appuyez sur Entrée pour valider cette commande. Le relais se colle et la lampe de bureau s’allume. Pour
connaître l’état des bornes du GPIO, tapez cette commande et appuyez sur Entrée :
gpio readall
Voici le résultat :
Comme vous le voyez, la borne GPIO 7 est bien définie en sortie et sa tension est égale à 0 Volt (colonne
V à 0).
gpio write 7 1
40
Vous savez maintenant mettre sous tension et hors tension des appareils électriques à l’aide d’une
simple commande dans LXTerminal. La partie suivante va vous permettre d’aller beaucoup plus loin.
Vous saurez en effet comment piloter ces mêmes appareils depuis une page Web ou une application
iOS.
Dans un premier temps, vous allez voir comment accéder à votre Raspberry depuis une connexion SSH.
Si vous pensez que vous l’avez déjà fait lors de la configuration de Jessie, vous allez aller plus loin cette
fois-ci, puisque la connexion SSH pourra se faire depuis un ordinateur de votre réseau local ou … depuis
un quelconque ordinateur qui dispose d’un accès Internet. Peu importe si cet ordinateur se trouve dans
la même pièce où à plusieurs milliers de kilomètres du Raspberry : la technique sera la même ! Pour
arriver à cette prouesse, j’ai choisi l’approche la plus simple possible, qui consiste à faire appel à un
service gratuit nommé Weaved.
Le principe de Weaved
Le principe est très simple :
Simple et efficace !
41
Une nouvelle page s’affiche. Renseignez les informations demandées et cliquez sur VERIFY EMAIL :
42
Consultez votre messagerie. Vous devriez avoir reçu un email de [email protected] dans lequel
un code de validation vous est fourni :
Retournez à votre navigateur Web. Entrez le code de vérification reçu par mail. Choisissez un mot de
passe et confirmez-le en cliquant sur SIGN UP.
43
Quelques instants plus tard, vous recevrez un message qui vous souhaite la bienvenue chez
Weaved.com :
44
Ça y est, la première étape est terminée : vous avez créé votre compte sur le site Weaved.
45
tous les fichiers nécessaires à l’installation d’un logiciel. Dans Jessie, et plus généralement dans toutes
les distributions Linux, l’installation et la désinstallation de logiciels se fait en ligne de commande, en
invoquant le gestionnaire de paquets apt-get. Ce programme recherche l’adresse du ou des paquets
correspondants au logiciel à installer dans le dépôt de Jessie, rapatrie les fichiers correspondants, les
dézipe et installe les fichiers nécessaires.
Pour utiliser le gestionnaire de paquets, vous devez avoir les droits de l’administrateur. Cela se fait avec
la commande sudo. Par exemple, pour installer le logiciel hypothétique xyz, il suffit de taper la
commande suivante :
Mais revenons à nos moutons. Dans un premier temps, vous allez mettre à jour le dépôt de Jessie.
Cliquez sur LXTerminal, à droite du bouton Menu. Une fenêtre LXTerminal s’ouvre. Tapez la commande
suivante pour mettre à jour la liste des packages et de leurs dépendances afin d’accéder aux dernières
versions en date des logiciels avec la commande apt-get :
Lorsque cette commande est exécutée, le message suivant s’affiche dans la fenêtre LXTerminal :
46
sudo weavedinstaller
Tapez 1 et appuyez sur Entrée pour vous connecter à Weaved. Vous devrez alors entrer l’adresse email
et le mot de passe utilisés pour créer votre compte sur weaved.com. Cette étape passée avec succès,
l’écran LXTerminal ressemble à ceci :
47
Tapez 1 et appuyez sur la touche Entrée pour attacher un ou plusieurs services Weaved à votre
Raspberry. Un nouvel écran s’affiche :
A titre d’exemple, vous allez attacher le service Weaved SSH à votre Raspberry.
Tapez 1 puis appuyez sur la touche Entrée. Un message vous indique que, par défaut, le port SSH 22 sera
utilisé. Si ce port vous convient, tapez y et appuyez sur Entrée. Dans le cas contraire, tapez n, appuyez
sur Entrée, indiquez le port que vous voulez utiliser et appuyez sur Entrée. Dans un cas comme dans
l’autre, un message vous demande de choisir un nom pour le service. Tapez par exemple SSH et appuyez
sur Entrée. Voici comment se présente la fenêtre de LXTerminal quelques instants plus tard :
48
Tapez 3 et appuyez sur Entrée pour quitter Weaved Installer.
Remarque
Consultez votre boîte email. Vous y trouverez un message de [email protected] qui vous indique
qu’un nouveau service a été créé :
49
Etape 3 - Utilisation du service SSH Weaved
Vous allez maintenant vous connecter en SSH avec PuTTY à travers le service Weaved. Ouvrez un
navigateur Web et allez sur la page https://www.weaved.com/. Cliquez sur SIGN IN. Entrez votre adresse
email et votre mot de passe, puis cliquez sur SIGN IN pour vous connecter. Une page du type suivant est
alors affichée :
50
Cliquez sur le nom de votre connexion (ici SSH), sous Name. Quelques instants plus tard, une page donne
toutes les informations nécessaires pour vous connecter au Raspberry en SSH via Weaved :
51
Lancez PuTTY. Entrez le nom du proxy dans la zone de texte Host Name, le port dans la zone de texte
Port, choisissez un nom pour votre connexion SSH dans la zone de texte Saved Sessions (Weaved par
exemple), cliquez sur Save pour sauvegarder ce paramétrage, puis sur Open pour ouvrir la connexion.
52
Quelques instants après avoir cliqué sur Open, une boîte de dialogue vous demande si vous faites
confiance en cette connexion. Cliquez sur Oui :
Il ne vous reste plus qu’à entrer votre login et votre mot de passe pour ouvrir une session SSH, comme
vous le feriez pour utiliser une connexion SSH locale :
53
Rien d’extraordinaire me direz-vous ! Effectivement si vous êtes dans la même pièce que le Raspberry,
mais là où les choses deviennent intéressantes, c’est que vous pourriez tout aussi bien vous trouver à
10 000 km et avoir le même comportement !
Ne soyez pas effrayé par autant de nouveaux concepts. Tout va très bien se passer et vous vous en
sortirez haut la main et avec une foule de nouveaux concepts en tête !
Par contre, aucun serveur HTTP n’est installé par défaut dans Jessie. Vous ne pourrez donc pas vous
connecter immédiatement à votre Raspberry via le service Weaved HTTP.
Pour combler cette lacune, vous allez installer un serveur Web sur votre Raspberry. Ouvrez une fenêtre
LXTerminal en cliquant sur l’icône LXTerminal, à droite du bouton Menu. Tapez la commande suivante
et appuyez sur la touche Entrée :
54
Une à deux minutes plus tard, Apache est installé sur votre Raspberry :
Pour vous assurer que tout a bien fonctionné, ouvrez le navigateur Web Epiphany en cliquant sur son
icône, à droite du bouton Menu. Dans la barre d’adresses, tapez localhost et appuyez sur la touche
Entrée. Voici ce que vous devez obtenir :
55
Remarque
Cette page correspond au fichier index.html qui se trouve dans le dossier /var/www/html.
Pour dialoguer avec le GPIO du Raspberry, nous utiliserons des instructions PHP. Il faut donc qu’Apache
« comprenne » les instructions PHP. Pour cela, vous devez installer la « brique PHP ». Tapez la
commande suivante dans une fenêtre LXTerminal et appuyez sur Entrée :
sudo reboot
Pour savoir si PHP est opérationnel, vous allez définir un fichier PHP et l’exécuter. A titre d’exemple,
vous allez créer le fichier phpinfo.php dans le dossier /var/www/html, c’est-à-dire dans le dossier
correspondant à la racine du domaine localhost. Tapez la commande suivante pour vous déplacer dans
le dossier /var/www/html et appuyez sur Entrée :
cd /var/www/html
56
Tapez la commande suivante pour éditer le fichier phpinfo.php et appuyez sur Entrée :
Une fois le code saisi, appuyez simultanément sur les touches Control et O pour enregistrer le fichier,
puis sur la touche Entrée pour confirmer. Enfin, appuyez simultanément sur les touches Control et X
pour quitter nano.
Ouvrez Epiphany en cliquant sur l’icône Epiphany, à droite du bouton Menu et rendez-vous sur la page
http://localhost/phpinfo.php. Voici ce que vous devez obtenir :
57
Très bien, PHP est opérationnel. Mais encore faut-il y accéder depuis l’extérieur puisque je vous rappelle
que le but de ce projet est de pouvoir exécuter des commandes (PHP en l’occurrence) depuis n’importe
quel appareil relié à Internet. Pour arriver à cela, vous allez mettre en place le service HTTP Weaved.
sudo weavedinstaller
58
Tapez 1 et appuyez sur la touche Entrée. Tapez votre adresse e-mail et votre mot de passe pour vous
connecter au service Weaved. Voici ce que vous devriez obtenir :
Tapez 1 puis appuyez sur Entrée. Vous allez maintenant choisir d’ajouter le service Web (HTTP) sur le
port 80 :
59
Tapez 2 et appuyez sur Entrée. Confirmez que vous voulez utiliser le port 80 en tapant y puis Entrée.
Quelques instants plus tard, on vous demande de donner un nom au nouveau service. Tapez quelque
chose de facile à identifier : HTTP par exemple, puis appuyez sur Entrée :
60
Tapez 3 et appuyez sur Entrée pour quitter le programme weavedinstaller.
Vérifiez votre boîte email. Vous y trouverez un message envoyé par le robot [email protected]
qui vous informe qu’un nouveau service a été ajouté à votre compte Weaved.
61
Sous Name, cliquez sur HTTP. Comme vous pouvez le voir la page Web est accessible. Ici, dans Microsoft
Edge sous Windows 10 :
Remarque
L’URL de cette page reste valide tant que le Raspberry est sous tension. Par contre, si vous le
redémarrez, il vous faudra repasser par le site http://www.weaved.com pour obtenir une autre adresse
URL.
Ou encore, pour affecter la valeur 0 à la borne GPIO 7, vous utiliserez cette instruction :
Supposons qu’une lampe soit branchée sur la prise femelle connectée au relais. Vous allez créer deux
petits programmes PHP pour allumer et pour éteindre cette lampe.
62
Tapez la commande suivante pour vous déplacer dans le dossier /var/www/html et appuyez sur Entrée :
cd /var/www/html
Tapez la commande suivante pour éditer le fichier allumer.php et appuyez sur Entrée :
Appuyez simultanément sur les touches Control et O pour sauvegarder le fichier, puis sur Entrée pour
confirmer. Enfin, appuyez simultanément sur les touches Control et X pour quitter nano.
Tapez la commande suivante pour éditer le fichier eteindre.php et appuyez sur Entrée :
Appuyez simultanément sur les touches Control et O pour sauvegarder le fichier, puis sur Entrée pour
confirmer. Enfin, appuyez simultanément sur les touches Control et X pour quitter nano.
Le moment de vérité est arrivé. Ouvrez un navigateur Web quelconque, sur votre ordinateur, votre
tablette ou votre téléphone. Rendez-vous sur la page http://weaved.com, connectez-vous en entrant
vos identifiants. Les services de votre compte s’affichent : SSH et HTTP. Cliquez sur HTTP sous Name. La
63
page « Apache2 Debian Default Page » s’affiche. Modifiez l’URL de la page pour exécuter le programme
allumer.php. Pour cela, il vous suffit de taper allumer.php à la suite de l’URL de Weaved :
Comme par magie, la lumière s’allume ! Bienvenue dans le monde des objets connectés !
Voyons maintenant s’il est possible d’éteindre la lumière. Pour cela, modifiez l’URL de la page pour
exécuter cette fois-ci le programme eteindre.php :
Remarque
Bien entendu, votre URL sera différente de celle prise en exemple ici puisque votre service Weaved est
différent du mien.
Tapez la commande suivante pour éditer le fichier on.php et appuyez sur Entrée :
64
Il n’y a rien de bien compliqué dans ce document HTML5.
L’en-tête définir le jeu de caractères utilisé du document. Le jeu de caractères UTF-8 est le plus
universellement utilisé sur le Web, car il permet d’afficher les caractères propres à quasiment toutes les
langues :
<head>
<meta charset="utf-8">
La partie comprise entre <body> et </body> définit ce qui est affiché sur l’écran. Les instructions PHP
indiquent que la borne GPIO 7 est en sortie et mettent cette borne à 1, ce qui provoque l’extinction de
la lampe, si elle était allumée :
<?php
?>
La ligne suivante affiche une image issue du site http://www.mediaforma. Lorsque cette image est
cliquée, la page off.php s’affiche :
Appuyez simultanément sur les touches Control et O pour sauvegarder le fichier, puis sur Entrée pour
confirmer. Enfin, appuyez simultanément sur les touches Control et X pour quitter nano.
Vous allez maintenant saisir le code du fichier off.php. Tapez la commande suivante et appuyez sur
Entrée :
65
sudo nano off.php
Comme vous pouvez le voir le fichier off.php est très proche du fichier on.php.
<?php
?>
Appuyez simultanément sur les touches Control et O pour sauvegarder le fichier, puis sur Entrée pour
confirmer. Enfin, appuyez simultanément sur les touches Control et X pour quitter nano.
Il ne vous reste plus qu’à tester ces deux programmes. Ouvrez un navigateur Web quelconque, sur votre
ordinateur, votre tablette ou votre téléphone. Rendez-vous sur la page http://weaved.com, connectez-
vous en entrant vos identifiants. Les services de votre compte s’affichent : SSH et HTTP. Cliquez sur HTTP
sous Name. La page « Apache2 Debian Default Page » s’affiche. Modifiez l’URL de la page pour exécuter
le programme on.php. Pour cela, il vous suffit de taper on.php à la suite de l’URL de Weaved :
66
Cliquez sur le bouton vert. La lumière s’allume et la page off.php s’affiche :
Cliquez sur le bouton rouge. La lumière s’éteint et la page on.php s’affiche. Ainsi de suite…
Si vous avez quelques connaissances en HTML, CSS, JavaScript et PHP, vous pourrez sans difficulté
améliorer les programmes on.php et off.php pour avoir un résultat qui correspond à ce que vous voulez
mettre en place.
Si nécessaire, vous pouvez vous procurer les formations vidéo Mediaforma Learning pour améliorer vos
connaissances dans ces langages :
67
HTML5, CSS3, JavaScript Tome 2
HTML5, CSS3, JavaScript Tome 3
PHP5 MySQL Tome 1
PHP5 MySQL Tome 2
Le mot de la fin
Vous en savez maintenant bien assez pour commander n’importe quel appareil électrique connecté
sur une prise 220V commandée via des relais et les bornes GPIO du Raspberry.
Pour avoir des articles complémentaires concernant ce montage, une seule adresse :
68
http://www.mediaforma.com/raspberrypi/
Je vous rappelle que toutes les pièces permettant de construire ce projet ont été regroupées sur une
page Web unique :
http://www.mediaforma.com/commandez-tout-a-distance-avec-votre-raspberry-pi-equipement/
D’autres projets à base de Raspberry Pi sont proposés sur le site Mediaforma Learning :
Vous pouvez également vous inscrire dans la zone membre de Mediaforma Learning. Vous pourrez ainsi
télécharger des produits gratuitement, vous serez informé de promotions régulières et vous recevrez la
newsletter hebdomadaire pour avoir des nouvelles fraiches des domaines qui vous intéressent.
69