Seite 1 von 1

ESP32 Ausführung Script über WEBREPL nicht möglich

Verfasst: Montag 9. Dezember 2024, 18:48
von hjliedtke
Moin,
auf meinem ESP 32 ist folgendes Script installiert:

#sd-karte (lesen und) schreiben

import os
from time import sleep
import time
from machine import Pin,Timer,reset,SPI,I2C
import network, sdcard

#für die SD-Karte
#taste=Pin(0,Pin.IN,Pin.PULL_UP) #flash-taste zum Aushängen der Karte
#led= Pin(2,Pin.OUT,value=1)
spi=SPI(1,baudrate=1000000,sck=Pin(14),mosi=Pin(13),miso=Pin(15),polarity=0,phase=0)
sd = sdcard.SDCard(spi, Pin(5))
try:
os.mount(sd, '/sd')
print("SD-Card is mounted on /sd")
except OSError as e:
print(e)
print("SD-Card previously mounted")
a = 9552.7
a = str(a)
file = open('/sd/counter.csv', 'w')
file.write(a)
file.close()
file = open('/sd/counter.csv', 'r')
print(file.read())
file.close()

Wenn das Script direkt von Thonny ausgeführt wird, funktioniert es wie gewollt.

Aber beim Ausführen über WEBREPL wird folgender Fehler angezeigt:

PROBLEM IN THONNY'S BACK-END: Exception while handling 'Run' (thonny.plugins.micropython.connection.ReadingTimeoutError: Read bytes: bytearray(b' network, sdcard\n\n#f')).
See Thonny's backend.log for more info.
You may need to press "Stop/Restart" or hard-reset your MicroPython device and try again.
Process ended with exit code 1.
[/color]

Ich weiß nicht, wonach ich im backen.log suchen muss? Das ist ja sehr lang?

Re: ESP32 Ausführung Script über WEBREPL nicht möglich

Verfasst: Dienstag 10. Dezember 2024, 12:57
von DeaD_EyE
Thonny führt über die Micropython-REPL Funktionen aus, um z.B, die Uhrzeit einzustellen. Wenn dein Programm aber etwas über die REPL ausgibt, dann funktioniert das nicht.

Re: ESP32 Ausführung Script über WEBREPL nicht möglich

Verfasst: Dienstag 10. Dezember 2024, 17:08
von hjliedtke
mmhh , mit der Antwort kann ich nichts anfangen.
Ich kann über Webrepl Programme starten und sie werden ausgeführt. Ein ähnliches Script wie oben habe ich zum Auslesen der SD-Karte. Nach dem Start läuft es fehlerfrei durch und zeigt mir den Wert an.
Ich verstehe die Fehlermeldung nicht - darum geht es.
Ansonsten bin ich mit Webrepl recht zufrieden. Änderungen u.ä. können durchgeführt werden, ohne dass ich den ESP am PC einstöpseln muss.
Wenn der ESP am PC ist, funktioniert das Script zum Schreiben auf die SD-Karte einwandfrei.

Re: ESP32 Ausführung Script über WEBREPL nicht möglich

Verfasst: Mittwoch 11. Dezember 2024, 19:38
von DeaD_EyE
PROBLEM IN THONNY'S BACK-END: Exception while handling 'Run' (thonny.plugins.micropython.connection.ReadingTimeoutError: Read bytes: bytearray(b' network, sdcard\n\n#f')).
Das Backend bekommt einen Timeout, weil nicht die erwartete Ausgabe erfolgt. Thonny sendet ein KeyboardInterrupt (STRG+C) und macht auch einen reboot mit STRG+D und wartet auf eine bestimmte Ausgabe. Dein Code läuft aber wahrscheinlich schon (erst boot.py, dann main.py) und dort kommt auch die Ausgabe "bytearray(b' network, sdcard\n\n#f" her, aber Thonny erwartet eine andere Ausgabe und nicht die deines Programms.

Wenn du experimentierst, kannst du ja in der main.py einen Pin als PULL_UP instanziieren und das Hauptprogramm nur dann ausführen, wenn der Pin auf high ist. Wenn der Pin gegen Masse gezogen wird, dann wird die Funktion nicht ausgeführt.

Beispiel:

Code: Alles auswählen

from machine import Pin


prog_pin = Pin(10, mode=Pin.INPUT, pull=Pin.PULL_UP)


def main():
    """
    Hauptprogramm
    """


if prog_pin.value():
    main()

Wenn du dann mit Thonny arbeiten willst, kannst du den Pin 10 gegen Masse ziehen und dann wird die Funktion main() nicht ausgeführt.