Temperatur messen mit SHT20, SHT35 und SHT40

Inhaltsverzeichnis

Die Hardware

SHT40

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  Sensoren 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.
SALE