Certaines parties de ce site Web ne sont pas encore disponibles dans votre langue. Nous travaillons à résoudre ce problème et nous nous excusons pour tout inconvénient.
Tutoriel ESP32 46/55 - Surveillance de température à distance utilisant HiveMQ MQTT | Kit ESP32 de SunFounder
Dans ce tutoriel, nous allons créer un système de surveillance de la température à distance en utilisant l'ESP32 et le protocole MQTT. Ce projet nous permet de publier des données de température sur un broker MQTT et de contrôler une LED à distance à l'aide d'une interface web. En appuyant sur un bouton, nous pouvons envoyer des relevés de température vers le cloud, et nous pouvons également recevoir des commandes pour allumer ou éteindre la LED.
esp32-47-mqt-1
L'ESP32 est un microcontrôleur puissant qui dispose de Wi-Fi et Bluetooth intégrés, ce qui le rend idéal pour les applications Internet des Objets (IoT). Dans cette configuration, nous utiliserons un thermistor NTC pour mesurer la température, un bouton poussoir pour déclencher les lectures, et une LED pour indiquer l'état. Les données seront envoyées à HiveMQ, un courtier MQTT populaire, où elles pourront être accessibles à distance (dans la vidéo à 00:45).
esp32-47-mqt-2
Matériel expliqué
Pour ce projet, nous utiliserons les composants suivants :
Microcontrôleur ESP32 :Cette carte sert d'unité centrale de traitement, gérant les connexions Wi-Fi et les communications MQTT.
Thermistor NTC :Ce capteur de température modifie sa résistance en fonction de la température. Il fournit un signal analogique que l'ESP32 peut lire pour déterminer la température actuelle.
LED :Cette diode électroluminescente sera utilisée pour indiquer le statut en fonction des commandes reçues via MQTT.
Bouton poussoir :Ce bouton déclenchera l'ESP32 pour lire la température et la publier sur le courtier MQTT.
Détails de la fiche technique
Fabricant
SunFounder
Numéro de pièce
ESP32
Tension logique/IO
3,3 V
Tension d'alimentation
5 V (via USB)
Courant de sortie (par canal)
12 mA max
Guide de fréquence PWM
Jusqu'à 40 kHz
Seuils logiques d'entrée
0,3 V (bas), 2,4 V (élevé)
Limites thermiques
-40 à 85 °C
Paquet
ESP32-WROOM-32
Assurez-vous de niveaux de tension appropriés pour éviter les dommages.
Utilisez des résistances de tirage pour le bouton-poussoir afin d'assurer des lectures stables.
Les condensateurs de découplage peuvent aider à stabiliser l'alimentation électrique.
Soyez prudent avec le câblage du thermistor pour éviter des lectures incorrectes.
Vérifiez les détails de votre courtier MQTT pour une connexion réussie.
Instructions de câblage
esp32-47-mqtt-wiring
Pour câbler les composants, commencez par connecter le thermistor NTC. Connectez une broche du thermistor à l'alimentation de 3,3 V de l'ESP32. L'autre broche se connecte à la broche 36 de l'ESP32, et elle doit également se connecter à une résistance de 10 kΩ, qui est ensuite reliée à la terre. Cela crée un diviseur de tension qui permet à l'ESP32 de lire la résistance du thermistor.
Ensuite, connectez la LED. La broche la plus longue (anode) de la LED se connecte à la broche 4 de l'ESP32 à travers une résistance de 220 Ω, tandis que la broche la plus courte (cathode) se connecte à la masse. Pour le bouton-poussoir, connectez un côté à 3,3 V et l'autre côté à la broche 14 de l'ESP32. De plus, connectez une résistance de 10 kΩ entre la broche du bouton et la masse pour garantir un état bas stable lorsque le bouton n'est pas enfoncé.
Installer la bibliothèque requise
LePubSubClientla bibliothèque est utilisée ici, vous pouvez l'installer depuis leGestionnaire de bibliothèque.
esp32-47-bibliothèque-mqtt
Exemples de code et guide étape par étape
Dans la configuration, nous initialisons la communication série, établissons la connexion Wi-Fi et configurons le serveur MQTT. Voici un extrait du code de configuration :
Cette partie du code établit la connexion au réseau Wi-Fi et configure le serveur MQTT. Les modes de broche pour le bouton et la LED sont également configurés ici.
La fonction boucle vérifie en continu l'état du bouton et publie les données de température lorsqu'il est pressé. Voici un extrait ciblé de la boucle :
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
if (digitalRead(buttonPin)) {
long now = millis();
if (now - lastMsg > 5000) {
lastMsg = now;
char tempString[8];
dtostrf(thermistor(), 1, 2, tempString);
client.publish("SF/TEMP", tempString);
}
}
}
Dans cette boucle, nous vérifions si l'ESP32 est connecté au broker MQTT. Si le bouton est enfoncé, il lit la température du thermistor et la publie sur le sujet "SF/TEMP" toutes les 5 secondes.
Démonstration / À quoi s'attendre
Lorsque le projet est configuré et en cours d'exécution, appuyer sur le bouton publiera la température actuelle sur le courtier MQTT. Vous pouvez surveiller ces données depuis n'importe quel client MQTT. De plus, vous pouvez envoyer des messages pour contrôler la LED ; envoyer "on" l'allumera, tandis que "off" l'éteindra. Regardez le comportement attendu dans la vidéo à 15:30, où les relevés de température sont montrés après chaque pression sur le bouton.
Horodatages vidéo
00:00 Début
2:05 Introduction au projet
7:06 Service HiveMQ gratuit
7:56 Explication du câblage
11:11 Code Arduino expliqué
18:46 Sélection de la carte ESP32 et du port COM dans l'IDE Arduino
20:30 Démonstration du courtier HiveMQ Free
Images
esp32-47-mqt-1
esp32-47-mqt-2
esp32-47-mqtt-library
esp32-47-mqtt-wiring
esp32-47-mqt-1
esp32-47-mqt-2
esp32-47-mqtt-library
esp32-47-mqtt-wiring
847-ESP32 Tutorial 46/55- Arduino code for IoT Communication with MQTT