Inhaltsverzeichnis
Für dieses Projekt benötigst du
Die Hardware
Die Messungen von Temperatur und Luftfeuchtigkeit mithilfe von Sensoren sind eine wichtige Standardanwendung für Mikrocontroller. Die Sensoren unterscheiden sich durch ihre Anschlüsse und ihre Messgenauigkeit.
Die hier verwendeten Sensoren SHT20, SHT35 und SHT40 werden über I2C angeschlossen, sie benötigen also neben den Anschlüssen 3,3V und Ground (GND) nur zwei weitere Anschlüsse für die Übertragung der Daten.
Der Sensor SHT40
Der Schaltplan
Beachte unbedingt bei der Verkabelung die Beschriftung auf dem Modul!
Benötigte Bibliothek SHT40
Du kannst die Bibliothek auch über das Menü installieren:
Werkzeuge
Ausgabe im Seriellen Monitor
Das Programm
// benötigte Bibliothek einbinden
#include "Adafruit_SHT4x.h"
// Name des Sensors (sht4)
Adafruit_SHT4x sht4 = Adafruit_SHT4x();
void setup()
{
Serial.begin(9600);
// auf den Begin der Seriellen Kommunikation warten
while (!Serial);
delay(1000);
// SHT40 starten, im Fehlerfall Meldung anzeigen
Serial.println("SHT40 Test");
if (!sht4.begin()) Serial.println("Sensor SHT40 nicht gefunden");
else Serial.println("Sensor SHT40 gefunden!");
/*
Genauigkeit bestimmen
mögliche Werte:
SHT4X_LOW_PRECISION (niedrig)
SHT4X_MED_PRECISION (mittel)
SHT4X_HIGH_PRECISION (hoch)
*/
sht4.setPrecision(SHT4X_HIGH_PRECISION);
}
void loop()
{
// Sensorwerte erfassen (Luftfeuchtigkeit, Temperatur)
sensors_event_t Luftfeuchtigkeit, Temperatur;
// neue Messdaten holen
sht4.getEvent(&Luftfeuchtigkeit, &Temperatur);
// gemessene Temperatur in String umwandeln
String gemesseneTemperatur = String(Temperatur.temperature);
// . durch , ersetzen
gemesseneTemperatur.replace(".", ",");
// Temperatur anzeigen
Serial.println("Temperatur: " + gemesseneTemperatur + "°C");
// gemessene Luftfeuchtigkeit in String umwandeln
String gemesseneLuftfeuchtigkeit = String(Luftfeuchtigkeit.relative_humidity);
// . durch , ersetzen
gemesseneLuftfeuchtigkeit.replace(".", ",");
// Luftfeuchtigkeit anzeigen
Serial.println("Luftfeuchtigkeit: " + gemesseneLuftfeuchtigkeit + "%");
Serial.println("------------------------");
delay(2000);
}
Der Sensor SHT20
Der Anschluss wird ebenfalls mit 3,3V, GND, SCL am Arduino UNO vorgenommen.
Beachte unbedingt bei der Verkabelung die Beschriftung auf dem Modul!
Der Sensor SHT20 benötigt eine andere Bibliothek.
Das Programm
#include "SHT2x.h"
// sht Wire zuordnen
SHT2x sht(&Wire);
void setup()
{
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial);
delay(1000);
// Wire starten
Wire.begin();
// SHT20 starten, im Fehlerfall Meldung anzeigen
Serial.println("SHT20 Test");
if (!sht.begin()) Serial.println("Sensor SHT20 nicht gefunden");
else Serial.println("Sensor SHT20 gefunden!");
}
void loop()
{
// Sensor lesen
sht.read();
// Daten im Seriellen Monitor anzeigen
// gelesene Temperatur in String mit 2 Nachkommastellen umwandeln
String gemesseneTemperatur = String(sht.getTemperature(), 2);
// . durch , ersetzen
gemesseneTemperatur.replace(".", ",");
// Temperatur anzeigen
Serial.println("Temperatur: " + gemesseneTemperatur + "°C");
// gelesene Luftfeuchtigkeit in String mit 2 Nachkommastellen umwandeln
String gemesseneLuftfeuchtigkeit = String(sht.getHumidity(), 2);
// . durch , ersetzen
gemesseneLuftfeuchtigkeit.replace(".", ",");
// Luftfeuchtigkeit anzeigen
Serial.println("Luftfeuchtigkeit: " + gemesseneLuftfeuchtigkeit + "%");
Serial.println("------------------------");
delay(2000);
}
Der Sensor SHT35
Der Anschluss wird ebenfalls mit 3,3V, GND, SCL am Arduino UNO vorgenommen.
Beachte unbedingt bei der Verkabelung die Beschriftung auf dem Modul!
Der SHT35 gehört zur Serie der SHT3x-Sensoren und benötigt eine eigene Bibliothek.
Das Programm
// benötigte Bibliothek einbinden
#include "Adafruit_SHT31.h"
// Name des Sensors (sht31)
Adafruit_SHT31 sht31 = Adafruit_SHT31();
void setup()
{
Serial.begin(9600);
// auf den Begin der Seriellen Kommunikation warten
while (!Serial);
delay(1000);
// SHT35 starten, im Fehlerfall Meldung anzeigen
Serial.println("SHT35 Test");
if (!sht31.begin()) Serial.println("Sensor SHT35 nicht gefunden");
else Serial.println("Sensor SHT35 gefunden!");
}
void loop()
{
// Sensorwerte erfassen (Luftfeuchtigkeit, Temperatur)
String Temperatur = String(sht31.readTemperature());
String Luftfeuchtigkeit = String(sht31.readHumidity());
// . durch , ersetzen
Temperatur.replace(".", ",");
Luftfeuchtigkeit.replace(".", ",");
// Temperatur anzeigen
Serial.println("Temperatur: " + Temperatur + "°C");
// Luftfeuchtigkeit anzeigen
Serial.println("Luftfeuchtigkeit: " + Luftfeuchtigkeit + "%");
Serial.println("------------------------");
delay(2000);
}
Funduino - Dein Onlineshop für Mikroelektronik
-
Dauerhaft bis zu 10% Rabatt für Schüler, Studenten und Lehrkräfte
-
Mehr als 3.500 Artikel sofort verfügbar!
-
Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.