JavaScript dans le monde de l'Embedded : de l'ampoule à l'IoT

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

JavaScript dans le monde de l'Embedded : de l'ampoule à l'IoT



Quand on entend « systèmes embarqués » (embedded systems), on pense généralement aux langages C, C++ ou, à la rigueur, à Python sur Raspberry Pi. Mais si je vous disais que JavaScript — ce même langage avec lequel vous écrivez du frontend et du backend — s'infiltre de plus en plus dans le monde des microcontrôleurs, des capteurs et des appareils intelligents ?



Oui, vous avez bien entendu. Le développement Embedded en JavaScript n'est pas une blague, mais une tendance bien réelle qui prend de l'ampleur grâce à l'émergence de frameworks comme Espruino et Johnny-Five. Aujourd'hui, nous allons voir comment faire clignoter des LED, lire des données de capteurs et les envoyer vers le cloud — le tout en pur JavaScript.



Pourquoi JavaScript dans l'embedded ? Trois raisons majeures



Pourquoi amener un langage interprété dans un monde aux ressources limitées ? Voici trois arguments qui changent la donne :



  • Faible barrière à l'entrée. Si vous connaissez déjà JS (et qui ne le connaît pas aujourd'hui ?), vous n'avez pas besoin d'apprendre le C ni de comprendre les pointeurs. Toute votre expérience — du frontend ou de Node.js — se transpose sur le matériel.
  • Prototypage rapide. Écrire un firmware en JS peut se faire en une soirée. Pas besoin d'attendre la compilation, le reflashage — de nombreuses plateformes supportent le chargement en direct du code via Wi-Fi ou USB.
  • Écosystème IoT. JavaScript s'intègre parfaitement dans l'architecture des appareils « intelligents » : vous vous connectez facilement à MQTT, HTTP, WebSockets et aux services cloud (AWS IoT, Google Cloud IoT).


Bien sûr, pour la production avec des exigences strictes en matière de consommation d'énergie et de vitesse, le C++ reste le roi. Mais pour les prototypes, les projets de loisir et les tâches éducatives, l'embedded JavaScript est une véritable aubaine.



Boîte à outils : avec quoi travaillons-nous



Avant d'écrire du code, choisissons le « matériel ». Les options les plus populaires pour l'embedded en JS :



  • Espruino — un microcontrôleur qui comprend JavaScript « prêt à l'emploi ». Fonctionne sur STM32, avec un interpréteur JS directement intégré. Idéal pour l'apprentissage.
  • Raspberry Pi Pico + Espruino — un microcontrôleur bon marché (seulement 4 $) sur lequel on peut flasher le firmware Espruino.
  • Johnny-Five + Arduino — un classique. Vous écrivez du JS sur votre ordinateur, et Johnny-Five via le protocole Firmata contrôle l'Arduino. Convient à ceux qui ont déjà un Arduino.
  • Node.js sur Raspberry Pi (Linux complet) — si vous avez besoin de plus que faire clignoter une LED, comme monter un serveur web, contrôler des GPIO et des caméras — prenez un Pi 4/5.


Dans cet article, nous nous concentrerons sur Espruino et Johnny-Five, car ils offrent l'expérience JS la plus pure sans couches superflues.



Écrire du code : faire clignoter une LED en JS



Commençons par le « Hello, World! » du monde embedded — une LED qui clignote. Connectez une LED (avec une résistance de 220 Ω) à la broche D13 sur Espruino (ou à la broche 13 sur Arduino).



Exemple 1 : Espruino (JS natif)



// Connecter la broche D13 en sortievar led = LED1; // LED intégrée sur Espruino

// Fonction de clignotementfunction blink() { led.toggle(); // Basculer l'état console.log('La LED est', led.read() ? 'ALLUMÉE' : 'ÉTEINTE');}

// Définir un intervalle de 500 mssetInterval(blink, 500);


Chargez ce code via Espruino Web IDE (ou via le terminal). La LED commencera à clignoter à une fréquence de 1 Hz. Remarquez : nous utilisons setInterval — exactement comme dans un navigateur ou Node.js. Pas de registres, de timers ou d'interruptions en C — juste du JS.



Exemple 2 : Johnny-Five + Arduino



Si vous avez un Arduino, installez la bibliothèque Johnny-Five via npm :



npm install johnny-five                

Blogs

Book Recommendations