Bier brauen mit ESP32 / Programme sichern und Wiederherstellen

z.B. WebServer, Docker, VirtualBox, VMware, Azure, etc.
Antworten
Benutzeravatar
asp
Site Admin
Beiträge: 83
Registriert: 22 Feb 2025, 19:44
Wohnort: Lohn-Ammannsegg
Kontaktdaten:

Bier brauen mit ESP32 / Programme sichern und Wiederherstellen

Beitrag von asp »

Habe mit Hilfe von DeepSeek ein Webserver-Programm in Micropython geschrieben, mit welchem verschiedene Rezepte abgearbeitet werden können:

Batch Verarbeitung:

Code: Alles auswählen

Webserver welcher Batch-Programme als Rezepte wie
r1.txt, r2.txt, usw. abarbeiten kann, hier ein Beispiel zum Testen

gespeichert werden, hier ein Beispiel zum Bier brauen
----------------------------------------------------------------------------------------------------------------------------
# r3.txt - Temperatur-gesteuertes Brauen
p Temperatur-gesteuertes Brauen                    # print : diesen Text
u Bitte Wasser und Malz vorbereiten                # Unterbrechung : anzeige des Textes, zum weiterfahren bestätigen
s do18                                             # set : do18 wäre in diesem Beispiel das Relais welches das Rührwerk startet
p Ruehwerk eingeschaltet                           # print : Info dass das Rügrwerk eingeschaltet wird
t do17 27 1                                        # Heizen auf 27°C (Eiweissrast)
p Eiweissrast beendet                              # print : Info dass der Erste Schritt abgeschlossen ist
t do17 29 1                                        # Heizen auf 29°C (Maltoserast)
p Maltoserast beendet                              # print : Info dass der 2.te Schritt abgeschlossen ist
t do17 30 1                                        # Heizen auf 30°C (Verzuckerung)
p Verzuckerung beendet                             # print : Info dass der 3. dritte Schritt abgeschlossen ist
r do18                                             # reset : Befehl Rührwerk aus
p Ruehwerk ausgeschaltet, Programm ENDE            # print : Info an Bediener, Prozess beendet
----------------------------------------------------------------------------------------------------------------------------
Gibt natürlich kein Bier, nur ein Beispiel für die Programmfunktionalität
bier-brauen.png
bier-brauen.png (61.39 KiB) 14116 mal betrachtet
Wie kann ich nun meine Programme auf den PC sichern?

ESP32 mit MicroPython - rshell Kommando-Referenz

Installation auf Sparky Linux/Debian

Virtual Environment Methode (empfohlen)

Code: Alles auswählen

# 1. Virtual Environment erstellen
python3 -m venv ~/micropython-tools

# 2. Virtual Environment aktivieren
source ~/micropython-tools/bin/activate

# 3. rshell installieren
pip install rshell

# 4. Optional: Alias in .bashrc hinzufügen
echo "alias mp-tools='source ~/micropython-tools/bin/activate'" >> ~/.bashrc
echo "alias esp32='rshell -p /dev/ttyUSB0 --baud 115200'" >> ~/.bashrc
source ~/.bashrc
Verwendung wenn rshell installiert ist

Habe zwei Verzeichnisse in meinem home, eines für die Sicherung meiner Batchprogramme und eines mit der virtuellen Umgebung

Code: Alles auswählen

drwxr-xr-x  2 asp  asp      4096  8. Dez 19:44 esp32_batch
drwxr-xr-x  5 asp  asp      4096  8. Dez 19:17 esp32-tools
Erstens: Virtuelle Umgebung starten

Code: Alles auswählen

source ~/esp32-tools/bin/activate
Der Promt sollte nun in etwa so aussehen: (esp32-tools) asp@TS10:~$

Zweitens: Verbindung testen In Thonny sehe ich, dass die Verbindung ttyUSB0 ist mit welcher das Board und der PC verbunden sind.
Rechte setzen (nach jedem Einstecken):

Code: Alles auswählen

sudo chmod 666 /dev/ttyUSB0
und die Verbindung mit rshell testen.

Code: Alles auswählen

rshell -p /dev/ttyUSB0 --baud 115200
Bei mir sieht das dann so aus

Code: Alles auswählen

(esp32-tools) asp@TS10:~$ sudo chmod 666 /dev/ttyUSB0
(esp32-tools) asp@TS10:~$ rshell -p /dev/ttyUSB0 --baud 115200
Using buffer-size of 32
Connecting to /dev/ttyUSB0 (buffer-size 32)...
Trying to connect to REPL  connected
Retrieving sysname ... esp32
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /DS18B20_temp_class.py/ /batch_class.py/ /boot.py/ /config.set/ /config_loader.py/ /iopi_plus_class.py/ /main.py/ /r1.txt/ /r2.txt/ /r3.txt/ /r4.txt/ /r5.txt/ /webserver-bier-brauen.py/
Setting time ... Dec 08, 2025 20:31:24
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 2000
Welcome to rshell. Use Control-D (or the exit command) to exit rshell.
Drittens: alles in mein Backup-Dir kopieren:

Code: Alles auswählen

mkdir ~/esp32_batch # wenn nicht schon vorhanden
cp /pyboard/* ~/esp32_batch/
und prüfen ob alles kopiert wurde:

Code: Alles auswählen

ls -l ~/esp32_batch/
weitere Befehle

Code: Alles auswählen

# ESP32 Dateien anzeigen
ls /pyboard

# In ESP32 Verzeichnis wechseln
cd /pyboard

# Datei vom ESP32 auf PC kopieren
cp /pyboard/main.py ~/Desktop/main.py

# Datei vom PC auf ESP32 kopieren
cp ~/neue_datei.txt /pyboard/

# Mehrere Dateien auf einmal kopieren
cp /pyboard/*.py ~/backup/

# Rekursives Backup aller Dateien
mkdir ~/esp32_backup
cp -r /pyboard/* ~/esp32_backup/

# Dateiinhalt anzeigen
cat /pyboard/main.py

# Datei löschen
rm /pyboard/alte_datei.py

# Verzeichnis erstellen
mkdir /pyboard/lib
Beispiele
Kontrollieren welche Dateien auf dem Board sind:

/home/asp>

Code: Alles auswählen

ls /pyboard
zeigt bei mir

Code: Alles auswählen

DS18B20_temp_class.py    iopi_plus_class.py       r1.txt                   r5.txt                  
batch_class.py           main.py                  r2.txt                  
boot.py                  webserver-bier-brauen.py r3.txt                  
config_loader.py         config.set               r4.txt                  
Eine Datei auf das ESP32-Board kopieren:

Code: Alles auswählen

cp ~/neue_datei.py /pyboard/
weitere Befehle

Code: Alles auswählen

# 1. Dateien vom PC zurück auf ESP32 kopieren
/home/asp> cp ~/esp32_batch/main.py /pyboard/

# 2. Einzelne Datei ersetzen
/home/asp> cp ~/modified_batch_class.py /pyboard/batch_class.py

# 3. Datei auf ESP32 löschen
/home/asp> rm /pyboard/alte_datei.py

# 4. Datei umbenennen
/home/asp> mv /pyboard/alt.txt /pyboard/neu.txt

# 5. Verzeichnisstruktur anzeigen
/home/asp> ls -R /pyboard

# 6. Dateiinhalt prüfen
/home/asp> cat /pyboard/main.py | head -20

# 7. Dateigröße aller Python-Dateien
/home/asp> ls -l /pyboard/*.py
Viel Vergnügen, [email protected]
Antworten