Wettersensoren für die eigene Wetterstation
Kaum ein Arduino Bastler der nicht auch einmal eine Wetterstation bastelt. Egal ob auf Basis eines Arduino mit Display oder doch mit Webanbindung mit einem ESP8266 - Sensoren für Temperatur, Luftfeuchtigkeit, Luftdruck, Luftgüte oder gar Beleuchtungsstärke braucht eine Wetterstation.
Zunächst eine Übersicht an Sensoren für die Wetterstation. Allen hier angeführten Sensoren ist gemeinsam, dass sie Daten auf einer digitalen Schnittstelle zur Verfügung stellen. Es sind keine analogen Eingangspins erforderlich, was besonders für den ESP8266 sehr angenehm ist.
Modell | Werte | Verfügbarkeit | Interface und Anmerkungen |
---|---|---|---|
DS18B20 | Temperatur | Amazon (*) | OneWire (busfähig) |
DHT11 | Temperatur, Feuchte | Amazon (*) | proprietär 1 Draht |
DHT22 | Temperatur, Feuchte | Amazon (*) | proprietär 1 Draht |
AM2301 | Temperatur, Feuchte | Aliexpress (*) | proprietär 1 Draht, kompatibel zum DHT22 |
AM2305 | Temperatur, Feuchte | Aliexpress (*) | proprietär 1 Draht, kompatibel zum DHT22 |
AM2306 | Temperatur, Feuchte | Aliexpress (*) | proprietär 1 Draht, kompatibel zum DHT22, sehr robuste Ausführung |
AM2320B | Temperatur, Feuchte | Aliexpress (*) | I2C |
SI7021, SHT21 | Temperatur, Feuchte | Amazon (*) | I2C |
BMP180 | Temperatur, Luftdruck | Amazon (*) | I2C |
BMP280 | Temperatur, Luftdruck | Amazon (*) | I2C, SPI |
BME280 | Temperatur, Feuchte, Luftdruck | Amazon (*) | I2C, SPI, in 3.3 und 5V Modulen erhältlich |
BME680 | Temperatur, Feuchte, Luftdruck, Luftqualität (Luftgüte, VOC) | Amazon (*) | I2C (je nach Modell auch mit SPI) und meist als 3.3 + 5V Variante |
BH1750FVI | Beleuchtungsstärke | Amazon(*) | I2C |
MH-Z19 MH-Z19C MH-Z19E MH-Z19B | CO2 Sensor | Amazon(*) | Seriell, PWM |
Nachfolgende Sensoren können mittels entsprechenden Arduino Libraries problemlos angesprochen werden. Sie laufen auch stabil mit langen Kabeln. Sie eignen sich daher gut für den verteilten Einsatz im Haus - oder zur Verkabelung von Sensoren nach draußen.
DS18B20
Die DS18B20 kommen in der Bauform TO-92. Das kennt der Bastler von kleinen Transistoren. Oft sind diese Temperatursensoren (sie messen wirklich nur die Temperatur) in eine Metallhülse eingegossen und man bekommst sie mit unterschiedlichen Kabellängen. Auch große Kabellängen (>10m) sind relativ unproblematisch. Der Sensor hat eine One-Wire Schnittstelle. Jeder Sensor hat vom Werk aus eine individuelle Adresse und somit kann man auch viele Sensoren an einer Datenleitung im Bus betreiben. Neben der Datenleitung (One Wire) werden noch VCC und GND benötigt, wobei es auch eine Anschlussvariante mit nur zwei Leitungen gibt - siehe dazu der parisitäre Modus.
DHT11
Die DHT11 sind der kostengünstige Einstieg in die Welt der Temperatur/Luftfeuchtesensoren. Sie haben den Ruf eher ungenau zu sein und daher soll man besser auf einen DHT22 (oder kompatiblen) zurückgreifen.
DHT22/AM2302
Die DHT22 Sensoren kommen in vielen Varianten. Sie messen Temperatur und Luftfeuchtigkeit und können (jeweils einzeln) mit einem einzigen Arduino Pin ausgelesen werden. Kabellängen mit 10m laufen problemlos.
AM2301
Der AM2301 ist kompatibel zum DHT22. Er kommt in einem kleinen schwarzen Gehäuse. Ich empfehle diesen Temperature/Luftfeuchtesensor gerne als kostengünstige Variante zu seinen größeren Brüdern AM2305 und AM2306 für die Werkbank bzw während der Sketch Entwicklung.
AM2305
Der AM2305 besitzt einen besseren Temperatursensor und ist in einem stabilen Gehäuse untergebracht. Das originale Verbindungskabel ist etwa 1m lang. In den Dauerregen sollte er aber auch nicht kommen. Aber in einem typischen "Feuchtraum", in der Gartenlaube oder regengeschützt im Carport kann man den schon einsetzen. Der Temperaturbereich umfasst - 40... . +80C, die Luftfeuchtigkeit 0 ... 99.9%RH.
AM2306
Der AM2306 ist eine wetterfeste Ausführung mit DHT22 Schnittstelle. Spritzwasser oder Regen wird ihm keinen Schaden zuführen. Natürlich muss man diesen Sensor auch im Schatten aufstellen, den bei direkter Sonneneinstrahlung würde die Temperaturmessung verfälscht werden. Aber im Außenbereich gibt es imho keinen besseren Temperatursensor/Feuchtigkeitssensor für den Bastler. Meinen ersten AM2306 habe ich 2018 auf einer Hauswand nach Norden montiert und dieser verichtet seit dem klaglos seinen Dienst.
Sonstige busfähige Wettersensoren
Will man mehrere Sensoren betreiben oder Pins einsparen greift man gerne auf die Schnittstellen I2C oder SPI zurück. Dabei muss beachtet werden, dass bei diesen Bus Systemen die Kabel so kurz wie möglich sein sollten. Lange Leitungen sind hier bei den nachfolgenden Wettersensoren ein No-Go.
AM2320B
Der AM2320B ist ein SHT21 digital Temperatursensor/Feuchtigkeitssensor und kommt in einem kleinen Gehäuse. Er hat eine I2C Schnittstelle - daher das Kabel zum Arduino / ESP8266 so kurz wie möglich halten!
SI7021, SHT21, HT21
Der SI7021/SHT21 misst Lufttemperatur und Luftfeuchtigkeit. Auf der Platine ist manchmal auch GY-21 angegeben. Teilweise wird der SI7021/SHT21 mit einem weißen "Aufkleber" am Sensor ausgeliefert. Dieser Aufkleber ist lt. Datenblatt luftdurchlässig und braucht nur dann entfernt werden, wenn man schnellere Reaktion auf sich rasch änderende Klimabedingungen erhalten möchte. Als Bus wird I2C verwendet, der Sensor lässt sich aber mit relativ wenigen Befehlen auslesen und braucht daher wenig Speicher.
BMP180
Der BMP180 mit I2C Schnittstelle misst Lufttemperatur und Luftdruck (hPA).
BMP280
Der BMP280 kann sowohl über I2C als auch SPI ausgelesen werden. Der Sensor misst die Lufttemperatur und ermittelt den Luftdruck. Dazu muss man im Sketch die Meereshöhe bekannt geben.
BME280
sowohl mit I2C als auch SPI ausgelesen werden. Achte beim Kauf darauf, dass diese Sensoren in zwei Varianten angeboten werden: entweder für Microcontroller mit 5V (z.B. Arduino UNO/NANO/MEGA) oder als 3.3 V Variante (ideal für den ESP8266 oder ESP32). Leider kommt es bei einigen Händlern vor, dass sie irrtümlich den BMP280 senden, da diese Module meist auf ähnlichen Platinen montiert werden. Wenn es Schwierigkeiten mit der BME280 Library gibt, lohnt sich mal Testweise die BMP280 Library zu testen bevor man das Modul in die Tonne wirft.BME680
Der BME680 misst Lufttemperatur, Luftfeuchtigkeit, Luftdruck und Luftgüte (VOC). Er kann mittels I2C (Addressen 0x76 oder 0x77) oder mit SPI gelesen werden. Die Luftgüte (Luftqualität) wird mittles VOC (Volatile Organic Compounds) ermittelt (ein Mix aus Ethanol, Alkohol und Kohlenmonoxyd).
Genaugikeiten
Lufttemperatur: +/- 1 °C
Luftfeuchtigkeit: +/- 3%
Luftdruck: +/- 1hPa
BH1750FHI
Der BH1750FHI ist ein Lichtsensor. Er liefert die aktuelle Beleuchtungsstärke in Lux zurück. Wenn man bereits I2C Sensoren (oder ein I2C Display) auf seiner Wetterstation betreibt, so passt dieser Sensor ausgezeichnet dazu. Ich verwende diesen Sensor um von verschiedenen Wetterstationen annähernd vergleichbare Werte zu erhalten. Die Library für den Beleuchtungsstärke-Sensor benötigt relativ wenig speicher. Als I2C Adressen kann 0x23 oder 0x5c gewählt werden.
MH-Z19, MH-Z19C, MH-Z19E, MH-Z19B
Die MH-Z19 Familie sind CO2 Sensoren. Der Sensor kann bietet einen PWM Ausgang und eine serielle Schnittstelle mit 9600 Baud und kann daher auch auf einem Arduino UNO/NANO mit SoftSerial ausgelesen werden.
Resümee
Lang ist die Liste an Wettersensoren. Entscheidend für den richtigen Sensor soll nicht nur der Preis sein, sondern auch, welche Werte gemessen werden sollen und wie weit der Sensor vom Microcontroller aufgestellt werden wird.