NEWS
Reverse engineering SHT21-Modul // Temp. & Feucht.sensor
-
Hallo zusammen,
ich habe einen Temperatur und Luftfeuchtigkeitssensor Sensor, für den der Hersteller meiner dezentralen Lüftungsanlage 80€ verlangt.
Da ich diesen Sensor für jedes Stockwerk, also noch 2 Mal benötige, stelle ich mir die Frage, ob ich das nicht einfach aus ein paar Komponenten selber bauen kann.Die Beschriftung ist super klein, aber ich meine die Beschriftung wie folgt entziffern zu können:
SHT21
DFHBUDemnach scheint dies ein SHT21 auf einem Board zu sein. Die zweite Zeile ist vermutlich die Seriennummer?!
Auf dem Board scheint der eigentliche SHT21, eine LED und drei Widerstände verlötet zu sein. Es gibt 2x4 Anschlusspins. Mich irritiert, dass die bisher gefundenen SHT21-Sensoren durch den I²C Anschluss normalerweise 4 Pins haben. Sind die übrigen Pins ggf. nicht verdrahtet? oder lediglich für die LED?!
Wie finde ich heraus welche Pin welche Funktion hat?Anbei ein paar Fotos. Sorry für die Qualität... das Ding ist echt klein!
Wie ist eure Einschätzung wie aussichtsreich das ist dieses relativ einfache Bauteil nachzubauen?
Danke für eure Einschätzungen!
-
@ralf7938 sagte in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
normalerweise 4 Pins haben.
nach Datasheet
-
@ralla66 Richtig, das ist ja der "nackte" Sensor. Das Board, auf dem eine LED, ca. 3 Widerstände +X noch aufgelötet sind hat dann wiederum 8 Pins. Boards mit I²C Schnittstelle (wie z.B. hier ) haben aber nur 4 Pins.
Gibt es Möglichkeiten herauszufinden welche Schnittstelle der bestehende Sensor nutzt, bzw. die Vermutung zu bestätigen, dass es sich um I²C handelt? Wie kann ich da die Pinbelegung rausfinden, wenn die nicht beschriftet ist?
-
Spannung kannste ermessen mit einem Multimeter,
den Rest verrät das Datasheet,
zwischen VSS und VDD ist ein 100nf geschaltet,
SDA und SCL haben meist einen Pulldown mit 10 K.
Led könnte son 220 Ohm Widerstand haben.
Wenn die Pinbelegung bekannt ist an einen Tasmota ESP I2C testen. -
bevor Du dort im Betrieb/Unter Spannung rangehst, Kommst Du doch mit dem Datenblatt schon recht weit. Der Chip ist genormt und auf der Oberseite die Öffnung bedeudet gleichzeitig auf der Unterseite die beiden NC Kontakte. Der Rest genau wie im Foto bereits gezeigt:
VSS/GND sollte sich auch recht einfach mit Multimeter durchmessen lassen (Ohmisch -> nahezu Spannungslos).
Leiterbahnen auf der Platine kann man auch auf den Fotos erahnen insofern. Kommst Du doch schon weit.
Eine Frage die sich mir bei der I²C Theorie stellt, ist dass der I²C Bus nicht für große Entfernungen entwickelt wurde und daher vielleicht ungünstg für so eine Hausklimatisierung wo die Sensoren über x0m verteilt sind. Vielleicht eine überholte Anmerkung und es wurde hier irgendwie gelöst.
Letzlich aber doch alles ziemlich viel Querüberlegung. Mess die Pins Ohmisch durch. Sollte das passen und nichts in die I²C Verbindung noch ergänzend reingebaut sein oder mit anderen Spannungspegeln gerarbeitet werden, kann man diese Platine an Tasmota testen.
Klappt das, wäre ich optimistisch, dass einfach auch fertige SHT21 Platinen an Deiner Anlage funktionieren.
-
vermutlich so
-
@ralla66 Ihr Maschinen! Keine Ahnung, mit welchem Superheld ihr verwandt seit, aber wenn ihr echt auf Basis von dem beschi****en Bild und dem Datenblatt die Leiterbahnen rekonstruieren könnt, bin ich echt baff!
Vielen Dank schonmal soweit!Dem entnehme ich Folgendes (Pinbezeichnung siehe Bild unten):
- Auf der Buchsen-seite (Lüftung) müssten zwischen Pin A und B dann 3,3V anliegen?
- Wenn ich (sensor-seitig) zwischen Pin A und F 3,3V anlege müsste die LED dauerhaft leuchten?
- An den ESP würde ich lediglich die Pins A, B, G, H anschließen? (G=SDA; H= SLC. Den SHT21 finde ich nicht unter der Tasmota-Kompatibilität, lediglich den SHT1x und SHT30. Ist das ein Problem?)
- Die Pins C, D, E sind nach eurem Verständnis nicht belegt?
Spiegelt das auch eurer aktuelles Verständnis wider?
-
nö, du sollst messen ob die Leiterbahnen so verbunden sind.
-
@ralla66 Macht Sinn!
Habe jetzt gemessen:
1-F: Kontakt
2-B: Kontakt
5-G: Kontakt
6-H:KontaktAußerdem:
D-LED rechte Seite: 100 Ohm
B-LED linke Seite: KontaktErgo:
B: Ground
G: VCC
F: SDA
H: SCLTasmota zeigt leider keinen Sensor an, wenn ich die Pins auf I²C stelle.
Wenn ich testweise auf Pin D nochmal 3,3 Volt gebe müsste die LED dauerhaft brennen oder besteht eine realistische Gefahr, dass ich die durchjage (ohne genau zu wissen, welche LED verbaut ist)?Bringt das noch einen Zusatznutzen, wenn ich noch einige Widerstände der Messungen teile?
Wie schätzt ihr die Chancen ein, dass ein SHT21 ohne zusätzliche ICs (wie hier) funktioniert? Ist das einen Versuch wert?
-
bei Tasmota mußt du erst die Adresse bestimmen mit
I2CScan in der Console -> Scan I2C bus and show addresses for found devices
und festlegen -
Wie zuvor gesagt, Ein Schritt nach dem anderen. Wenn dieser Sensor an Tasmota/ESPEasy funktioniert, ist eindeutig klar das man es mit 0815 Komponenten hinbekommt.
Ich würde danach um sicher zu gehen noch einmal den Pin A gegen B messen, welche Versorgungsspannung da ankommt. Dürften maximal 3,6V sein.
Die LED wäre mir "Wurst" da sie im Dauerbetrieb eigentlich nur Strom verbraucht.
Der 100nF Kondensator stabilisiert/säubert minimal die Versorgungsspannung und hilft bei diesen kleinen Spannung und möglichen recht langen Leitungslängen etwas sicherer den Chip zu betrieben. Wenn es ohne klappt, auch gut möglich, wenn der Chip instabil läuft und Probleme auftreten weißt Du warum.
10k Ohm zieht wenn ich es richtig sehe eine Datenleitung auf High um so einen definierten Grundzustand zu haben. Also durchaus auch wichtige Funktion.
Aber, wenn Du die Prüfschritte unternommen hast würde ich etwas praktischer werden und geschickt gewählte SHT21 Boards vom Asiamarkt auch wirklich anklemmen. Die Dinger kosten doch nix (1€) und wenn es funktioniert ist alles loko.
Mich wundern noch die ganzen zusätzlichen Pins. Sind die evtl. gebrückt (C zu D und E zu F oder ähnlich)? So könnte die Lüftung detektieren, dass ein Sensor angeschlossen ist. Fehlen sie, ist eine Fehlfunktion zu erwarten beim Betrieb an der Lüftung.
-
@dieter_p said in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
Ich würde danach um sicher zu gehen noch einmal den Pin A gegen B messen, welche Versorgungsspannung da ankommt. Dürften maximal 3,6V sein.
Du meinst B zu G, also VCC zu Ground (an der Lüftung), richtig? Hier sind es 3V.
@dieter_p said in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
Mich wundern noch die ganzen zusätzlichen Pins. Sind die evtl. gebrückt (C zu D und E zu F oder ähnlich)? So könnte die Lüftung detektieren, dass ein Sensor angeschlossen ist. Fehlen sie, ist eine Fehlfunktion zu erwarten beim Betrieb an der Lüftung.
Würde in der Tat Sinn ergeben, ich messe da aber nix.
Nach meiner Messung sind SCL und SDA auf VCC, also high gezogen.
In Tasmota wird leider auch bei i2cscan kein Gerät gefunden.
08:40:13.157 CMD: i2cscan 08:40:13.176 RSL: RESULT = {"I2CScan":"No devices found"}
Ich messe nochmal durch, ob ich irgendwo einen Fehler gemacht habe.
Ansonsten sind die Chancen, dass ein Chinasensor funktioniert, wenn ich den Orginalen am ESP nicht zum Laufen bekomme verschwindend gering, richtig? -
@ralf7938
Ja genau sorry. VCC gegen GND um sicher zu sein nichts zu zerstören, aber mit den 3V klingt das ja gut.Ich hab selbst noch kein I²C Gerät an Tasmota verwendet. Von daher überfragt ob da in der Standardversion alles drin ist. Wenn Du in der GeräteEinstellung aber den SHT konfigurieren kannst, klingt das ja positiv.
Ich hab bisher nur ESPEasy für I²C verwendet und da ist per Menü ein I²C Scanner drin, aber letzlich ist das ja nur Bedienkomfort....hoffentlich. vielleicht ist ein Versuch wert. Was nutzt Du ESP8266 oder ein ESP32?
Hier unter check the device eine gute Zusammenfassung:
https://www.letscontrolit.com/wiki/index.php/Basics:_The_I²C_Bus -
zumindest sollte Tasmota Sensors das Device erkennen. Tasmota kann ja bis 450 Khz I2C.
Der SHT21 sollte Adresse 0x40 haben.
Bevorzugte GPIOs Esp8266
GPIO 1 TX SCL
GPIO 3 RX SDA oder
GPIO 5 D1 SCL
GPIO 4 D2 SDAsonst die Beschaltung prüfen
-
@ralla66 said in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
zumindest sollte Tasmota Sensors das Device erkennen.
Kommt die gerade zum Einsatz @Ralf7938
https://tasmota.github.io/docs/SHT30/#tasmota-settings
Vermute diese Konfig greift sonst ins Leere
-
@ralf7938 sagte in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
SHT21
warum versuchst du das so aufwändig zu reengineeren?
wenn du sht21 und mqtt bei google eingibst, gibt es einige beispiele.hier kann man sogar für 3 euro die bestückungsplatine bestellen,
die smartfunktionalität mittels mqtt zum senden an den iobroker erhälst du in verbindung mit einem wlan durch einen esp8266
https://taaralabs.eu/taaraesp-sht21-wifi-humidity-sensor/
https://github.com/TaaraLabs/TaaraESP-SHT21-MQTT?tab=readme-ov-filehab aber nicht so tief da reingeschaut
-
Habe hier einen I2C-Helligkeitssensor gefunden, den ich erfolgreich an meinem ESP8266 getestet habe. An dem Ende kann das Problem also nicht bestehen.
Werde jetzt nochmal das SHT21-Modul durchmessen, ob ich mich da irgendwo vertan habe. Ich bin nach einiger Recherche/Überlegungen nun guter Dinge, dass ich das Ding an Tasmota zum Laufen kriegen müsste.
Letzte Überlegung, die ich noch hatte, wäre den Sensor 1:1 mit 10 Jumperkabeln mit der Lüftereinheit zu verbinden und dann sukzessive die Pins, die beim durchmessen leer sind wegzulassen bzw. zu trennen. Wenn anschließend noch alles funktioniert, sehe ich, ob die Pins obsolet sind. Praktische Herausforderung dabei ist noch der Umstand, dass der Sensor auf 2mm Stiftleiste steht und ich natürlich nur 2,54mm Jumperkabel habe....
@oliverio said in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
warum versuchst du das so aufwändig zu reengineeren?
Weil ich die Lüftung nicht ins smarthome integrieren kann und demnach der Sensor der einzige Weg ist die Lüftung abhängig von Temp bzw. Luftfeuchte zu steuern.
-
@ralf7938 sagte in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
Habe hier einen I2C-Helligkeitssensor gefunden, den ich erfolgreich an meinem ESP8266 getestet habe. An dem Ende kann das Problem also nicht bestehen.
Nicht ganz richtig, wenn Tasmota zwar das Device mit der Adresse erkennt aber die Daten nicht entschlüsseln kann ist es möglich das Tasmota no Device found ausgibt.
Jumperkabel eine gute Idee, Step by Step entfernen, dann sollten 4 Kabel über bleiben.
Andere Device in Shops, beachte das diese meist ein Spannungsregler sowie Levelshifter
mit verbaut haben. Dies kann so nicht eingesetzt werden.Mal Tante Google angeworfen, da war für die Platine max Preis 199 Euro.
Sehr frechdiese sollten passen ->
-
@ralf7938 Bessere Fotos wären nicht verkehrt. Möglich, dass da PINs der Erkennung des Moduls dienen. Diese also bestimmte Werte zueinander haben müssen.
-
Hallo Zusammen,
ich kenn mich dazu nicht wirklich aus, aber Matthias hat sowas ähnliches auch schon gemacht. Vielleicht hilft das weiter:https://haus-automatisierung.com/projekt/2023/06/30/projekt-zehnder-sensor-tauschen.html