Arduino UNO Q - Capteur de Température LM35

Le LM35 est un simple capteur de température analogique qui délivre une tension proportionnelle à la température. Sur Arduino UNO Q, l'ADC 12 bits du MCU offre une précision supérieure aux cartes 10 bits standard. Ce tutoriel vous montre comment câbler et programmer le LM35 — et le surveiller à distance via Telegram.

Dans ce tutoriel, vous apprendrez :

Capteur de Température LM35 Arduino UNO Q

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×LM35 Temperature Sensor
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 de Température LM35

Brochage

Le LM35 possède trois broches :

  • GND : Connecter à GND (0V)
  • VCC : Connecter à 5V (le LM35 nécessite au moins 4V d'alimentation)
  • OUT : Sortie analogique — connecter à une broche analogique du MCU de l'Arduino UNO Q
Brochage du capteur de température LM35

Fonctionnement

Le LM35 délivre une tension qui augmente linéairement avec la température : chaque augmentation de 1°C augmente la sortie de 10 mV. Pour lire la température, mesurez la tension de sortie et divisez par 10.

Sur Arduino UNO Q, le MCU (STM32U585) utilise un ADC 12 bits (valeurs 0–4095) avec une référence de 3,3 V. Cela offre une meilleure résolution que les cartes Arduino 10 bits standard.

Schéma de Câblage

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

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

Broche LM35 MCU Arduino UNO Q
GND GND
VCC 5V
OUT A0

※ Note:

Connectez le VCC du LM35 à la broche 5V, pas 3,3V — le LM35 nécessite au moins 4V pour fonctionner. La sortie analogique sera toujours dans la plage ADC de 3,3V du MCU.

Comment Programmer pour le LM35

  • Lire la valeur ADC depuis la broche analogique :
int adcVal = analogRead(PIN_LM35);
  • Convertir la valeur ADC en tension en millivolts (en utilisant la référence 3,3V et la résolution 12 bits) :
float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // ADC_VREF_mV = 3300.0 (référence 3,3V sur MCU UNO Q) // ADC_RESOLUTION = 4096.0 (ADC 12 bits sur MCU UNO Q)
  • Convertir les millivolts en Celsius :
float tempC = milliVolt / 10;
  • Convertir Celsius en Fahrenheit :
float tempF = tempC * 9.0 / 5.0 + 32.0;

Code Arduino UNO Q

L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble :

  • Le MCU STM32 lit la sortie analogique du LM35 directement via son ADC 12 bits — toute la lecture du capteur et la conversion s'exécutent 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 le LM35 chaque seconde et affiche la température dans 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-lm35-temperature-sensor */ // Arduino UNO Q MCU (STM32U585) uses a 12-bit ADC (0–4095) with a 3.3V reference #define ADC_VREF_mV 3300.0 // MCU reference voltage in millivolts #define ADC_RESOLUTION 4096.0 // 12-bit ADC resolution #define PIN_LM35 A0 // Analog pin connected to LM35 OUT pin void setup() { Serial.begin(115200); delay(1500); Serial.println("Arduino UNO Q LM35 Temperature Sensor ready"); } void loop() { int adcVal = analogRead(PIN_LM35); float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); float tempC = milliVolt / 10; float tempF = tempC * 9.0 / 5.0 + 32.0; Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C = "); Serial.print(tempF); Serial.println("°F"); delay(1000); }

Étapes Rapides

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

  • Connecter : Câblez le capteur LM35 au MCU de l'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 : Lm35TemperatureSensor
  • 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. Conservez les autres fichiers par défaut.
  • Aucune bibliothèque requise — le LM35 utilise uniquement la fonction intégrée analogRead().
  • 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 — observez la température monter dans la console.

Sortie 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 LM35 Temperature Sensor 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: 26.87°C = 80.37°F [2026-04-29 09:00:05] Temperature: 27.25°C = 81.05°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 la température LM35 via Bridge :

  • Le capteur LM35 est connecté au MCU (STM32) sur la broche analogique — le MCU lit et convertit la valeur ADC chaque seconde
  • Le MPU ne peut pas accéder à la broche analogique directement — il doit appeler des fonctions Bridge pour récupérer les lectures
  • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut enregistrer des données, 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é : MCU lit le LM35 chaque seconde via ADC 12 bits → MPU lit la température via Bridge → MPU publie 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-lm35-temperature-sensor */ // Arduino UNO Q MCU (STM32U585) uses a 12-bit ADC (0–4095) with a 3.3V reference#include "Arduino_RouterBridge.h" #define ADC_VREF_mV 3300.0 #define ADC_RESOLUTION 4096.0 #define PIN_LM35 A0 float last_temp_c = 0.0; float last_temp_f = 0.0; unsigned long last_read_ms = 0; void read_lm35() { int adcVal = analogRead(PIN_LM35); float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); last_temp_c = milliVolt / 10.0; last_temp_f = last_temp_c * 9.0 / 5.0 + 32.0; } 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"; } void setup() { Bridge.begin(); Monitor.begin(); read_lm35(); 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 LM35 Temperature Sensor Bridge ready"); } void loop() { unsigned long now = millis(); if (now - last_read_ms >= 1000) { last_read_ms = now; read_lm35(); 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-lm35-temperature-sensor */ from arduino.app_utils import * import time def loop(): temp_c = Bridge.call("get_temp_c") temp_f = Bridge.call("get_temp_f") print(f"Temperature: {temp_c}°C = {temp_f}°F") time.sleep(1) App.run(user_loop=loop)

Étapes Rapides

  • Connecter : Câblez le capteur LM35 à l'Arduino UNO Q comme indiqué dans le schéma de câblage.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez la détection de la carte.
  • Créer une nouvelle application : Cliquez sur Créer une nouvelle application, nommez-la Lm35TemperatureSensorBridge, 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.
  • 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 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.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Observez les lectures de température apparaître dans la console Python chaque seconde.

Sortie 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 LM35 Temperature Sensor 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: 26.87°C / 80.37°F
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[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: 26.87°C = 80.37°F [2026-04-29 09:00:05] Temperature: 27.25°C = 81.05°F

Telegram

Surveillez la température LM35 à 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-lm35-temperature-sensor */ 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 LM35 Temperature Sensor Bot\n" "/temp - Read temperature (°C and °F)\n" "/tempC - Read temperature in Celsius\n" "/tempF - Read temperature in Fahrenheit\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 == "/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 l'alerte de haute température.

Sortie 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: /tempC
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
/status
10:21 AM ✓✓
Temp: 26.31°C / 79.36°F
10:22 AM
⚠️ High temperature alert: 36.25°C / 97.25°F
10:23 AM

OpenClaw

You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino UNO Q - OpenClaw Tutorial

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