Daten vom ESP seriell auf dem PC mit einem Python-Programm empfangen
Dazu muss in einer neuen Instanz von Thonny als Interpreter "Lokales Python 3" eingestellt werden.
Über Menü: 'Werkzeuge - Optionen ... - Allgemein - nur eine Instanz von Thonny zulassen' ist diese Option zu deaktivieren.
Thonny muss neu getartet und der Interpeter auf 'Lokales Python 3' gestellt werden.
Nun wird Thonny ein zweites Mal gestartet und der Interpeter auf 'ESP32' gestellt.
Diese beiden Thonny-Fenster sind nun diese beiden Instanzen von Thonny, in denen wir abwechselnd arbeiten müssen.
Geschafft?!!!
Lade das folgende Programm-Modul in diese Instanz von Thonny mit dem lokalen Interpreter.
Speichere das Programm exakt als "mrge_communication_pc.py" in einem Verzeichnis DHT11 auf deinem Computer.
Starte das Programm "mrge_communication_pc.py".
Sollte die Fehlermeldung ImportError: no module named 'serial'
angezeigt werden,
ist mittels pip install pyserial
die fehlende Bibliothek 'pyserial' für Python zu installieren.
Wechsle dazu mittels WINDOWS+R in "Ausführen" und starte dort 'cmd'.
- Bestimme den Installationsort von Python
dir "C:\Program Files\Python*"
Wechsle in das gefundene Installationsverzeichnis.
cd "C:\Program Files\Python312\"
und gib die folgenden zwei Anweisungen ein.
python.exe -m pip install --upgrade pip
python.exe -m pip install pyserial
Starte das Programm "mrge_communication_pc.py" erneut.
Es zeigt dir die vorhandenen COM-Ports in der Befehlszeile an.
In der Schule sieht es typisch so aus.
>>> %Run mrge_communication_pc.py
Liste der verfügbaren COM-Ports
- ['COM17', 'Silicon Labs CP210x USB to UART Bridge (COM17)']
Verbinde mit COM16 mit 115200 Baud
- OSError: could not open port 'COM16': FileNotFoundError(2, 'Das System kann die angegebene Datei nicht finden.', None, 2)
Es gibt hier keinen Port 'COM16'.
Passe in der Zeile 4 von "mrge_communication_pc.py" den COM-Port an und starte das Programm erneut.
>>> %Run mrge_communication_pc.py
Liste der verfügbaren COM-Ports
- ['COM17', 'Silicon Labs CP210x USB to UART Bridge (COM17)']
Verbinde mit COM17 mit 115200 Baud
- OSError: could not open port 'COM17': PermissionError(13, 'Zugriff verweigert', None, 5)
Jetzt gibt es den Port, aber er wird schon vom zweiten Thonny genutzt.
Was nun?
Die Instanz von Thonny, die mit dem ESP verbunden ist, muss jetzt den verwendeten Port freigeben,
um dem Pythonprogramm den Zugriff auf diesen zu ermöglichen.
Stelle über Menü 'Ausführen - Konfiguriere den Interpreter ...' als "Port oder WebREPL" für den ESP32 einfach "WebRepl" oder einen anderen freien Port ein.
Jetzt sollten die Daten nicht mehr im 'ESP32-Thonny', dafür aber im 'Phyton 3 - Thonny' angezeigt werden.
Wir beobachten jedoch, das unser ESP-Modul durch die neue Verbindung zurückgesetzt wird und unser 'DHT11-seriell-senden.py' nicht gestartet wird.
Das erkennen wir am ausbleibenden Blinken der Onboard-LED auf dem ESP32 und an der Ausgabe der Kommandozeile in der 'Phyton3-Instanz'.
>>>
...
b'load:0x40080404,len:3372\r\n'
b'entry 0x400805b0\r\n'
b'\r\n'
b'MicroPython v1.24.0 on 2024-10-25; Generic ESP32 module with ESP32\r\n'
b'Type "help()" for more information.\r\n'
b'>>> '
b'>>> '
b''
b''
...
Autsch!
Die Verbindung wurde jedoch hergestellt.
Aber der ESP wurde durch den Abbruch der Verbindung zu Thonny und dem Herstellen der Verbindung zu Pythonprogramm auf dem PC neu gestartet.
Abhilfe schafft hier nur, das unser Programmcode auf dem ESP automatisch gestartet wird.
ChatGPT mein dazu
Kopiere diesen Code in die 'main.py", die auf deinem ESP schon vorhanden sein sollte. Wenn nicht, dann erstelle diese Datei selbst.
Jetzt sollte bei jedem 'STOP/Restart..", "...,Neustart" oder "Hard-Reset" unser Programmcode laufen.
Wir erkennen dies am Blinken der Onboard-LED auf dem ESP32 und nun auch in der Kommandozeile.
>>>
...
b'load:0x40080404,len:3372\r\n'
b'entry 0x400805b0\r\n'
b'\r\n'
b'DHT11-Daten vom ESP32\r\n'
b''
b''
b'2,22,44\r\n'
b''
b''
b'4,22,45\r\n'
b''
...
Geschafft!!! Das war ein richtiger Kraftakt.