- Qu'est-ce que Node.js?
- Composants requis
- Schéma
- Configuration du framework Node.js
- Installation de la bibliothèque Johnny-Five
- LED clignotante avec Arduino et Node.js
- Contrôle de la luminosité des LED à l'aide d'Arduino et du serveur Web Node.js
Nous avons vu de nombreux exemples de clignotement d'une LED en utilisant différents microcontrôleurs et différents langages de programmation. Aujourd'hui, nous allons utiliser un framework JavaScript très populaire Node.js pour contrôler la LED connectée à Arduino Uno. Nous utiliserons également Node.js pour contrôler la luminosité de la LED à partir d'une page Web utilisant Arduino. En quelques ajustements et en utilisant ESP8266, cela peut être converti en un projet IoT où la LED peut être contrôlée de n'importe où.
Qu'est-ce que Node.js?
Les Node.js est une application web cadre JavaScript basé largement utilisé construit sur moteur V8 JavaScript de Google Chrome et appliqué dans le développement d' E / S intensives telles que les applications d'une seule page, les sites de streaming vidéo, etc.
Nous avons déjà fait un tutoriel informatif sur la mise en route avec Node.js et Raspberry Pi pour contrôler une LED. Dans ce tutoriel, nous suivrons une approche similaire, c'est-à-dire que la LED sera contrôlée en utilisant deux méthodes telles que:
- Clignotement simple de la LED en écrivant un code JavaScript dans le framework Node.js.
- Contrôle de la luminosité des LED à l'aide du cadre Node.js et d'une interface Web depuis n'importe quel navigateur: l'Arduino UNO agira comme un serveur Web et la page Web HTML sera hébergée sur un PC ou un ordinateur portable.
Composants requis
Matériel:
- Carte Arduino UNO
- LED
- Résistance
Logiciel:
- Arduino IDE: pour télécharger un croquis sur la carte Arduino UNO.
- Firmata: C'est un protocole pour communiquer avec différents microcontrôleurs depuis un logiciel sur un ordinateur, un smartphone, etc. Le firmware Firmata peut être chargé dans n'importe quelle carte microcontrôleur (comme Arduino, Teensy) et est capable de parler à n'importe quel ordinateur portable, PC ou smartphone. Firmata Library est livré avec Arduino IDE, donc pas besoin de télécharger de n'importe où. Nous avons fait un tutoriel sur le contrôle d'Arduino avec Raspberry Pi en utilisant pyFirmata.
- Johnny-Five: Johnny-Five est la plateforme de robotique basée sur JavaScript et IoT utilisée pour écrire des codes en JavaScript et utilisée pour faire un pont entre les cartes Arduino et l'ordinateur. Johnny-Five a été testé avec une variété de cartes compatibles Arduino telles que Arduino UNO, NANO, Promini, etc. Dans ce didacticiel, la bibliothèque Johnny-Five doit être téléchargée afin d'utiliser toutes ses fonctionnalités. Le guide d'installation sera expliqué plus loin dans ce tutoriel.
Schéma
Le schéma de circuit est très basique, il suffit de connecter une LED avec Arduino.Configuration du framework Node.js
Avant de commencer le codage et le développement, le Node.js doit être téléchargé et configuré. Pour télécharger l'environnement Node.js, suivez simplement des étapes simples.
Étape 1: - Téléchargez le fichier.exe de Node.js depuis son site officiel.
Étape 2: - Exécutez le.exe et suivez les instructions données dans le programme d'installation.
Étape 3: - Redémarrez votre ordinateur comme il est recommandé dans le document Node.js et aussi pour utiliser toutes les fonctionnalités de Node.js
Étape 4: - Pour vérifier si le nœud a été installé, ouvrez l'invite de commande et tapez Node –v
Étape 5: - La version Node.js sera affichée indiquant que Node.js est installé.
Installation de la bibliothèque Johnny-Five
Maintenant, après avoir téléchargé le Node.js, créez un nouveau dossier nommé «LED_Control» dans Documents pour conserver tous les fichiers du projet au même endroit. Chaque fichier de projet sera conservé dans le dossier « LED_Control ». Téléchargez maintenant la bibliothèque Johnny-Five dans le dossier « LED_Control ». Pour télécharger, suivez les étapes ci-dessous:
Étape 1: - Ouvrez l'invite de commande
Étape 2: - Allez dans le dossier « LED_Control » en suivant la commande « cd ».
Étape 3: - Exécutez la commande ' npm install johnny-five'
Étape 4: - Cela installera toutes les dépendances de Johnny-Five.
Étape 5: - Installez également les bibliothèques nécessaires utilisées dans ce tutoriel pour contrôler la luminosité de la LED. Il existe trois bibliothèques utilisées ici:
- express: wrapper de serveur
- socket.i o: bibliothèque WebSockets
- serialpor t: wrapper de port série
Étape 5: - Exécutez les commandes ci-dessous une par une pour installer ces trois bibliothèques.
npm install express npm install socket.io npm install serialport
Comme indiqué précédemment, le projet est divisé en deux parties:
- Tout d'abord, LED clignotante Arduino avec Node.js
- Deuxièmement, contrôler la luminosité des LED à partir de l'interface Web en utilisant Arduino et Node.js.
LED clignotante avec Arduino et Node.js
Pour faire clignoter la LED, l'Arduino doit être configuré pour communiquer avec l'ordinateur.
Configuration d'Arduino UNO pour la LED clignotante:
Afin de permettre à Arduino UNO d'accepter la commande de l'ordinateur portable au voyant de contrôle, le micrologiciel Firmata doit être chargé dans l'Arduino UNO. Pour charger le micrologiciel du micrologiciel, suivez simplement ces étapes simples:
- Connectez l'Arduino UNO à l'aide d'un câble USB
- Ouvrez Arduino IDE et sélectionnez la carte Arduino UNO (si vous utilisez une autre carte, sélectionnez la carte correspondante) dans Outils.
- Sélectionnez le port COM respectif de l'Arduino UNO connecté
- Recherchez maintenant le croquis de Firmata en utilisant Menu -> Fichier -> Exemples -> Firmata -> StandardFirmata.
- Téléchargez le croquis «StandardFirmata» en allant dans Fichier -> Télécharger.
Cela chargera le Firmata Sketch sur Arduino UNO et maintenant l'Arduino UNO est prêt à accepter n'importe quelle commande de l'ordinateur.
Ecriture du programme Node.js pour la LED clignotante:
Pour écrire un programme Node.js, ouvrez n'importe quel éditeur de texte (Notepad, Notepad ++, etc.) et collez le code 'blink_led' attaché à la fin de ce tutoriel et enregistrez-le avec une extension de '.js' ie (blink_led.js) dans le dossier «LED_Control» créé auparavant. Nous discuterons des étapes importantes du fichier de code blink_led.js.
Définissez initialement la broche du microcontrôleur où la led est connectée. Dans cet exemple, la LED est connectée à la broche 5 de l'Arduino UNO. Le «var» dans Node.js représente la déclaration de variable.
var led_pin = 5;
Le module johnny-five doit être inclus et la carte doit être sélectionnée. Les modules de Node.js sont des bibliothèques. La fonction ' require () ' accèdera au module.
var johnny_five = require ("johnny-cinq"); var arduino_board = new johnny_five.Board ();
L' instruction console.log est similaire à l'instruction print et imprimera le message. Et la broche de la LED est réglée sur le mode de sortie et le délai défini est donné au clignotement de la LED.
console.log ("Le voyant a commencé à clignoter!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Maintenant, pour exécuter le programme, suivez les étapes ci-dessous:
- Ouvrir l'invite de commande
- Localisez le dossier «LED_Control» en suivant la commande «cd»
- Exécutez la commande 'Node led_blink.js'. S'il est exécuté avec succès, le message "LED a commencé à clignoter!" comme indiqué dans l'image ci-dessous .
- Le voyant commencera à clignoter dans la broche 5 de l'Arduino UNO.
- Et cela termine la première partie de notre tutoriel à savoir LED clignotante avec Node.js
Contrôle de la luminosité des LED à l'aide d'Arduino et du serveur Web Node.js
Semblable au clignotement d'une LED avec Node.js, cette section comprendra également certaines parties, à savoir la configuration d'Arduino UNO, la configuration de l'interface Web et l'écriture d'un programme Node.js.
Configuration d'Arduino UNO pour contrôler la luminosité de la LED:
Pour configurer l'Arduino UNO, téléchargez simplement le croquis « arduino_control.ino » sur la carte Arduino UNO et c'est tout. Cela installera la carte Arduino. Vous pouvez télécharger le code complet avec les fichiers HTML à partir d'ici. Le code « arduino_control.ino» comprend les étapes importantes suivantes.
Au départ, la vitesse de transmission est fixée à 9600.
Serial.begin (9600);
Le port série recherche toujours l'octet entrant et l'octet est écrit sur la broche 5 qui est une broche PWM.
while (! Serial.available ()); analogWrite (5, Serial.read ());
C'est ça. Cela configurera l'Arduino pour verrouiller l'octet sur la broche PWM et changera la luminosité de la LED.
Configuration de l'interface Web:
Pour contrôler la luminosité de la LED à l'aide de l'interface Web, un petit morceau de code HTML est écrit pour avoir une interface dans le navigateur. Pour avoir l'interface, suivez les étapes simples ci-dessous:
- Créez un nouveau dossier nommé «public» dans le dossier «LED_Control» créé précédemment.
- Téléchargez maintenant les fichiers «index.html» et «style.css» et déplacez les deux fichiers dans le dossier «public» créé à la première étape ci-dessus. Les fichiers peuvent être téléchargés à partir d'ici.
Cela créera un curseur sur la page Web pour contrôler la luminosité de la LED à l'aide de Node.js et Arduino.
Le contrôle d'une LED à partir d'une page Web est intéressant à apprendre et cela peut être fait avec un autre microcontrôleur en créant un serveur Web et en hébergeant la page Web sur un serveur Web. Vérifiez tous les projets liés au serveur Web ici.
Ecriture du programme Node.js pour contrôler la luminosité de la LED:
La prochaine étape consisterait à écrire l' esquisse «bright_control.js» en utilisant Node.js et à exécuter le code. L'exécution du code sera un peu similaire au clignotement d'une LED avec Node.js.
Pour écrire un programme Node.js, ouvrez n'importe quel éditeur de texte (Notepad, Notepad ++, etc.) et collez le code 'bright_control' joint à la fin de ce didacticiel et enregistrez-le avec une extension '.js' ie (bright_control.js) dans le dossier «LED_Control» créé auparavant. Vous pouvez également télécharger le code ici.
Semblable au programme Blink Led Node.js, cette section utilisera également des modules (bibliothèque). Incluez le module «express», «http» et «port série».
var express = require ('express'); app = express (); server = require ('http'). createServer (app); io = require ('socket.io'). listen (serveur); var SerialPort = require ("serialport") //. SerialPort
Réglez maintenant le port COM et le débit en bauds. Notez que dans Windows, ce sera toujours COM avec l'extension de numéro (COM6, COM4, COM24 etc.), donc défini ci-dessous comme requis après '/'. Réglez également le taux de buadrate.
var serialPort = nouveau SerialPort ("/ COM4", {baudRate: 9600});
Commencez à écouter le serveur sur le port 8080.
server.listen (8080);
Réglez initialement la luminosité sur 0. Ensuite, verrouillez les données de luminosité sur IO avec le module sockets, qui est un module websocket. Les données seront reçues par l'interface Web en utilisant le protocole socket.
io.sockets.on ('connexion', fonction (socket) { socket.on ('led', fonction (données) { luminosité = data.value; var buf = new Buffer (1); buf.writeUInt8 (luminosité, 0); serialPort.write (buf);
Maintenant, émettez la valeur de luminosité de la LED entre la prise et la broche de la LED.
io.sockets.emit ('led', {valeur: luminosité}); }); socket.emit ('led', {valeur: luminosité}); });
Maintenant, juste pour déboguer, ajoutez une instruction d'impression à la fin. Console.log est une instruction d'impression dans Node.js.
console.log ("Serveur Web démarré, accédez à 'http: // localhost: 8080' dans votre navigateur.");
Maintenant, exécutez le programme en suivant les étapes ci-dessous:
- Ouvrir l'invite de commande
- Localisez le dossier «LED_Control» en suivant la commande «cd»
- Exécutez la commande 'Node bright_control.js'. S'il est exécuté avec succès, il affichera "Serveur Web démarré, allez à" http: // localhost: 8080 "dans votre navigateur." juste en dessous de la commande .
- Maintenant, allez dans votre navigateur et tapez "localhost: 8080" dans l'url.
- Pour modifier la luminosité, déplacez simplement le curseur de 0 à 255 valeurs.
Le code complet et la vidéo de travail des deux sections sont joints ci-dessous. Aussi, si vous avez des doutes ou des suggestions, vous pouvez nous contacter via le forum ou les commentaires ci-dessous. Tous les fichiers de code peuvent également être téléchargés à partir d'ici.