Arduino UNO Q - Capteur de Température et d'Humidité DHT11

Vous souhaitez mesurer la température ET l'humidité avec votre Arduino UNO Q — et recevoir des alertes Telegram quand il fait trop chaud ou trop humide ? Ce tutoriel vous montre comment utiliser le module de capteur DHT11 pour une surveillance complète de l'environnement.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q Capteur de Température et d'Humidité DHT11

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×DHT11 Module capteur de température et humidité
1×10 kΩ Resistor
1×Plaque d'essai
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.

À Propos du Capteur DHT11

DHT11
Tension de fonctionnement 3 à 5V
Plage de température 0°C à 50°C
Précision de température ± 2°C
Plage d'humidité 20% à 80%
Précision d'humidité 5%
Taux de lecture 1Hz (une fois par seconde)

Brochage

Le DHT11 est disponible en deux formes : capteur et module.

Brochage du capteur de température et d'humidité DHT11

Capteur DHT11 (4 broches) :

  • GND : Connectez à GND (0V)
  • VCC : Connectez à 3,3V ou 5V
  • DATA : Broche de communication — connectez à une broche numérique du MCU
  • NC : Non connecté

Module DHT11 (3 broches) :

  • GND : Connectez à GND (0V)
  • VCC : Connectez à 3,3V ou 5V
  • DATA : Broche de communication (aussi étiquetée OUT ou S sur certains modules)

La plupart des modules DHT11 incluent une résistance de tirage intégrée — pas besoin de résistance externe.

Schéma de Câblage

Câblage Arduino UNO Q - Capteur DHT11

Nécessite une résistance de tirage 10kΩ entre DATA et VCC.

Schéma de câblage Arduino UNO Q Capteur DHT11

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

Câblage Arduino UNO Q - Module DHT11

Pas de résistance externe requise — le module en inclut une.

Schéma de câblage Arduino UNO Q Module DHT11

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

Broche DHT11 MCU Arduino UNO Q
GND GND
VCC 3,3V ou 5V
DATA D2

Comment Programmer pour le DHT11

  • Incluez la bibliothèque :
#include <DHT.h>
  • Définissez la broche et créez un objet capteur :
#define DHT11_PIN 2 DHT dht11(DHT11_PIN, DHT11);
  • Initialisez le capteur :
dht11.begin();
  • Lisez l'humidité et la température :
float humidity = dht11.readHumidity(); float tempC = dht11.readTemperature(); float tempF = dht11.readTemperature(true);
  • Vérifiez toujours les lectures échouées :
if (isnan(humidity) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT11 sensor!"); }

Code Arduino UNO Q

L'Arduino UNO Q dispose de deux processeurs travaillant ensemble :

  • Le MCU STM32 lit directement le capteur DHT11 — toute la communication du capteur s'exécute sur le MCU
  • 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 et l'humidité toutes les 3 secondes et imprime sur 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-dht11 */ #include <DHT.h> #define DHT11_PIN 2 // Arduino UNO Q MCU pin connected to DHT11 DATA pin DHT dht11(DHT11_PIN, DHT11); void setup() { Serial.begin(115200); delay(1500); dht11.begin(); Serial.println("Arduino UNO Q DHT11 ready"); } void loop() { delay(3000); // DHT11 requires at least 1 second between readings float humidity = dht11.readHumidity(); float tempC = dht11.readTemperature(); float tempF = dht11.readTemperature(true); if (isnan(humidity) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT11 sensor!"); } else { Serial.print("Humidity: "); Serial.print(humidity); Serial.print("% | Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

Étapes Rapides

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

  • Connecter : Câblez le capteur ou module DHT11 sur le MCU Arduino UNO Q comme indiqué dans le schéma de câblage.
  • 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 : Dht11
  • Cliquez sur Créer pour confirmer.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Coller le programme : 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 DHT sensor library created by Adafruit 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
DHT sensor library Adafruit

Arduino library for DHT11, DHT22, etc Temp & Humidity Sensors

1.4.6
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.
Cliquer sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Regardez la température et l'humidité s'afficher dans le Moniteur toutes les 3 secondes.

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 DHT11 ready [2026-04-29 09:00:04] Humidity: 55.0% Temp: 26.40°C / 79.52°F [2026-04-29 09:00:07] Humidity: 55.0% Temp: 26.40°C / 79.52°F [2026-04-29 09:00:10] Humidity: 56.0% Temp: 26.60°C / 79.88°F

Bridge : Linux + MCU

Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q pour que le côté Linux puisse lire les données du DHT11 via Bridge :

  • Le capteur DHT11 est connecté au MCU — toute la communication du capteur s'exécute sur le MCU toutes les 3 secondes
  • Le MPU ne peut pas accéder directement au capteur — il appelle des fonctions Bridge pour récupérer les lectures
  • Le MPU a le Wi-Fi — exécutant Debian Linux complet, il peut enregistrer des lectures, publier sur des tableaux de bord ou envoyer des alertes Telegram
  • 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 DHT11 toutes les 3s → le MPU lit via Bridge → le MPU envoie des alertes 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-dht11 */ #include <DHT.h>#include "Arduino_RouterBridge.h" #define DHT11_PIN 2 DHT dht11(DHT11_PIN, DHT11); float last_humidity = 0.0; float last_temp_c = 0.0; float last_temp_f = 0.0; unsigned long last_read_ms = 0; String get_humidity(String arg) { return String(last_humidity, 1); } 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 get_status(String arg) { return "Temp: " + String(last_temp_c, 2) + "°C / " + String(last_temp_f, 2) + "°F Humidity: " + String(last_humidity, 1) + "%"; } void setup() { Bridge.begin(); Monitor.begin(); dht11.begin(); delay(2000); // allow sensor to stabilize float h = dht11.readHumidity(); float c = dht11.readTemperature(); float f = dht11.readTemperature(true); if (!isnan(h) && !isnan(c) && !isnan(f)) { last_humidity = h; last_temp_c = c; last_temp_f = f; } Bridge.provide("get_humidity", get_humidity); Bridge.provide("get_temp_c", get_temp_c); Bridge.provide("get_temp_f", get_temp_f); Bridge.provide("get_status", get_status); Monitor.println("Arduino UNO Q DHT11 Bridge ready"); } void loop() { unsigned long now = millis(); if (now - last_read_ms >= 3000) { last_read_ms = now; float h = dht11.readHumidity(); float c = dht11.readTemperature(); float f = dht11.readTemperature(true); if (isnan(h) || isnan(c) || isnan(f)) { Monitor.println("Failed to read from DHT11 sensor!"); } else { last_humidity = h; last_temp_c = c; last_temp_f = f; Monitor.println("Humidity: " + String(h, 1) + "% Temp: " + String(c, 2) + "°C / " + String(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-dht11 */ from arduino.app_utils import * import time def loop(): status = Bridge.call("get_status") print(status) time.sleep(3) App.run(user_loop=loop)

Étapes Rapides

  • Connecter : Câblez le DHT11 sur 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 Dht11Bridge, puis cliquez sur Créer.
  • Coller le programme 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.
  • 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 DHT sensor library created by Adafruit 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
DHT sensor library Adafruit

Arduino library for DHT11, DHT22, etc Temp & Humidity Sensors

1.4.6
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.
Cliquer sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Regardez les lectures apparaître dans la console Python toutes les 3 secondes.

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 DHT11 Bridge ready [2026-04-29 09:00:04] Humidity: 55.0% Temp: 26.40°C / 79.52°F [2026-04-29 09:00:07] Humidity: 55.0% Temp: 26.40°C / 79.52°F
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:04] Temp: 26.40°C / 79.52°F Humidity: 55.0% [2026-04-29 09:00:07] Temp: 26.40°C / 79.52°F Humidity: 55.0%

Telegram

Surveillez les lectures du DHT11 à distance et recevez des alertes Telegram automatiques quand la température ou l'humidité dépasse les seuils.

Programme MCU : Conservez le même programme 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-dht11 */ 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 TEMP_ALERT_C = 35.0 HUMIDITY_ALERT = 80.0 temp_alert_sent = False humi_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 temp_alert_sent, humi_alert_sent # Auto-alerts temp_c_str = Bridge.call("get_temp_c") humi_str = Bridge.call("get_humidity") try: temp_c = float(temp_c_str) humi = float(humi_str) temp_f_str = Bridge.call("get_temp_f") if temp_c > TEMP_ALERT_C and not temp_alert_sent: temp_alert_sent = True msg = f"⚠️ High temperature: {temp_c_str}°C / {temp_f_str}°F" print(msg) send_message(CHAT_ID, msg) elif temp_c <= TEMP_ALERT_C: temp_alert_sent = False if humi > HUMIDITY_ALERT and not humi_alert_sent: humi_alert_sent = True msg = f"💧 High humidity: {humi_str}%" print(msg) send_message(CHAT_ID, msg) elif humi <= HUMIDITY_ALERT: humi_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 DHT11 Bot\n" "/temp - Read temperature (°C and °F)\n" "/humidity - Read humidity\n" "/status - Get full 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 == "/humidity": result = Bridge.call("get_humidity") send_message(chat_id, f"Humidity: {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(3) App.run(user_loop=loop)

Étapes Rapides

  • Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre vrai token de bot depuis BotFather.
  • Remplacez YOUR_CHAT_ID par votre identifiant de discussion Telegram.
  • Collez ce code Python dans le fichier Python de votre application (conservez le même programme MCU).
  • Cliquez sur le bouton Exécuter. Envoyez /temp ou /humidity depuis Telegram, ou réchauffez le capteur pour déclencher les alertes.

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:18] ⚠️ High temperature alert: 36.20°C / 97.16°F [2026-04-29 09:10:35] Received: /humidity
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.40°C = 79.52°F
10:16 AM
/humidity
10:17 AM ✓✓
Humidity: 55.0%
10:18 AM
/status
10:19 AM ✓✓
Temp: 26.40°C / 79.52°F Humidity: 55.0%
10:20 AM
⚠️ High temperature alert: 36.20°C / 97.16°F
10:21 AM
⚠️ High humidity alert: 82.0%
10:22 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 avec le DHT11 sur Arduino UNO Q :

  • Station Météo : Enregistrez la température et l'humidité toutes les heures dans un fichier CSV Linux — utilisez Python pour tracer les tendances et envoyer des résumés quotidiens via Telegram
  • Thermostat Intelligent : Déclenchez automatiquement un relais de chauffage ou de refroidissement via Bridge quand la température dépasse les seuils définis
  • Alarme de Chambre Bébé : Recevez immédiatement une alerte Telegram si la température ou l'humidité de la pièce sort de la plage de confort
  • Surveillance de Serre : Surveillez les conditions de culture et déclenchez l'irrigation ou la ventilation automatiquement via Bridge

Mettez-Vous au Défi

  • Facile : Modifiez le code pour afficher la température en Kelvin en plus de Celsius et Fahrenheit.
  • Moyen : Ajoutez une commande Telegram /moy qui retourne la moyenne des 10 dernières lectures.
  • Avancé : Construisez un tableau de bord web Flask sur le MPU qui affiche un graphique en temps réel de la température et de l'humidité.

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