Arduino UNO Q - Capteur de Température - LCD

Vous souhaitez afficher des lectures de température en direct sur un LCD avec votre Arduino UNO Q — et recevoir des alertes Telegram quand il fait trop chaud ? Ce tutoriel combine le capteur de température DS18B20 avec un LCD I2C pour créer une station de surveillance de température complète.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q Capteur de Température LCD

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×LCD I2C 16x2
1×Alternativement: LCD I2C 20x4
1×Capteur de température DS18B20 (avec adaptateur)
1×Capteur de température DS18B20 (sans adaptateur)
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

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: Une autre option consiste à créer l'écran LCD I2C en associant LCD 1602 Display et PCF8574 I2C Adapter Module.

À Propos du Capteur de Température et du LCD

Si vous êtes nouveau sur le capteur DS18B20 ou l'écran LCD I2C, consultez d'abord ces tutoriels :

Schéma de Câblage

Schéma de Câblage Arduino UNO Q Capteur de Température LCD

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

Connexions DS18B20 :

Broche DS18B20 MCU Arduino UNO Q
GND GND
VCC 3,3V ou 5V
DATA D4

Connexions LCD I2C :

Broche LCD I2C MCU Arduino UNO Q
VCC 5V
GND GND
SDA A4
SCL A5

Code Arduino UNO Q

L'Arduino UNO Q possède deux processeurs fonctionnant ensemble :

  • Le MCU STM32 lit le capteur DS18B20 et pilote directement le LCD
  • Le MPU Qualcomm exécute Debian Linux et gère le Wi-Fi, Python et la connectivité cloud
  • Dans cette section, seul le MCU est programmé — le côté Linux reste inactif. Une section ultérieure montre comment les deux processeurs fonctionnent ensemble via Bridge.

Le MCU lit la température chaque seconde et met à jour l'écran LCD et le Moniteur Série.

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-temperature-sensor-lcd */ #include <OneWire.h> #include <DallasTemperature.h> #include <DIYables_LCD_I2C.h> #define SENSOR_PIN 4 // Arduino UNO Q MCU pin connected to DS18B20 DATA pin OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); DIYables_LCD_I2C lcd(0x27, 16, 2); float temperature_C; float temperature_F; void setup() { Serial.begin(115200); delay(1500); DS18B20.begin(); lcd.init(); lcd.backlight(); lcd.print("Temp Sensor Ready"); Serial.println("Arduino UNO Q Temperature Sensor + LCD ready"); } void loop() { DS18B20.requestTemperatures(); temperature_C = DS18B20.getTempCByIndex(0); temperature_F = temperature_C * 9.0 / 5.0 + 32.0; lcd.clear(); lcd.setCursor(0, 0); lcd.print(temperature_C); lcd.print((char)223); // degree symbol lcd.print("C"); lcd.setCursor(0, 1); lcd.print(temperature_F); lcd.print((char)223); lcd.print("F"); Serial.print("Temperature: "); Serial.print(temperature_C); Serial.print("°C ~ "); Serial.print(temperature_F); Serial.println("°F"); delay(1000); }

※ Note:

L'adresse I2C du LCD peut changer selon le fabricant. Dans ce code, nous utilisons 0x27, qui est l'adresse donnée par le fabricant DIYables.

Étapes Rapides

Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q avant de continuer.

  • Connecter : Câblez le capteur DS18B20 et le LCD I2C au MCU de l'Arduino UNO Q comme indiqué dans le schéma de câblage ci-dessus.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : TemperatureSensorLcd
  • Cliquez sur Créer pour confirmer.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans sketch/sketch.ino. Laissez les autres fichiers par défaut.
  • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
Add sketch library in Arduino App Lab on Arduino UNO Q
  • Search for DallasTemperature created by Miles Burton , Tim Newsome , Guil Barros , Rob Tillaart and click the Install button.
My Apps / DIYables Apps
Run
Bricks
No bricks added...
Sketch Libraries
No sketch libra...
Files
python
sketch
.gitignore
README.md
app.yaml
sketch.ino
Add sketch library
DallasTemperature Miles Burton , Tim Newsome , Guil Barros , Rob Tillaart

Supports DS18B20, DS18S20, DS1822, DS1820

3.9.0
Install
More Info
  • Search for OneWire created by Jim Studt, Tom Pollard, Robin James, Glenn Trewitt, Jason Dangel, Guillermo Lovato, Paul Stoffregen, Scott Roberts, Bertrik Sikken, Mark Tillotson, Ken Butcher, Roger Clark, Love Nystrom and click the Install button.
My Apps / DIYables Apps
Run
Bricks
No bricks added...
Sketch Libraries
No sketch libra...
Files
python
sketch
.gitignore
README.md
app.yaml
sketch.ino
Add sketch library
OneWire Jim Studt, Tom Pollard, Robin James, Glenn Trewitt, Jason Dangel, Guillermo Lovato, Paul Stoffregen, Scott Roberts, Bertrik Sikken, Mark Tillotson, Ken Butcher, Roger Clark, Love Nystrom

2.3.8
Install
More Info
  • Search for DIYables LCD I2C created by DIYables.io and click the Install button.
My Apps / DIYables Apps
Run
Bricks
No bricks added...
Sketch Libraries
No sketch libra...
Files
python
sketch
.gitignore
README.md
app.yaml
sketch.ino
Add sketch library
DIYables LCD I2C DIYables.io

This library is designed for HD44780-based I2C LCD displays. It provides LiquidCrystal-compatible API plus helper functions (text alignment, progress bars, predefined custom characters). Supports multiple I2C buses (Wire, Wire1, Wire2) for advanced boards like Arduino Giga, Due, and ESP32. Compatible with all Arduino-based platforms including Arduino Uno, Mega, Nano, ESP32, ESP8266, STM32, and Raspberry Pi Pico.

1.0.0
Install
More Info
  • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Tenez le capteur dans votre main ou plongez-le dans de l'eau chaude/froide — regardez la température se mettre à jour sur le LCD.

Si le LCD n'affiche rien, consultez Dépannage pour LCD I2C pour obtenir de l'aide.

Sortie de la Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-04-29 09:00:01] Arduino UNO Q Temperature Sensor + LCD ready [2026-04-29 09:00:02] Temperature: 26.31°C ~ 79.36°F [2026-04-29 09:00:03] Temperature: 26.44°C ~ 79.59°F [2026-04-29 09:00:04] Temperature: 27.06°C ~ 80.71°F [2026-04-29 09:00:05] Temperature: 28.50°C ~ 83.30°F

Bridge : Linux + MCU

Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q pour que le côté Linux puisse surveiller la température à distance via Bridge :

  • Le capteur DS18B20 et le LCD sont tous deux connectés au MCU (STM32) — le MCU lit la température chaque seconde et met à jour l'écran LCD automatiquement
  • Le MPU ne peut pas accéder directement au capteur ou au LCD — il doit appeler les fonctions Bridge pour récupérer les relevés de température ou effacer le LCD
  • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut enregistrer les lectures, publier sur des tableaux de bord ou envoyer des alertes via Internet
  • Arduino_RouterBridge permet la communication RPC entre les deux processeurs
  • ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le routeur — ne les ouvrez jamais dans le code utilisateur

En résumé : Le MCU lit le capteur chaque seconde et met à jour le LCD → le MPU lit la température via Bridge → le MPU publie, enregistre ou alerte via Wi-Fi.

Code MCU (Bridge)

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-temperature-sensor-lcd */ #include <OneWire.h> #include <DallasTemperature.h> #include <DIYables_LCD_I2C.h>#include "Arduino_RouterBridge.h" #define SENSOR_PIN 4 OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); DIYables_LCD_I2C lcd(0x27, 16, 2); float last_temp_c = 0.0; float last_temp_f = 0.0; unsigned long last_read_ms = 0; void update_lcd() { lcd.clear(); lcd.setCursor(0, 0); lcd.print(last_temp_c); lcd.print((char)223); lcd.print("C"); lcd.setCursor(0, 1); lcd.print(last_temp_f); lcd.print((char)223); lcd.print("F"); } String get_temp_c(String arg) { return String(last_temp_c, 2); } String get_temp_f(String arg) { return String(last_temp_f, 2); } String clear_lcd(String arg) { lcd.clear(); Monitor.println("LCD cleared"); return "OK"; } String get_status(String arg) { return "Temp: " + String(last_temp_c, 2) + "°C / " + String(last_temp_f, 2) + "°F"; } void setup() { Bridge.begin(); Monitor.begin(); DS18B20.begin(); lcd.init(); lcd.backlight(); lcd.print("Bridge Ready"); DS18B20.requestTemperatures(); last_temp_c = DS18B20.getTempCByIndex(0); last_temp_f = last_temp_c * 9.0 / 5.0 + 32.0; update_lcd(); Bridge.provide("get_temp_c", get_temp_c); Bridge.provide("get_temp_f", get_temp_f); Bridge.provide_safe("clear_lcd", clear_lcd); Bridge.provide("get_status", get_status); Monitor.println("Arduino UNO Q Temperature Sensor + LCD Bridge ready"); } void loop() { unsigned long now = millis(); if (now - last_read_ms >= 1000) { last_read_ms = now; DS18B20.requestTemperatures(); last_temp_c = DS18B20.getTempCByIndex(0); last_temp_f = last_temp_c * 9.0 / 5.0 + 32.0; update_lcd(); Monitor.println("Temp: " + String(last_temp_c, 2) + "°C / " + String(last_temp_f, 2) + "°F"); } }

Code Python (Bridge)

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-temperature-sensor-lcd */ from arduino.app_utils import * import time def loop(): status = Bridge.call("get_status") print(status) time.sleep(1) App.run(user_loop=loop)

Étapes Rapides

  • Connecter : Câblez le capteur DS18B20 et le LCD I2C à l'Arduino UNO Q comme indiqué dans le schéma de câblage.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez que la carte soit détectée.
  • Créer une nouvelle application : Cliquez sur Créer une nouvelle application, nommez-la TemperatureSensorLcdBridge, puis cliquez sur Créer.
  • Coller le sketch MCU : Copiez le code MCU Bridge ci-dessus et collez-le dans sketch/sketch.ino.
  • Coller le code Python : Copiez le code Python Bridge ci-dessus et collez-le dans le fichier Python de l'application.
  • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Regardez les lectures de température apparaître dans la console Python tandis que le LCD se met à jour automatiquement.

Sortie de la Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-04-29 09:00:01] Arduino UNO Q Temperature Sensor + LCD Bridge ready [2026-04-29 09:00:02] Temp: 26.31°C / 79.36°F [2026-04-29 09:00:03] Temp: 26.44°C / 79.59°F [2026-04-29 09:00:04] Temp: 27.06°C / 80.71°F
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Temp: 26.31°C / 79.36°F [2026-04-29 09:00:03] Temp: 26.44°C / 79.59°F [2026-04-29 09:00:04] Temp: 27.06°C / 80.71°F [2026-04-29 09:00:05] Temp: 28.50°C / 83.30°F

Telegram

Surveillez la température à distance et recevez des alertes Telegram automatiques lorsque la température dépasse 35°C.

Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.

Code Python (Telegram)

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q 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/arduino-uno-q/arduino-uno-q-temperature-sensor-lcd */ from arduino.app_utils import * import requests import time TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 ALERT_THRESHOLD_C = 35.0 alert_sent = False def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception as e: print(f"Error getting updates: {e}") return [] def send_message(chat_id, text): url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": chat_id, "text": text} try: requests.post(url, data=payload, timeout=10) except Exception as e: print(f"Error sending message: {e}") def loop(): global alert_sent # Auto-alert on high temperature temp_c_str = Bridge.call("get_temp_c") try: temp_c = float(temp_c_str) if temp_c > ALERT_THRESHOLD_C and not alert_sent: alert_sent = True temp_f = Bridge.call("get_temp_f") msg = f"⚠️ High temperature alert: {temp_c_str}°C / {temp_f}°F" print(msg) send_message(CHAT_ID, msg) elif temp_c <= ALERT_THRESHOLD_C: alert_sent = False except ValueError: pass # Handle Telegram commands updates = get_updates() for update in updates: last_update_id = update["update_id"] if "message" not in update: continue message = update["message"] chat_id = message["chat"]["id"] text = message.get("text", "").strip() print(f"Received: {text}") if text == "/start": send_message(chat_id, "Arduino UNO Q Temperature Sensor + LCD Bot\n" "/temp - Read temperature (°C and °F)\n" "/tempC - Read temperature in Celsius\n" "/tempF - Read temperature in Fahrenheit\n" "/clear - Clear the LCD display\n" "/status - Get sensor status") elif text == "/temp": temp_c = Bridge.call("get_temp_c") temp_f = Bridge.call("get_temp_f") send_message(chat_id, f"Temperature: {temp_c}°C ~ {temp_f}°F") elif text == "/tempC": result = Bridge.call("get_temp_c") send_message(chat_id, f"Temperature: {result}°C") elif text == "/tempF": result = Bridge.call("get_temp_f") send_message(chat_id, f"Temperature: {result}°F") elif text == "/clear": result = Bridge.call("clear_lcd") send_message(chat_id, result) elif text == "/status": result = Bridge.call("get_status") send_message(chat_id, result) else: send_message(chat_id, "Unknown command. Send /start for help.") time.sleep(1) App.run(user_loop=loop)

Étapes Rapides

  • Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre vrai token de bot de BotFather.
  • Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
  • Collez ce code Python dans le fichier Python de votre application (conservez le même sketch MCU).
  • Cliquez sur le bouton Exécuter. Envoyez /temp depuis Telegram ou tenez le capteur pour déclencher une alerte de haute température.

Sortie de la Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:10:00] Waiting for Telegram messages... [2026-04-29 09:10:15] ⚠️ High temperature alert: 36.25°C / 97.25°F [2026-04-29 09:10:30] Received: /temp [2026-04-29 09:10:45] Received: /clear
Telegram
Telegram 12:45
Welcome to Telegram!
ArduinoBot 10:19
Chatting with Arduino...
telegram-botfather
BotFather Yesterday
Your bot has been created.

ArduinoBot

bot
Today
/temp
10:15 AM ✓✓
Temperature: 26.31°C ~ 79.36°F
10:16 AM
/tempC
10:17 AM ✓✓
Temperature: 26.31°C
10:18 AM
/tempF
10:19 AM ✓✓
Temperature: 79.36°F
10:20 AM
/clear
10:21 AM ✓✓
OK
10:22 AM
/status
10:23 AM ✓✓
Temp: 26.31°C / 79.36°F
10:24 AM
⚠️ High temperature alert: 36.25°C / 97.25°F
10:25 AM

Intégration d'OpenClaw

Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

Idées de Projets

Vous pouvez réaliser de nombreux projets utiles combinant le capteur de température et le LCD avec l'Arduino UNO Q :

  • Thermomètre Intelligent : Un thermomètre LCD autonome qui bascule automatiquement entre Celsius et Fahrenheit toutes les 5 secondes — parfait pour un bureau ou un laboratoire
  • Enregistreur de Température avec Affichage : Le MCU affiche la température en direct sur le LCD tandis que le MPU Linux enregistre les lectures dans un fichier chaque minute avec horodatages
  • Contrôleur de Serre : Utilisez la lecture de température pour contrôler un ventilateur à relais — le LCD affiche l'état actuel, et Telegram reçoit des alertes lorsque la température sort de la plage
  • Station de Température à Distance : Le MPU publie la température sur un broker MQTT toutes les 30 secondes ; le LCD affiche toujours la lecture locale actuelle tandis que les tableaux de bord distants suivent l'historique
  • Thermomètre à Deux Zones : Connectez deux capteurs DS18B20 sur le même bus 1-Wire et affichez la lecture de chaque capteur sur une ligne LCD séparée, étiquetée "Zone A" et "Zone B"

Défiez-Vous

Prêt à aller plus loin avec le capteur de température et le LCD sur l'Arduino UNO Q ? Essayez ces défis :

  • Facile : Modifiez le sketch MCU pour que la deuxième ligne du LCD affiche un message personnalisé — "CHAUD !" si la température dépasse 35°C, "FROID !" si elle est inférieure à 10°C, ou "NORMAL" sinon.
  • Moyen : Ajoutez une fonction Bridge set_label(String) qui permet au côté Python d'écrire une étiquette personnalisée sur la deuxième ligne du LCD (ex. : le nom de l'emplacement comme "Bureau" ou "Salle Serveur"), tandis que la première ligne continue d'afficher la température.
  • Avancé : Construisez un graphique d'historique de température : le MPU Linux lit la température toutes les 10 secondes pendant 10 minutes, stocke les valeurs, et sur /report envoie le min, max et la moyenne à Telegram, ainsi qu'un simple graphique ASCII montrant la tendance.

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