Système Embarqué - ch4 PDF
Document Details
Uploaded by Deleted User
Université Cadi Ayyad
2024
Mohammed AMEKSA
Tags
Summary
This document details embedded systems and AI, specifically covering NodeMCU, the MQTT protocol, and the Node-RED platform. It provides an introduction to NodeMCU, including its specifications and use in embedded systems.
Full Transcript
Embedded Systems & AI (M115-122) Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT Node-MCU Comprendre le MQTT protocole Initiation à la plateforme Node-Red Node-MCU – MQTT et Node-red 2024 / 2025...
Embedded Systems & AI (M115-122) Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT Node-MCU Comprendre le MQTT protocole Initiation à la plateforme Node-Red Node-MCU – MQTT et Node-red 2024 / 2025 150 1. Introduction à la carte Node MCU ▪ Les systèmes embarqués nécessitent des échanges de données entre les composants internes et les périphériques externes. ▪ Comment ?!! 2024 / 2025 151 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 1. Introduction à la carte Node MCU Qu'est-ce que le NodeMCU ? ▪ Les modules et microcontrôleurs Arduino ont toujours été un excellent choix pour intégrer l'automatisation dans un projet donné. Mais ces modules présentent un petit inconvénient : ils ne disposent pas d'une capacité WiFi intégrée. ▪ Nous devons ajouter un protocole WiFi externe à ces appareils pour les rendre compatibles avec le canal Internet. ▪ NodeMcu est une plateforme de développement open-source basée sur le microcontrôleur ESP8266 combine certaines caractéristiques de la carte Arduino ordinaire avec la possibilité de se connecter à l'internet. 2024 / 2025 152 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 1. Introduction à la carte Node MCU Qu'est-ce que le NodeMCU ? ▪ Le NodeMCU (avec ESP8266 ou ESP32) possède une puce Wi-Fi intégrée, ce qui permet de connecter la carte directement à un réseau Wi-Fi SPECS/BOARD ESP32 ESP8266 Arduino UNO Number of Cores 2 1 1 Architecture 32 Bit 32 Bit 8 Bit CPU Frequency 160 MHz 80 MHz 16 MHz WiFi YES YES NO BLUETOOTH YES NO NO RAM 512 KB 160 KB 2 KB FLASH 16 MB 16 MB 32 KB GPIO PINS 36 17 14 ADC Pins 18 1 6 2024 / 2025 153 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 1. Introduction à la carte Node MCU Puce Wi-Fi ESP8266 1 broche analogique *Utilisée pour l'ENTRÉE analogique Broches numériques D0 à D4 Utilisée pour connecter des périphériques *Utilisées pour les entrées/sorties numériques externes comme la mémoire ou la RAM externe. Alimentation 3,3V et GND *Ne peut pas être utilisée pour l'ENTRÉE/SORTIE Broches numériques D5 à D8 *Utilisées pour l'ENTRÉE/SORTIE numérique Broches TX et RX pour la communication en série Vin pour l'ENTRÉE d'alimentation Alimentation 3.3V & GND *Plage d'alimentation : 7V - 12V Port de programmation *Utiliser le câble Micro USB 2024 / 2025 154 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 1. Introduction à la carte Node MCU Arduino IDE Pins Index ESP-12E ESP8266 GPIO A0 A0 ADC 0 0 D3 GPIO 0 1 D10 GPIO 1 2 D4 GPIO 2 3 D9 GPIO 3 4 D2 GPIO 4 5 D1 GPIO 5 12 D6 GPIO 12 13 D7 GPIO 13 14 D5 GPIO 14 15 D8 GPIO 15 16 D0 GPIO 16 ▪ NodeMCU permet la gestion des PWM sur toutes les broches d'E/S : GPIO0 à GPIO16 avec une résolution de 10 bits 2024 / 2025 155 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 2. Configurer la carte ESP8266 et ESP32 dans l'IDE ▪ Node MCU est une carte distincte de la carte Arduino, nous devons donc l'ajouter dans l'IDE Arduino. Si vous avez déjà installé Arduino Ide sur votre PC, vous pouvez suivre l'étape suivante pour programmer le Node mcu avec l'IDE Arduino. ▪ Étape 1 : ouvrez l'IDE Arduino et allez dans Fichier ➔ Préférences 2024 / 2025 156 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 2. Configurer la carte ESP8266 et ESP32 dans l'IDE ▪ Étape 2 : Copiez l'URL ci-dessus dans la section Gestionnaire de cartes supplémentaires et cliquez sur OK pour fermer l'onglet Préférences URL de la carte ESP8266 : http://arduino.esp8266.com/stable/package_esp8266com_index.json URL de la carte ESP32 : https://dl.espressif.com/dl/package_esp32_index.json 2024 / 2025 157 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 2. Configurer la carte ESP8266 et ESP32 dans l'IDE ▪ Étape 3 : Ensuite, allez dans Outils ➔ Carte … ➔ Gestionnaire de cartes recherchez ESP8266 ou ESP32 et installez-le 2024 / 2025 158 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 2. Configurer la carte ESP8266 et ESP32 dans l'IDE Exemple d’application ▪ Cet exemple montre comment contrôler une LED avec le NodeMCU 2024 / 2025 159 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 3. Connexion du NodeMCU au Wi-Fi ✓ La connexion Wi-Fi permet à NodeMCU de communiquer avec des serveurs, d'envoyer des données vers le cloud, ou d’être contrôlé à distance via des applications web ✓ La bibliothèque ESP8266WiFi.h (pour ESP8266) ou WiFi.h (pour ESP32) doit être incluse dans le code ✓ Aussi le SSID (nom du réseau) et le mot de passe du Wi-Fi doivent être fourni 2024 / 2025 160 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 3. Connexion du NodeMCU au Wi-Fi Exemple « contrôler une led » Veuillez trouvez le code « ICI » 2024 / 2025 161 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 4. Comprendre le MQTT protocole MQTT: MQ Telemetry Transport développé par IBM en 1999 ▪ Protocole de messagerie qui facilite la communication entre les composants des embarqués et IoT ▪ MQTT repose sur le concept de (Publish & Subscribe) ▪ Permet une communication simple entre plusieurs appareils, adapté aux environnements à faible bande passante ▪ Il permet aux clients de publier et de recevoir des messages ➔ Parfait pour les systèmes embarqués et les applications IoT 2024 / 2025 162 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 4. Comprendre le MQTT protocole MQTT: MQ Telemetry Transport ▪ Envoi de Commandes et Publication de Données ✓ Envoi de Commandes pour controler un composant de sortie : Flux : Node-RED ➔ Broker MQTT ➔ NodeMCU ➔ Lampe ✓ Lecture et Publication de Données : Flux : Node-RED Broker MQTT NodeMCU Capteur 2024 / 2025 163 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 4. Comprendre le MQTT protocole MQTT: MQ Telemetry Transport ▪ Concepts de Base dans MQTT : ✓ Publish/Subscribe : Modèle principal de communication ✓ Messages : Informations échangées (commandes/données) ✓ Topics : Les « canaux » d’échange de données ✓ Broker : Gère les messages entre les appareils 2024 / 2025 164 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 4. Comprendre le MQTT protocole MQTT: MQ Telemetry Transport ✓ Fonctionnement de Publish/Subscribe Un appareil publie des messages que d'autres appareils peuvent recevoir en s'abonnant Exemple : Device 1 Device 2 2024 / 2025 165 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 4. Comprendre le MQTT protocole MQTT: MQ Telemetry Transport ✓ Comprendre les sujets (Topics) Les Topics sont comme des adresses où les messages sont envoyés Une chaîne de caractères qui peut posséder une hiérarchie de niveaux séparés par le caractère « / ». Exemple : Contrôle d'une Lampe avec MQTT ▪ Action : Publier le message « on » sur le topic fssm/salle_di5/lampe ▪ Résultat : L’ESP (subscibe au topic) reçoit le message « on » et allume la lampe 2024 / 2025 166 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 4. Comprendre le MQTT protocole MQTT: MQ Telemetry Transport ✓ Comprendre le rôle du (Broker) Le broker est central au fonctionnement de MQTT : Il existe différents courtiers (Broker) Reçoit les messages disponibles, nous utiliserons Mosquitto. Filtre et organise les messages Vous pouvez l’installer sur un Raspberry Pi, Diffuse les messages à tous les clients abonnés un ordinateur ou dans le cloud. Exemple de Broker : Mosquitto (un broker open-source) 2024 / 2025 167 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 5. Configurer le broker mosquitto MQTT: MQ Telemetry Transport ▪ Étape 1. Télécharger Mosquitto : Téléchargez la version Windows du broker sur le site officiel de Mosquitto : https://mosquitto.org/download/ ▪ Étape 2. Installer Mosquitto : Exécutez le fichier téléchargé et suivez les instructions pour l'installer ▪ Étape 3. Configurer le PATH (facultatif mais recommandé) : Accédez aux « Variables d'environnement », dans les « Variables système ». ▪ Étape 4. Lancer Mosquitto depuis le Terminal : exécutez la commande « mosquitto –v » pour démarrer le broker 2024 / 2025 168 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 6. Initiation à la plateforme Node-Red 2024 / 2025 169 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 6. Initiation à la plateforme Node-Red ▪ Node-RED est un outil de programmation visuelle ▪ Conçu pour connecter des dispositifs, services en ligne et API via un environnement de développement basé sur des flux de données ▪ permet aux utilisateurs de créer des « flux » à partir de blocs fonctionnels appelés « nœuds ». ▪ Ces flux représentent des séquences d'actions qui répondent aux données entrantes, aux événements et aux interactions avec des API ▪ Node-RED est basé sur Node.js, un environnement d'exécution JavaScript 2024 / 2025 170 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 6. Initiation à la plateforme Node-Red ▪ Node-RED nécessite Node.js et npm (Node Package Manager) pour fonctionner. 1. Installation de Node.js et npm : Téléchargez et installez la dernière version stable de Node.js depuis nodejs.org. npm est généralement installé avec Node.js. 2. Installation de Node-RED : Une fois Node.js et npm installés, installez Node-RED avec la commande suivante : npm install -g --unsafe-perm node-red 3. Lancer Node-RED : Une fois installé, démarrez Node-RED en tapant : node-red ▪ Vous verrez alors une URL, souvent h t t p : / / 1 2 7. 0. 0. 1 : 1 8 8 0 , pour accéder à l'interface de Node-RED. 2024 / 2025 171 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 6. Initiation à la plateforme Node-Red Fonctionnement de base de Node-Red ▪ Node-RED fonctionne par flux où chaque flux est composé de nœuds ▪ Nœuds : Blocs de fonctions qui exécutent des tâches spécifiques (envoi de messages, traitement de données, etc.) ▪ Connexions : Relient les nœuds et permettent de faire passer des messages entre eux 2024 / 2025 172 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 6. Initiation à la plateforme Node-Red L’interface de Node-RED se divise en trois parties principales : 1. Panneau des noeuds : Liste des noeuds disponibles, tels que les noeuds d’entrée (Inject), de traitement (Function), de sortie (Debug), etc. 2. Zone de flux : Espace de travail où vous construisez vos flux en glissant-déposant les noeuds. 3. Panneau d'informations : Affiche les propriétés des noeuds, la documentation et les logs (via le noeud Debug). 2024 / 2025 173 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 6. Initiation à la plateforme Node-Red Il faut installer node-red-dashboard après le démarrage, suivants les étapes illustrées dans la figure : 1 3 4 2 2024 / 2025 174 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 6. Initiation à la plateforme Node-Red Types de noeuds courants ▪ Nœuds d’entrée : Pour capter des données (ex. : capteurs, interfaces utilisateur) ▪ Nœuds de sortie : Pour envoyer des données ou des commandes (ex. : API, appareils) ▪ Inject : Permet de démarrer un flux manuellement ou selon une programmation. ▪ Debug : Affiche les messages et les données dans la console de débogage. ▪ Function : Permet d'écrire des scripts JavaScript pour traiter des données. ▪ Switch : Redirige les données en fonction de certaines conditions. ▪ …etc 2024 / 2025 175 Ch4. Systèmes Embarqués en Action : NodeMCU, Node-RED et MQTT 8. Node-MCU – MQTT et Node-red ATELIER PRATIQUE Objectifs ▪ Comprendre les principes de communication MQTT entre un serveur et un client. ▪ Apprendre à configurer un broker MQTT avec Mosquitto. ▪ Configurer Node-Red pour publier et souscrire aux messages MQTT. ▪ Programmer le NodeMCU ESP32 pour contrôler une LED via MQTT. 2024 / 2025 176