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.
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ässt sich leichter Löten.
Technische Daten
- Betriebsspannung: 3V bis 5,5V DC
- Betriebstemperatur -40 °C bis 125 °C
- Schnittstelle: I2C (0x44 Standard / 0x45 über Lötpunkte)
- Temperatur: -40 bis +125 °C (± 0,3 °C)
- relative Luftfeuchtigkeit : 0 % bis 100 % (± 2 %)
Bezug
Das Shield kann über ebay.de* oder amazon.de* ab ca. 2 € gekauft werden.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
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.
Das Shield verwendet die Pins D1 (SCL) & D2 (SDA) des Wemos D1 mini.
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 voraus, dass 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).
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).
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
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
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