ESP32 - Capteur de température - OLED

Ce tutoriel vous explique comment utiliser un ESP32 et du code MicroPython pour lire la température d'un capteur DS18B20 et l'afficher sur un écran OLED I2C.

ESP32 MicroPython Capteur de température OLED I2C

Préparation du matériel

1×Module de développement ESP32 ESP-WROOM-32
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×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour ESP32
1×Recommandé: Breakout Expansion Board for ESP32
1×Recommandé: Répartiteur d'alimentation pour ESP32

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 (ESP32 inclus)
1×Kit de Capteurs DIYables (30 capteurs/écrans)
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 l'écran OLED

Si vous débutez avec le capteur de température DS18B20, l'écran OLED I2C ou la programmation MicroPython sur l'ESP32, je vous recommande de consulter ces tutoriels :

Ces tutoriels vous offriront une compréhension approfondie du capteur de température DS18B20 et de l'OLED, de la manière de connecter ces composants à l'ESP32 et de la façon de contrôler efficacement leur comportement à l'aide du code MicroPython.

Diagramme de câblage

  • Comment connecter l'ESP32 à un capteur de température et à un OLED en utilisant breadboard
Schéma de câblage ESP32 MicroPython pour capteur de température et écran OLED

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

Comment connecter l'ESP32 à un capteur de température et à un écran OLED.

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

Code MicroPython pour ESP32

/* * Ce code ESP32 MicroPython a été développé par newbiely.fr * Ce code ESP32 MicroPython 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-micropython/esp32-micropython-temperature-sensor-oled */ import machine import onewire import ds18x20 import time from machine import I2C, Pin from DIYables_MicroPython_OLED import OLED_SSD1306_I2C ds_pin = machine.Pin(23) # The ESP32 pin GPIO23 connected to the DS18B20 sensor # Create the onewire object OneWire = onewire.OneWire(ds_pin) # Create the DS18X20 object DS18B20 = ds18x20.DS18X20(OneWire) # Scan for devices on the bus sensor_addresses = OneWire.scan() if not sensor_addresses: raise Exception("No DS18B20 sensor found!") sensor_address = sensor_addresses[0] print('Found DS18B20 sensor with address: ', sensor_address) # Initialize I2C i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000) # Adjust ESP32 pins according to your setup # Initialize the OLED display oled = OLED_SSD1306_I2C(128, 64, i2c) # Clear the display oled.clear_display() oled.set_text_size(3) oled.display() def oled_display_center(oled, text): # Get the text bounds (width and height) of the string oled.clear_display() x1, y1, width, height = oled.get_text_bounds(text, 0, 0) # Set cursor to the calculated centered position cursor_x = (oled.WIDTH - width) // 2 cursor_y = (oled.HEIGHT - height) // 2 oled.set_cursor(cursor_x, cursor_y) # Print the text on the display oled.println(text) # Refresh the display to show the text oled.display() # Main loop to read and print the temperature every second while True: DS18B20.convert_temp() time.sleep_ms(750) temperature = DS18B20.read_temp(sensor_address) print('Temperature: {:.2f} °C'.format(temperature)) oled_display_center(oled, "{:.2f}".format(temperature) + OLED_SSD1306_I2C.DEGREE_SYMBOL + "C") time.sleep(1)

Étapes rapides

Voici des instructions sur la façon de configurer et d'exécuter votre code MicroPython sur l'ESP32 en utilisant l'IDE Thonny :

  • Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
  • Confirmez que le micrologiciel MicroPython est chargé sur votre carte ESP32.
  • Si c'est la première fois que vous utilisez une ESP32 avec MicroPython, consultez le guide ESP32 - Premiers pas. pour obtenir des instructions étape par étape.
  • Connectez la carte ESP32 au capteur de température DS18B20 et à l'OLED I2C selon le schéma fourni.
  • Connectez la carte ESP32 à votre ordinateur avec un câble USB.
  • Ouvrez l'IDE Thonny sur votre ordinateur.
  • Dans l'IDE Thonny, allez dans Outils Options.
  • Sous l'onglet Interpréteur, choisissez MicroPython (ESP32) dans le menu déroulant.
  • Assurez-vous que le bon port est sélectionné. L'IDE Thonny le détecte généralement automatiquement, mais vous devrez peut-être le sélectionner manuellement (comme COM12 sous Windows ou /dev/ttyACM0 sous Linux).
  • Accédez à Outils Gérer les paquets dans l'IDE Thonny.
  • Recherchez “DIYables-MicroPython-OLED”, puis trouvez la bibliothèque OLED créée par DIYables.
  • Cliquez sur DIYables-MicroPython-OLED, puis cliquez sur le bouton Install pour installer la bibliothèque OLED.
Bibliothèque OLED MicroPython pour ESP32
  • Copiez le code MicroPython fourni et collez-le dans l'éditeur de Thonny.
  • Enregistrez le code sur votre ESP32 en procédant comme suit :
    • Cliquer sur le bouton Enregistrer ou appuyer sur Ctrl+S.
    • Dans la boîte de dialogue d'enregistrement, choisissez le périphérique MicroPython.
    • Nommez le fichier main.py.
  • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot MPY: soft reboot Found DS18B20 sensor with address: bytearray(b'(\xffP\x05.\x04\x00\x07') Temperature: 26.07 °C Temperature: 26.11 °C Temperature: 26.11 °C Temperature: 26.24 °C Temperature: 27.44 °C Temperature: 29.10 °C Temperature: 29.86 °C Temperature: 30.24 °C Temperature: 30.39 °C
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
  • Posez le capteur sur de l'eau chaude ou froide, ou tenez-le dans votre main.
  • Regardez l'affichage sur l'écran OLED. Il ressemble à l'image ci-dessous :
L'ESP32 affiche la température sur l'écran OLED

Explication du code

Regardez les commentaires dans le code source pour obtenir des explications sur chaque ligne !

Vidéo

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