- Matériaux nécessaires
- Installer Node.js sur Raspberry Pi
- Clignotement d'une LED à l'aide de Node.js
- Script de clignotement du voyant Node.js et explication
- Schéma de circuit pour faire clignoter une LED à l'aide de Node.js
- Tarte aux framboises
Dans les précédents tutoriels Raspberry Pi, nous avons utilisé de nombreux langages de programmation et logiciels différents pour contrôler Raspberry Pi, y compris Python, C embarqué, Flask, etc..js) pour contrôler les GPIO Raspberry Pi localement et globalement en le configurant en tant que serveur Web. Initialement, Node.js a été développé pour Google Chrome, mais plus tard, il a été open-source par Google.
Dans ce tutoriel, nous contrôlerons une LED, connectée à Raspberry Pi, en utilisant deux méthodes
- Tout d'abord, nous allons simplement écrire un code JavaScript en utilisant Node.js pour faire clignoter la LED
- Dans la deuxième méthode, nous allons créer une page HTML avec deux boutons pour allumer et éteindre la LED. Cette page Web HTML sera hébergée sur Raspberry Pi et peut être ouverte sur n'importe quel navigateur Web. Alors ici, Raspberry Pi fera office de serveur Web
Matériaux nécessaires
- Carte Raspberry Pi avec Raspbian installé
- LED
Dans ce tutoriel, j'utilise un moniteur externe à l'aide d'un câble HDMI pour me connecter à Raspberry Pi. Si vous n'avez pas de moniteur, vous pouvez utiliser le client SSH (Putty) ou le serveur VNC pour vous connecter à Raspberry pi à l'aide d'un ordinateur portable ou d'un ordinateur. Si vous rencontrez des difficultés, suivez notre guide Getting Stared with Raspberry Pi.
Installer Node.js sur Raspberry Pi
Nous installerons Node.js dans notre tableau en utilisant les commandes suivantes.
Étape 1: - Vérifiez d'abord la version bras de votre carte Raspberry Pi en utilisant cette commande.
uname -m
Dans mon cas, la version est 7.
Étape 2: - Téléchargez l'installateur en copiant ce lien dans le terminal. N'oubliez pas de changer la version dans le lien ci-dessous.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Étape 3: - Extrayez les fichiers en utilisant la commande ci-dessous
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Étape 4: - Enfin, exécutez ces commandes pour ajouter également les fichiers importants aux répertoires locaux.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js est maintenant installé dans votre Raspberry Pi. Vérifiez la version du nœud pour confirmation à l'aide de cette commande.
nœud –version
Avant de créer un serveur Node.js, nous allons d'abord voir comment écrire un script pour faire clignoter une LED en utilisant node.js (package npm onoff).
Clignotement d'une LED à l'aide de Node.js
Pour contrôler le GPIO sur le Raspberry Pi à l'aide de Node.js, nous utiliserons le module onoff.
Nous utiliserons le gestionnaire de packages npm pour installer le module onoff en utilisant la commande ci-dessous
npm installer onoff
Maintenant, nous allons écrire un script pour le clignotement de la led. Ouvrez l' éditeur nano et donnez le nom au fichier à l'aide de la commande
nano blink_led.js
Si vous êtes un débutant dans Node.js et ses packages, vous pouvez consulter la documentation de npm pour une meilleure compréhension du script.
Script de clignotement du voyant Node.js et explication
Tout d'abord, déclarez les variables pour led, delay et GPIO. J'utilise Raspberry Pi GPIO 4 pour connecter la LED.
var Gpio = require ('onoff'). Gpio; var LED = nouveau Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Maintenant, nous allons créer une fonction pour démarrer le clignotement.
function blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // mettre la sortie à 1, c'est-à-dire allumer la LED} else {LED.writeSync (0); // mettre la sortie à 0 c'est-à-dire éteindre la led }}
De même, créez une fonction pour arrêter le clignotement
function endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Unexport GPIO pour libérer des ressources} setTimeout (endBlink, 10000);
Le code Node.js complet pour la LED clignotante est donné à la fin de ce tutoriel. Alors copiez et collez le code dans le fichier led_blink.js , que nous avons créé précédemment à l'aide de la commande nano , enregistrez le fichier en utilisant Ctrl + x, puis appuyez sur Y et appuyez sur Entrée.
Pour exécuter le script, ouvrez le terminal et tapez la commande ci-dessous:
noeud blink_led.js
Vous verrez que la LED clignotera pendant 10 secondes et après cela, elle cessera de clignoter. Vérifiez le fonctionnement complet dans la vidéo donnée à la fin de ce tutoriel.
Schéma de circuit pour faire clignoter une LED à l'aide de Node.js
Tarte aux framboises
Maintenant, arrivons à la partie intéressante, ici nous allons créer notre propre serveur Web à partir duquel nous pouvons contrôler GPIO de Raspberry pi à l' aide d'une page Web.
Pour cela, nous devons d'abord créer une page HTML et écrire un script pour effectuer une tâche back-end c'est à dire contrôler le RPi GPIO.
Étape 1: - Créez un répertoire pour stocker tous les fichiers en un seul endroit.
mkdir nodejs_server
Étape 2: - Dans le dossier nodejs_server , créez un dossier supplémentaire pour enregistrer le fichier HTML.
cd nodejs_server vues mkdir
Étape 3: - Si vous souhaitez ajouter des images à votre page html, vous devez créer un autre dossier nommé public dans le répertoire principal, c'est-à-dire dans le dossier nodejs_server . Dans le dossier public, créez un dossier d'images et stockez toutes les images dans ce dossier.
Étape 4: - Maintenant, nous allons créer une page HTML. Pour cela, allez dans le répertoire views et ouvrez l' éditeur de texte nano avec le nom de fichier index.ejs
Il n'y a rien d'extraordinaire dans le script. C'est juste un fichier HTML pour faire le bouton On et Off.
Copiez, collez le code HTML ci-dessous dans l' éditeur de texte nano et enregistrez-le.
Bienvenue sur Nodejs Server
État de la LED: <% = status%>Étape 5: - Maintenant, nous devons écrire du code JavaScript. Nous utilisons le framework node express pour répondre aux requêtes http effectuées par l'utilisateur.
Vous pouvez suivre le lien pour en savoir plus sur Node Express.
Ouvrez le terminal et ouvrez l' éditeur de texte nano avec le nom de fichier index.js dans le dossier nodejs_server , puis copiez et collez le code de script java ci-dessous et ce fichier.
var express = require ('express'); var app = express (); var chemin = require ('chemin'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('afficher le moteur', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Written True to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index',{status: "Led is On"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) throw err; console.log ('Written False to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led is Off"}); }); }); app.listen (3000, function () { console.log ('Serveur démarré sur le port: 3000!') })
Étape 6: - Dans le répertoire nodejs_server , nous devons exécuter la commande suivante pour installer les bibliothèques de node.js
npm installer
Étape 7: - Votre serveur est maintenant prêt à fonctionner. Pour démarrer le serveur local, exécutez la commande suivante dans le répertoire nodejs_server
noeud index.js
vous verrez un message dans le terminal indiquant que votre serveur est démarré au port défini.
Étape 8: - Ouvrez maintenant votre navigateur et ouvrez l'URL de Raspberry Pi avec le numéro de port c.-à-d. Raspberrypi: 3000
Assurez-vous que votre raspberry pi et votre ordinateur portable dans lequel vous ouvrez le navigateur sont connectés au même réseau.
Vous verrez la page suivante dans le navigateur.
Maintenant, appuyez sur le bouton LED On pour allumer le LED et le bouton LED Off pour éteindre le LED.