ESP32 S3 - Capteur de température - Matrice de LED

Ce tutoriel vous montre comment utiliser l'ESP32 S3 pour lire des données de température depuis un capteur one-wire DS18B20 et les afficher en direct sur une matrice de LED FC-16. En combinant deux périphériques populaires sur une seule carte, vous construisez un affichage de température autonome qui fait défiler le relevé actuel sur la matrice de LED sans aucun ordinateur une fois programmé.

Ce que vous allez construire :

  1. Un circuit connectant le capteur de température DS18B20 et la matrice de LED FC-16 à l'ESP32 S3
  2. Un code Arduino qui lit la température depuis le DS18B20 et l'écrit sur la matrice de LED en temps réel
  3. Un affichage défilant qui montre les valeurs Celsius et Fahrenheit sur la matrice de LED
  4. Une base que vous pouvez étendre en stations météo, panneaux intelligents, ou moniteurs environnementaux
ESP32 S3 - Temperature Sensor - LED Matrix

Matériel Requis

1×ESP32 S3 WROOM N16R8
1×Alternativement: ESP32 S3 SuperMini Dev Module
1×Alternativement: ESP32 S3 Uno-form Board
1×Alternativement: ESP32 S3 Camera Board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×FC-16 LED Matrix 32x8
1×Capteur de température DS18B20 (avec adaptateur)
1×Capteur de température DS18B20 (sans adaptateur)
1×Plaque d'essai
1×Fils de connexion
1×Optionnel: Connecteur d'alimentation DC
1×Recommandé: Screw Terminal Expansion Board for ESP32 S3
1×Recommandé: Breakout Expansion Board for ESP32 S3
1×Recommandé: Power Splitter for ESP32 S3

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Note d'achat: De nombreux capteurs DS18B20 sur le marché sont de faible qualité. Nous recommandons vivement d'acheter le capteur de la marque DIYables en utilisant le lien ci-dessus. Nous l'avons testé et il a bien fonctionné.

À propos du capteur de température et de la matrice de LED

Le capteur de température DS18B20 et la matrice de LED FC-16 sont deux composants polyvalents qui fonctionnent bien ensemble sur l'ESP32 S3. Le DS18B20 utilise un protocole 1-Wire à un seul fil pour délivrer des relevés de température numériques précis, tandis que la matrice de LED FC-16 utilise une simple interface SPI pilotée par la puce MAX7219 pour afficher du texte et des nombres défilants sur une grille de 32×8. Les combiner vous permet de construire un panneau de température autonome qui se met à jour en continu sans matériel d'affichage supplémentaire.

Nous avons des tutoriels dédiés couvrant chaque composant individuellement avec des informations complètes sur le brochage, des schémas de câblage, et des exemples de code autonomes. Consultez-les avant de commencer ce projet si vous n'êtes pas encore familier avec l'un ou l'autre de ces périphériques :

Spécifications clés

Le DS18B20 fonctionne entre 3,0V et 5,5V et est entièrement compatible avec les broches GPIO 3,3V de l'ESP32 S3. Il mesure des températures de -55°C à +125°C avec une précision de ±0,5°C entre -10°C et +85°C, et prend en charge plusieurs capteurs sur un seul fil de données. La matrice de LED FC-16 est constituée de blocs 8×8 chaînés ensemble et pilotés par des puces MAX7219 via SPI ; un module 4-en-1 fournit un affichage 32×8 contrôlé par seulement trois broches de signal. Comme la matrice de LED peut tirer jusqu'à 1 A à luminosité maximale, elle doit être alimentée par une source 5V externe plutôt que par la broche 5V embarquée de l'ESP32 S3.

Schéma de câblage

Connectez le capteur de température DS18B20 et la matrice de LED FC-16 à votre ESP32 S3 en suivant les schémas ci-dessous. Les deux composants partagent le même rail de masse, et utiliser un module adaptateur DS18B20 avec une résistance de tirage vers le haut intégrée simplifie la construction en éliminant le besoin d'une résistance séparée de 4,7 kΩ.

Notes de sécurité

Alimentez le DS18B20 depuis la broche 3,3V de l'ESP32 S3 pour rester dans sa plage de fonctionnement recommandée. Alimentez la matrice de LED depuis une source 5V externe plutôt que depuis la broche 5V embarquée de l'ESP32 S3, car la matrice peut tirer suffisamment de courant pour causer une instabilité si elle est alimentée directement depuis la carte. Connectez ensemble la masse de l'alimentation 5V externe, de la matrice de LED, et de l'ESP32 S3 afin qu'elles partagent une référence commune. Si vous utilisez le boîtier DS18B20 nu TO-92 sans adaptateur, n'omettez jamais la résistance de tirage vers le haut de 4,7 kΩ entre les lignes DATA et VCC, car le protocole 1-Wire l'exige pour une communication fiable.

Schéma de câblage :

ESP32 S3 Temperature Sensor LED Matrix Wiring Diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Vous voulez que le câblage reste bien en place ? La carte ESP32 S3 se branche sur une carte à bornier à vis pour ESP32 S3, qui transforme chaque broche en bornier à vis. Voici le même circuit câblé avec la carte à bornier à vis :

ESP32 S3 Temperature Sensor LED Matrix Wiring Diagram (Screw Terminal)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Une autre solution est une carte d'extension GPIO pour ESP32 S3. Chaque GPIO a une broche de signal avec une broche 3,3V et une broche GND à côté, comme ci-dessous :

ESP32 S3 Temperature Sensor LED Matrix Wiring Diagram (GPIO Breakout Board)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Connexions du capteur de température DS18B20 :

Broche DS18B20 Broche ESP32 S3
GND GND
VCC 3.3V
DATA GPIO1 (ou toute broche numérique)

Connexions de la matrice de LED FC-16 :

Broche de la matrice de LED Broche ESP32 S3
VCC 5V externe
GND GND (partagée avec l'ESP32 S3)
DIN GPIO40 (MOSI)
CS GPIO39 (ou toute broche numérique)
CLK GPIO38 (SCK)

Code ESP32 S3

Le code suivant lit la température depuis le capteur DS18B20 en utilisant la bibliothèque DallasTemperature et fait défiler le relevé Celsius actuel sur l'affichage de la matrice de LED FC-16, en mettant à jour le message toutes les deux secondes. Il initialise le bus 1-Wire sur la broche de données configurée, demande une conversion de température, formate le résultat en chaîne de caractères, puis utilise la bibliothèque MD_Parola pour le faire défiler sur la matrice. Les bibliothèques DallasTemperature et MD_Parola gèrent toutes deux la communication de bas niveau, gardant votre sketch concis et facile à adapter.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-temperature-sensor-led-matrix */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-temperature-sensor-led-matrix */ #include <OneWire.h> #include <DallasTemperature.h> #include <MD_Parola.h> #include <MD_MAX72xx.h> #define SENSOR_PIN 1 // ESP32-S3 pin GPIO1 connected to DS18B20 sensor's DQ pin #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define DATA_PIN 40 // ESP32-S3 pin GPIO40 connected to DIN pin of LED Matrix #define CLK_PIN 38 // ESP32-S3 pin GPIO38 connected to CLK pin of LED Matrix #define CS_PIN 39 // ESP32-S3 pin GPIO39 connected to CS pin of LED Matrix OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES); float tempC; // temperature in Celsius float tempF; // temperature in Fahrenheit String tempString; void setup() { Serial.begin(115200); DS18B20.begin(); // initialize the sensor ledMatrix.begin(); // initialize the LED Matrix ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear LED matrix display ledMatrix.setTextAlignment(PA_CENTER); tempString.reserve(10); // enough for the float + degree symbol + "C" } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures tempC = DS18B20.getTempCByIndex(0); // read temperature in Celsius tempF = tempC * 9 / 5 + 32; // convert Celsius to Fahrenheit // print temperature to Serial Monitor Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); // display temperature in Celsius at the center of the LED Matrix tempString = String(tempC, 1); tempString += (char)176; // degree symbol in the MD_MAX72XX font tempString += "C"; ledMatrix.print(tempString.c_str()); delay(2000); // wait 2 seconds before taking the next reading }

※ Note:

Le code centre automatiquement le texte de température horizontalement et verticalement sur l'affichage de la matrice de LED.

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Ouvrez le gestionnaire de bibliothèques : Cliquez sur l'icône Libraries dans la barre latérale gauche d'Arduino IDE.
  3. Installez MD_Parola : Saisissez "MD_Parola" dans la zone de recherche, trouvez la bibliothèque MD_Parola, et cliquez sur Install.
  • Search for MD_Parola created by majicDesigns and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
MD_Parola by majicDesigns
Implemented using the MD_MAX72xx library for hardware control. Provides functions to simplify the implementation of text special effects on the LED matrix. More info
3.7.2
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Installez la dépendance : Lorsque demandé, cliquez sur Install All pour installer également la bibliothèque MD_MAX72XX requise.
  2. Installez DallasTemperature : Saisissez "DallasTemperature" dans la zone de recherche, trouvez la bibliothèque de Miles Burton, et cliquez sur Install.
  • Search for DallasTemperature created by Miles Burton , Tim Newsome , Guil Barros , Rob Tillaart and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
DallasTemperature by Miles Burton , Tim Newsome , Guil Barros , Rob Tillaart
Supports DS18B20, DS18S20, DS1822, DS1820 More info
3.9.0
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Installez OneWire : Lorsque demandé, cliquez sur Install All pour installer également la bibliothèque OneWire requise.
ESP32 S3 onewire library
  1. Câblez les composants : Suivez le schéma de câblage ci-dessus pour connecter à la fois le capteur DS18B20 et la matrice de LED à votre ESP32 S3.
  2. Connectez votre carte : Branchez l'ESP32 S3 à votre ordinateur à l'aide d'un câble USB Type-C.
  3. Sélectionnez votre carte : Dans Arduino IDE, choisissez la carte ESP32 S3 et le bon port COM.
  4. Téléversez le code : Copiez le code ci-dessus, collez-le dans Arduino IDE, et cliquez sur le bouton Upload.
  5. Observez la matrice de LED : L'affichage fera défiler la température actuelle en Celsius toutes les deux secondes.
  6. Testez le capteur : Tenez la sonde DS18B20 dans votre main ou placez-la dans de l'eau chaude ou froide pour voir le relevé changer sur la matrice.
  7. Astuce : Si les relevés affichent -127°C sur la matrice, vérifiez le câblage de votre DS18B20 — cette valeur d'erreur signifie presque toujours une résistance de tirage vers le haut manquante ou un fil DATA mal fixé.

Sortie du Serial Monitor

Une fois le code téléversé et le Serial Monitor ouvert à 115200 bauds, vous verrez des relevés de température affichés toutes les deux secondes en parallèle de ce qui défile sur la matrice de LED. La sortie ci-dessous montre une session typique pendant que le capteur se réchauffe depuis la température ambiante.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 09:12:01] Temperature: 23.12°C ~ 73.62°F [2026-06-16 09:12:03] Temperature: 23.25°C ~ 73.85°F [2026-06-16 09:12:05] Temperature: 23.44°C ~ 74.19°F [2026-06-16 09:12:07] Temperature: 23.62°C ~ 74.52°F
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications et idées de projets

Combiner un capteur de température et une matrice de LED avec l'ESP32 S3 est idéal pour toute situation où la température doit être visible à distance sans moniteur ni écran. Voici des façons pratiques d'utiliser ce projet :

  1. Panneau de température extérieur : Montez la matrice de LED à une fenêtre ou une entrée pour montrer la température ambiante d'un coup d'œil depuis l'autre bout d'une pièce.
  2. Indicateur de salle serveur : Affichez la température du rack sur un panneau matriciel afin que les techniciens puissent repérer une surchauffe sans se connecter à un tableau de bord.
  3. Thermomètre de serre : Faites défiler les données de température sur un affichage visible à l'intérieur d'une serre afin que les travailleurs connaissent les conditions sans vérifier un téléphone.
  4. Affichage de sécurité d'atelier : Montrez la température dans les environnements où la chaleur est un danger, donnant aux travailleurs un avertissement visible quand les conditions changent.
  5. Démonstration de classe de sciences : Utilisez l'affichage de température défilant comme une expérience en direct pour montrer comment la température change avec des sources de chaleur ou de l'isolation.
  6. Affichage de rayon de vente : Combinez avec un relais pour déclencher des ventilateurs ou des alertes lorsqu'un boîtier surveillé dépasse un seuil, la matrice montrant l'état actuel.

Vidéo

Regardez ci-dessous le tutoriel vidéo étape par étape de ce projet ESP32 S3.

Défis

Essayez ces défis pour approfondir votre compréhension de la combinaison du capteur de température DS18B20 et de la matrice de LED avec l'ESP32 S3.

  1. Débutant : Modifiez le code pour faire défiler à la fois les valeurs Celsius et Fahrenheit dans le même message, séparées par une barre oblique, afin que le relevé complet boucle en continu.
  2. Intermédiaire : Ajoutez un second capteur DS18B20 sur le même fil de données et alternez l'affichage de la température de chaque capteur sur des cycles de défilement successifs.
  3. Avancé : Construisez un panneau de température connecté au Wi-Fi où vous pouvez mettre à jour le message d'affichage à distance via une interface web simple hébergée sur l'ESP32 S3, mélangeant les relevés de capteur en direct avec du texte personnalisé.

Commentaires

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !