Arduino UNO Q - LM35 Temperatursensor
Der LM35 ist ein einfacher analoger Temperatursensor, der eine Spannung ausgibt, die proportional zur Temperatur ist. Bei Arduino UNO Q liefert das ADC des MCU mit 12-Bit eine höhere Genauigkeit als Standard-Boards mit 10-Bit. In diesem Tutorial erfahren Sie, wie Sie den LM35 verkabeln und programmieren – und wie Sie ihn remote über Telegram überwachen.
In diesem Tutorial lernen Sie:
- Was der LM35-Temperatursensor ist und wie er funktioniert
- Wie Sie den LM35 an den analogen Pin des Arduino UNO Q MCU anschließen
- Wie Sie den MCU programmieren (C/C++-Arduino-Code), um die Temperatur vom LM35 mit 12-Bit-ADC zu lesen
- Wie Sie sowohl die Linux-Seite (Python) als auch die MCU-Seite (C/C++) programmieren, um LM35-Daten über Bridge zu lesen
- Wie Sie Telegram-Benachrichtigungen erhalten, wenn die Temperatur einen Schwellenwert auf Arduino UNO Q überschreitet
- Wie Sie OpenClaw auf Arduino UNO Q mit dem LM35-Sensor verwenden

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den LM35 Temperatursensor
Pinbelegung
Der LM35 hat drei Pins:
- GND: Mit GND verbinden (0V)
- VCC: Mit 5V verbinden (der LM35 benötigt mindestens 4V Versorgung)
- OUT: Analoger Ausgang – mit einem analogen Pin des Arduino UNO Q MCU verbinden

Funktionsweise
Der LM35 gibt eine Spannung aus, die linear mit der Temperatur ansteigt: Jeder 1°C Anstieg erhöht die Ausgabe um 10mV. Um die Temperatur zu messen, müssen Sie die Ausgangsspannung messen und durch 10 dividieren.
Bei Arduino UNO Q verwendet der MCU (STM32U585) einen 12-Bit-ADC (Werte 0–4095) mit einer 3,3V-Referenz. Dies bietet eine bessere Auflösung als Standard-Arduino-Boards mit 10-Bit.
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| LM35 Pin | Arduino UNO Q MCU |
|---|---|
| GND | GND |
| VCC | 5V |
| OUT | A0 |
※ Notiz:
Verbinden Sie LM35 VCC mit dem 5V-Pin, nicht mit 3,3V – der LM35 benötigt mindestens 4V zum Betrieb. Die Analogausgabe liegt immer noch im 3,3V-ADC-Bereich des MCU.
Programmieren für den LM35
- Lesen Sie den ADC-Wert vom analogen Pin:
- Konvertieren Sie den ADC-Wert in Spannung in Millivolt (mit 3,3V-Referenz und 12-Bit-Auflösung):
- Konvertieren Sie Millivolt in Celsius:
- Konvertieren Sie Celsius in Fahrenheit:
Arduino UNO Q Code
Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:
- Die STM32 MCU liest die analoge LM35-Ausgabe direkt über ihr 12-Bit-ADC – alle Sensormessungen und Konvertierungen laufen auf dem MCU
- Die Qualcomm MPU führt Debian Linux aus und verwaltet Wi-Fi, Python und Cloud-Konnektivität
- In diesem Abschnitt wird nur die MCU programmiert – die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.
Die MCU liest den LM35 jede Sekunde und gibt die Temperatur an den Serial Monitor aus.
Schnelle Schritte
Erstes Mal mit Arduino UNO Q? Folgen Sie zunächst dem Tutorial Getting Started with Arduino UNO Q.
- Verbinden: Verkabeln Sie den LM35-Sensor mit dem Arduino UNO Q MCU wie im Schaltplan gezeigt.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihren Arduino UNO Q erkannt hat.
- Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Create New App.

- Geben Sie der App einen Namen, z. B.: Lm35TemperatureSensor
- Klicken Sie auf Create, um zu bestätigen.

- Fügen Sie den Sketch ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein. Behalten Sie andere Dateien wie vorgegeben.
- Keine Bibliothek erforderlich – der LM35 verwendet nur die integrierte Funktion analogRead().
- Upload: Klicken Sie auf die Run-Schaltfläche in Arduino App Lab.

- Halten Sie den Sensor in Ihrer Hand – beobachten Sie, wie die Temperatur in der Konsole ansteigt.
App Lab Konsolenausgabe
Bridge: Linux + MCU
Dieser Abschnitt zeigt, wie Sie beide Prozessoren des Arduino UNO Q programmieren, damit die Linux-Seite die LM35-Temperatur über Bridge lesen kann:
- Der LM35-Sensor ist mit dem analogen Pin der MCU (STM32) verbunden – die MCU liest und konvertiert den ADC-Wert jede Sekunde
- Die MPU kann nicht direkt auf den analogen Pin zugreifen – sie muss Bridge-Funktionen aufrufen, um Messwerte abzurufen
- Die MPU hat Wi-Fi – auf Debian Linux läuft sie, kann Daten protokollieren, auf Dashboards veröffentlichen oder Benachrichtigungen über das Internet senden
- Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
- ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT vom Router – öffnen Sie sie niemals in Benutzercode
Kurz gesagt: MCU liest LM35 jede Sekunde über 12-Bit-ADC → MPU liest Temperatur über Bridge → MPU veröffentlicht oder benachrichtigt über Wi-Fi.
MCU Code (Bridge)
Python Code (Bridge)
Schnelle Schritte
- Verbinden: Verkabeln Sie den LM35-Sensor mit dem Arduino UNO Q wie im Schaltplan gezeigt.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis das Board erkannt wird.
- Erstellen Sie eine neue App: Klicken Sie auf Create New App, nennen Sie sie Lm35TemperatureSensorBridge, und klicken Sie dann auf Create.
- Fügen Sie den MCU-Sketch ein: Kopieren Sie den MCU-Bridge-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Fügen Sie den Python-Code ein: Kopieren Sie den Python-Bridge-Code oben und fügen Sie ihn in die Python-Datei der App ein.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Upload: Klicken Sie auf die Run-Schaltfläche in Arduino App Lab.

- Beobachten Sie, wie jede Sekunde Temperaturmesswerte in der Python-Konsole erscheinen.
App Lab Konsolenausgabe
Telegram
Überwachen Sie die LM35-Temperatur remote und erhalten Sie automatische Telegram-Benachrichtigungen, wenn die Temperatur über 35°C steigt.
MCU-Sketch: Behalten Sie denselben MCU-Sketch aus dem vorherigen Bridge-Abschnitt.
Python Code (Telegram)
Schnelle Schritte
- Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihren aktuellen Bot-Token von BotFather.
- Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
- Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie denselben MCU-Sketch bei).
- Klicken Sie auf die Run-Schaltfläche. Senden Sie /temp von Telegram aus oder halten Sie den Sensor, um die Hochtemperatur-Benachrichtigung auszulösen.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial
Projektideen
Sie können viele nützliche Projekte mit dem LM35 und Arduino UNO Q erstellen:
- Analoger Temperatur-Monitor: Die kontinuierliche analoge Ausgabe des LM35 und das 12-Bit-ADC des MCU ermöglichen glatte, hochauflösende Messungen – protokollieren Sie jede Sekunde und erkennen Sie Micro-Temperatur-Trends
- Überhitzungsschutz: Verwenden Sie den LM35 zur Überwachung eines Geräts (Motor, Schaltung) – die MCU aktiviert über Bridge ein Relais, wenn die Temperatur die sichere Grenze überschreitet, und benachrichtigt Sie über Telegram
- Multi-Zone-Temperaturvermessung: Verbinden Sie mehrere LM35-Sensoren mit verschiedenen analogen Pins – die Python-Seite fragt jeden über Bridge ab und zeigt einen Seite-an-Seite-Temperaturvergleich
- Kalibriertes Thermometer: Nutzen Sie die Werkskalibrierung des LM35 (±0,5°C), um ein präzises digitales Thermometer mit Telegram-Befehlen für bedarfsgesteuerte Messungen zu bauen
- Temperaturgesteuerte Lüfterdrehzahl-Steuerung: Ordnen Sie den LM35-ADC-Wert direkt einem PWM-Ausgangswert auf dem MCU zu, um die Lüfterdrehzahl zu steuern – die Python-Seite kann das Lüfter-Tastverhältnis über Bridge überwachen
Fordern Sie sich selbst heraus
Bereit, weiter mit dem LM35 auf Arduino UNO Q zu gehen? Versuchen Sie diese Herausforderungen:
- Einfach: Fügen Sie einen gleitenden Durchschnittsfilter im MCU-Sketch hinzu, der die letzten 10 ADC-Messwerte mittelt, bevor die Temperatur berechnet wird – dies reduziert das Rauschen in der Ausgabe.
- Mittel: Vergleichen Sie LM35- und DS18B20-Messwerte nebeneinander: verbinden Sie beide Sensoren und fügen Sie eine compare_sensors(String)-Bridge-Funktion hinzu, die beide Messwerte in einer einzigen Antwort für einfachen Vergleich zurückgibt.
- Fortgeschritten: Bauen Sie ein Kalibrierungstool: nehmen Sie 100 LM35-Messwerte über 10 Sekunden auf, berechnen Sie Mittelwert und Standardabweichung, und geben Sie sie als JSON-String über eine get_stats(String)-Bridge-Funktion zurück – Python zeigt die Kalibrierungsergebnisse an und protokolliert sie.