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  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 4.000 Artikel sofort verfügbar!
  • Mehr als 10 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE
Benötigst du Unterstützung bei deinem Projekt?

Alle Modelle der hier gezeigten Modelle sind hier zum Download  in einer kompakten Zip Datei verfügbar.