ESP32 MicroPython - Konfiguration von der SD-Karte lesen

Diese Anleitung zeigt Ihnen, wie Sie mit dem ESP32 und MicroPython Einstellungen aus einer Konfigurationsdatei laden, die auf einer Micro-SD-Karte gespeichert ist. Folgendes behandeln wir:

Mit diesem Ansatz können Sie Ihre Projekteinstellungen über eine einfache Textdatei auf der Micro-SD-Karte verwalten, mit Unterstützung verschiedener Datentypen wie Ganzzahlen, Gleitkommazahlen und Zeichenketten.

ESP32 MicroPython Micro-SD-Karte Konfigurationsdatei

Überblick über Micro SD Card Module

Neu beim Micro-SD-Kartenmodul? Erfahren Sie alles über seine Pins, seine Funktionsweise und seine Programmierung im Tutorial ESP32 MicroPython - Micro-SD-Karte.

Funktionsweise

Die Konfigurationsdatei auf der Micro-SD-Karte folgt einer einfachen Struktur:

  • Jede Einstellung steht in einer eigenen Zeile — Schlüssel-Wert-Paare werden durch Zeilenumbrüche getrennt.
  • Innerhalb jeder Zeile werden Schlüssel und Wert durch das Zeichen = getrennt.

Der MicroPython-Code durchsucht die Datei nach einem bestimmten Schlüssel, liest den zugehörigen Wert aus und weist ihn einer Variablen zu. Der Wert kann je nach Bedarf in int, float oder string umgewandelt werden.

Verdrahtungsdiagramm

ESP32 MicroPython Micro-SD-Kartenmodul Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Die folgende Verdrahtungstabelle zeigt, wie Sie das Micro-SD-Kartenmodul mit dem ESP32 verbinden:

Micro-SD-Kartenmodul ESP32
VCC 5V
GND GND
MISO GPIO19
MOSI GPIO23
SCK GPIO18
CS GPIO5

※ Notiz:

Wenn Ihr Shield (z. B. ein Ethernet-Shield) bereits einen eingebauten Micro-SD-Kartensteckplatz hat, können Sie auf das externe Modul verzichten und die Karte einfach direkt in das Shield einsetzen.

So laden Sie Konfigurationseinstellungen in Variablen

  • Erstellen Sie auf Ihrem PC mit Notepad oder Notepad++ eine Datei config.txt
  • Kopieren Sie die folgenden Schlüssel-Wert-Paare in die Datei config.txt:
myString_1=Hello myString_2=newbiely.com myInt_1=2 myInt_2=-105 myFloat_1=0.74 myFloat_2=-46.08
  • Stecken Sie die Micro-SD-Karte in einen USB-3.0-SD-Kartenleser und verbinden Sie ihn mit Ihrem PC
  • Vergewissern Sie sich, dass die Micro-SD-Karte im Format FAT16 oder FAT32 formatiert ist (suchen Sie bei Bedarf online nach einer Anleitung)
  • Übertragen Sie die Datei config.txt in das Stammverzeichnis der Micro-SD-Karte
  • Entfernen Sie die Micro-SD-Karte sicher vom PC
  • Schließen Sie die Micro-SD-Karte gemäß dem obigen Schaltplan über das Micro-SD-Kartenmodul an den ESP32 an
  • Kopieren Sie den folgenden MicroPython-Code
/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-micropython/esp32-micropython-read-config-from-sd-card */ import machine import os import sdcard # Define SPI pins for the Micro SD Card module SPI_SCK_PIN = 18 # The ESP32 pin GPIO18 connected to SCK SPI_MOSI_PIN = 23 # The ESP32 pin GPIO23 connected to MOSI SPI_MISO_PIN = 19 # The ESP32 pin GPIO19 connected to MISO SPI_CS_PIN = 5 # The ESP32 pin GPIO5 connected to SS (CS) FILE_NAME = "/sd/config.txt" # Variables my_int_1 = 0 my_int_2 = 0 my_float_1 = 0.0 my_float_2 = 0.0 my_string_1 = "" my_string_2 = "" def sd_find_key(key): """Search for a key in the config file and return its value as a string.""" try: f = open(FILE_NAME, "r") for line in f: line = line.strip() if "=" in line: k, v = line.split("=", 1) if k == key: f.close() return v f.close() except Exception as e: print("SD Card: Issue encountered while attempting to open the file", FILE_NAME, e) return None def sd_find_int(key): """Read a key from config file and return as int. """ value = sd_find_key(key) if value is not None: return int(value) return 0 def sd_find_float(key): """Read a key from config file and return as float.""" value = sd_find_key(key) if value is not None: return float(value) return 0.0 def sd_find_string(key): """Read a key from config file and return as string. """ value = sd_find_key(key) if value is not None: return value return "" # Initialize SD card using SoftSPI and sdcard driver spi = machine.SoftSPI(baudrate=1000000, polarity=0, phase=0, sck=machine.Pin(SPI_SCK_PIN), mosi=machine.Pin(SPI_MOSI_PIN), miso=machine.Pin(SPI_MISO_PIN)) cs = machine.Pin(SPI_CS_PIN, machine.Pin.OUT) try: sd = sdcard.SDCard(spi, cs) os.mount(sd, "/sd") print("SD Card initialized.") except Exception as e: print("SD CARD FAILED, OR NOT PRESENT!", e) raise SystemExit my_int_1 = sd_find_int("myInt_1") my_int_2 = sd_find_int("myInt_2") my_float_1 = sd_find_float("myFloat_1") my_float_2 = sd_find_float("myFloat_2") my_string_1 = sd_find_string("myString_1") my_string_2 = sd_find_string("myString_2") print("myInt_1 =", my_int_1) print("myInt_2 =", my_int_2) print("myFloat_1 =", my_float_1) print("myFloat_2 =", my_float_2) print("myString_1 =", my_string_1) print("myString_2 =", my_string_2) os.umount("/sd")

Hier finden Sie eine Anleitung, wie Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE einrichten und ausführen:

  • Stellen Sie sicher, dass Thonny IDE auf Ihrem Computer installiert ist.
  • Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board geladen ist.
  • Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte für eine Schritt-für-Schritt-Anleitung.
  • Verbinden Sie das ESP32-Board mit einem USB-Kabel mit Ihrem Computer.
  • Öffnen Sie Thonny IDE auf Ihrem Computer.
  • Gehen Sie in Thonny IDE zu Tools Options.
  • Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32).
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Thonny IDE erkennt ihn normalerweise automatisch, aber möglicherweise müssen Sie ihn manuell auswählen (z. B. COM3 unter Windows oder /dev/ttyACM0 unter Linux).
  • Navigieren Sie in Thonny IDE zu Tools Manage packages.
  • Suchen Sie nach "sdcard" und finden Sie dann die von micropython-lib bereitgestellte sdcard-Bibliothek.
  • Klicken Sie auf sdcard und dann auf den Button Install, um die SD-Karten-Bibliothek zu installieren.
ESP32 MicroPython SD-Karten-Bibliothek
  • Fügen Sie den obigen MicroPython-Code in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32:
    • Klicken Sie auf den Save-Button oder drücken Sie Ctrl+S.
    • Wählen Sie im Speicherdialog MicroPython device.
    • Nennen Sie die Datei main.py.
  • Klicken Sie auf den grünen Run-Button (oder drücken Sie F5), um das Skript auszuführen.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot SD Card initialized. myInt_1 = 2 myInt_2 = -105 myFloat_1 = 0.74 myFloat_2 = -46.08 myString_1 = Hello myString_2 = newbiely.com
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
  • Die Shell zeigt die ausgelesenen Werte an, die genau mit dem übereinstimmen, was in der Konfigurationsdatei auf der Micro-SD-Karte gespeichert wurde.

Sie können den Code gerne erweitern, indem Sie weitere Schlüssel-Wert-Paare für Ihr Projekt hinzufügen.

※ Notiz:

Der Code hängt nicht von der Reihenfolge der Einträge in der Konfigurationsdatei ab. Er sucht von oben nach unten durch die Datei, bis er einen passenden Schlüssel findet.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!