SHT11-Sensor an langem Kabel - wer weiss wie?

Uwe H.

Neues Mitglied
27. Juli 2011
264
0
0
Hinter die Grenze :-)
Sprachen
  1. BascomAVR
  2. ANSI C
  3. Assembler
Hallo zusammen, ich hab mal ne technische Frage heute:
Ich muss beruflich in einer Sporthalle mehrere Temperatur- und Feuchtigkeitssensoren auslesen. Die Halle wurde im im Passivstandard gebaut und der Eigentümer will alle Isolationsschichten und deren thermischen Isolationseigenschaften grafisch im Internet veröffentlichen. In der Halle befindet sich ein Datenkabel, welches praktisch vom Technikraum einmal rund um die Halle läuft, unter der Decke her und zurück in den Technikraum. Ich schätze es sind an die 100m, welche aber beidseitig (wie eine Schleife) am Controller hängen. An diesem Kabel sind drei Kombifühler Typ DHT11, welche über ein serielles Ausgangssignal verfügen, sprich SDA und SCK. Ein Programm zum Ansteuern und Auslesen hab ich mir für Bascom gezogen und adaptiert, welches auf kurzer Distanz auch astrein funzt. Nur wenn ich mich in das Datenkabel klinke, kommt nix mehr an und die Spannung während der Kommunikation übersteigt kaum 1V, wo 5V sein sollten. Ich hab versucht Pullup-Resistoren reinzuschalten. In der Dokumentation sind diese auch empfohlen, nur brachte dies garkein Ergebnis. Die Leitung war dann nonstop auf 5V, sogar bei 100 Ohm.

Hat irgendjemand ne Idee, wie man das hinbekommt? Ich weiss, dass es Signalwandler für sowas gibt. Nur kommen wir an die Sensoren selbst nicht ran. Die sind unter der Decke irgendwo in der Dämmung, unterm Fussboden, etc. Und die Decke ist 14 Meter hoch, da nimmt man nicht mal eben die ganze Verkleidung ab. Also keine Chance die Signale an der Quelle zu verstärken.

Meine Idee wäre evtl. die Taktfrequenz von SCL so zu verlangsamen, dass die Pegel vernünftig hoch- und runterziehen können. Oder eine andere Idee wäre, via Controller die Spannung auf Data und Clock zu messen und nach jedem Takt solange Schleife zu fahren bis die Pegel gezogen haben. Der Sensor wird einmal pro 30min augelesen, da kommts auf keine Zeit oder Geschwindigkeit an. Ich kenne mich leider zuwenig aus mit serieller Uebertragung, deshalb hoffe ich auf Tipps und Ratschläge von euch. Vielleicht hat ja einer ne bessere Idee...

Liebe Gruesse, Uwe
 
Hi,

Sorry, hab mich beim Sensortyp vertippt. Es ist ein SHT11, nicht DHT11.
ich hab mal den Titel des Threads angepaßt ;)

So ... der SHT11 von Sensirion ist ein Feuchte-/Temperatursensor in SMD.
Im Datenblatt steht unter anderem dieses ...
2.2 Serial Interface (Bidirectional 2-wire)
The serial interface of the SHTxx is optimized for sensor readout and power consumption and is not compatible with I2C interfaces, see FAQ for details.
Hast du dir das Datenblatt mal angesehen? Ist leider mit 850kB zu groß zum hochladen.

So wie es aussieht mußt du dir per Software die Daten über Bitgewackel an den Pins holen. Ich weiß nicht ob hier im Forum schonmal was über das Ding drinstand. Irgendwie kommt er mir bekannt vor.

Gruß
Dino
 
Hallo Uwe!

Ich kann dir nicht versprechen, dass du nicht doch in 14 Meter Höhe noch mal an die Sensoren musst, aber spontan fallen mir zwei IC`s ein die dir vielleicht weiterhelfen könnten. :wink:

Zum Einen wäre da das P82B96, womit du den I2C-Bus auf bis zu 250m verlängern kannst!
Zum Anderen wäre da noch das P82B715, das du auch zum Verlängern (und Aufteilen) des I2C-Bus verwenden kannst.

In beiden Fällen musst du aber immer zwei Einheiten einsetzen..... jeweils ein Baustein an jeder Seite.
Zieh dir mal die Datenblätter.....
Vielleicht helfen dir die Tipps ja weiter.


Viele Grüße,
Cassio
 
Hallo Jungs :) Danke erstmal für die Ratschläge und sorry, dass ich so spät antworte. War gestern bis 1.00 in der Halle und hab unseren Controller ordentlich und sauber verkabelt. Das Datenblatt zu dem Sensor hab ich gelesen und ich weiss, dass das Ganze über i2c nicht realisierbar ist. Muss es auch nicht, weil ich bereits ein fertiges, funktionierendes Programm geschrieben habe, wo die komplette Kommunikation praktisch "manuell" gesteuert abläuft. Das einzige Problem hier ist die Kabellänge. Was haltet ihr von meinem Vorschlägen bezüglich verlangsamen der Geschwindigkeit oder Steuerung der Signallevel mit zwei ADCs?
 
Hallo Uwe,

du sollst ja auch die Sensoren nicht mit I2C ansprechen. Aber das Problem mit der Kabellänge ist bei I2C das gleiche, somit sollten die von Cassio genannten IC's eigentlich bei deinem Problem auch hilfreich sein.
 
Hallo Uwe!

Ich habe mit dem SHT11 selbst noch nicht gearbeitet und im Datenblatt steht auch, dass der Sensor nicht mit dem I2C Protokoll zusammenarbeitet.....
Vielleicht funktionieren die Treiberbausteine P82B96 ja trotzdem? :hmmmm:
Schließlich ist das Protokoll doch ziemlich ähnlich und die einzelnen übertragenen Bits interessieren ja nun die Treiber wirklich nicht. :wink:

Bleibt aber deine Entscheidung es mal auszuprobieren.

Grüße,
Cassio
 
Hi,

Das einzige Problem hier ist die Kabellänge. Was haltet ihr von meinem Vorschlägen bezüglich verlangsamen der Geschwindigkeit oder Steuerung der Signallevel mit zwei ADCs?
also wenn die Chips das vom Timing her mitmachen würde der geringeren Geschwindigkeit nichts entgegensprechen.
Von der Idee mit ADC würde ich die Finger lassen. Da bekommst du mit Sicherheit Gehirnsausen. Wenn es garnicht klappt würde ich eher die Treiber nehmen die Cassio schon genannt hat. Aber mal was anderes ... wie sind die ganzen Sensoren an der Leitung angeschlossen ? Es gibt keine Adressierung wie bei I2C. Wie kann man einen einzelnen Sensor ansprechen ? Nicht das sich einfach alle Sensoren auf einmal melden und du aus dem Grund nur noch Grütze liest.

Gruß
Dino
 
Wie ich das Adressierungsproblem gelöst hab? ;) Ich steuer die Stromzufuhr an. Jeder Sensor hat neben dem gemeinsam genutzten VCC-, SCL- und SDA-Anschluss eine eigene Masseleitung, die ich ansteuere. Ich hab die Sensoren leider nicht ausgesucht, sonst wären es andere... Ich bringe nur das ans Laufen, was ein anderer Depp vorher mächtig versaut und dann einfach liegengelassen hat.

Entschuldigung, dass ich eurem Gedankengang bzgl. der I2C-Chips nicht wirklich gefolgt bin, erst jetzt hats klick gemacht. Zuviel Arbeit heute :vollkommenauf: Das könnte tatsächlich klappen nur die sch...ß Deckenhöhe.... Das Gerüst dazu kostet ein Schweinegeld und der Aufbau etliche Stunden, weil alles stabilisiert und gepolstert werden muss, damit der Hallenboden nicht hops geht. Das ist teueres Parkett und sitzt dazu noch auf Balken :fie: Außerdem drückt die Zeit, am Montag ist Stichtag.

Ne andere Möglichkeit, um diesen Mist zu umgehen, seht ihr nicht, oder? Hat eigentlich von euch schonmal jemand Feuchtigkeitssensoren mit 1wire-Protokoll gesehen? Ich hab Konverter gesehen (I2C to 1w), aber so ein richtiger Sensor ist mir bisher noch nicht übern Weg gelaufen.

Grüße, Uwe
 
Hi Uwe,

Ne andere Möglichkeit, um diesen Mist zu umgehen, seht ihr nicht, oder? Hat eigentlich von euch schonmal jemand Feuchtigkeitssensoren mit 1wire-Protokoll gesehen? Ich hab Konverter gesehen (I2C to 1w), aber so ein richtiger Sensor ist mir bisher noch nicht übern Weg gelaufen.
eine Möglichkeit sehe ich noch.
Es gibt ja auch Schaltungen bei denen LCD-Displays an nem PCF8574 (8Bit-IO) hängen. Die kann man auf dem I2C adressieren. Dann könnte man mit einer kleinen Taktrate auf dem I2C jeden Sensor ansprechen. Nen Versuch wäre es wert. Dafür mußt du aber deine IO-Routinen leider wieder umschreiben.
Es kann ja sein das die Chips bei denen du den GND abgeschaltet hast dir die Spannungsverhältnisse auf dem Bus durcheinanderbringen (Eventuell durch Schutzdioden im Chip oder was weiß ich).

Gruß
Dino
 
STRIKE :) Ich habs geschafft, den Bus von 100kHz auf 50Hz abzubremsen. Habe statt Shiftin und Shiftout die komplette Kommunikation mit Set/Reset, etc. manuell runtergeschrieben und mit hohen Wartezeiten versehen. Klappt mittlerweile ohne Probleme. Morgen fahr ich nach der Arbeit in die Halle und probier das Ganze mal aus.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)