Daten vom BME280 via ESP32 via RS232 auf PC mit Python 3.8.X visualisieren

  • Respekt. Dafür, dass du vor ein paar Wochen noch "keinen Plan" von Python hattest, hast Du ja ganz schön aufgedreht :thumbup:.

    Gerade das Threading ist ja nicht ganz so einfach.


    Klasse.


    Gruß Kai

  • Hallo zusammen,

    in den letzten Tagen habe ich einen Ausflug zu Python gemacht.


    Hallo Rene, wenn das nicht ins Forum zu Micropython passt einfach löschen !!!


    Ziel meines kleinen Projektes war, Daten die ich vom BME280 bekomme auf dem PC zu visualisieren.

    Für die meisten von euch bestimmt trivial für mich als blutigen Anfänger war es das nicht.

    Einige der Lektionen von Rene konnte ich anwenden und so stärker verinnerlichen ( Strings, Listen, Funktionen ... ).


    Also eine kleine Projektpräsentation :


    Wie die Daten vom BME280 auf den ESP32 kommen ist ja Dank Renes Lektionen ohne großen Aufwand nachzuvollziehen.

    Diese Daten sende ich nun via RS232 zum PC. Das wird mit einem FTDI Adapter ( Danke an Kai für deine Hilfe ich wusste nicht was ein FTDI Adapter ist und von einem Decode von Byte nach String hatte ich auch noch nichts gehört ) gemacht.

    In Python wollte ich die Daten einfach nur als Graphen darstellen. Das war gar nicht so einfach.

    Im aktuellen Programm werden die Daten im Sekundentakt gelesen und ausgegeben. Das habe ich nur gemacht um besser experimentieren zu können. Sinnvoll ist das ganze sicherlich nicht denn wer will schon die Raumtemperatur oder gar den Luftdruck im Sekundentakt auf seinem Schreibtisch wissen.

    Um eine Struktur zu bekommen und das mehrere Prozesse unabhängig voneinander laufen habe ich mich in das Thema Treading eingearbeitet.

    Eigene Experimente können mit dem im Programm gelassenen Tread Blinker ( Prozess 2 ) gemacht werden.

    Die Graphen habe ich dann mit der Matplotlib gebaut.

    Um das Ganze ein wenig ansehnlich zu gestalten habe ich mich in Tkinter eingearbeitet.

    Matplotlib und Tkinter habe ich über die Backend Funktionalität verheiratet.

    Ein Beispiel für FStrings habe ich im Programm gelassen ( ich finde das ist eine super Sache im Vergleich zum Format Befehl bei Micropython ).

    Dann habe ich mich noch ein bisschen mit den Time Funktionen beschäftigt und mit der Möglichkeit die Ausgaben von Time über Locale ins Deutsche zu bringen.


    Der aktuelle Programmstand wird von mir noch weiter bearbeitet.


    Einige offene Punkte sind : Fehler abfangen ( z.B. wenn der Serielle Port zicken macht ), Daten als CSV Datei ablegen, Daten via WLAN übertragen u.s.w.

    Da gibt es noch so einiges zu lernen und zu experimentieren.


    Wer es sich anschauen mag und konstruktive Kritik abgeben möchte ist herzlich eingeladen.


    Gruß, Frank.


    Screenshot.PNG