Gagnez jusqu'à 500€ en bon d'achat sur Amazon Promos de Noël jusqu'à -70% sur Banggood

Les librairies qui prennent en charge le GPIO de l’Orange Pi se développent doucement. Aujourd’hui, je vous propose d’essayer le package node-red-contrib-opi-gpio pour Node-RED développé par gprandst. Le développeur a testé le package sur un Orange Pi PC. Pour cet article, j’ai testé le package avec succès sur un Orange Pi Lite (WiFi, 512Mo). Suivez ce tutoriel pour installer Node-RED sur Orange Pi (Armbian).

Installation du package sous Node-RED

L’installation est Node-RED est assez simple. Fermez tout d’abord NodeRED puis lancez l’installation du package à l’aide de la commande npm. C’est préférable car l’installation nécessite la compilation de sources (WiringPi notamment), ce qui ne fonctionne pas très bien depuis le gestionnaire de palette.

Pour l’écriture de cet article, le package ne s’est pas installé complètement la 1ère fois. J’ai du recommencer l’installation du package une seconde directement depuis le gestionnaire de palette.

Ensuite, il est nécessaire d’ajouter un groupe gpio. Les étapes suivantes sont tirées de la documentation du package npm (disponible ici). Commencez par vérifier si un groupe gpio existe.

Remplacer l’utilisateur pi par votre nom d’utilisateur


Si le groupe n’existe pas, il faut le créer et autoriser l’utilisateur pi à y avoir accès

Il faut ensuite ajouter un règles au Kernel

Collez la règle suivante et enregistrez le fichier avec CTRL + X puis Y.

Redémarrez l’Orange Pi.

Utilisation du GPIO de l’Orange Pi depuis Node-RED

Le package ajoute 2 outils dans la palette Orange Pi :

  • output pin : permet de piloter les sorties
  • input pin : les entrées, logique !

orange pi opi node-red gpio input output

Un petit exemple pour conclure

Pour tester le package, on va brancher un interrupteur sur le GPIO 11 (PA11 dans la nomenclature OPI) qui va déclencher l’allumage d’une Led branchée sur le GPIO12 (PA12) par l’intermédiaire d’une résistance 220Ω. Un nouvel appui sur le bouton éteindra la Led. L’état de la led sera stocké dans une variable de contexte. Pour rappel, voici le repérage des broches de l’Orange Pi (tous modèles sauf Orange Pi Zero).

orange pi gpio pinout

Source : https://github.com/uraimo/SwiftyGPIO/wiki/GPIO-Pinout

Node input

Commencez par ajouter un node input sur le flow. Ouvrez la fenêtre d’édition. Par défaut la case Use GPIO pinout. En décocher cette case, il est possible de spécifier la broche manuellement. On va laisser faire le package cette fois surtout que les broches respectent les noms d’OPI. Choisissez PA11 (Broche 5).


opi gpio orange pi node-red input

Pour détecter l’appui sur un bouton, gprandst à ajouté une gestion d’interruption bien pratique. Il détecte un appui (ou un autre événement d’ailleurs) sur un front montant (raising), un front descendant (falling), ou les deux (both). Ici, rising (front montant) fera l’affaire.

opi gpio orange pi node-red input edge detection

Garder l’état de la led dans un contexte Node-RED

On va utiliser le contexte de Node-RED pour stocker l’état de la led. A chaque fois qu’un appui sur le bouton est détecté, la fonction est appelée. On récupère l’état précédent avec la fonction context.get(‘led). Ensuite, il suffira d’inverser (status = !status) et  enfin le stocker pour la prochaine fois context.set(‘led’,status). Collez cette fonction dans un node function

Node output

Collez maintenant en node Output. Il est possible de spécifier son propre numéro de broche (comme pour input). On peut aussi initialiser la broche dans un état donné (haut – High, bas – Low).

opi gpio orange pi node-red output

Ici, on choisira la broche PA12 (Pin 3) comme sortie. opi gpio orange pi node-red output pin

Code du flow

Pour aller plus vite, voici le code du flow qu’il vous suffit d’importer

opi gpio orange pi node-red flow test

Nous sommes encore loin de pouvoir profiter de toutes les possibilités du GPIO de l’Orange Pi mais c’est déjà un excellent début surtout pour les débutants qui cherchent une solution (encore) plus économique ou plus puissance que le Raspberry Pi.

  • Modèle
  • SoC
  • RAM
  • Stockage eMMC
  • Ports USB
  • GPRS (2G)
  • WiFi
  • Bluetooth
  • Certifié CE/FCC
  • Connecteur (!non compatible Raspberry Pi)
  • Accessoires
  • Meilleur prix

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous dés inscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

Projets DIY - Domotique et objets connectés à faire soi-même