MAX6675 -Wert in Web darstellen - aber wie ?? -

  • Hallo,

    schreib meinen ersten Beitrag.

    Bin Anfänger und 50tig.

    Also habe folgendes Problem: Habe ein MAX6675 mit Thermoelement am Laufen. Funktioniert irgendwie auch (in Python). Kann hier die Holzofentemperatur im Rauchrohr auslesen. Und irgendwie habe bei Unterscheitung es geschafft mir ein email zu senden.

    Jetzt zu meinen Problem. Will / habe vor mir die aktuelle Rauchrohrtemperatur am PC / Webserver dazustellen. Ich finde nichts wie ich den MAX6675 Wert in einer PHP Datei darstellen kann.

    Die Temperatur lasst sich über Python einwandfrei darstellen.

    forum-raspberrypi.de/attachment/20175/

    Vielleicht bekomme Hilfe.



  • Danke für die schnelle AW.


    1.

    Mh. Stehen auf der Leitung. Finde unter /var/www/html keine Daten. (Habe das Programm gestartet und parallel gesucht). Habe anhand des Vergleichprogramm DS1820 versucht den Pfad zu finden. Finde die Daten nicht .

    Wo werden die Messdaten abgelegt und wie ist der Dateiname ? Ich müsste es anhand des Programmes doch auslesen können.

    Oder die Datei doch anhand des Zeitstempel finden.


    ???

    m66 = spidev.SpiDev(0,1) .

    import spidev ?? Keine Ahnung für was der Befehl ist.


    2.

    Webserver direkt in Python umsetzen, mit Flask o.ä.

    Hier muss ich mal nachgooglen. Danke .

  • 1.

    Xaver-Klaus

    Lies dir mal das durch:

    bottle - the right way to use - Verstehe ich nicht wirklich , bringt Momentan nichts für mich -


    2.

    > Finde unter /var/www/html keine Daten.

    Gemeint war: das Programm so ändern dass es seine Ausgabe dorthin schreibt.


    Habe das Prinzip verstanden,aber kann es nicht umsetzen. Kann zwar den Wert des Fühler auslesen mit einen kopierten Programm ,im Programm. Mein Ziel ist es das ich den Wert / Variabel in ein php-Programm zu übergeben und dann mit der web-Oberfläche anzeigen/auszulesen .


    Problem1 : Kann die Variable (den Wert der Temperatur ) nicht wirklich auslesen. Weiß nicht wo dieser hinterlegt ist (Container oder wo auch immer ? Dieser wird mit Python mit print (temp) zwar ausgeben.) Einer Weiterverarbeitung mit eine php script mit exec ("sudo python /pfad/name.py Var bringt keinen Erfolg oder falsche Befehlsreihe.


    Frage : Wie kann ich den print (temp) Wert/Zahl vom Python-Programm an eine php Übergeben bzw abfragen ?


    Mh ;(:wallbash:




    #!/usr/bin/python

    # -*- coding: utf-8 -*-

    import spidev

    import time

    from time import sleep


    m6675 = spidev.SpiDev(0,1)

    m6675.max_speed_hz=1000000


    def c_to_f(temp):

    f = ((temp/5)*9)+32

    return f


    def readTempC():

    m6675.writebytes([0x00,0x00])

    tempRead = m6675.readbytes(2)

    temp = (tempRead[0] <<8 | tempRead[1]) >> 3

    return temp * 0.25


    while True:

    temp = readTempC()

    if temp <100 : # Temperatur Grenzwert

    print ('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')

    print ('alle 1 min - eine Abfrage: '+ time.strftime('%H:%M:%S'))

    print ('')

    print ('zu kalt,<100 Grad, Feuer geht aus //bzw. ist aus')

    print ('')

    print (temp)

    print ('')


    usw.

    .

    .

    .

    .

  • Servus,

    Hast du dir Flask angeschaut? Nein. Habe eine anderen Webserver (apache2). Ich bin ein Anfänger.

    Ich will lediglich das ich mal etwas im Web abfragen kann und zwar den Wert des MAX6628.

    Habe ein python Programm das läuft. Und jetzt wollte ich den Wert ins Web übertragen.

    Das ich hier jetzt auf den Flask verwiesen werden wird sicher richtig sein. Ich kenne diese überhaupt nicht.


    Mh

  • Hallo,


    Xaver-Klaus : Programmieren ist nicht raten und Programmieren ist nicht Copy&Paste. Ohne Eigeninitiative und dem Willen, zumindest die Grundlagen von Python zu lernen, kommst du halt nie nie nie nie nie ans Ziel.


    Und um mal Missverständnisse deinerseits auszuräumen: um den Wert im Netz abrufen zu können, brauchst du weder PHP noch Apache. Eines der genannten Webframeworks und deren eingebaute Server reichen. Und wenn nicht nimmst du trotzdem eins der Webframeworks und lässt deren generieren Inhalt über eine WSGI-Applikationsserver wie gunicorn ausliefern. Klingt vielleicht kompliziert, ist aber viiiiel einfacher als Apache und PHP.


    Minibeispiel mit Flask:

    Wenn du das Skript dann wie auf der Startseite der Flask-Doku beschrieben startest und im Browser auf dem gleichen Rechner `http://localhost:5000` aufrufst, siehst du die Temperatur (bzw. die im Skript generierte Zufallszahl.


    Gruß, noisefloor


    P.S.: Wenn du Text zitierst bitte in eine Zitatbox setzen - das ist die Sprechblasen in der Werkzeugleiste im Editor. Dann sind deine Beiträge auch besser zu lesen.

  • Naja , das ist mein erster Beitrag. Wirklich geholfen hat mir der Dialog nicht. Ich wurde nur verwirrt und als unwissend hingestellt.


    Mir geht es nicht um die perfekte Programmierung . Ich wollte nur einen Gedankenanstoß. Meine Lösung funktioniert ja ,wollte diese lediglich verfeinern.


    Programmieren ist nicht raten und Programmieren ist nicht Copy&Paste ist richtig. Google weiter.

    • Official Post

    Hallo Xaver-Klaus,


    ein Weg wurde Dir hier schon gezeigt:

    * Python schreibt den Messwer in ein File unter /var/www/html

    * PHP liest das File und bettet den gelesenen Wert in die Webseite ein

    Dazu müsstest Du Dein Python Script so umschreiben, dass die Ausgabe Deiner Werte in eine Datei in der Ordner /var/www/html geschrieben und nicht nur per print() angezeigt werden, damit Du mit PHP dann auf diese Datei zugreifen kannst.


    Der direktere Weg ist allerdings, wie oben von den Jungs beschrieben, gleich bei Python zu bleiben und Bottle, Flask oder was auch immer für ein Webframework und dessen Webserver zu nutzen. ;)

  • Hallo,


    Quote

    Wirklich geholfen hat mir der Dialog nicht.

    Hm... du hast in Beitrag #12 eine fertige Lösung. Du musst nur die Dummy-Funktion `read_temperature`durch deine Funktion zum Auslesen des Sensors ersetzen, dann hast du genau das, wonach du gefragt hast. Wenn dir das nicht hilft... dann wird's eng.


    Quote

    Google weiter.

    Besser wäre wohl a) das offiziellen Python-Tutorial auf docs.python.org durchzuarbeiten und b) mal in Ruhe durch die Antworten hier zu lesen. Wie hyle schon sagte: dir sind hier mehrere Lösungen präsentiert worden. Besser geht's fast nicht. Bzw. die einzige mögliche Steigerung wäre, dass du dir eine Freelancer besorgst, der dir deinen Wunsch gegen Kohle programmiert.


    Gruß, noisefloor

  • Vielleicht doch noch als Anmerkung.... Die Jungs haben bereits darauf hingewiesen. Eleganter ist es, wenn man versucht nicht mehrere Technologien zu vermengen. Wobei es in Zeiten von docker, microservices, Schnittstellen, etc. egal sein sollte.


    Vielleicht noch als genereller Hinweis.... Vielleicht auch für zukünftige Projekte....


    Wenn PHP .... und wenig Zugriff, benötigt man keinen Apache: $ php -S 0.0.0.0:8080 -t /mein/webroot reicht da (Beispiel). Port 80 nicht, weil man als NICHT root sonst Probleme bekommt.


    Das Auslesen des Wertes muss nicht über ein file geschehen. Das python script liefert eine Ausgabe auf console, richtig? Im PHP script lassen sich bash Kommandos ausführen und dessen Ausgabe in eine Var oder Array laden und weiterverarbeiten. Es sei denn, man hat diese Möglichkeit aus Sicherheitsgründen in der php config generell deaktiviert.


    Als Alternative ließe sich auch noch einen REST service 'bauen' der von dem Frontend angefragt wird und das python bash command ausführt. Möglichkeiten gäbe es einige. Hängt halt vom Szenario ab.

    Gruss, Jürgen


    "Wer Fehler findet, kann sie behalten."
    "Wenn ich blöd frage, hat die Suche bisher nichts gebracht."