---
# System prepended metadata

title: FabLab projets
tags: [' mqtt', atelier]

---

---
title: FabLab projets
tags: atelier, mqtt
robots: noindex, nofollow
author: Damien Truffaut, Julien Noyer
---

# Connecter des objets _Broker et client MQTT_

![](https://i.imgur.com/gXVEd7y.jpg)

<!-- Temps souhaitable: 1h30 mini pour toute la séquence -->

### Présentation de la séquence

La séquence s'appuie sur un prototype de circuit électronique basé sur une carte de prototypage _Wemos_, réalisant des fonctions comparables à un circuit utilisant des composants non programmables. Les activités sont présentées sous forme de mise en pratique dirigée et réalisées individuellement au départ puis en groupe.

- Installer PubSubClient dans les bibliothèque d'Arduino
- installer le client node __mqtt__ <https://www.npmjs.com/package/mqtt>

### Objectifs

- Comprendre les notions élémentaires de communication en réseau
- Comprendre la logique de mise en place d'un serveur MQTT
- Savoir agir sur un réseau local depuis un réseau externe

**Pré-requis**: Avoir fait la séquence "Carte Wemos" et "Broker MQTT"

# Activité 1 _Configurer un client MQTT_

![](https://i.imgur.com/FSgPv3a.jpg)

Vous devez à présent charger le code __mqtt_wemos_blink_jul_base__ dans votre IDE Arduino, nous allons dans un premier temps analyser le code avant de l'éditer pour le téléverser sur la carte. Le code est organisé en bloc pour aider la lecture, nous gardons en tête les bonne pratiques de la programmation en tentant d'optimiser notre code car il est impératif d'être léger lorsqu'on prévoit de déployer nos programme sur de micro-contrôleurs.

- Quel est la structure du programme ?
- A quoi correspond __WiFiClient__ ?
- A quoi correspond __PubSubClient__ ?

### Configurer la connexion WIFI sur la Wemos

La première chose à faire est de connecter la Wemos sur le réseau au WIFI pour que la carte Wemos soit capable de communiquer avec le Broker MQTT. Pour tester votre connexion vous devez modifier le code après la commande __WiFi.mode(WIFI_STA)__ pour lancer la connexion au WIFI.

- Comment pouvons nous connecter la carte au Wifi ?
-  Sur quelle WIFI devons-nous nous connecter ?
-  Par quel moyen pouvons-nous identifier sur la WIFI ?

### Configurer la connexion au serveur MQTT

Une fois qu'elle est connecté en WIFI, la carte Wemos doit être capable d'ouvrir une connexion sur le Broker MQTT. Une fois configurer vous devez modifier la fonction `reconnect()` pour lancer la connexion au Broker.

- Quelle est la fonction pour configurer une connexion ?
- A quoi sert de faire cette connexion sur la carte est déjà connecté en WIFI ?

### Configurer les Topics

Nous avons vu que le client et le Broker MQTT partagent des routes appelées _topic_ pour échanger des information, vous devez les définir sur la carte Wemos pour pouvoir publier et souscrire. Une fois les _topics_ configurer vous devez modifier la fonction `publish_status` pour publier les status `ON`ou `OFF` sur le Broker MQTT via les _topics_ que vous aurez préalablement créé.

- Comment configurer un topic MQTT ?
- Comment envoyer des données vers un Topic ?
- Comment recevoir des données depuis un Topic ?
- Est-ce qu'un topic peut authentifier l'objet ?

<!-- 
  PUB: material/lumiere/switch "ON"/"OFF"
  SUB: material/#
-->

<!-- 
  PUB: mqtt pub -t 'material/lumiere/switch' -h 'dromos2.local' -m 'ON'
  SUB: mqtt sub -t 'material/#' -h 'dromos2.local' -v
-->