MINI PH Interface Install Probleme

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo erstmal an alle PI Freunde ,

    zu meinen Vorhaben :
    mittels PI den PH wert vom wasser Messen .

    ich habe einen pi 3 der auch mit allem soweit schon läuft wie ich das möchte .

    nun zu meinen problem ich bekomme des miniph interface nicht in laufen bez. kalibriert

    ich habe mir von https://www.sparkyswidgets.com/portfolio-item…c-ph-interface/
    das interface gekauft . habe es am IC2 angeschlossen , und es wird mir unter C4 auch angezeigt .

    jedoch weiß ich jetzt nicht wie ich das kalibriert bekomme bez. eine anzeige was denn der ph-wert nun ist

    ich habe mir bereits https://github.com/SparkysWidgets/MinipHBFW die daten Geladen
    jedoch weiß ich leider nicht was ich und wie benutzen kann damit ich einen PH angezeigt bekomme zb. in der konsole

    evtl kann mir einer helfen , zb. mit einer guten und deutschen anleitung oder durch erfahrung
    da ich das sonst nicht fertig bekomme
    im mit geladenen bild ist alles was ich erreichen konnte , jedoch regagiert da die sonde nicht , werte beiben relativ gleich ob sonde in lösung ph 4 oder ph7


    ich danke im vorraus lg sven

  • Ok, ich greif dir mal unter die Arme obwohl ich grad kaum Zeit hab.
    Als erstes musst du ermitteln welche Adresse das Board hat.

    Code
    i2cdetect -y 0

    Da kommt dann ein arry mit 4a oder 4e iin einem Feld, d. h. dein Board hat die Adresse an dem Bus: 0x4a (oder 0x4e)
    Damit kannst du das Board ansteuern und mit

    Code
    i2cget -y 1 0x4a 0x4a w

    (oder 4e)

    Du erhältst dann eine Ausgabe wie z. Bsp. 0x8032.

    Das musst du noch in einen brauchbaren Wert umwandeln.
    Versuch erstmal im Terminal die Adresse zu ermitteln und das Board abzufragen ob da sinnvolle Werte rauskommen, dann machen wir an der Stelle weiter.


    t0x018
    d

  • danke erstmal das du mir da hilfst , und es geht schon beim ersten befehl los

    Code
    i2cdetect -y 0
    Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory

    wenn ich unter :

    Code
    i2cdetect -y 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- 26 -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- 3f
    40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    ist 4C das modul
    lg sven
    Automatisch zusammengefügt:
    die Befehle ergeben auch nichts

    i2cget -y 1 0x4a 0x4a w
    Error: Read failed

    i2cget -y 1 0x4e 0x4e w
    Error: Read failed
    Automatisch zusammengefügt:
    ich habe mal nachgesehen ob das modul geladen ist , war mir klar das es so ist da ich schon geräte am ic2 habe (display)

    ausgabe lsmod ergab

    updates / upgrades alles auf neuesten stand

    fehler bleiben bestehen

    lg
    sven aus Nürnberg
    Automatisch zusammengefügt:
    habe noch etwas rum Probiert ::)nd eine ausgabe bekommen

    hier im code

    Code
    @raspberrypi:~# i2cget -y 1 0x4c 0x4c w
    0x630a

    wuste nicht das ich die adresse nehmen muss die das modul/Interface vom mini ph hat

    Einmal editiert, zuletzt von diskus-tempel (18. September 2017 um 14:21)

  • Na das ist doch schonmal ein Anfang. Das Board liefert eine Ausgabe und jetzt wirds kompliziert. Wir müssen die letzten zwei Bytes der Ausgabe nach vorne swappen damit wir das in einen brauchbaren Wert umwandeln können. Dann muss eine Messreihe erstellt werden mit ph4, ph7 und noch eine Wert wäre gut. Dann kann man intercept/slope ausrechnen und mit diesem Wert dann die Ausgabe bestimmen.
    Es gibt dafür online Rechner, man muss das nicht selbst berechnen. pH Wert über dieses Board muss mit einer linearen Regression gerechnet werden. Damit ist die Kalibrierung dann komplett. Ich bin grad auf Arbeit, kann hier jetzt nicht ausführlich schreiben. Ich meld mich heut abend nochmal.
    Was für eine pH Sone hast du angeschlossen? Meine Billig China pH Sone rauscht leider wie doof....
    Automatisch zusammengefügt:

    Zitat von "diskus-tempel" pid='300280' dateline='1505735589'

    wuste nicht das ich die adresse nehmen muss die das modul/Interface vom mini ph hat

    I2C erlaubt mehrere Geräte pro Bus, daher muss man erst die Adresse rausfinden und das Board dann auf dieser Adresse ansteuern. Ich poste nachher mal meine Kalibrierskripte und das fertige Skript zum Auslesen nach der Kalibrierung.

    Einmal editiert, zuletzt von 4zap (18. September 2017 um 15:16)

  • Um den pH Wert zu ermitteln der gerade an der Sonde anliegt verwende ich perl. Ggfs. musst die Perl Bibliotheken noch installieren bei dir.

    Erstell eine Datei phwert_abfragen.pl im Ordner deiner Wahl
    Kopier den nachfolgenden Code rein und speicher die Datei ab.


    Die Datei fragt das Board nach einem Wert, swapt die Bytes, wandelt den hex Wert in dezimal um, berechnet die lineare Regression und gibt dir den pH Wert dezimal auf den Bildschirm. Die Variable kann man von da aus weiter verarbeiten, je nachdem was man damit vorhat. Ich schreib den Wert in eine Datenbank und erstell mir eine Grafik.
    PH_status.gif

    Hier musst du später nur die "use constants" für Intercept und Slope ändern. Dafür musst du kalibrieren. Da dein Name Discus enthält vermute ich du hast recht weiches Wasser unter pH7. Da würde die einfache Kalibrierung mit pH4 und pH7 ausreichen. Ich vermute auch du hast die rote und die grüne Kalibrierlösung mit pH4 und pH7.

    Erstell dir zwei bashdateien, nenn sie sowas wie "kalibrierpH4.sh" und "kalibrierpH7.sh" oder wie du willst.Mach die Dateien ausführbar mit chmod +x

    Bash
    #!/bin/bash
    
    
    while true
    do
    temp = echo $(i2cget -y 0 0x4c 0x4c w) >> /home/pi/pH/calibrate/ph4.txt #änder hier das Verzeichnis auf deines
    print $temp
    done


    und einmal

    Bash
    #!/bin/bash
    
    
    while true
    do
    temp = echo $(i2cget -y 0 0x4c 0x4c w) >> /home/pi/pH/calibrate/ph7.txt
    print $temp
    done

    Führe beide Dateien etwa 30 sek. aus. Es werden zwei Textdateien erstellt. Poste die mal bitte hier vorab. Daraus kann man dann intercept und slope ausrechnen.

  • Hallo 4zap  

    Ich habe das nun mal alles Versucht , und folgendes Problem

    bei der Kalibrierung 4 oder 9 kommt folgendes in der Konsole , in den textdatein wird nicht geschrieben oder ähnlichhes

    Zitat

    pi@raspberrypi:/home/pi/ph_neu# ./kal_ph4.sh

    die Scripte habe ich etwas abändern müssen zwecks abfrage des bords ich poste auch diese mal

    phwert_abfragen.pl

    Zitat

    #!/usr/bin/perl

    das script für kalibrierung

    Zitat

    #!/bin/bash

    Zitat

    while true

    do

    temp = echo $(i2cget -y 1 0x4c 0x4c w) >> /home/pi/ph_neu/ph4.txt #änder hier das Verzeichnis auf deines

    print $temp
    done


    ph sieben ist ja das selbe ! nur das die text datei anders ist

    evtl kannst mir da tips geben , schreib und lese rechte sind auf alles gegeben

    das ph abfragen script gibt folgendes aus

    Zitat

    root@raspberrypi:/home/pi/ph_neu# ./phwert_abfragen.pl

    Zitat


    original $PHhex = 0x7d0a


    Illegal hexadecimal digit '

    ' ignored at ./phwert_abfragen.pl line 15.

    32010nach byteswap $PH = 2685
    -5.0


    zu deiner frage ja ich habe diskus und möchte damit halt den ph wert sehen können ::)

    zu deiner bauweiße über die datenbank würde sich intressant anhören , wenn das mal soweit läuft würde ich diesbezüglich noch mal auf dich zurück kommen

    danke erstmal für deine viele hilfe :)

    LG Sven

  • Hi

    du hast recht, das letzte läuft nicht.
    Versuch mal simpel:

    Bash
    #!/bin/bash
    
    
    while [ true ] ;
    do
    echo "$(i2cget -y 0 0x4c 0x4c w)" >> /deinverzeichnis/ph7.txt
    echo "$(i2cget -y 0 0x4c 0x4c w)"
    done

    Änder das nach deiner Facon und lass das mal mit jeder Kalibrierlösung für 30 sekunden laufen. Ladt die Textdateien danach mal hoch. Bin schon gespannt wie das bei dir aussieht.

  • huhu ! danke für das erneute script

    das hat gefuntzt , jetzt schreibt er die daten in die phpx.txt x steht für 4 oder 7

    ich muss ja jetzt teoretisch , die sonde in die lösung geben zb. ph 4 und diese kal_ph4.sh ausführen ca 30 sekunden ?
    das selbe für ph 7

    wie geht es aber dann weiter ?


    lg sven
    Automatisch zusammengefügt:
    ich vermute ja das es was mit diesen bereich der perl datei zu tun hat

    Zitat

    use constant SLOPE => -0.02039; #wert aus kalibrierung

    use constant INTERCEPT => 49.72; #wert aus kalibrierung

    bei mir kommt halt bei der kal_ph7 sowas raus

    Zitat


    0x7b0a

    Einmal editiert, zuletzt von diskus-tempel (20. September 2017 um 18:58)

  • Das ist alles richtig bislang. Die Ausgabe ist hexadezimal, und auch richtig mit den Dateinamen, irgendwie muss man in dieser Messreihe die Dateien der Kalibrierlösung zuordnen können. phx -> x gleich pH wert der kalibrierlösung. Bei mir war es die 4 und die 7, pass den Namen einfach an. Die Messung an sich ist ja immer gleich.

    Wenn du die zwei Dateien erstellt hast lad die mal hier hoch. Die Kalibrierung wird zwar genauer wenn man eine dritte Messreihe bei pH9 fährt, aber bei Diskus willst da eh unter 6.5 bleiben vermute ich, von daher passt das schon.
    Aus den Messreihen bestimmt man die lineare Regression, eine Methode die versucht Stichproben linear in Zusammenhang zu bringen um dann eine genaue Definition liefern zu können, in dem Fall eine Kalibrierung. (mal sehen wer mich für den Spruch hier digital steinigt). https://de.wikipedia.org/wiki/Lineare_R…eare_Regression

    Und nochmal gefragt: Welche pH Sonde hast du angeschlossen? Das interessiert mich auch sehr.

  • hi , ich kümmere mich um die kalebrierung heute nach der arbeit , ich war gestern zu kaputt nach der arbeit

    die zwei datein lade ich danach hier mal hoch


    zu meiner sonde , noch hab ich eine billig sonde , die ich von einen anderen gerät nehme . wenn dann alles funtzen tut , dann werd ich mir von JBL oder ähnlichen anbieter eine kaufen

    lg

  • Zitat von "diskus-tempel" pid='300767' dateline='1506042953'


    hi , ich kümmere mich um die kalebrierung heute nach der arbeit , ich war gestern zu kaputt nach der arbeit

    die zwei datein lade ich danach hier mal hoch


    zu meiner sonde , noch hab ich eine billig sonde , die ich von einen anderen gerät nehme . wenn dann alles funtzen tut , dann werd ich mir von JBL oder ähnlichen anbieter eine kaufen

    lg

    Kenn ich nur zu gut. Arbeite auch viel zu viel. Meine Sonde ist Müll, bzw. rauscht sehr und lässt sich vom Elektrosmog der Pumpen beeinflussen. Mal schauen was deine kann. :)

  • Hi 4zap

    da es bei mir kein Projekt ist was auch schnell fertig werden muss , danke ich dir erstmal vielmals für deine hilfe , und hoffe auf weitere hilfe von dir , wenn du aus dem Urlaub wieder kommst .

    in dem Sinne wünsche ich dir einen Angenehmen und erholsammen Urlaub

    lg sven

  • Hallo Sven
    ich habs nicht mehr geschafft, hatte zu viel zu tun bevor ich abgehauen bin. Sorry...Hier an Bord sind aber echt pfiffige User die mir das gezeigt haben. Manul z. Bsp.
    Vielleicht kann er deine Textdateien auswerten und slope/intercept berechnen. Internet geht hier zwar, aber is echt ne Krücke.

Jetzt mitmachen!

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