Arduino UNO Q - Capteur de Température

La lecture précise de la température en temps réel est l'une des tâches Arduino les plus courantes, et le capteur DS18B20 la rend facile sur l'Arduino UNO Q. Avec sa simple interface 1-Wire, il fournit des lectures de température numériques directement dans votre code — sans conversion analogique-numérique.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q - Capteur de Température

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
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é.

À Propos du Capteur de Température DS18B20

Le DS18B20 est un capteur de température numérique qui communique sur un seul fil de données en utilisant le protocole 1-Wire.

  • Protocole : Numérique 1-Wire — une broche de données gère à la fois l'alimentation et la communication
  • Plage : -55°C à +125°C (-67°F à +257°F) avec une précision de ±0,5°C entre -10°C et +85°C
  • Sortie : Numérique — aucune conversion analogique-numérique nécessaire
  • Alimentation : Alimenté par 3,3V ou 5V ; prend en charge le mode d'alimentation parasite (alimenté depuis la ligne de données)
  • Capteurs multiples : Jusqu'à 127 capteurs DS18B20 peuvent partager une seule broche de données, chacun avec une adresse 64 bits unique
  • Types de boîtier : Boîtier style transistor TO-92 et sonde en acier inoxydable étanche

Brochage

Brochage du capteur de température DS18B20

Le capteur de température DS18B20 a trois broches :

Broche DS18B20 Fonction Broche Arduino UNO Q
GND Masse GND
VCC Alimentation (3,3V ou 5V) 5V
DATA Bus de Données 1-Wire 4
  • Résistance de pull-up : Une résistance de 4,7kΩ entre la broche DATA et VCC est requise pour une communication 1-Wire fiable
  • Adaptateur : Nous recommandons d'acheter un capteur DS18B20 avec adaptateur de câblage — il inclut la résistance de pull-up et un bloc de bornes à vis, donc aucun composant supplémentaire n'est nécessaire

Comment Programmer pour le Capteur de Température DS18B20

  • Inclure les bibliothèques :
#include <OneWire.h> #include <DallasTemperature.h>
  • Créer un objet OneWire et un objet DallasTemperature pour la broche connectée à la broche DATA du capteur :
OneWire oneWire(SENSOR_PIN); // Initialize a new OneWire instance on the sensor pin DallasTemperature DS18B20(&oneWire); // Create a DallasTemperature object linked to the OneWire instance
  • Initialiser le capteur dans setup() :
DS18B20.begin(); // Start the sensor initialization process
  • Demander une lecture de température :
DS18B20.requestTemperatures();
  • Lire la température en Celsius :
float temperature_C = DS18B20.getTempCByIndex(0);
  • (Optionnel) Convertir Celsius en Fahrenheit :
float temperature_F = temperature_C * 9.0 / 5.0 + 32.0;

Schéma de Câblage

  • Câblage sur breadboard (avec résistance de pull-up) :
Schéma de Câblage Arduino UNO Q Capteur de Température

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

  • Schéma de câblage avec adaptateur (pas de résistance supplémentaire nécessaire) :
Schéma de Câblage Arduino UNO Q DS18B20 Adaptateur

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

Nous recommandons d'acheter un capteur DS18B20 avec adaptateur de câblage. Cet adaptateur facilite la connexion car il inclut une résistance, donc vous n'en avez pas besoin d'une supplémentaire.

Code MCU (Sketch Arduino Direct)

Voici le sketch Arduino qui s'exécute directement sur le MCU STM32 pour lire la température du capteur DS18B20 et afficher les lectures dans la console App Lab.

  • Initialise le capteur DS18B20 en utilisant la bibliothèque DallasTemperature
  • Demande une lecture de température toutes les 500ms
  • Lit la température en Celsius et la convertit en Fahrenheit
  • Affiche les deux valeurs dans la console App Lab
/* * 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 */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 4 // The Arduino UNO Q pin connected to DS18B20 sensor's DQ pin OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library void setup() { DS18B20.begin(); // initialize the sensor } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float temperature_C = DS18B20.getTempCByIndex(0); // read temperature in Celsius float temperature_F = temperature_C * 9.0 / 5.0 + 32.0; // convert Celsius to Fahrenheit delay(500); }

Étapes Rapides

  • Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
  • Câbler le capteur : Connectez le DS18B20 à la broche 4 de l'Arduino UNO Q selon le schéma de câblage ci-dessus. Si vous utilisez l'adaptateur, suivez le schéma de câblage de l'adaptateur.
  • Connecter : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q — cela peut prendre plusieurs minutes au premier lancement.
  • 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 : DIYables_DS18B20
  • Cliquez sur Créer pour confirmer.
  • Vous verrez un ensemble de dossiers et fichiers générés dans votre nouvelle application.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est ici que vous collerez le sketch MCU.
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans ce fichier sketch. 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 Arduino_RouterBridge created by Arduino 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
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser vers le STM32.
    Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
    • Vérifier les lectures : Ouvrez l'onglet Console → sous-onglet Moniteur Série pour voir la sortie de température en direct.
    • Tester : Tenez le capteur dans votre main ou placez-le dans de l'eau chaude et regardez la température augmenter.
    • Conseil Pro : Le DS18B20 prend environ 750ms pour compléter une conversion — si les lectures semblent figées, augmentez la valeur delay() à au moins 800ms.

    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
    Temperature: 22.31°C ~ 72.16°F Temperature: 22.44°C ~ 72.39°F Temperature: 22.50°C ~ 72.50°F Temperature: 24.37°C ~ 75.87°F Temperature: 26.00°C ~ 78.80°F Temperature: 28.12°C ~ 82.62°F

    Programmation Bridge Linux + MCU

    L'Arduino UNO Q possède deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.

    • DS18B20 est connecté au MCU (STM32) — le capteur est câblé à une broche numérique sur le STM32, pas sur le MPU. Le MCU lit les données 1-Wire brutes directement depuis le capteur.
    • Le MPU ne peut pas lire le capteur directement — pour obtenir la température, le MPU doit envoyer une requête au MCU via Bridge.call(). Le MCU exécute la fonction Bridge.provide() correspondante et retourne le résultat.
    • Le MPU dispose du Wi-Fi — parce que le MPU exécute Debian Linux complet avec support Wi-Fi, il peut se connecter à Internet et faire des choses que le MCU ne peut pas : envoyer des messages Telegram, appeler des APIs REST, télécharger des données vers des services cloud, et plus.
    • Communication : Bridge.call() côté Linux invoque les fonctions Bridge.provide() côté MCU
    • ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par le routeur Arduino — ne les ouvrez jamais directement

    En résumé : Le MCU lit le capteur → le MPU demande la valeur → le MPU l'utilise via Internet.

    Sketch MCU — expose la lecture de température au côté Linux :

    /* * 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 */ #include "Arduino_RouterBridge.h" #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 4 // The Arduino UNO Q pin connected to DS18B20 sensor's DQ pin OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); void setup() { DS18B20.begin(); Bridge.begin(); Monitor.begin(); Bridge.provide("read_temperature_c", read_temperature_c); Bridge.provide("read_temperature_f", read_temperature_f); Monitor.println("MCU Bridge ready."); } void loop() {} float read_temperature_c() { DS18B20.requestTemperatures(); return DS18B20.getTempCByIndex(0); } float read_temperature_f() { float c = DS18B20.getTempCByIndex(0); return c * 9.0 / 5.0 + 32.0; }

    Script Python (Arduino App Lab) — lire la température depuis Linux :

    /* * 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 */ from arduino.app_utils import * import time def loop(): temp_c = Bridge.call("read_temperature_c") temp_f = Bridge.call("read_temperature_f") print(f"Temperature: {temp_c:.2f}°C ~ {temp_f:.2f}°F") time.sleep(1) App.run(user_loop=loop)
    • Note : Assurez-vous que Bridge.begin() est appelé dans le sketch MCU et que le sketch est téléversé avant d'exécuter le script Python côté Linux.
    • ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sur Linux) ou n'utilisez pas Serial1 (sur MCU) dans votre code — ceux-ci sont réservés par le routeur Arduino et y accéder cassera le Bridge.

    Étapes Rapides

    • Téléverser le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le sketch MCU Bridge ci-dessus dans sketch/sketch.ino, installez les bibliothèques DallasTemperature et OneWire, et cliquez sur Exécuter.
    • Ajouter le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
    • Exécuter l'application : Cliquez sur Exécuter — le côté Linux commencera à demander des lectures de température chaque seconde.
    • Vérifier la console : Ouvrez l'onglet Console → sous-onglet Console Python pour voir la sortie de température en direct depuis le côté Linux.
    • Conseil Pro : Ajustez la valeur time.sleep(1) pour contrôler la fréquence d'interrogation de la température — augmentez-la pour réduire l'utilisation du CPU côté Linux.

    Sortie de la Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Temperature: 22.31°C ~ 72.16°F Temperature: 22.44°C ~ 72.39°F Temperature: 24.37°C ~ 75.87°F Temperature: 26.00°C ~ 78.80°F

    Intégration Telegram

    Vous pouvez lire la température de votre capteur DS18B20 à distance via Telegram — envoyez une commande depuis n'importe où et obtenez la lecture de température actuelle instantanément.

    Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.

    Cette section couvre :

    • L'exécution d'un script Python côté Linux de l'Arduino UNO Q pour écouter les messages Telegram
    • Le transfert de la demande de température au côté MCU via Bridge.call()
    • L'envoi de la lecture de température en retour comme réponse Telegram

    Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.

    Script Python (Arduino App Lab) — bot Telegram pour le capteur de température DS18B20 :

    /* * 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 */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/temperature": temp_c = Bridge.call("read_temperature_c") temp_f = Bridge.call("read_temperature_f") send_message(chat_id, f"Temperature: {temp_c:.2f}°C ~ {temp_f:.2f}°F") else: send_message(chat_id, "Commands:\n/temperature — get current temperature reading") time.sleep(1) App.run(user_loop=loop)
    • Note : Remplacez YOUR_BOT_TOKEN par le token obtenu de @BotFather sur Telegram.
    • Envoyez /temperature à votre bot pour obtenir la lecture de température actuelle du capteur DS18B20.

    Étapes Rapides

    • Téléverser le sketch MCU : Utilisez le sketch MCU Bridge de la section précédente (téléversez-le d'abord s'il ne l'est pas déjà).
    • Coller le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
    • Définir votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
    • Exécuter l'application : Cliquez sur Exécuter — le bot commence à écouter les messages Telegram immédiatement.
    • Tester : Envoyez /temperature à votre bot et obtenez la lecture actuelle en retour.
    • Conseil Pro : Planifiez des sondages /temperature depuis Telegram sur votre téléphone pour surveiller les tendances de température tout au long de la journée.

    Sortie de la Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 09:12:01] Telegram: /temperature [2026-04-29 09:12:01] Temperature: 22.50°C ~ 72.50°F [2026-04-29 09:15:34] Telegram: /temperature [2026-04-29 09:15:34] Temperature: 25.12°C ~ 77.22°F [2026-04-29 09:20:07] Telegram: /temperature [2026-04-29 09:20:07] Temperature: 28.37°C ~ 83.07°F
    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
    /temperature
    10:15 AM ✓✓
    Temperature: 22.50°C ~ 72.50°F
    10:16 AM
    /temperature
    10:17 AM ✓✓
    Temperature: 28.37°C ~ 83.07°F
    10:18 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 d'Applications/Projets

    Voici quelques idées de projets que vous pouvez réaliser avec le capteur de température DS18B20 et l'Arduino UNO Q :

    • Moniteur de température ambiante : Enregistrez les relevés de température chaque minute et affichez les tendances côté Linux
    • Système d'alerte de température : Envoyez une alerte Telegram lorsque la température dépasse un seuil défini
    • Thermostat intelligent : Lisez la température DS18B20 depuis le côté Linux et contrôlez un relais ou un ventilateur via Bridge.call() en fonction de la lecture
    • Enregistreur de données : Faites sauvegarder par le côté Python les relevés de température dans un fichier CSV sur le système de fichiers Linux toutes les quelques secondes
    • Réseau multi-capteurs : Connectez plusieurs capteurs DS18B20 à une seule broche (chacun a un identifiant unique) et lisez-les tous depuis le côté Linux
    • Système de protection des plantes : Surveillez la température extérieure et envoyez un avertissement Telegram lorsque des conditions de gel sont détectées

    Besoin de plus de détails sur DS18B20 ? Consultez le tutoriel Arduino DS18B20 pour plus d'idées.

    Défiez-Vous

    Essayez ces défis avec le capteur de température DS18B20 et l'Arduino UNO Q pour améliorer vos compétences :

    • Facile : Modifiez le sketch MCU pour afficher également l'adresse 64 bits unique du capteur à côté de la lecture de température
    • Moyen : Ajoutez un deuxième capteur DS18B20 sur la même broche de données et faites lire par le côté Python les deux capteurs indépendamment en utilisant leurs adresses uniques
    • Avancé : Construisez un enregistreur de température contrôlé par Telegram qui sauvegarde les lectures dans un fichier côté Linux et envoie un rapport de résumé (min/max/moyenne) lorsque demandé via Telegram

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