sensirion sdp610

  • Hallo, mein erster Post und gleich eine Frage :)

    Es geht um den Anschluß eines Sensirion SDP 610
    Datenblatt

    Ich habe mal versucht den Anschluß in Fritzing umzusetzen:
    Zum Bild

    Ist das so Richtig, oder ist das ein Griff ins Klo :s

    Wie kann man den Sensor dann mit Python auslesen?

    Edit:
    oder erstmal die Funktion in der Konsole prüfen

    Danke und Gruß
    Fliese

    Einmal editiert, zuletzt von fliese (13. Februar 2016 um 17:21)

  • Moin, ich gebe nicht auf :D

    Ich habe gerade gelesen das der Raspi schon PullUp widerstände eingebaut hat.
    Nun habe ich mal die ganze Geschicht verdrahtet.
    qxe2orwt.jpg

    Die 10kOhm Widerstände habe ich weggelassen.

    ein "/usr/sbin/i2cdetect -y 1" ergibt:

    Code
    thomas@raspberry:~$ /usr/sbin/i2cdetect -y 1
        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --


    da wird ja schonmal an Adresse 0x40 was erkannt :bravo2: .
    Bedeutet das, dass die Verdrahtung schonmal i.O ist?

    Nun bleibt noch die Frage wie ich auf den Sensor zugreife um die Werte auszulesen, dass Datenblatt ist mir leider zu Englisch :wallbash:

    Mit dem Sensor möchte ich den Schornsteinzug eines Holzvergaserkessels "überwachen"

    Gruß fliese

    Einmal editiert, zuletzt von fliese (14. Februar 2016 um 15:03)

  • Hallo fliese,
    ich habe in den letzten Tagen auch mit dem SDP610 experimentiert und den selben I/O-Fehler erhalten.
    Das Problem liegt meiner Meinung nach daran, dass der Pi nach 3,6ms ein Timeout erzeugt. Der SDP610 braucht
    aber länger um nach dem Trigger die Daten für den Master vorzubereiten

    Habe mit rpi-update das letzte Firmware-Update eingespielt. Seit dem Reboot kann ich mit dem Baustein reden.

    wbn4dffi.png

    si5phgmk.png

    Hier mein verwendetes Python-Script zum Test


    lG
    Phili

  • MOin,


    Zitat

    den selben I/O-Fehler erhalten.


    also ich erhalte keinen Fehler :s

    Ich wollte nur wissen ob ich mit 0xF1 den Sensor auslesen kann, anscheinend ist dem auch so.

    Was ergibt denn die Ausgabe von:

    Code
    data = sd610.read_i2c_block_data(sd610_address,sd610_triggerMeasurement,3)
    
    
    print ("{:#3x} {:#3x} {:#3x}".format(data[0], data[1], data[2]))

    ?

    Schuß ins Blaue:

    data[0] = Positiver Druck
    data[1] = Negativer Druck
    data[2] = Checksumme
    :blush:

    Sollte man vor der Messung nicht ein "write command" senden?

    Code
    bus.write_byte(0x40, 0xF1)

    sorry falls das alles Unsinn ist :helpnew: :)

    fliese

  • Hallo fliese,

    Zitat

    den selben I/O-Fehler erhalten.


    also ich erhalte keinen Fehler :s
    [/quote]

    Ich habe in der letzten Woche3 so viel dazu gelesen, dass ich beim Schreiben wohl einen falschen Faden im Kopf hatte.

    Also gerade noch einmal getestet:

    Code
    root@kamin:~/python# i2cget -y 1  0x40 0xF1 w
    
    
    0xfdff

    Der i2cget auf der Konsole erlaubt es, in einem Zug das gewünschte Register, welches gelesen werden soll, zu setzten und dann die Daten zu empfangen. Leider können maximal 2 Bytes (Word=w) geholt werden.

    Die Daten werden im Zweierkomplement übertragen. Dafür sind die ersten beiden Bytes verantwortlich. Die Checksumme ist dann im 3.Byte.

    Anbei mein letzter Test

    Einmal editiert, zuletzt von phili (19. Februar 2016 um 23:25)

  • Moin phili,

    nun habe ich den Sensor mal am Rauchrhor des Kessels angeschlossen und Dein Script laufen lassen.
    Die Werte:


    Die Ergebnisse scheinen nicht zu stimmen. Messungen mit einem Schrägrohmanometer ergeben ~ 15 - 20Pa!
    Vielleicht habe ich aber auch falsch verdrahtet :s

    Bei meinem zusammen gepfuschten Script bekomme ich diese Werte:

    Bis auf die ausreißer (255, 249, 248, ....) und die Mittelwerte passen die Werte eigentlich.
    Was könnten diese hohen Werte (255, ....) bedeuten?

    Pfuscher Script:


    :blush:

    Gruß
    fliese

    Gehört das jetzt schon in die Abteilung Programmieung?

    Einmal editiert, zuletzt von fliese (20. Februar 2016 um 10:46)

  • Hallo Fliese,

    nun habe ich den Sensor mal am Rauchrhor des Kessels angeschlossen und Dein Script laufen lassen.
    Die Werte:

    Kannst Du mal ein Foto von deinem Rauchrohr und der Anbindung an den SDP610 machen. Ich brauche das ganze auch für eine Kaminsteuerung. Ich muss sicherstellen, dass meine Lüftungsanlage keinen Unterdruck im Gebäude größer 4Pa erzeugt. Dann sollen die Abluftlüfter in Ihrer Leistung reduziert werden.

    Die Werte sehen gut aus. Das ist bei mir im "Leerlauf" ganz ähnlich (schwingt um die 0Pa, bei mir ein eher leicht negativer Offset). Wenn dur Bus nicht läuft, dann bekommst du gar keine Daten.
    Das Rauchrohr muss nur über eine Leitung an einem der beiden Anschlüsse angeschlossen werden. Der andere Druckanschluss wird mit dem Umgebungsdruck verbunden. Ich kann mein System nicht sehr gut kalibrieren, weil ich keine passenden Messgeräte habe. Aber denn ich mit dem Mund Druck auf eine der beiden Anschlüsse gebe, dann bin ich recht fix bei dem Maxwert von 25Pa bzw. -25Pa, wenn ich den anderen Anschluss anpuste.


    Bei meinem zusammen gepfuschten Script bekomme ich diese Werte:


    Bis auf die ausreißer (255, 249, 248, ....) und die Mittelwerte passen die Werte eigentlich.
    Was könnten diese hohen Werte (255, ....) bedeuten?

    Das sind keine Ausreißer. Wenn ich richtig sehe, dann fragst Du nur das HighByte ab. Der Datenwert wird im Zweierkomplement geliefert. Da hast Du dann beim Wechsel in den negativen Zahlenbereich sofort 8 Einsen im Byte. Das sieht dann wie dein Ausreißer aus. Es ist aber eben nur der Wert -1 beim Rauschen um den Nullpunkt.

    Einmal editiert, zuletzt von phili (20. Februar 2016 um 14:05)

  • Hallo phili.

    sorry, deine Werte aus dem Script passen nicht, habe gerade nochmal im laufeneden Betrieb (Gebläse ist an und das Feuer brennt) gemessen!

    Werte aus Deinem Script:

    Werte mein Script:
    [code]Mittelwert 10
    2 Pa
    16 Pa
    13 Pa
    14 Pa
    7 Pa
    21 Pa
    10 Pa
    8 Pa
    19 Pa
    21 Pa
    Mittelwert 13
    18 Pa
    7 Pa
    12 Pa
    9 Pa
    25 Pa
    12 Pa
    0 Pa
    8 Pa
    3 Pa
    13 Pa
    Mittelwert 10
    2 Pa
    1 Pa
    14 Pa
    19 Pa
    15 Pa
    ^CTraceback (most recent call last):
    File "i2c1.py", line 42, in <module>
    sleep(1.3)
    [/quote]


    Meine Werte sind ziemlich deckungsgleich mit dem Schrägrohrmanometer (Schrägrohr ist natürlich sehr träge zum Sensor)

    Zitat

    Das sind keine Ausreißer. Wenn ich richtig sehe, dann fragst Du nur das HighByte ab. Der Datenwert wird im Zweierkomplement geliefert. Da hast Du dann beim Wechsel in den negativen Zahlenbereich sofort 8 Einsen im Byte. Das sieht dann wie dein Ausreißer aus. Es ist aber eben nur der Wert -1 beim Rauschen um den Nullpunkt.

    Ahhh, jetzt kommt Licht ins Dunkel

    HIer die Bilder (habe für Dich aber nicht sauber gemacht :D :(

    5fg5dng5.jpg
    rz9xnybt.jpg
    wcu5r3l2.jpg

  • Welche Version hast Du?
    Ich habe einen SDP610-25Pa?

    ggfs,. ist der Skalierungsfaktor anzupassen:

    Der "Scale factor" ist für die verschiedenen Varianten im Datanblatt auf Seite 3 genannt. Mein SDP610-25Pa benötigt einen Faktor von 1200 Pa^{-1}

    Phili


  • Helfen Dir die Bilder?

    Ja!
    In das Rockwool ist die Messsonde für den Druck eingepackt (links von der VA-Klappe), oder?
    Wie ist die darunter am Abgasrohr befestigt? Gibt es da was fertiges von der Stange zu kaufen?
    Misst Du auch die Abgastemperatur? Evtl sogar mit einem Mantelthermoelement?

    Phili

  • Moin,

    Zitat

    [In das Rockwool ist die Messsonde für den Druck eingepackt (links von der VA-Klappe), oder?/quote]
    Richtig

    [quote]Wie ist die darunter am Abgasrohr befestigt? Gibt es da was fertiges von der Stange zu kaufen?


    Ja, gibt es:

    http://www.ebay.de/itm/like/191761603662?ul_noapp=true&chn=ps&lpid=106

    http://www.weinmann-schanz.de/de/de/Technisc…und-andere.html

    Einfach ein Loch ins Rauchrohr bohren und das Dingen da reinstecken.
    Position der Bohrung: 3 x Rauchrohrduchmesser hinterm Rauchrohranschluß

    Rauchgastemp. messe ich (noch) nicht, habe noch kein passenden Fühler gefunden (Temp. > 300 °C! Analog, Digital?)

Jetzt mitmachen!

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