URL: https://linuxfr.org/users/epeios/journaux/application-web-de-controle-des-gpios-d-un-raspberry-pi-odroid-c2 Title: Application web de contrôle des GPIOs d'un Raspberry Pi/ODROID-C2 Authors: Claude SIMON Date: 2018年12月14日T19:00:38+01:00 License: CC By-SA Tags: odroid, web, atlas_toolkit et raspberry_pi Score: 10 Cela fait déjà quelque temps que je possède un [*ODROID-C2*](https://wiki.odroid.com/odroid-c2/odroid-c2). Je l'avais acheté pour tester mes programmes sur une plateforme *ARM* 64 bits. Tout comme les derniers [*Raspberry Pi*](https://www.raspberrypi.org/), il comporte le fameux connecteur d'E/S à 40 broches. De quoi titiller l'électronicien qui sommeille en moi. Je me suis donc acheté un de ces kits pour *Raspberry Pi* permettant de réaliser des montages électroniques que l'on connecte au *Raspberry*. Moyennant quelques précautions, ces kits sont parfaitement utilisables avec un *ODROID-C2*. Mon *ODROID* étant configuré en [*headless*](https://fr.wiktionary.org/wiki/headless), je m'y connecte via *SSH*. Du coup, pour piloter les *GPIO*, je devais utiliser le clavier. Vu que j'avais le montage électronique et les différents composants que je voulais y implanter devant moi, le clavier se retrouvait sur le coté, ce qui n'est pas très pratique pour l'utiliser. Une tablette tactile avec l'application qui va bien aurait été plus pratique. Mais, d'après mes recherches, j'aurais soit dû installer un environnement graphique sur mon *ODROID* et déporter l'affichage, soit y installer un serveur web et *PHP*. Bref, j'ai finalement préféré saisir l'occasion de mettre à l'épreuve le *toolkit* *Atlas* que j'avais présenté dans cette [dépêche](https://linuxfr.org/news/publication-de-l-atlas-toolkit-0-4-avec-demonstrations-en-ligne). Comme langage pour piloter les *GPIO*, j'ai jeté mon dévolu sur *Python*, car, d'après ce que j'ai vu, c'est le langage le plus populaire pour cela. Pour ce langage, il existe deux bibliothèques : [*RPi.GPIO*](https://sourceforge.net/p/raspberry-gpio-python/wiki/Home/) et [*WiringPi*](https://github.com/WiringPi/WiringPi-Python). Les deux ont été originellement développées pour le *Raspberry Pi*, mais elles ont été portées sur *ODROID*. Cependant, *RPi.GPIO*, dans sa version pour *ODROID*, offre moins de fonctionnalités que *WiringPi* ; c'est donc cette dernière que j'ai retenue. Actuellement, l'application permet de basculer les broches de base en mode *IN*, *OUT* et [*PWM*](https://fr.wikipedia.org/wiki/Modulation_de_largeur_d%27impulsion#La_MLI_num%C3%A9rique), et, pour ces deux derniers modes, on peut régler la valeur de la broche. Pour utiliser l'application, après installation de la version *python* de *WiringPi*, lancer : - `git clone http://github.com/epeios-q37/atlas-python` - `cd atlas-python` - `sudo python GPIO` Ensuite, ouvrir, dans un navigateur web, le lien affiché dans la console. Vous pouvez l'ouvrir sur votre *smartphone* si vous le désirez. Inutile de le connecter sur le réseau wifi local ou de toucher à la configuration de votre box pour cela. Le logiciel a été testé sur *ODROID-C2*, mais devrait également fonctionner sur tous les *Raspberry Pi* équipés d'un port à 40 broches, mais je n'ai pas pu tester. Voici une petite vidéo pour vous montrer comment l'application s'utilise : [](https://www.youtube.com/watch?v=I-cVCivRb9o) La même vidéo sur une instance *PeerTube*, pour ceux qui n'aiment pas utiliser *YouTube* : https://peertube.video/videos/watch/4028de7d-267d-4ecb-a13f-7745171ba5ae Les futures versions de cette application devraient prendre en compte les autres broches (faut d'abord que je me familiarise avec leur fonctionnement !). Elle sera peut-être également développée dans d'autres langages, à titre d'exemple de mise en œuvre du *toolkit* *Atlas*. Si vous avec d’autres suggestions, n'hésitez pas !