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?
ESP32 Ausführung Script über WEBREPL nicht möglich
- DeaD_EyE
- User
- Beiträge: 1217
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
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.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
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.
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.
- DeaD_EyE
- User
- Beiträge: 1217
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
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.PROBLEM IN THONNY'S BACK-END: Exception while handling 'Run' (thonny.plugins.micropython.connection.ReadingTimeoutError: Read bytes: bytearray(b' network, sdcard\n\n#f')).
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()
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server