ESP32 S3 - Capteur de température - OLED

Apprenez à connecter un capteur de température à fil unique DS18B20 à un ESP32 S3 et à afficher des relevés de température en direct sur un écran OLED SSD1306. Ce tutoriel vous accompagne à travers chaque étape, du câblage du matériel au téléversement du code final, afin que vous puissiez voir des données de température réelles sur un écran OLED net en quelques minutes.

Ce que vous allez construire :

  1. Un circuit connectant le capteur DS18B20 et l'OLED SSD1306 à l'ESP32 S3
  2. Un firmware qui lit la température en Celsius et en Fahrenheit depuis le capteur à fil unique DS18B20
  3. Un écran OLED qui se met à jour en temps réel, affichant la température centrée à l'écran
  4. Une base que vous pouvez étendre en stations météo, enregistreurs de données, et affichages de maison intelligente
ESP32 S3 Temperature Sensor OLED

Matériel nécessaire

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×Écran OLED I2C SSD1306 128x64
1×Écran OLED I2C SSD1306 128x32
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×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é.

Note d'achat: Si vous souhaitez un écran OLED plus grand, utilisez le ESP32 S3 - Écran OLED SSD1309 128x64 | Tutoriel OLED I2C 2,42 pouces.

À propos de l'OLED et du capteur de température DS18B20

L'OLED SSD1306 et le capteur de température à fil unique DS18B20 sont deux des composants les plus utilisés dans les projets ESP32 S3, car les deux sont peu coûteux, faciles à câbler, et bien pris en charge par des bibliothèques Arduino matures. L'OLED communique via I2C en utilisant seulement deux fils de signal, tandis que le DS18B20 utilise une seule ligne de données avec une résistance de pull-up et prend en charge la lecture de plusieurs capteurs sur le même fil. Si vous voulez une compréhension plus approfondie de l'un ou l'autre composant avant de continuer, les tutoriels dédiés ci-dessous couvrent entièrement le brochage, les principes de fonctionnement, et des exemples de code autonomes.

Références clés

Schéma de câblage

Connecter l'ESP32 S3 à la fois au capteur DS18B20 et à l'écran OLED ne nécessite qu'une poignée de fils de câblage, car l'OLED utilise I2C et le capteur utilise une seule ligne de données. Utiliser un module DS18B20 qui inclut une carte adaptateur intégrée est fortement recommandé, car la résistance embarquée de l'adaptateur élimine le besoin d'ajouter une résistance de pull-up 4,7 kΩ séparée sur votre plaque d'essai.

Notes de sécurité

Alimentez toujours l'OLED SSD1306 depuis le rail 3,3 V de l'ESP32 S3 — appliquer 5 V directement à un écran uniquement 3,3 V l'endommagera de façon permanente. Le DS18B20 tolère à la fois le 3,3 V et le 5 V, mais utiliser 3,3 V garde tout sur un seul rail d'alimentation et évite toute préoccupation de conversion de niveau. Si vous utilisez le capteur DS18B20 brut sans adaptateur, placez une résistance de 4,7 kΩ entre la broche DATA et VCC ; sans elle, le bus à fil unique ne fonctionnera pas de façon fiable.

  • Comment connecter l'ESP32 S3 avec le capteur de température et l'OLED en utilisant une plaque d'essai
ESP32 S3 Temperature Sensor OLED Wiring Diagram

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

Les fils des modules et les fils épais tiennent souvent mal dans les connecteurs femelles. Placez la carte ESP32 S3 sur une carte à bornier à vis pour ESP32 S3, puis serrez chaque fil sous une vis. Voir le schéma ci-dessous pour la version avec borniers à vis.

ESP32 S3 Temperature Sensor OLED Wiring Diagram (Screw Terminal)

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

Voici le même circuit avec une carte d'extension GPIO pour ESP32 S3, qui relie chaque GPIO à des connecteurs à broches :

ESP32 S3 Temperature Sensor OLED Wiring Diagram (GPIO Breakout Board)

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

How to connect ESP32 S3 with temperature sensor and OLED

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

Broche du capteur DS18B20 Broche ESP32 S3
VCC 3,3V
GND GND
DATA GPIO1 (ou n'importe quelle broche numérique)

Nous vous suggérons d'acheter un capteur DS18B20 fourni avec un adaptateur de câblage pour une connexion facile. L'adaptateur possède une résistance intégrée, éliminant le besoin d'en ajouter une séparée dans le câblage.

Code ESP32 S3 - Température depuis le DS18B20 et affichage sur l'OLED

Le code suivant initialise à la fois l'OLED SSD1306 via I2C et le capteur DS18B20 sur sa broche de données à fil unique, puis entre dans une boucle qui lit la température actuelle et l'affiche centrée à l'écran OLED toutes les deux secondes. Les valeurs Celsius et Fahrenheit sont toutes deux calculées afin que vous puissiez choisir quelle unité afficher avec un simple changement dans le code source.

/* * 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-oled */ /* * 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-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define SENSOR_PIN 1 // The ESP32-S3 pin GPIO1 connected to DS18B20 sensor's data pin Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library String temperature; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(2); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display DS18B20.begin(); // initialize the sensor temperature.reserve(10); // to avoid fragmenting memory when using String } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float tempCelsius = DS18B20.getTempCByIndex(0); // read temperature in Celsius temperature = String(tempCelsius, 2); // two decimal places temperature += char(247) + String("C"); Serial.println(temperature); // print the temperature in Celsius to Serial Monitor oledDisplayCenter(temperature); } void oledDisplayCenter(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Préparez le câblage : connectez le capteur DS18B20 et l'OLED SSD1306 à votre ESP32 S3 selon le schéma de câblage ci-dessus.
  3. Connectez à l'ordinateur : branchez l'ESP32 S3 à votre ordinateur avec un câble USB Type-C.
  4. Ouvrez Arduino IDE : lancez Arduino IDE sur votre ordinateur.
  5. Sélectionnez votre carte : choisissez ESP32 S3 dans le sélecteur de carte et sélectionnez le bon port COM.
  6. Installez la bibliothèque OLED : cliquez sur l'icône Libraries sur la barre de gauche d'Arduino IDE.
  7. Recherchez SSD1306 : tapez "SSD1306" dans le champ de recherche et trouvez la bibliothèque SSD1306 d'Adafruit.
  8. Installez la bibliothèque : cliquez sur le bouton Install pour installer la bibliothèque.
  • Search for Adafruit SSD1306 created by Adafruit 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
Adafruit SSD1306 by Adafruit
SSD1306 oled driver library for monochrome 128x64 and 128x32 displays More info
2.5.9
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Installez les dépendances : lorsque demandé, cliquez sur Install All pour installer toutes les dépendances de bibliothèque nécessaires, y compris Adafruit GFX.
  2. Installez DallasTemperature : recherchez "DallasTemperature" dans le champ de recherche, puis cherchez la bibliothèque DallasTemperature de Miles Burton.
  3. Installez : cliquez sur le bouton Install pour installer la bibliothèque DallasTemperature.
  • 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 : lorsqu'on vous demande d'installer la dépendance, cliquez sur Install All pour installer la bibliothèque OneWire.
  2. Téléversez le code : copiez le code ci-dessus, collez-le dans Arduino IDE, et cliquez sur le bouton Upload.
  3. Testez le capteur : mettez le capteur dans de l'eau chaude ou froide, ou saisissez-le avec votre main pour changer sa température.
  4. Consultez le résultat : regardez la température se mettre à jour en direct sur l'écran OLED.
ESP32 S3 displays temperature on OLED

※ Note:

Le code centre automatiquement le texte de température à la fois horizontalement et verticalement sur l'écran OLED.

Sortie du Serial Monitor

Ouvrez le Serial Monitor à 115200 bauds pour voir les valeurs brutes de température telles qu'elles sont lues depuis le capteur DS18B20, ce qui est utile pour le débogage avant que l'écran OLED soit connecté.

∞
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:01:02] Temperature: 24.12°C ~ 75.42°F [2026-06-16 09:01:04] Temperature: 24.25°C ~ 75.65°F [2026-06-16 09:01:06] Temperature: 35.50°C ~ 95.90°F [2026-06-16 09:01:08] Temperature: 36.10°C ~ 97.00°F
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications et idées de projets

L'ESP32 S3 associé à un capteur DS18B20 et à un OLED SSD1306 forme un module d'affichage de température autonome qui s'adapte à un large éventail de projets réels. Voici des façons concrètes de mettre ce circuit au travail :

  1. Thermomètre autonome : construisez un thermomètre portable alimenté par pile qui affiche la température sur l'OLED sans aucune connexion série.
  2. Moniteur de température d'aquarium : immergez la sonde DS18B20 étanche pour suivre la température de l'eau et alerter quand elle sort de la plage.
  3. Station météo domestique : placez des capteurs dans plusieurs pièces et enregistrez les relevés via WiFi vers un tableau de bord ou une base de données cloud.
  4. Sonde alimentaire : utilisez la version étanche du DS18B20 pour surveiller les températures de cuisson ou de fermentation avec un affichage OLED clair.
  5. Surveillance de salle serveur : surveillez en continu la température de la baie et déclenchez un relais d'alarme si elle dépasse un seuil sûr.
  6. Contrôleur de serre : lisez la température du sol ou de l'air et pilotez automatiquement l'équipement de ventilation ou de chauffage.
  7. Thermostat DIY : combinez avec un module relais pour construire un contrôleur de température intelligent pour tout système de chauffage ou de refroidissement.

Tutoriel vidéo

Regardez la vidéo pas à pas de ce projet ESP32 S3 ci-dessous.

Mettez-vous au défi

Maintenant que votre ESP32 S3 lit la température depuis le DS18B20 et l'affiche sur un OLED, poussez le projet plus loin avec ces défis progressivement plus difficiles :

  1. Débutant : ajoutez une deuxième ligne à l'OLED qui affiche la température en Fahrenheit sous le relevé en Celsius.
  2. Débutant : ajoutez un indicateur LED qui s'allume quand la température dépasse 30 °C comme avertissement simple de surchauffe.
  3. Intermédiaire : connectez deux capteurs DS18B20 sur le même fil de données et affichez les deux relevés simultanément sur l'OLED, en utilisant la fonctionnalité d'adressage multi-capteurs du fil unique.
  4. Intermédiaire : enregistrez des relevés de température horodatés sur une carte microSD afin de pouvoir analyser des données historiques sur des heures ou des jours.
  5. Avancé : construisez un serveur web ESP32 S3 qui affiche un graphique de température en direct dans le navigateur, en récupérant les données du DS18B20 toutes les cinq secondes via un appel AJAX.
  6. Avancé : ajoutez une publication MQTT via WiFi afin que la température apparaisse sur un tableau de bord Home Assistant et déclenche des automatisations quand des seuils sont dépassés.

※ 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 !