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

    Edited once, last by fliese ().

  • 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.
    [Blocked Image: http://fs5.directupload.net/images/160213/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

    Edited once, last by fliese ().

  • 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.


    [Blocked Image: http://fs5.directupload.net/images/160216/wbn4dffi.png]


    [Blocked Image: http://fs5.directupload.net/images/160216/si5phgmk.png]


    Hier mein verwendetes Python-Script zum Test




    lG
    Phili

  • MOin,



    Quote

    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,


    Quote

    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


    Edited once, last by phili ().

  • 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?

    Edited once, last by fliese ().

  • 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.

    Edited once, last by phili ().

  • 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)


    Quote

    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 :(


    [Blocked Image: http://fs5.directupload.net/images/160220/5fg5dng5.jpg]
    [Blocked Image: http://fs5.directupload.net/images/160220/rz9xnybt.jpg]
    [Blocked Image: http://fs5.directupload.net/images/160220/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

  • aha, nun passt es! Ich habe den SDP610-125Pa (habe ja gesagt das mir das Datenblatt zu Englisch ist).
    Wollte schon fragen wo die 1200 herkommen


    Helfen Dir die Bilder?

    Edited once, last by fliese ().


  • 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,


    Quote

    [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/…en-Brigon-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?)