---
title: "MQTT ESP32 : se connecter, publier et s’abonner | ConnectMQ"
description: "Exemple MQTT ESP32 avec PubSubClient (Arduino) : code prêt à copier pour le broker public broker.connectmq.com et une connexion TLS sécurisée à ConnectMQ."
url: "https://connectmq.com/fr/exemples-de-code/esp32/"
language: "fr"
---

Exemples de code

# ESP32 : exemple MQTT

Connectez un ESP32 à un broker MQTT via Wi-Fi avec la bibliothèque Arduino PubSubClient. Commencez sur le broker public gratuit, puis pointez le même code vers un broker privé et sécurisé sur ConnectMQ.

Bibliothèque

[PubSubClient (Arduino)](https://github.com/knolleary/pubsubclient)

Installation

`arduino-cli lib install PubSubClient`

[**Code source sur GitHub**`mqtt-code-samples/esp32`Clonez les exemples complets et prêts à l’emploi. Étoiles et pull requests bienvenues. Voir sur GitHub](https://github.com/connectmq/mqtt-code-samples/tree/main/esp32)

## 1\. Essayez sur le broker public gratuit

Aucun compte requis : connectez-vous à `broker.connectmq.com` sur le port 1883 et publiez vos premiers messages en quelques secondes.

esp32\_mqtt.ino

```
#include <WiFi.h>
#include <PubSubClient.h>

const char* WIFI_SSID = "YOUR_WIFI";
const char* WIFI_PASS = "YOUR_WIFI_PASSWORD";
const char* TOPIC = "your-project/sensors/temperature"; // Utilisez un préfixe de topic unique : tout le monde peut lire le broker public

WiFiClient net;
PubSubClient mqtt(net);

// Appelé pour chaque message reçu sur un topic abonné
void onMessage(char* topic, byte* payload, unsigned int length) {
  Serial.printf("%s: %.*s\n", topic, length, (char*)payload);
}

void connectMqtt() {
  while (!mqtt.connected()) {
    // Chaque client doit avoir un client ID unique
    String id = "esp32-" + String((uint32_t)ESP.getEfuseMac(), HEX);
    if (mqtt.connect(id.c_str())) {
      // Abonnement au topic de température
      mqtt.subscribe(TOPIC);
    } else {
      delay(2000);
    }
  }
}

void setup() {
  Serial.begin(115200);
  // Connexion au Wi-Fi d’abord
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  // Connexion au broker public gratuit (aucun compte requis)
  mqtt.setServer("broker.connectmq.com", 1883);
  mqtt.setCallback(onMessage);
}

void loop() {
  // Reconnexion automatique en cas de coupure
  if (!mqtt.connected()) connectMqtt();
  mqtt.loop();
  static unsigned long last = 0;
  if (millis() - last > 10000) {
    last = millis();
    // Publication d’une mesure en JSON
    mqtt.publish(TOPIC, "{\"temperature\":21.5}");
  }
}
```

### Broker MQTT public gratuit

Le broker public est partagé : n’importe qui peut s’abonner à vos topics. N’y faites jamais transiter de mots de passe, de données personnelles ou d’informations confidentielles.

[À propos du broker MQTT public gratuit](https://connectmq.com/fr/broker-mqtt-public/)

## 2\. Passez en production avec ConnectMQ

Pour de vrais appareils, utilisez un broker MQTT serverless privé sur ConnectMQ plutôt que le broker public : chiffrement TLS, un nom d’utilisateur et un mot de passe par appareil et un contrôle d’accès par topic, entièrement managé. Commencez avec l’offre Free, sans carte bancaire.

Remplacez YOUR\_BROKER\_HOST, YOUR\_USERNAME et YOUR\_PASSWORD par les valeurs de votre tableau de bord ConnectMQ.

[Commencer gratuitement](https://app.connectmq.com/signup) [Voir les tarifs](https://connectmq.com/fr/tarifs/)

esp32\_mqtt.ino

```
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <PubSubClient.h>

const char* WIFI_SSID = "YOUR_WIFI";
const char* WIFI_PASS = "YOUR_WIFI_PASSWORD";
const char* TOPIC = "your-project/sensors/temperature";

// Certificat CA racine (PEM) du certificat TLS du broker
const char* ROOT_CA = R"PEM(
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
)PEM";

WiFiClientSecure net;
PubSubClient mqtt(net);

// Appelé pour chaque message reçu sur un topic abonné
void onMessage(char* topic, byte* payload, unsigned int length) {
  Serial.printf("%s: %.*s\n", topic, length, (char*)payload);
}

void connectMqtt() {
  while (!mqtt.connected()) {
    // Chaque client doit avoir un client ID unique
    String id = "esp32-" + String((uint32_t)ESP.getEfuseMac(), HEX);
    // Nom d’utilisateur et mot de passe issus du tableau de bord ConnectMQ
    if (mqtt.connect(id.c_str(), "YOUR_USERNAME", "YOUR_PASSWORD")) {
      // Abonnement au topic de température
      mqtt.subscribe(TOPIC);
    } else {
      delay(2000);
    }
  }
}

void setup() {
  Serial.begin(115200);
  // Connexion au Wi-Fi d’abord
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  net.setCACert(ROOT_CA);
  // Connexion à votre broker ConnectMQ privé sur le port 8883
  mqtt.setServer("YOUR_BROKER_HOST", 8883);
  mqtt.setCallback(onMessage);
}

void loop() {
  // Reconnexion automatique en cas de coupure
  if (!mqtt.connected()) connectMqtt();
  mqtt.loop();
  static unsigned long last = 0;
  if (millis() - last > 10000) {
    last = millis();
    // Publication d’une mesure en JSON
    mqtt.publish(TOPIC, "{\"temperature\":21.5}");
  }
}
```

## FAQ MQTT ESP32

Comment connecter ESP32 à un broker MQTT ?

Installez PubSubClient (Arduino), connectez-vous à l’hôte du broker sur le port 1883 (ou 8883 avec TLS), puis abonnez-vous à un topic et publiez-y des messages. Les exemples de cette page se connectent au broker public gratuit broker.connectmq.com et à un broker ConnectMQ privé.

Existe-t-il un broker MQTT gratuit pour tester ESP32 ?

Oui. broker.connectmq.com est un broker MQTT public gratuit qui ne nécessite aucun compte. Tout le monde peut lire ses topics : utilisez-le uniquement pour vos tests, avec un préfixe de topic unique.

Comment sécuriser une connexion MQTT ESP32 ?

Connectez-vous via TLS sur le port 8883 avec un nom d’utilisateur et un mot de passe issus de votre tableau de bord ConnectMQ, et attribuez à chaque appareil ses propres identifiants et permissions de topic au lieu d’utiliser le broker public.

## Autres exemples de code

[

### Python

Connectez Python à un broker MQTT avec paho-mqtt.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/python/)[

### Node.js

Connectez Node.js à un broker MQTT avec MQTT.js.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/nodejs/)[

### Go

Connectez Go à un broker MQTT avec le client Go Eclipse Paho.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/go/)[

### CLI (mosquitto)

Publiez et abonnez-vous en ligne de commande avec mosquitto\_pub et mosquitto\_sub.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/cli/)[

### Java

Connectez Java à un broker MQTT avec le client Java Eclipse Paho.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/java/)[

### C# (.NET)

Connectez C# et .NET à un broker MQTT avec MQTTnet.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/csharp/)[

### Rust

Connectez Rust à un broker MQTT avec la crate rumqttc.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/rust/)[

### Dart (Flutter)

Connectez vos applications Dart et Flutter à un broker MQTT avec le package mqtt\_client.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/dart-flutter/)[

### Swift / Kotlin

Connectez vos applications natives iOS (Swift) et Android (Kotlin) à un broker MQTT.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/swift-kotlin/)[

### Home Assistant

Connectez Home Assistant à un broker MQTT et transformez les messages MQTT en capteurs.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/home-assistant/)[

### Node-RED

Connectez Node-RED à un broker MQTT avec un flow importable.

Voir l’exemple](https://connectmq.com/fr/exemples-de-code/node-red/)

[Tous les exemples de code](https://connectmq.com/fr/exemples-de-code/)

### Broker MQTT public gratuit

Testez n’importe quel exemple sur broker.connectmq.com : sans inscription, MQTT 3.1.1 et 5, TCP, TLS et WebSocket.

[À propos du broker MQTT public gratuit](https://connectmq.com/fr/broker-mqtt-public/)

### MQTT serverless sécurisé pour la production

Le moment venu de connecter de vrais appareils, exécutez le même code sur un broker ConnectMQ privé et entièrement managé, avec TLS et des identifiants par appareil.

[Commencer gratuitement](https://app.connectmq.com/signup)

## Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.

[Commencer](https://app.connectmq.com/signup) [Voir les tarifs](https://connectmq.com/fr/tarifs/)

## Articles

[Tous les articles](https://connectmq.com/fr/blog/)

Tutoriels IoT

### [Tutoriel ESP32 MQTT : publier des données de capteur et piloter une LED avec l'Arduino IDE](https://connectmq.com/fr/blog/tutoriel-esp32-mqtt/)

Connectez un ESP32 à un broker MQTT avec l'Arduino IDE et PubSubClient, publiez des mesures de température en JSON, pilotez la LED intégrée depuis la ligne de commande et passez au TLS avec les identifiants du portail.

23 août 202610 min de lecture

Tutoriels IoT

### [Broker MQTT public gratuit pour vos tests : connectez-vous à broker.connectmq.com en quelques minutes](https://connectmq.com/fr/blog/broker-mqtt-public-gratuit/)

broker.connectmq.com est un serveur MQTT public gratuit pour tester et apprendre. Voici les ports, les règles d'accès anonyme, les limites et des exemples à copier-coller pour la ligne de commande, Python, Node.js et le navigateur.

20 septembre 20268 min de lecture

Tutoriels IoT

### [MQTT sur WebSocket : connecter un navigateur à un broker MQTT avec MQTT.js](https://connectmq.com/fr/blog/mqtt-sur-websocket/)

Les navigateurs ne peuvent pas ouvrir de sockets TCP bruts : les applications web parlent donc MQTT sur WebSocket. Créez un client navigateur et un client Node.js fonctionnels sur broker.connectmq.com et apprenez à corriger les erreurs de connexion les plus courantes.

29 septembre 20269 min de lecture
