Eine Wetterstation DIY: Temperatur und Druck mit PIC16 messen ist ein ideales Embedded-Projekt, weil es gleich mehrere Grundlagen sauber verbindet: Sensorik (Temperatur- und Luftdrucksensor), digitale Kommunikation (I²C oder SPI), präzise Messwertaufbereitung (Filter, Mittelwert, Kalibrierung) und eine robuste Firmwarestruktur, die auch im Dauerbetrieb stabil läuft. Mit einem PIC16 können Sie eine erstaunlich professionelle Messstation aufbauen – vorausgesetzt, Sie planen die Bausteine richtig: Spannungsversorgung, saubere Masseführung, Entkopplung, Sensorplatzierung und eine durchdachte Abtastrate sind bei Wetterdaten wichtiger als „möglichst viele Messungen pro Sekunde“. Gerade Luftdruckmessungen reagieren empfindlich auf Rauschen, Temperaturdrift und Gehäuseeffekte. Gleichzeitig ist das Projekt sehr skalierbar: Sie können mit einem einfachen Display beginnen, später Daten per UART/USB an den PC senden oder die Messwerte per Funk (z. B. LoRa/433 MHz/WLAN über externes Modul) weitergeben. Dieser Artikel führt Sie praxisnah durch die Umsetzung: Welche Sensoren sich für Temperatur und Luftdruck bewährt haben, wie Sie einen PIC16 passend auswählen, wie I²C/SPI sauber verdrahtet wird und wie Sie aus Rohdaten stabile, vergleichbare Wetterwerte erzeugen.
Projektziel und Anforderungen: Was soll die Wetterstation leisten?
Bevor Sie Sensoren kaufen, definieren Sie die Zielwerte. Eine klare Spezifikation verhindert späteres Umbauen, wenn z. B. ein Sensor doch nicht im gewünschten Temperaturbereich arbeitet oder ein Display zu wenig Zeichen bietet.
- Messgrößen: Temperatur (°C) und Luftdruck (hPa), optional Höhe (m) als abgeleiteter Wert
- Messintervall: z. B. alle 1–10 Sekunden (Anzeige), Mittelwerte pro Minute (Logging)
- Ausgabe: LCD (16×2/20×4) oder OLED; alternativ UART-Textausgabe
- Stromversorgung: USB/5 V oder Batterie (dann Low-Power-Strategie beachten)
- Robustheit: stabile Messwerte trotz Störungen, Neustartfestigkeit, optional Watchdog
Geeignete Sensoren für Temperatur und Luftdruck
Für eine DIY-Wetterstation ist die Wahl des Sensors entscheidend. Sie benötigen nicht zwingend „den teuersten“ Sensor, sondern einen, der stabile Daten liefert, gut dokumentiert ist und mit PIC16-typischen Spannungen und Interfaces kompatibel bleibt.
Luftdrucksensoren: BMP280/BME280, BMP388 & Co.
Sehr verbreitet sind digitale Barometer aus der Bosch-Familie. BMP280 misst Druck (und Temperatur intern zur Kompensation), BME280 misst zusätzlich Feuchte. Für reine Temperatur + Druck reicht ein BMP-Sensor; wenn Sie später erweitern möchten, ist ein BME280 attraktiv. Als Einstieg helfen die Herstellerdokumente und Übersichten:
Wichtig: Diese Sensoren liefern Rohdaten, die mit Kalibrierparametern (im Sensor gespeichert) kompensiert werden müssen. Die Berechnung ist gut dokumentiert, erfordert aber saubere Implementierung (Integerarithmetik oder Float, je nach PIC-Setup).
Temperatursensoren: digital oder analog?
Für Temperatur gibt es zwei sinnvolle Wege:
- Digital: DS18B20 (1-Wire) oder I²C/SPI-Sensoren; sehr robust, aber ggf. Protokollaufwand
- Analog: NTC oder LM35-ähnliche Sensoren am ADC; günstig, aber Kalibrierung/Filter nötig
Wenn Sie ohnehin einen Barometersensor wie BMP280 nutzen, erhalten Sie bereits eine Temperaturmessung (zur Kompensation). Für „Außentemperatur“ ist jedoch die Sensorposition entscheidend: Ein Sensor im Gehäuse neben dem Regler misst oft eher Elektroniktemperatur als Lufttemperatur. Für eigene Außentemperaturmessung sind externe Sensoren oder eine getrennte Messkammer sinnvoll.
PIC16 auswählen: Welche Features werden benötigt?
Für Temperatur- und Druckmessung ist ein PIC16 mit folgenden Eigenschaften empfehlenswert:
- I²C (MSSP): wenn Sie BMP/BME-Sensoren nutzen (typisch I²C oder SPI)
- Genug Flash/RAM: für Sensorbibliothek, Filter, Anzeige, ggf. Logging
- Timer/Interrupts: für stabile Messintervalle und eventuelle Schlafzyklen
- UART (optional): für Debug und Datenstream an PC/Logger
Als Entwicklungsumgebung sind MPLAB X IDE und der MPLAB XC Compiler (XC8) der typische Standard.
Schaltungsaufbau: Versorgung, Pegel und Bus-Stabilität
Viele Sensor-Boards laufen mit 3,3 V. Ein PIC16-Projekt läuft oft mit 5 V. Beides zusammen ist möglich, erfordert aber Aufmerksamkeit bei Pegeln, Pull-ups und Stromversorgung.
3,3 V vs. 5 V: Pegelkompatibilität prüfen
Wenn Sie einen 3,3-V-Sensor per I²C betreiben, sollten die I²C-Pull-ups in der Regel auf 3,3 V liegen, damit der Sensor keine 5-V-Pegel sieht. Der PIC muss 3,3 V als High erkennen (meist problemlos, aber Datenblatt prüfen). Alternativ verwenden Sie einen Pegelwandler für I²C.
Entkopplung und sauberes Layout
- 100 nF am PIC: direkt an VDD/VSS, so nah wie möglich
- 100 nF am Sensor: direkt am Sensor-Board/IC
- Bulk-Kondensator: 4,7–47 µF in der Nähe des Reglers
- Kurze I²C-Leitungen: besonders bei Breadboards können lange Drähte Störungen verursachen
I²C-Pull-ups richtig dimensionieren
I²C benötigt Pull-up-Widerstände an SDA und SCL. Viele Breakout-Boards haben Pull-ups bereits an Bord. Zu starke Pull-ups (zu kleiner Widerstand) erhöhen den Strom, zu schwache Pull-ups (zu großer Widerstand) machen Flanken langsam. Für kurze Leitungen sind typische Werte im Bereich 2,2–10 kΩ üblich; die richtige Wahl hängt von Buskapazität und Geschwindigkeit ab. Als Einstieg in I²C-Grundlagen eignet sich die NXP-Spezifikation (I²C-Bus-Grundlagen): NXP UM10204: I²C-bus specification and user manual (PDF).
Messstrategie: Abtastrate, Mittelwerte und Plausibilitätschecks
Wetterdaten sind träge. Das heißt: Häufiges Messen bringt nicht automatisch bessere Ergebnisse, sondern eher mehr Rauschen und mehr Aufwand in der Filterung. Eine sinnvolle Strategie ist:
- Schnelles internes Sampling: z. B. 1–5 Messungen pro Sekunde
- Anzeige-Update: z. B. alle 1–2 Sekunden mit geglätteten Werten
- Logging/Trend: Mittelwerte pro Minute oder 5 Minuten (für Drucktendenz besonders nützlich)
Zusätzlich sollten Sie Plausibilitätschecks einbauen: Wenn ein Sensorwert plötzlich „springt“ (z. B. I²C-Glitch), verwerfen Sie den Messpunkt oder markieren ihn als ungültig, statt ihn direkt anzuzeigen.
Druck in hPa und Höhe aus Druck: Umrechnung mit MathML
Viele Sensoren liefern Druck in Pascal (Pa). In Wetteranwendungen ist Hektopascal (hPa) üblich. Die Umrechnung ist einfach:
Optional können Sie aus dem Luftdruck eine grobe Höhe ableiten. Eine verbreitete Näherung aus der barometrischen Höhenformel (Standardatmosphäre) lautet:
Dabei ist
Firmwareaufbau: Stabil, modular und gut debugbar
Eine Wetterstation läuft idealerweise wochenlang ohne Neustart. Die Firmware sollte deshalb robust strukturiert sein. Bewährt hat sich eine modulare Aufteilung:
- i2c.c: Bus-Grundfunktionen (Start/Stop/Read/Write), Timeout-Handling
- sensor_pressure.c: Sensorinitialisierung, Rohdaten lesen, Kompensation
- filter.c: gleitender Mittelwert/IIR, Ausreißerbehandlung
- ui_display.c: LCD/OLED-Ausgabe, Formatierung
- app.c: Hauptlogik, Zustände, Zeitplanung
Gerade I²C sollte mit Timeouts implementiert werden. Wenn der Bus hängt (z. B. SDA dauerhaft Low), darf das System nicht „für immer“ blockieren. Ein typischer Ansatz ist: nach einem Timeout Bus neu initialisieren, Sensor resetten oder in einen Fehlerzustand gehen, der weiterhin einen Neustart ermöglicht (Watchdog).
Timing ohne Chaos: Timer-getriebene Aufgaben
Setzen Sie einen Timer (z. B. alle 10 ms) und zählen Sie in Software hoch: 100 Ticks = 1 Sekunde. Dadurch entstehen stabile Mess- und Anzeigeintervalle, ohne dass Sie im Code mit langen Delays arbeiten müssen. Lange Delays sind eine häufige Ursache dafür, dass I²C, UART oder Display „zufällig“ instabil wirken.
Messwertfilter: Ruhige Anzeige ohne träge Wetterstation
Sensoren liefern reale Daten plus Rauschen. Für eine Wetterstation ist eine ruhige Anzeige wünschenswert, aber Sie wollen Trends (z. B. Druckabfall vor Regen) nicht „wegfiltern“. Zwei einfache Methoden sind praxistauglich:
- Gleitender Mittelwert: über N Messungen, z. B. N=8 oder 16
- IIR-Filter (exponentiell): schneller, speichersparend, gut für PIC16
Ein einfacher IIR-Ansatz lässt sich als „neuer Wert = alter Wert + Anteil der Abweichung“ beschreiben. Konzeptionell:
Mit
Kalibrierung und Vergleichbarkeit: Warum „Druck“ nicht gleich „Druck“ ist
Viele Nutzer wundern sich, dass ihre Wetterstation andere Werte zeigt als die lokale Wetter-App. Das liegt häufig daran, dass Wetterdienste den Luftdruck auf Meereshöhe reduzieren (QNH), während der Sensor den Stationsdruck misst. Außerdem beeinflussen Sensorposition und Gehäuse die Temperaturmessung. Für eine gute DIY-Station sind folgende Maßnahmen sinnvoll:
- Temperatursensor thermisch entkoppeln: weg von Spannungsregler, MCU und Displaybeleuchtung
- Drucksensor vor Zugluft schützen: aber nicht „luftdicht“ einbauen; Druck muss sich ausgleichen können
- Offset-Korrektur: einfacher Kalibrier-Offset im EEPROM, um Anzeige an Referenz anzunähern
- Trend statt Absolutwert: Drucktrend (steigend/fallend) ist oft aussagekräftiger als 0,3 hPa Unterschied
Wenn Sie QNH berechnen möchten, benötigen Sie Höhe und Temperaturannahmen; für viele DIY-Anwendungen reicht eine manuelle Kalibrierung des Druck-Offsets auf eine lokale Referenz (z. B. nahegelegene Wetterstation) – mit dem Hinweis, dass die Referenz bereits reduziert sein kann.
Anzeige und Bedienung: LCD, OLED oder UART-Ausgabe
Die Ausgabe bestimmt den Projektcharakter. Für Einsteiger ist ein klassisches 16×2-LCD robust und günstig. Mit 20×4 gewinnen Sie Lesbarkeit (z. B. separate Zeilen für Temperatur, Druck, Trend, Min/Max).
- 16×2 LCD: minimalistisch, schnell implementiert
- 20×4 LCD: komfortabler, mehr Platz für Trend/Min/Max
- OLED: elegante Darstellung, aber mehr Bibliotheksaufwand
- UART: ideal zum Debuggen und für PC-Logging (CSV-Ausgabe)
Wenn Sie ein HD44780-kompatibles LCD einsetzen, ist eine gute Übersicht zum Controller hilfreich: HD44780 LCD Controller (Befehlssatz/Grundlagen).
Low-Power-Option: Wetterstation mit Batterie betreiben
Ein PIC16 kann sehr stromsparend laufen, wenn Sie Messintervalle sinnvoll wählen und den Controller zwischen Messungen schlafen lassen. Für eine batteriebetriebene Wetterstation gilt:
- Messung bündeln: Sensor aufwecken, messen, speichern/anzeigen, wieder schlafen
- Peripherie abschalten: Display-Hintergrundbeleuchtung nur bei Bedarf
- I²C-Sensoren: prüfen, ob sie Standby-Modi unterstützen
- Watchdog nutzen: als Sicherheitsnetz gegen Hänger
Bei typischen Indoor-Wetterstationen ist USB/5 V jedoch oft einfacher und stabiler. Low-Power ist besonders dann interessant, wenn Sie Außensensoren oder autarke Messpunkte planen.
Typische Fehlerbilder und schnelle Diagnose
- Unplausible Sprünge im Druck: I²C-Fehler, schlechte Entkopplung, Ausreißer nicht gefiltert
- Temperatur zu hoch: Sensor zu nah an Regler/MCU, Gehäuse ohne Luftaustausch
- Anzeige flackert oder hängt: Delays im Hauptloop, fehlende Timeouts, zu häufige Display-Updates
- I²C hängt (SDA/SCL Low): Bus-Reset fehlt, Pull-ups falsch, Leitung zu lang
- Werte stimmen nicht mit Referenz überein: QNH vs. Stationsdruck, Offset fehlt, Sensor nicht korrekt kompensiert
Erweiterungen: Aus der Messstation wird ein echtes Wetterprojekt
Wenn Temperatur und Druck stabil laufen, sind Erweiterungen naheliegend. Sie erhöhen den Nutzwert und bringen zusätzliche Embedded-Themen ins Projekt:
- Luftfeuchte (BME280): Taupunktberechnung, Komfortindikator
- Drucktrendgraph: Verlauf über 3/6/12 Stunden als Mini-Plot auf OLED
- Min/Max-Speicher: Tageswerte im EEPROM oder RAM mit Reset um Mitternacht
- SD-Karten-Logging: CSV-Dateien für langfristige Auswertung
- Funkmodul: Daten an einen zentralen Empfänger senden
Outbound-Links für Sensoren, Bus-Spezifikation und Toolchain
- BMP280 Drucksensor (Bosch Sensortec)
- BME280 (Druck/Temperatur/Feuchte) (Bosch Sensortec)
- I²C Spezifikation UM10204 (NXP, PDF)
- MPLAB X IDE (Microchip)
- MPLAB XC Compiler (XC8) (Microchip)
- HD44780 LCD Controller (Grundlagen)
IoT-PCB-Design, Mikrocontroller-Programmierung & Firmware-Entwicklung
PCB Design • Arduino • Embedded Systems • Firmware
Ich biete professionelle Entwicklung von IoT-Hardware, einschließlich PCB-Design, Arduino- und Mikrocontroller-Programmierung sowie Firmware-Entwicklung. Die Lösungen werden zuverlässig, effizient und anwendungsorientiert umgesetzt – von der Konzeptphase bis zum funktionsfähigen Prototyp.
Diese Dienstleistung richtet sich an Unternehmen, Start-ups, Entwickler und Produktteams, die maßgeschneiderte Embedded- und IoT-Lösungen benötigen. Finden Sie mich auf Fiverr.
Leistungsumfang:
-
IoT-PCB-Design & Schaltplanerstellung
-
Leiterplattenlayout (mehrlagig, produktionstauglich)
-
Arduino- & Mikrocontroller-Programmierung (z. B. ESP32, STM32, ATmega)
-
Firmware-Entwicklung für Embedded Systems
-
Sensor- & Aktor-Integration
-
Kommunikation: Wi-Fi, Bluetooth, MQTT, I²C, SPI, UART
-
Optimierung für Leistung, Stabilität & Energieeffizienz
Lieferumfang:
-
Schaltpläne & PCB-Layouts
-
Gerber- & Produktionsdaten
-
Quellcode & Firmware
-
Dokumentation & Support zur Integration
Arbeitsweise:Strukturiert • Zuverlässig • Hardware-nah • Produktorientiert
CTA:
Planen Sie ein IoT- oder Embedded-System-Projekt?
Kontaktieren Sie mich gerne für eine technische Abstimmung oder ein unverbindliches Angebot. Finden Sie mich auf Fiverr.

