Raspi-SHT21 (Sensorerweiterung für Raspberry Pi) UPDATE 2!

Mit diesem Projekt wird gezeigt, wie mit Hilfe des SHT21 Breakout Boards und einem Raspberry Pi ein Temperatur- und Luftfeuchtigkeitslogger bzw. eine kleine Wetterstation gebaut werden kann. Die Daten von einem digitalen Temperatur- und Luftfeuchtigkeitssensor werden von einem kleinen Programm (C) ausgelesen und gespeichert. Ein PHP-Skript bereitet die Rohdaten auf, um diese ansprechend mit jQuery/Flot zu visualisieren. Livedemo: http://wetter.emsystech.de (nicht immer online). Aufbaubeispiele und Anwendungen finden sich in einem separaten Blogeintrag. Der I2C-Bus des Sensors wird mit dem P1 des Raspberry verbunden. Sensoren und fertig konfektionierte Breakout Boards mit passendem Stecker für den Raspberry sind im Webshop erhältlich.

Softwareseitig gibt es zwei Möglichkeiten für den Zugriff auf den Sensor. Version 2 des Democodes emuliert den I2C-Bus über normale GPIO Pins. Dies hat den Vorteil, daß die Software ohne Änderungen am Betriebssystem sofort lauffähig ist. Das Programm kann jedoch nur mit Adminrechten gestartet werden. Version 3 des Democodes verwendet den Systemtreiber für den I2C-Zugriff. Dieser muß leider immer noch per Hand aktiviert werden, kommt dann aber ohne Adminrechte aus. Das Programm liegt im Quellcode vor (source) und kann durch Eingabe des Kommandos: make direkt auf dem Raspberry übersetzt werden. Die Hardware-Revision des Raspberry wird automatisch erkannt und die Pinzuordnung bzw. der I2C-Bus entsprechend angepasst. Ausführbare Programme mussen nach dem entpacken mit z.B.: chmod 755 sht21 Ausführrechte zugewiesen bekommen.

Version 2 (I2C mit GPIO)

Das Programm wird mit sudo ./sht21 gestartet und gibt alle 10 Sekunden eine neue Zeile mit den Messwerten aus. Die Ausgabe wird alle 15 Minuten automatisch in die Datei sht21-data.csv geschrieben.

Raspi-SHT21-V2_0_1

Version 3 (I2C mit Treiber)

Neben der Verwendung des I2C-Treibers hat sich die Funktionsweise des Programms etwas geändert. Das SHT21 Programm ist nun keine ständig laufende „Serveranwendung“ mehr. SHT21 kann wie ein einzelnes Kommando aufgerufen werden und liefert den aktuellen Messwert. Dadurch ist es sehr einfach möglich die Messwerte in eigene Skripte einzubauen.

Das Shellskript sht21.sh verwendet die sht21 Anwendung um die Daten zyklisch in die Datei sht21-data.csv zu speichern.

Raspi-SHT21-V3_0_0

Webserver / Visualisierung

Die aufgezeichneten Daten sind in vier Spalten mit Tabulatoren getrennt gespeichert. Datum und Uhrzeit, Timestamp (Unix in Lokalzeit),  Temperatur und Luftfeuchtigkeit.

14.09.2012 12:46:30     1347626790      16.2    53
14.09.2012 12:46:40     1347626800      16.3    54
14.09.2012 12:46:50     1347626810      16.3    54
Vorraussetzung für die weitere Visualisierung ist ein Webserver mit PHP (nginx, lighttpd. …). Auf dem Webserver müssen sich die Dateien index.php und layout.css befinden. Im Unterordner js muß sich die Javascript Library von www.flotcharts.org befinden.

In der index.php muß dann nur noch der Pfad zur sht21-data.csv angepasst werden:  … = file(„sht21-data.csv“); Die Webseite wird bei jedem Aufruf per PHP die aktuellen Messwerte aufbereiten und per Javascript visualisieren. Der ganze Quellcode ist als Quick and Dirty Hack zwar seit Wochen erfolgreich im Einsatz, könnte aber an einigen Stellen schöner sein und sinnvoll erweitert werden. Als Startpunkt erfüllt er aber sicher seinen Zweck.

Damit die Anwendung unabhängig lauffähig ist und auch extern z.B. per PUTTY gestartet werden kann, gibt es noch die zwei Shellskripte start-sht21-service.sh und stop-sht21-servide.sh. Diese schicken die Anwendung in den Hintergrund bzw. beenden diese wieder. In beiden Versionen ist der zusätzliche Upload per FTP auf einen externen Webserver vorgesehen. (run.sh bzw. sht21.sh):

SHT21 Breakout Board im Webshop (einzeln oder steckfertig für Raspberry Pi )

Nun kann ich nur noch sagen: „PHP und Javascript Experten vor, es gibt Daten zu visualisieren.“ 🙂

90 Kommentare zu “Raspi-SHT21 (Sensorerweiterung für Raspberry Pi) UPDATE 2!

  1. Hallo.
    Diese Möglichkeit der Temperatur und Luftfeuchtigkeit zu messen wäre interessant für meine Terrarien.
    Auf welche Kabellänge kann man gehen und wieviele Sensoren können parallel betrieben werden?

    Gruss Marcus

    • Testweise hatte ich es mal mit 5m versucht. Hat problemlos funktioniert, obwohl I2C eigentlich nicht als Feldbus gedacht ist. Mit langsamerem Takt und geschirmten Kabel kann man sicherlich noch deutlich mehr raus holen. Da die Software per Bitbanging arbeitet könnte mit den passenden Pullupwiderständen die Software recht einfach auf 8 Sensoren erweitert werden. (alle GPIO von P1)

      • Na, das hört sich doch spitze an. 5m reichen voll und ganz aus.
        8 Sensoren sind mehr als ausreichend, da ich nur 5 bräuchte. Aber wie müsste ich das mit den Widerständen machen, habe davon null Ahnung.
        Was mich auch noch interessieren würde. Könnte man das vorgestellte Display und die Sensoren zeitgleich an den Pi anschließen oder geht nur eines von beiden?

        • Der I2C-Bus benötigt jeweils einen Widerstand zwischen SDA/SCL und VCC. Auf der SHT21 Breakout Platine sind diese bereits vorgesehen (siehe Schaltplan R1 und R2). Die Standard I2C Pins auf dem Raspberry haben diese bereits drauf. Für normale GPIO-Pins müssen die Widerstände entweder auf die Sensorplatine oder am Verbindungsstecker P1. Display und Sensoren würden gehen (I2C ist am Display deswegen extra auf PINs gelegt), allerdings reicht es bei 5 Sensoren nicht mehr für alle Tasten. Alles andere ist dann mit etwas Zusatzaufwand (Portmultiplexen etc. ) verbunden.

        • Hallo.
          Auf das Display kann ich auch verzichten und nimm lieber dafür mehr Sensoren. Das Display währe eine reine Spielerei für mich, da ich die Steuerung der Anlage und das auswerten der Meßwerte über meinen Rechner mache.
          Von dem Rest, habe ich leider nur verstanden, das ich zusätzliche Widerstände einbauen muss, da ich mit Elektronik nicht so viel zutun habe.
          Meine Frage ist jetzt. Kann ich 6 Sensoren, mit 5m Kabel und den nötigen Widerständen fertig bei Euch bestellen, das ich sie nur anschließen brauch und mich um die Software kümmern muss. Der Preis wäre auch interessant.

      • Hallo,

        5m sind kein Problem. Ich habe mein Haus mit I2C verkabelt. (Heizung, Jalousien und teilweise Licht). Das sind sicher 50m oder mehr, allerdings fahre ich nur mit 10kHz und es gäbe da noch Buffer-IC welche sehr gut funktionieren. Bausteine kann man dranhänge solange es Adressen gibt, aber auch hier gibts Multiplexer für I2C.

        Super Seite, ich hab grad meinen Raspy bekommen und werde nun teilweise vom MSP430 auf den Raspy umsteigen. Ich hab die C Code noch nicht durchgeschaut, aber eben ich sollte die I2C Clockfrequenz auf 10kHz runterbringen. (zum Temperaturen auslesen völlig ausreichend)

  2. Hallo,

    ich habe den Sensor gestern bestellt und bereits heute morgen erhalten, vielen Dank!

    Im Gegensatz zur obigen Beschreibung schreibt das Programm die Daten alle 900 Sekunden (also alle 15 Minuten) in die CSV-Datei. In der php-Datei habe ich noch das Grad-zeichen durch den entsprechenden HTML-Code „°“ ersetzt.

    Die Dukumentation ist prima, mir ist es gelungen alles innerhalb von 20 Minuten auzubauen und in Betrieb zu nehmen. Klasse!

  3. Vielen Dank für den Hinweis. Der Text wurde angepasst und die Darstellung des Sonderzeichens ist in V1.0.1 gefixt.

    Der Speicherintervall kann in der main.c geändert werden:
    if((TimeCounter % 900) == 0) // alle 15min speichern
    Wenn die Division für die Sekunden den Rest 0 ergibt wird gespeichert.
    900s = 15min , 1800 = 30min, …

  4. Danke für das Projekt. Ich wollte das schon selber bauen. Werde den SHT21 gleich bestellen.
    Was ich jetzt noch suche, ist ein Temp/Feuchtesensor mit Funk, der die Daten an den RPi überträgt. Ich will damit ein Remote Wasser-Temperaturmessystem aufbauen. (Any Ideas?)

  5. Pingback: Technik Blog
    • Hallo Herr Steppuhn,

      SHT21 un Raspi-Dispaly funktionieren einwandfrei.
      Die Anschlüsse für SHT21 habe ich direkt von der Displayplatine genommen.

      Super!

      Jetzt teste ich meine kleine Homepage.

      Gruß
      Kurt

  6. Hi,

    ich teste immer gerne erst, bevor ich kaufe. Leider blicke ich durch den PHP-Code absolut nicht durch (bin leider Webprogrammierer). Kannst du eventuell eine etwas größere Dummy-CSV zur Verfügung stellen?
    Durch den C-Code blicke ich so in etwa durch, auch wenn ich ich mich ehr bei Java und Python heimisch fühle und das ganze wohl ehr auf Python portieren würde, aber die Visualisierung macht mir echt zu schaffen, könntest du da vielleicht nochmal etwas drauf eingehen?

    LG
    Carsten

    • In den nächsten Tagen wird es eine neue Version der SHT21 Software geben. Native I2C Treiberunterstützung, einfacher Verwendung, kein sudo , ….

  7. Hallo,

    Kann man bei dem Tool eigentlich auch einstellen dass es bei einer bestimmten Luftfeuchtigkeit oder Temperatur Mails verschickt? Zum Beispiel über einen SMTP-Server (mit oder ohne Authentifizierug)?
    Oder müsste man das selbst implementieren.

    Gruß
    Gregor

    • Das „Tool“ gib es in den nächsten Tagen in einer neueren Version. Neben der Verwendung des nativen I2C Treibers (kein sudo mehr) ist die Anwendung etwas offener gestaltet. Das Programm sht21 liefert immer einen Datensatz in diversen Formaten und kann damit sehr einfach gescriptet werden. Ein Script incl. Upload zu Cosm (https://cosm.com/feeds/87067) ist dann ein „Dreizeiler“. Blogartikel und Code kommt in den nächsten Tagen. Für zeitnahe Infos empfehle ich den Newsletter in der rechten Navigation.

  8. Hi,
    For some reason it doesn’t recognize my hardware version 2. So its didn’t work out of box.
    I try to comment the function GetRaspberryHwRevision() and set HwRev to 2 in main.c, compil and its works.

    Anyway thanks for posting and share your code…

    • Hi MHDfo,

      you can take a look at /proc/cpuinfo .What says the line with Revision ?
      For debugging please uncomment the printf in GetRaspberryHwRevision(). Probably they have changed the format of /proc/cpuinfo

      Best regards
      Martin

  9. Processor : ARMv6-compatible processor rev 7 (v6l)
    BogoMIPS : 697.95
    Features : swp half thumb fastmult vfp edsp java tls
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant : 0x0
    CPU part : 0xb76
    CPU revision : 7

    Hardware : BCM2708
    Revision : 0002
    Serial : 000000007b651cec

  10. Hallo

    Ich wollte hier kurz fragen ob mir jemand bei meiner Problemstellung weiterhelfen kann.

    Ich bräuchte zwei Temperatur/Feuchtigkeitssensoren, einer misst Raumwerte, der anderen Außenwerte. Die Software müsste für beide den Taupunkt errechnen, Innen und Außenwerte (= ) vergleichen können und bei Erreichen von vordefinierten Grenzwerten einen Relaiskontakt schließen bzw. später wieder öffnen können.

    Ich habe leider keine Erfahrung mit Programmieren, fertige proprietäre Lösungen sind zwar am Markt erhältlich jedoch nur zu Preisen ab 400Euro.

    lg

    • Ich habe für den Taupunkt eine kleine Anpassung:
      function GetVarsDays($days) {
      $days = intval($days);
      if($days 10) $days = 2;

      $var_temperature = „var temperature = [„;
      $var_humidity = „var humidity = [„;
      $var_taupunkt = „var taupunkt = [„;
      $lines = file(„sht21-data.csv“);
      if(count($lines) > (144*$days)) $i = count($lines) – (144*$days);
      else $i = 1;
      while($i < count($lines)) {
      $res = explode ("t", $lines[$i]);
      if(substr($var_temperature, -1, 1) == "]") $var_temperature = $var_temperature . ",";
      if(substr($var_humidity, -1, 1) == "]") $var_humidity = $var_humidity . ",";
      if(substr($var_taupunkt, -1, 1) == "]") $var_taupunkt = $var_taupunkt . ",";
      $var_temperature = $var_temperature . "[".$res[1] ."000,".$res[2] ."]";
      $var_humidity = $var_humidity . "[".$res[1] ."000,".$res[3] ."]";
      $var_taupunkt = $var_taupunkt . "[".$res[1] ."000,".(241.2*log($res[3]/100)+4222.03716*$res[2]/(241.2+$res[2]))/(17.5043-log($res[3]/100)-17.5043*$res[2]/(241.2+$res[2]))."]";
      $i++;
      }
      $var_temperature = $var_temperature . "];";
      $var_humidity = $var_humidity . "];";
      $var_taupunkt = $var_taupunkt . "];";
      return ($var_temperature . "rn". $var_humidity. "rn". $var_taupunkt);
      }

      function doPlot(position) {
      $.plot(
      $("#placeholder"),
      [
      { data: temperature, label: "Temperature [°C]" },
      { data: humidity, label: "Humidity", yaxis: 2 },
      { data: taupunkt, label: "Taupunkt", yaxis: 3 }
      ],
      {
      xaxes: [ { mode: 'time' } ],
      yaxes: [
      {
      min: -20 , max: 40,
      tickFormatter: TempFormatter
      },
      {
      min: 0 , max: 100 ,
      // align if we are to the right
      alignTicksWithAxis: position == "right" ? 1 : null,
      position: position,
      tickFormatter: euroFormatter
      },
      {
      min: -20, max: 40,
      alignTicksWithAxis: position == "right" ? 1 : null,
      position: position,
      tickFormatter: TempFormatter
      }
      ],
      legend: { position: 'sw' }
      }
      );
      }

  11. Guten Tag,

    Ich werde auch eine Wetterstation errichten und möchte dazu den gleich Sensor verwenden, den Sie verwendet haben. Jedoch möchte ich nur den Sensor mit dem Breakout Board kaufen und dazu ein Kabel und einen Stecker kaufen.

    SHT21:
    http://shop.emsystech.de/de/SHT21-Breakout-Board

    Kabel:
    https://shop.jnag.ch/kupferdraht-4.html

    Stecker:
    http://www.conrad.de/ce/de/product/742086/Pfostenverbinder-RM-254-Rastermass-254-mm-Pole-2-x-4-10120864-BKL-Electronic-Inhalt-1-St

    Jetzt möchte ich Sie fragen, ob dies eine gute Wahl ist oder ob Sie mir eventuell andere Komponenten empfehlen würden?

    Gruss Simon

    • Hallo Simon,

      das Flachbandkabel ist zwar etwas breiter, sollte aber funktionieren. Der Pfostenstecker passt jedoch nicht auf den P1 des Raspberrys. Der Pfostenstecker muß alle 26 Pins haben um auf das Raspberry zu passen.

      Die Einzelkomponenten sind zwar noch nicht im Shop gelistet, sind aber dennoch bei uns erhältlich:
      Stecker 2×03 polig für P1 des Raspberry Pi 0,50€ (incl. MwSt.)
      Flachbandkabel je Meter 0,50€ (incl. MwSt.)

      Gruß Martin

  12. Hallo,
    ich versuche gerade mit node.js und spawn den Befehl sht21 aufzurufen.
    Das scheint auch zu gehen. Aber ich bekomme keinen callback im stdout.

    Wie schreibt sht21 die Daten auf die console?
    Unterscheidet sich das von normalen unix-Befehlen?

    Gruß,
    WoJ

      • Terminal geht aber ich kann die Ausgabe nicht umleiten.
        Was ich eigentlich machen möchte ist die Ausgabe parsen und die Temperatur in einer var speichern und diese dann an ein anderes Programm weiterleiten.
        Ist die Ausgabe eigentlich tab-Separiert?
        Gruß,
        WoJ

  13. Ich und meine Tochter haben mit der Raspberry PI und SHT21 ein kleines Problem. (meine Tochter damit gerade ein schule Project und ich auf Dienstreise im Ausland fuer 4 Wochen)
    Sie bekommt folgende Meldung
    Raspi-SHT21 V3.0.0 by MartinSteppuhn (www.emsystech.de) (Nov 19 2012 23:35:05)
    Options:
    S = [20.0 99]
    L = [temperature = 20.0] [humidity = 99]
    C = [Temperature , 20, 0] [Humidity , 99]
    RaspberryHwRevision=2
    ERROR I2C-Port
    ERROR Temperature CRC
    Hat von euch einer eine Idee an was das sein kann
    Danke,
    Bernd

  14. Hallo,

    ich habe auch die Pobleme:

    6 23.1 38
    7 23.1 38
    8 23.1 38
    ERROR I2C-Port
    ERROR I2C-Port
    ERROR I2C-Port
    ERROR I2C-Port
    ERROR I2C-Port
    ERROR I2C-Port
    ERROR I2C-Port
    ERROR I2C-Port
    9 23.1 38
    ERROR I2C-Port
    ERROR I2C-Port

    Wie kann man das lösen ???

    • Der SHT21 liefert kein Acknowledge bzw. nicht immer.
      Wie lange ist das Kabel ? Evt. ein Wackelkontakt ? Sind noch andere Devices auf dem I2C-Bus ?

  15. Habe das Problem erkannt. Immer wenn ./sht21 zwei mal ausgeführt wird (glechzeitig), kommt es zu diesem Fehler.

    Weiterhin habe ich die Abfragezeit auf 10 Sekunden gesenkt. Nun kommen keinerlei Fehler mehr.

  16. Hallo,
    ich hätte gern auch ein Problem mit meinen Sensoren. Hab zwei sht21,wenn ich nun abwechselnd einen anklemme und die Version V3 laufen lasse funzt alles bestens. nun möchte ich aber beide gleichzeitig betreiben. Den ersten haben ich an Pin1 (VCC), Pin3(SDA), Pin5(SCL),Pin6(GND). Den zweiten hab ich an Pin17(VCC), Pin19(SDA), Pin21(SCL), Pin25(GND). jeweils nen Wiederstand zwischen VCC und SDA+SCL.

    Nach wie vor wird nur ein Sensor erkannt 🙁 nee idee ? Hab ich vielleicht was Falsch angeschlossen ?

  17. Hat jemand eine Idee wie man die Daten, die in der *.CSV Datei stehen, zyklisch in eine MySQL Datenbank schreibt ?

    oder besser:

    Die Daten die alle 10 Sekunden aufgenommen werden, sollen in eine MySQL Datenbank geschrieben werden.

    Hat jemand eine Idee, oder ein Tutorial wie man das realisieren könnte ?

  18. Hallo,

    ich hab ein Problem mit der JS Visualisierung, die Uhrzeit auf der X Achse stimmt leider nicht. Die Uhrzeit dort ist eine Stunde zurück, die Werte aber aktuell.

    Malle

  19. Hallo,

    hab ein Problem mit der js Visualisierung, die Zeit auf der X Achse stimmt leider nicht. Die Werte sind aktuell aber die Uhrzeit ist immer eine Stunde zurück.

    Malle

  20. Weiter ist mir aufgefallen das ab und zu keine Werte in die sht21-data.csv geschrieben werden. Normalerweise wird alle 10 Minuten ein Wert eingetragen aber manchmal ist der Abstand 20 Minuten.

  21. Hallo,

    habe den Sensor gestern angeschlossen und sht21 läuft einwandfrei. Es schreibt brav alle 15 min in die .csv allerdings bekomme ich die flotcharts nicht zum laufen. Habe den Webserver mit lighttpd und php5 (php5-cgi + fastcgi) eingerichtet. Weiß nicht ob mir dort schon was fehlt… Aber die php funktioniert – nur das flotchart fehlt…
    Die index.php und layout.css sind am richtigen platz, die Daten aus der csv werden auch ausgelesen. Die entpackten Files von http://www.flotcharts.org befinden sich auch in /var/www/js. Zur Zeit ist es die Version 0.8.1 – oder nutze ich die falschen Files?

    Vielen Dank im Vorraus für die Antwort
    Freue mich wenn das läuft,
    luke3000.no-ip.org -> hier sieht man wie es gerade aussieht…

    Grüße
    Luke

  22. Hallo,

    ist es auch möglich die Feuchte mit Dezimalstellen abzufragen also z.b 72,5 so wie die Temperatur? Was müsste ich im C code ändern?

    Grüße
    marc

    • Da die Auflösung bereits auf Maximum ist, sollte eine Anpassung der Umrechnung genügen:

      // RH = -6 + 125* Srh/65535 // im Code fälschlicherweise als T bezeichnet
      // RH = -6 + Srh / 524,28 // *256 wegen Numerik erweitern
      // RH = -6 + (Srh * 256) / 134215

      val = ((val * 256) / 134215) – 6;

      Die Gleichung für 1/10 % RH umstellen;

      val = ((val * 256) / 13422) – 60; ungetestet bitte nachrechnen, Rundungsfehler berücksichtigen !!!

      Val liefert dann RH in 1/10 % Auflösung

  23. Hi,

    schade das ich keine Antowrt mehr bekomme aber vielleicht kann mir jmd helfen wie ich das ganze mit einer Kommastelle anzeige.

    Grüße
    Marc

  24. Hallo Marc,

    hast Du die Gleichung aus meinem Posting vom 8. August mal ausprobiert. (im Code geändert) ? Sollte eigentlich die Feuchte in 1/10 % liefern ?

    Gruß
    Martin

  25. Hi,

    wenn ich das so ändere bekomme ich 225 als ausgabe von meinem Humidor. Wo momentan ca. 71% herschen… Also irgendwas stimmt nicht…

    Ne Idee?

    Grüße
    Marc

  26. Hello,

    Sorry about replying in English. I don’t know any German.

    I found your code C I2C version helpful and was able to get it to work. I have rewritten the code in python and would like to release it under a BSD licence.

    I don’t use any of your code directly, but I did use some ideas. Are you ok with me releasing a python version under the BSD licence, or would you prefer for me to keep it as GPL?

    Thanks,
    Richard.

  27. Hi.

    Vielen Dank für den Raspi-SHT21, die Software und die tollen Beschreibungen dazu. Damit war der Einstieg wirklich super einfach.

    Gibt es hier jemand, der die mit dem Pi gemessenen und visualisierten Daten mit Nagios bzw. Icinga abgreift? Ich überlege wie ich die Lösung am geschicktesten in unser Firmenmonitoring integrieren kann.

    Falls dies bereits jemand umgesetzt hat würde ich mich freuen, wenn er sein Wissen mit uns teilt.

    MfG
    Joerg

  28. Hallo,

    Vielen dank, für den SHT-21, vorallem für die beiliegende Software. Ich bekomme den Seonsor zum laufen, das Exportieren klappt auch. Ebenso das importieren der csv mit php.

    Ich bekomme allerdings einen „Time mode requires the flot.time plugin.“-Fehler (versteckt in der Debug-Konsole), wenn ich meine Website aufrufe. Das Diagramm wird nicht angezeigt.

    Liegt das an einer neuen flot Version? (0.8.2)

    Oder ist am Script was nicht okay?

    Ich verstehe absolut nichts von JavaScript und/oder JQuery, hab also auch nichts dran geändert.

    Ich bin für jede Hilfe dankbar!

    MfG

    Lukas

    • Es liegt tatsächlich an der Flot-Version. Die Beispielwebsite funktioniert unter Verwendung von Version 0.7 (Die auf wetter.emsystech.de verwendet wird) einwandfrei.

  29. Vielen Dank für den Code. Damit die Visualisierung auch mit flot-0.8.2 klappt, muss das Script jquery.flot.time.js noch explizit eingebunden werden. Also einfach hinzufügen, dann sollte es klappen.

  30. Hallo.

    Ich nutze den Code von emsystech auch in meinem Repository unter „https://github.com/Tronde/Raspi-SHT21“. Ich nutze dort den Code von Flot nun als Submodule, um immer mit der neusten Flot-Version weiterentwickeln zu können.

    Der Sensor ist wirklich toll. Wir setzen zwei davon in unseren Serverräumen ein und sind sehr zufrieden damit. Vielen Dank nochmal. 🙂

  31. Interessanter Beitrag.

    Ist es auch möglich einen SHT21 und einem BMP085 ( beide I2C) am Raspberry zu betreiben..

    Ich habe es mit den Standart-Dateien von Adafruit versucht und bekomme nur den einen oder anderen Ausgelesen.. aber nie beide.. oder ich bekomm eine Fehlermeldung.

    Der eine Sensor läuft glaube ich auf I2C 77 und der andere auf I2C 44 oder so

    wäre sehr dankbar über eine kleine Hilfestellung

    • So lange die I2C Adressen verschieden sind sollte es keine Probleme geben. Sind es zwei verschiedene Programme die auf den Bus zugreifen ? Evt.ist /dev/i2c-1 deshalb blockiert ? Um eine Hardwareproblem aus zu schließen würde ich die Pegel auf dem Bus ansehen ob da alles stimmt.

  32. Hallo und besten Dank für diesen Code.
    Ich habe das Problem das ich die Daten nicht visualisiert bekomme.
    In die index.php habe ich den Pfad zur sht-data.csv
    bsp.: $lines = file(„/home/pie/Raspi-SHT21-V3_0_0/sht21-data.csv“)
    eingetragen.
    Den Inhalt von flot-0.7 nach …/www/js habe ich ebenfalls entpackt.
    Ich sehe das lineshart-layout im Browser aber die Daten werden nicht angezeigt.
    Ich brauche einen Tip um weiter zu kommen.

  33. Hallo und vielen Dank für die Anleitung.

    Ich habe den Rasp jetzt soweit aufgesetzt und einen Webserver eingerichtet nach der Anleitung von: http://www.my-it-brain.de/wordpress/visualisierung-von-umweltdaten/
    (Sehr gute Anleitung für mich)

    Nun zu meinen Fragen:

    – Wird die .CSV Datei automatisch angelegt sobald erste Werte hereinkommen(mein Sensor ist noch nicht da)

    -Da ich Linux Neuling bin ist es mir nicht klar ob ich den Dienst starten muss oder startet er nach dem Boot automatisch?

    Vielen Dank

    Stefan

  34. Hallo,
    bin neu in dieser Materie, hab aber trotzdem den Sensor zum laufen gebracht -> Stolz.
    Möchte nun die Temperatur und Feuchte in ein Bild schreiben. Das Bilder aufnehmen und auf ftp-Server legen macht ein Script. In diesem Script möchte ich nun auch die Temperatur und Feucht einlesen, in Variablen legen und ins Bild schreiben.
    Es scheitert nun beim einlesen der Temperatur und Feuchte in diesen Script.
    Wie rufe ich die Anwendung „sht21“ auf, damit ich die Werte in Variablen bekomme??

    Gruß, Hubert

  35. Vielen Dank für die großartige Software zum Auslesen des SHT21 Sensors.

    Da ich diese Funktionalität in einem eigenen Projekt benötige, habe ich die C-Bibliothek „shtlib“ auf Grundlage dieses Codes erstellt. Damit kann man eigenen C Programmen recht einfach die Fähigkeit beibringen, mit dem SHT21 Sensor zu kommunizieren. Zur Zeit unterstützt die Bibliothek nur das simulierte I2C Interface, und damit auch mehrere Sensoren. In Kürze möchte ich auch die Unterstützung für das native I2C Interface einbauen. Dann könnte die Bibliothek auch auf anderen kleinen Linux Boards laufen. Und vielleicht wird es später auch möglich sein, die SHT7x Sensoren zu unterstützen.

    Für Interessierte ist die Bibliothek „shtlib“ auf GitHub zu finden:
    https://github.com/ondrej1024/shtlib

    Ondrej

  36. Hallo,
    habe 2 Stück dieser Bausteine seit einigen Monaten im Einsatz, Spitze (fast…).
    Da mein i2c >20m lang ist und der sht am Ende sitzt, kann ich nur umklemmen zum Wechseln der Meßstelle.
    Ist inzwischen abzusehen, ob mal eine Erweiterung mit sht31 erscheint?
    Wäre dann Ober-Spitze, denn dann wären 3 Mess-Stellen gleichzeitig möglich (Addr. 40,44,45).
    Auch würde ich mir die Option wünschen, die Widerstände gleich auf der Platine zu haben, meine Lötkünste haben im Lauf der Zeit sehr nachgelassen…
    Schöne Grüße Wolfgang

  37. Hallo,
    ich habe mir die zip-Datei runtergeladen und mit Hilfe von Paragon ExtFS in das home/pi Verzeichnis kopiert an meinem Windows Rechner. Der Raspberry erkennt die Datei nicht und spuckt einen Fehler aus. Ich war der Meinung gerade für so einen Fall ist das Programm von Paragon gedacht? Wie kann ich den Code auf den Raspberry den übertragen das das ganze funktioniert?

    LG

Kommentar verfassen