Wemos D1 mini Shield: SHT30 Temperatur und Luftfeuchtigkeit Sensor

Das SHT30 Shield für den Wemos D1 mini verfügt über einen sehr gut Auflösenden Sensor welcher die Temperatur und die relative Luftfeuchtigkeit wiedergibt.

SHT30 Shield für den Wemos D1 mini
SHT30 Shield für den Wemos D1 mini

Der Sensor wird wie alle Shields mit 2 Stiftleisten ausgeliefert, welche noch montiert werden sollten.

Hier bietet sich es an die Stiftleisten auf ein Dual Base Shield zu stecken und das SHT30 Shield dann auf die Stiftleisten zu legen, somit sind diese korrekt ausgerichtet und es läßt sich leichter Löten.

SHT30 Shield auf Dual Base Shield
SHT30 Shield auf Dual Base Shield

Technische Daten

  • Messbereich
    • relative Luftfeuchtigkeit ± 2 %
    • Temperatur ± 0,3 °C
  • Betriebstemperatur -40 °C bis 125 °C

Bezug

Das Shield kann über ebay.de oder amazon.de ab ca. 2 € gekauft werden.

Schaltung

Auf der Platine kann durch das Verbinden der Lötstellen die Adresse „eingestellt“ werden. Wenn die Lötstelle NICHT verbunden wurde, dann lautet die Adresse 0x45. Sollte die Lötstelle verbunden worden sein, so ist diese Adresse 0x44.

Das Bild auf der Platine gibt hierzu eine kleine Erläuterung.

Einstellen der Adresse des SHT30 Shields über Lötverbindungen.
Einstellen der Adresse des SHT30 Shields über Lötverbindungen.

Das Shield verwendet die Pins D1 (SCL) & D2 (SDA) des Wemos D1 mini.

Wemos D1 mini mit SHT30 Shield auf Dual Base Shield
Wemos D1 mini mit SHT30 Shield auf Dual Base Shield

Reset

Das Shield verfügt über einen Resetpin, welcher über einen verbauten 10kOhm Widerstand am Chip angeschlossen ist. Wenn man diesen Pin auf Ground schaltet, dann wird ein Hardware Reset durchgeführt.

Alert

Der Alertpin wird bei einem Event auf HIGH gesetzt. Wie man ein Event für einen Alarm erzeugt kann man in dem Datasheet zum SHT30 Chip nachlesen.

Quellcode

Für dieses Shield gibt es eine Bibliothek welche vom GitHub Repository https://github.com/wemos/WEMOS_SHT3x_Arduino_Library geladen werden kann. Das nachfolgende Beispiel setzt vorraus, das diese Bibliothek in der Arduino IDE installiert wurde. Wie man eine Bibliothek in der Arduino IDE installiert habe ich im gleichnamigen Tutorial Arduino IDE, Einbinden einer Bibliothek ausgiebig erläutert.

Mit der Bibliothek wird auch ein Beispiel mitgeliefert, welches von mir nur minimal abgeändert wurde.

#include <WEMOS_SHT3X.h>

SHT3X sht30(0x45);

void setup() {
  Serial.begin(9600);
}

void loop() {
  if(sht30.get()==0){
    Serial.println("");
    Serial.print("Temperatur in Celsius : ");
    Serial.print(sht30.cTemp);
    Serial.println("°C");
    Serial.print("Temperatur in Fahrenheit : ");
    Serial.print(sht30.fTemp);
    Serial.println("°F");
    Serial.print("relative Luftfeuchtigkeit : ");
    Serial.print(sht30.humidity);
    Serial.println("%");
  } else {
    Serial.println("Fehler beim auslesen des Sensors!");
  }
  
  delay(1000);
}

Ausgabe auf der Konsole

Temperatur in Celsius : 23.92°C
Temperatur in Fahrenheit : 75.05°F
relative Luftfeuchtigkeit : 47.61%

Troubleshooting

wdt reset

Sollte folgende Ausgabe auf dem seriellen Monitor der Arduino IDE erscheinen (Baudrate 11500):

ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1264, room 16 
tail 0
chksum 0x42
csum 0x42
~ld

UND die ESP8266 Bibliothek in der Version 2.0.0 installiert sein, dann muss ein Update sowie eine kleine Codeanpassung geschehen. Im Boardverwalter nach ESP suchen und dort, die Version 2.3.0 (1) auswählen und installieren (3).

ESP8266 Bibliothek
ESP8266 Bibliothek

Nachdem die ESP Bibliothek aktualisiert wurde muss im Code folgendes geändert werden:

uint8_t sht30Adresse = 0x45;
 
SHT3X sht30(sht30Adresse);
//SHT3X sht30(0x45);

Fazit

Der SHT30 Sensor ist eine sehr gute alternative gegenüber dem DHT11 welcher deutlich ungenauer ist.  Des Weiteren liefert der SHT30 Sensor jede Sekunde einen neuen Wert auch hier schwächelt der DHT11 (welcher nur alle 2,5 sek. einen neuen Wert liefert).

4 Kommentare

  1. Hallo und DANKE für den tollen Beitrag.
    Dank dieser Anleitung und Sketch konnte ich schnell den SHT30 zum Leben erwecken.
    Hier wurde auch beschrieben, dass man die Adresse von 0x45 auf 0x44 ändern kann, jedoch nicht erklärt was diese Aktion bewirkt.
    Ich habe nämlich folgendes Problem:
    Ich möchte ein SHT30 und ein DS1307 am Wemos D1 mini betreiben.
    Was nun Blöd ist, ist das beide Module die Ports D1 und D2 benutzen.
    Kann man durch umadressieren des SHT30 zwei andere Ports verwenden?
    Für eine Hilfe wäre ich sehr Dankbar.
    Gruß
    Helmut

    1. Hi,

      die Pins D1 & D2 sind die I²C Pins am Wemos D1 Mini, du kannst diese Pins fast beliebig mit mit mehreren Modulen bestücken da die Module per Adresse angesteuert werden.

      Gruß,

      Stefan Draeger

  2. Hallo Stefan,
    vielen DANK für die schnelle Antwort.
    Ich habe nicht gewusst das man D1+D2 mehrfach belegen kann,
    damit werden ja völlig neue Möglichkeiten eröffnet.
    Natürlich gleich ausprobiert und es funktioniert.
    Ich habe durch diese Info sehr viel gelernt.
    Nochmals vielen DANK.
    Gruß
    H. Mirkan

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.