Multiversion SHT21

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Gemeinde.
    Ich habe mir damals die Multiversion des SHT21 gekauft und habe somit 6 Sensoren am PI.
    Klappt auch soweit und die Messungen laufen perfekt, was mich nur ein wenig stört, ist das es als sudo ausgeführt werden muss und ich es nicht starten und stopen kann wie ich es brauche. Laut Emsystech ist es möglich aus der Multiversion und singleversion 3.0 eine Version zusamenn zubauen, das es wie die Singleversion 3.0 zu steuern.
    Habe bis jetzt leider ohne Erfolg versucht, das hin zu bekommen.
    Kann mir da jemand bitte bei helfen, mein Wissen reicht dafür einfach nicht aus.

    [font="Times New Roman"]Software ist wie Sex - sie ist besser, wenn sie frei ist.[/font]
    [font="Times New Roman"]- Linus Torvalds -[/font]

  • Hallo ErzGabriel,

    hmmm irgendwie werde ich aus Deiner Problemstellung nicht schlau :s

    Ist das Problem jetzt die sudo-Geschichte? Da könnte man über S-Bit oder sudoers was machen.
    Wenn das Auslesen klappt ... willst Du das Teil erweitern, oder wie muss ich das verstehen?
    Meinst Du mit singleversion den einzelnen Sensor?

    BTW ... ganz schön gesalzene Preise :denker:


    cu,
    -ds-

  • Das es über sudo gemacht werden muss ist nicht ganz so mein Problem.
    Es ist die Funktionsweise, die Software für einen Sensor hat andere Funktionen und kann direkt in einen Script einmal aufgerufen werden, das man mit den Werten weiter arbeiten kann.
    Hauptsächlich liegt mein Problem darin, ich möchte die Messung starten, erhalte eine Zeile mit Messwerten und die will ich weiterverarbeiten und das klappt so mit der Multiversion nicht. Oder ich mache es einfach falsch.
    Habe schon versucht die Bildschirmausgabe in eine Datei umzuleiten, die ist aber dann immer leer. Der Versuch den Speicherintervall der Messungen zu verkürzen zeigte auch keinen Erfolg.
    Und es soll halt die Möglichkeit bestehen, die Software für einen Sensor so anzupassen, das sie mit mehreren Sensoren arbeiten kann und genau daas kriege ich nicht hin.

    [font="Times New Roman"]Software ist wie Sex - sie ist besser, wenn sie frei ist.[/font]
    [font="Times New Roman"]- Linus Torvalds -[/font]

  • Wenn ich nur teste, rufe ich sie so auf.
    ./sht21 > ausgabe.txt

    Wenn ich sie mal etwas laufen lassen will, dann so.
    nohup ./sht21
    Dann wird auch alle 15 min die Werte in die nohup.out geschrieben.

    Dein Vorschlag lässt die Datei leider auch leer.

    [font="Times New Roman"]Software ist wie Sex - sie ist besser, wenn sie frei ist.[/font]
    [font="Times New Roman"]- Linus Torvalds -[/font]

    Einmal editiert, zuletzt von ErzGabriel (2. August 2013 um 11:35)


  • Wenn ich nur teste, rufe ich sie so auf.
    ./sht21 > ausgabe.txt

    Wenn ich sie mal etwas laufen lassen will, dann so.
    nohup ./sht21
    Dann wird auch alle 15 min die Werte in die nohup.out geschrieben.

    Dein Vorschlag lässt die Datei leider auch leer.

    Moooment ...

    also, bei:

    Code
    ./sht21 > ausgabe.txt
    ./sh21 2> ausgabe.txt


    bleibt die ausgabe.txt leer?

    Bei

    Code
    nohup ./sht21


    dagegen steht eine Ausgabe in nohup.out?

    Kann ich mir, ehrlich gesagt, nicht vorstellen. Ausgaben erfolgen immer nach 1 (stdout) oder 2 (stderr).

    Was passiert, wenn du

    Code
    ./sh21 2>&1 >ausgabe.txt
    ./sh21 | tee ausgabe.txt

    eingibst?

    Ja und dann versuch vielleicht noch, statt einem Umleitungszeichen (>) mal zwei anzugeben (>>).

    ciao,
    -ds-

  • Wenn ich

    Code
    ./sht21

    aufrufe, erhalte ich folgende Bildschirmausgabe.
    02.08.2013 12:57:40 1375448230 20.6 51 28.6 51 28.6 51 28.6 51 28.6 51 28.6 51

    Nutze ich

    Code
    nohup ./sht21

    Wird alles in die Datei nohup.out geschrieben aber nur alle 15min.

    Nutze ich

    Code
    ./sht21 > ausgabe.txt

    sehe ich nichts auf dem Bildschirm aber die Datei ist auch leer. Mag sein, das nach 15min alles in die Datei geschrieben wird aber das bringt mich nicht weiter, weil dann kann ich auch über nohup gehen.

    Code
    ./sht21 | tee ausgabe.txt

    Datei leer.

    Code
    ./sht21 2>&1> ausgabe.txt

    Fehlermeldung

    Code
    ./sht21 >> ausgabe.txt

    Ebenfalls Datei leer.
    Mag gut sein, das nach 15 in alle Dateien was geschrieben würde, solange habe ich es nicht laufen lassen, weil sehe ich keinen Sinn, da das gleiche wie bei nohup.

    [font="Times New Roman"]Software ist wie Sex - sie ist besser, wenn sie frei ist.[/font]
    [font="Times New Roman"]- Linus Torvalds -[/font]

  • Hmm ... also alles auf Anfang ...

    Du hast eine Software für das Mehrfach-Modul und eine andere für das Einfach-Modul?
    Was macht die jeweils bzw. was ist das jeweils?
    Script, C-Programm?

    Kannst Du die beiden mal anhängen (solange es keine compilierten C-Binaries sind) - vielleicht ist es ja möglich die zusammen zu führen.

    cu,

    -ds-

  • Genau so sieht es in etwa aus.
    Die genaue Funktionsweise des Singlemoduls kann man hier nachlesen.
    http://www.emsystech.de/raspi-sht21/

    Und laut Emsystech ist es halt möglich die beiden Module so zusammen zu setzen, das ich die Funktionen des Singlemoduls habe, es aber mit dem Multimodul arbeitet. Sprich, es werden alle sechs Sensoren ausgelesen.

    Beide Softwarepakete habe ich mal angehängt.


  • ...
    Und laut Emsystech ist es halt möglich die beiden Module so zusammen zu setzen, das ich die Funktionen des Singlemoduls habe, es aber mit dem Multimodul arbeitet. Sprich, es werden alle sechs Sensoren ausgelesen.

    Beide Softwarepakete habe ich mal angehängt.

    Hallo ErzGabriel,

    das Multi-Teil, also das Programm, liest in der Tat bis zu sechs Sensoren.
    Das sollte also funktionieren ...

    Vielleicht baust Du Dir in main.c ein paar DEBUG-Ausgaben ein um das Problem einzugrenzen.
    Sollte ja jetzt kein grösserer Akt sein.


    // EDIT

    Was mir grad noch einfiel ... was steht denn in dieser .csv Datei?


    cu,
    -ds-

  • Das funktioniert ja auch einwandfrei. Kriege von allen sechs Sensoren Messwerte.
    In die csv-Datei werden alle 15min die Messwerte geschrieben so wie ich sie auch auf dem Bildschirm sehe.
    Mein Problem liegt ja dadrin, das ich es nicht hinkriege die start und stop Scripte der Singleversion zu verwenden. Es soll ja möglich sein, die Steuerung der Singlemodule, die mittlerweile ohne sudo funktionieren zu nutzen und einzelne Messungen zu machen.

    [font="Times New Roman"]Software ist wie Sex - sie ist besser, wenn sie frei ist.[/font]
    [font="Times New Roman"]- Linus Torvalds -[/font]

  • Ok, ich glaub jetzt habe ich verstanden worauf Du hinaus willst ...

    Na ich würde dann halt das C-Programm dieser Single-Version noch so umbauen, dass er als Argument eine Sensor-Id oder eine I2C Adresse des Sensors bekommt und dann gezielt diesen einen auslesen. Im Moment fragt die Single-Version nur den Sensor auf 0x40 ab.

    Hab ich das jetzt kapiert ????

    ciao,
    -ds-

  • Genau da liegt mein Problem, das ich es nicht hinkriege, das ich mit der Singleversion auslesen kann. Dürften ja ruhig alle zeitgleich ausgelesen werden, das könnte ich dann als String weiterverarbeiten und somit zerlegen in die einzelnen Werte.
    Habe da jetzt fast ein ganzes Jahr dran rum gebastelt ohne Erfolg.
    Deswegen hoffe ich, das mir hier einer helfen kann, sonst geht es in die Tonne.

    [font="Times New Roman"]Software ist wie Sex - sie ist besser, wenn sie frei ist.[/font]
    [font="Times New Roman"]- Linus Torvalds -[/font]


  • Genau da liegt mein Problem, das ich es nicht hinkriege, das ich mit der Singleversion auslesen kann.
    ...
    Habe da jetzt fast ein ganzes Jahr dran rum gebastelt ohne Erfolg.

    Hi,
    na das hatte ich vorhin geschrieben, dass in main.c fix nur die Adresse 0x40 abgefragt wird, und das da ein zusätzliches Argument notwendig ist.
    Da kannst Du an Scripten rumbasteln bis Du schwarz wirst ;) ...

    Hmm ... hast Du ja scheinbar auch schon.
    Und was genau kriegst Du jetzt nicht hin?

    cu,
    -ds-

  • Das halt nicht alle Sensoren abgefragt werden, sondern nur einer.
    Somit klappt das natürlich auch nicht mit der grafischen Darstellung.
    Da ich noch nicht mal mit Sicherheit sagen kann welche Sprache die main.c verwendet, wird mir das nicht gelingen.

    [font="Times New Roman"]Software ist wie Sex - sie ist besser, wenn sie frei ist.[/font]
    [font="Times New Roman"]- Linus Torvalds -[/font]


  • Das halt nicht alle Sensoren abgefragt werden, sondern nur einer.
    Somit klappt das natürlich auch nicht mit der grafischen Darstellung.
    Da ich noch nicht mal mit Sicherheit sagen kann welche Sprache die main.c verwendet, wird mir das nicht gelingen.

    Meine Herren ... :shy:

    dann sag das doch gleich, dass Du jemanden suchst, der Dir die single-Version so anpasst, dass Du damit einzelne Sensoren abfragen kannst, weil Du selbst kein C kannst ;)
    Warum eierst Du da mit start-scripten, sudo und was weiss ich rum
    Das hat doch jetzt mit Dummheit oder was weiss ich nichts zu tun, wenn man nicht (in C oder einer anderen Programmiersprache) programmieren kann. Dazu ist ja so ein Forum unter anderem da.

    -ds-

  • Na schau einer an, dann habe ich das nämlich falsch verstanden.
    Ich hatte das so verstanden, das ich aus einem Teil der Dateien vom Singlemodul und vom Multimodul ein Modul zusammen setzten kann was funktioniert, wie das Singlemodul aber alle Sensoren ausliest.
    Das es umprogrammiert werden muss hatte ich so nicht verstanden.

    Aber dann hast Du recht, das ich jemanden bräuchte, der das umschreiben kann, weil ich von C keine Ahnung habe.

    [font="Times New Roman"]Software ist wie Sex - sie ist besser, wenn sie frei ist.[/font]
    [font="Times New Roman"]- Linus Torvalds -[/font]

    Einmal editiert, zuletzt von ErzGabriel (3. August 2013 um 02:46)

  • Erst mal in ein temp. Verzeichnis entpacken und ausprobieren.
    Wenn es klappt, dann kannst Du austauschen ... ist eine umgebaute Single-Version.
    Aufruf ./sht21 S 0x40 oder ./sht21 L 40 ...
    Das zweite Argument ist die Slave-Addresse des Sensors und wird als Hex-Wert interpretiert.


    Mach mal bitte Meldung ob es funktioniert.
    Da war noch eine Unschönheit drin, die würde ich noch gerne entfernen und dann hänge ich sowohl das geänderte main.c und das Binary an ein Post.


    ciao,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!