DHT22 lässt sich nicht mehr auslesen

  • Hallo zusammen,

    seit dem letzten Update (vermutlich auf Raspbian Stretch) kann ich seltsamerweise einen an den RPI3 angeschlossenen DHT22 nicht mehr mit u.g. c-Skript auslesen.

    Allerdings funktioniert das komischerweise noch über pilight: dort ist der Sensor konfiguriert und wird korrekt ausgelesen.

    Ausgabe stets:

    debug Resdata: 0.0

    Raspberry Pi DHT11/DHT22 temperature/humidity test

    Ich habe nichts am Hardware-Aufbau geändert. Prinzipiell kann der Sensor ja auch ausgelesen werden, aber komischerweise nicht mehr mit o.g. Skript, was zuvor funktioniert hat. Habt ihr eine Idee, woran das liegen kann?

    wiringPi Bibliothek ist wohl weiterhin installiert?!

  • Servus,

    ich tippe mal auf Berechtigung ...

    Ich würde da mal ein bisschen Fehlerhandling einbauen und mit perror() dann errno und den Fehler selbst ausgeben.

    btw: C ist keine Interpreter-Sprache ... es gibt also kein C-script sondern das Ergebnis des Compilerlaufs ist ein auführbares Programm.

    cu,

    -ds-

  • Hi dreamshader,

    btw: C ist keine Interpreter-Sprache ... es gibt also kein C-script sondern das Ergebnis des Compilerlaufs ist ein auführbares Programm

    in Zeiten von C-STEMbian ist das so auch nicht (mehr) ganz richtig. Dort ist nämlich ein C-Interpreter eingebaut. Frag mich aber bitte nicht, wer sowas braucht. Das ist ja gerade die Stärke von C, das man den Quellcode zu einem maschinenlesbaren Code compilieren und linken kann und das Ganze dann mit einem Afffenzahl ausgeführt werden kann - und eigentlich nur noch von handgeschriebenem Assembler schneller ausgeführt (aber nicht schneller

    programmiert) werden kann.

    Mehr dazu kannst Du im MagPi #64 nachlesen, das ich heute verlinkt hatte.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Andreas,

    das habe ich mit Absicht aussen vor gelassen, weil es dann doch die Ausnahme und nicht die Regel ist. Ausserdem war das, ehrlich gesagt, auch mal ein kleines Experiment um zu sehen, bei wem der Tipp-Reflex am schnellsten reagiert und wann er mit der Interpreter-Ausnahme daherkommt. Hat ja auch nicht all zu lange gedauert ;) ... Du hast gewonnen :)

    Ich denke, dass es manchmal durchaus sinnvoll ist, den TO nicht mit Dingen zu verwirren, die im Zusammenhang mit seiner Frage keine Rolle spielen.

    cu,

    -ds-

  • Hi Dreamshader,

    da gebe ich Dir Recht. Aber in Zeiten, in denen viele irrtümlich davon ausgehen, einen Raspberry Pi könne man nur in Python programmieren, weil das PI ja für Python-Interpreter steht, solange werden alle Quellcodes ebenso irrtümlich als "Skripte" bezeichnet werden. Darauf hinzuweisen ist aber notwendig, weil C ja viel besser zur Programmierung eingesetzt werden kann.

    Und ehrlich gesagt, wer anfangen sollte, Quellcode in C interpretieren zu lassen, der hat eh einen an der Klatsche...

    Und ... :lol: ... ich habe mich ja auch nicht an den TE sondern an Dich gerichtet. Dich kann ich nicht verwirren, was C betrifft. Und wenn der TE sich von mir irritieren lassen sollte ... hm ... selber schuld?


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Tja ... wer's braucht kann notfalls ja mit -g übersetzen und dann im gdb durchsteppen ;) ...

    Ich kannte das

    ... C-STEMbian ...

    schon. Hatten wir irgendwann schon mal.

    Ich möchte halt gerne das unangenehme Gefühl vermeiden wenn sich die Zeh-Nägel aufrollen weil jemand wieder mal C-Skript schreibt :fies:

    Ok, genug OT ...

    bis denne,

    -ds-

  • sorry. C code wurde natürlich kompiliert und nicht interpretiert :) Ein ähnliches Python SKRIPT schlägt übrigens auch fehl.

    Zum Thema: Berechtigung sollte doch als superuser kein Thema sein. Aber gleiche Ausgabe auch als su.

    Zur Fehlerbehandlung: Kennt sich jemand mit dem DHT22 Protokoll genauer aus? Der Fehler ist ja ein nicht gültig zurückgelesener Wert. Hab den Code auch nur aus einem Tutorial, kenne mich aber im Protokoll nicht aus.

  • Hallo himberrie,

    Zur Fehlerbehandlung: Kennt sich jemand mit dem DHT22 Protokoll genauer aus? Der Fehler ist ja ein nicht gültig zurückgelesener Wert. Hab den Code auch nur aus einem Tutorial, kenne mich aber im Protokoll nicht aus.

    ich habe mal ein Tutorial geschrieben, in dem beschrieben ist, wie man aus einem Datenblatt Informationen entnimmt, um eine Kommunikation aufzubauen (= Protokoll zu programmieren). Als Beispiel diente damals der DHT22, dessen Protokoll mit dem DHT11 identisch ist.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (3. Dezember 2017 um 23:53)

  • Also ...

    Das Programm funktioniert doch. Aber die ausgelesenen Werte können eben nicht mehr laut Protokoll auf korrekte Temperatur und Feuchte umgerechnet werden. warum?

    es funktioniert eben nicht ... sonst hättest Du dieses Thema hier nicht erstellt. Im Porgramm ist überhaupt kein Fehlerhandling drin.

    Mach' das halt einfach mal reinund bau' ein paar Debug-Ausgaben ein ... dann wirst Du den Fehler schon entdecken.

    cu,

    -ds-

  • Hallo dbv,

    also, wenn Du das gelesen haben solltest, dann wäre ich jetzt sehr gespannt, wie Du das gemacht haben möchtest. Das Teil schlummert auf meinem Ubuntu-Räscheknäscht.

    Was Du vielleicht meinst, ist dieses SPI-Bitbanging zum Auslesen eines MCP 3008, was ich mal in einem Thread vorgestellt habe. Das geht ziemlich in die gleiche Richtung. Kennt man das eine, glaubt man, das andere schon zu kennen.

    Auf die Schnelle finde ich das nicht - aber danach suchen kann ich mal.

    EDIT (30 Sekunden später): Hobsch gefundn... Hier im Thread geht das aber unter. Ich mache einen neuen auf.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    2 Mal editiert, zuletzt von Andreas (3. Dezember 2017 um 23:51)

    • Offizieller Beitrag

    Was Du vielleicht meinst, ist dieses SPI-Bitbanging zum Auslesen eines MCP 3008, was ich mal in einem Thread vorgestellt habe. Das geht ziemlich in die gleiche Richtung. Kennt man das eine, glaubt man, das andere schon zu kennen.

    Das kann durchaus sein, schön das du es gefunden hast. Danke

  • Moin himberrie,

    seit dem letzten Update (vermutlich auf Raspbian Stretch)

    Wie hast du denn auf Raspbian Stretch hochgezogen??

    Weil, das ist ja nicht mal eben so.

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

    • Offizieller Beitrag

    Hallo himberrie,

    erstmal warum? Never change a running system! :shy: Pfff, jetzt gehts mir besser. ;)

    Ein ähnliches Python SKRIPT schlägt übrigens auch fehl.

    Das gibt doch sicher eine Menge Fehlerauswertungspotenzial oder?

  • Moin himberrie,

    Das Programm funktioniert doch. Aber die ausgelesenen Werte können eben nicht mehr laut Protokoll auf korrekte Temperatur und Feuchte umgerechnet werden. warum?

    Wie stellst du denn fest, das der DHT22 ausgelesen wird?

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

Jetzt mitmachen!

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