diff --git a/tp3.md b/tp3.md index c175ba0..f64c420 100644 --- a/tp3.md +++ b/tp3.md @@ -1,4 +1,6 @@ -# TP3 : NodeRed +# TP3 : Pupitre de commande et dashboard + +## NodeRed ```shell docker run --detach --name nodered ^ @@ -9,6 +11,46 @@ docker run --detach --name nodered ^ nodered/node-red:4.1 ``` +Node-RED est un outil de développement visuel, basé sur des flux (flows), qui permet de créer facilement des applications connectées en assemblant des blocs logiques. +Il fonctionne dans un navigateur et utilise un système de “nœuds” que l’on relie entre eux pour traiter des données, piloter des équipements ou créer des interfaces web. + +Node-RED est particulièrement utilisé pour : + +- l’IoT (Internet des Objets) +- l’automatisation industrielle +- la collecte et transformation de données +- la communication avec des protocoles industriels (MQTT, Modbus, OPC-UA…) +- la création de petits dashboards ou synoptiques + +## RabbitMQ + +RabbitMQ est un serveur de messagerie qui permet à différentes applications de communiquer entre elles en s’échangeant des messages de manière fiable, asynchrone et découplée. +Il utilise principalement le protocole AMQP, gère les files d’attente, l’acheminement intelligent des messages, les accusés de réception et la persistance. + +RabbitMQ est très utilisé pour : + +- répartir des tâches entre plusieurs services, +- connecter des systèmes industriels ou IoT, +- absorber des flux importants sans perdre de messages, +- assurer une communication robuste entre modules d’une application + +```shell +docker run --detach --name rabbitmq \ + --network proxy_net \ + -p "5672:5672" -p "1883:1883" \ + -e "PRABBITMQ_DEFAULT_USER=admin" \ + -e "RABBITMQ_DEFAULT_PASS=ChangeMe" \ + -e "RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=-rabbitmq_mqtt tcp_listeners [1883]" \ + -v rabbitmq_data:/var/lib/rabbitmq \ + -l "caddy=rabbitmq.localhost" \ + -l "caddy.reverse_proxy={{upstreams 15672}}" \ + -l "caddy.tls=internal" \ + rabbitmq:4.1.4-management \ + sh -c "rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_management && rabbitmq-server" +``` + +## Programme C + Ajouter la bibliothèque MQTT ```c