NEWS
Reverse engineering SHT21-Modul // Temp. & Feucht.sensor
-
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
-
@ralf7938 said 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.
Schön, dass wir jetzt wissen dürfen dass Du einen ESP8266 verwendest zum Test. Beim Helligkeitssensor muß ich leider wieder raten. Ist es ein BH1750 dann würde der Vorgang und die Schlussfolgerung sinnig klingen da auch der BH1750 Tasmota in der "sensors" Variante vorraussetzt und meine logische Glaskugel sagt, dass du diese dann einsetzt. Demnach liegt bei dem SHT21 der Lüftung noch eine Besonderheit oder Fehlfunktion vor, die es zu finden gilt.
Nuja, warum startest Du nicht einfach mit 4 angeschlossenen Dupontkabeln am SHT21 an Deiner Lüftung? Funktioniert das, ist der Zielzustand gefunden. Aber das könnte Testschritt 2 vor Testschritt 1 sein und warum der Sensor nicht am ESP läuft bisher unidentifiziert.
-
@ralf7938 said in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
Ergo:
B: Ground
G: VCC
F: SDA
H: SCLUnd hier ist wohl ein Dreher drin, probiere mal:
A: Ground
B: VCC
G: SDA
H: SCLbasierend auf der Grundfunktion des SHT21 mit nur einem PullUp (10kOhm) am SDA:
-
@peterfido said in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
@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.
Muss dir leider zustimmen, dass die Fotos echt schlecht sind. Da der Sensor aber so klein ist, bekomme ich das leider nicht besser hin.
@dieter_p said in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
Schön, dass wir jetzt wissen dürfen dass Du einen ESP8266 verwendest zum Test. Beim Helligkeitssensor muß ich leider wieder raten. Ist es ein BH1750 dann würde der Vorgang und die Schlussfolgerung sinnig klingen da auch der BH1750 Tasmota in der "sensors" Variante vorraussetzt und meine logische Glaskugel sagt, dass du diese dann einsetzt. Demnach liegt bei dem SHT21 der Lüftung noch eine Besonderheit oder Fehlfunktion vor, die es zu finden gilt.
Korrekt, genaugenommen BH1750FVJ mit Tasmota_sensors binary. Brauch ihr noch zusätzliche Infos?
@dieter_p said in Reverse engineering SHT21-Modul // Temp. & Feucht.sensor:
Und hier ist wohl ein Dreher drin, probiere mal:
A: Ground
B: VCC
G: SDA
H: SCLDanke für den Hinweis, leider funktioniert das auch nicht. Was veranlasst dich zu der Vermutung? Das Foto? Hatte beim Messen die von mir gepostete Zuordnung (reproduzierbar).
Bzgl. der Idee mit den Jumperkabeln habe ich erneut praktische Probleme. Die Standard Jumper-Stecker passen leider nicht in die Buchse der Lüftung. Neben den 2,54mm vs. 2mm habe ich also auch das Problem, dass die Stecker einen zu großen Durchmesser haben. Mein Ansatz wäre eine 2x4 auf 2mm Stiftleiste zu kaufen und da dann die Kabel anlöten. Hat jemand eine elegantere Idee?