Zum Inhalt springen

ESP32 WIFI Kit

    In diesem Beitrag will ich die gemachten Erfahrungen und gesammelten Informationen zum Auslesen von Chipinformationen am ESP32 weiter verfolgen und ein Skript dazu vorstellen.

    Für diesen Adventure soll mir das ESP_WIKI_kit der Fa. Heltec dienen.
    Ich habe hier einen Liegen mit dem Aufdruck DIY More, das soll hier aber nicht weiter interessieren.
    Das Board hatte ich irgendwann bei Aliexpress bestellt.

    ESP32 WiFi Kit Vorderseite
    ESP32 WiFi Kit Rückseite

    Die wichtigsten Eigenschaften:

    ESP32, Tensilica LX6 Dual-Core-Prozessor
    getaktet mit 240 MHz
    im Chip integrierter 520 KB SRAM, 802.11 b/g/n HT40 Wi-Fi-Transceiver
    Integrierter 4-MByte-Flash
    Wi-Fi-Antenne
    blaues 0,96-Zoll-OLED-Display
    CP2102-USB-zu-Seriell-Chip
    UDP mit Durchsatz von 135 Mbit/s
    Betriebsspannung: 3,3 V bis 7 V
    Betriebstemperaturbereich: -40 °C bis +90 °C


    Wenden wir uns der eigentlichen Aufgabe zu und schauen mal, was wir mit der ESP32.h so anstellen können, bzw. welche Funktionen uns ohne große Tricks zur Verfügung stehen.

    Die einzelnen Funktionen, die in der ESP.h verfügbar sind, habe ich im Beitrag „Was steckt in meinem ESP“ bereits genauer erläutert.


    Aber den letzten Teil des Codes zur Ermittlung der MAC-Adresse will ich gerne noch genauer darstellen.
    Was macht diese Zeile zum Beispiel: Serial.print((macAddress >> 40) & 0xFF, HEX); // Erstes Byte

    Bitoperationen zur Extraktion der Bytes

    1. macAddress >> 40

    • macAddress ist eine 64-Bit-Zahl (uint64_t), die die MAC-Adresse des ESP32 darstellt.
    • >> 40 ist ein bitweiser Rechtsverschiebungsoperator. Dieser Operator verschiebt die Bits der Zahl um 40 Positionen nach rechts.
    • Durch diese Verschiebung wird das erste Byte der MAC-Adresse (die höchsten 8 Bits) an die niedrigsten 8 Bitpositionen der Zahl verschoben. Dies bedeutet, dass das erste Byte nun in der Position ist, die wir leicht extrahieren können.

    2. & 0xFF

    • 0xFF ist eine hexadezimale Konstante, die der binären Zahl 11111111 entspricht. Das sind 8 Einsen in der Binärdarstellung, was 255 in dezimaler Form entspricht.
    • Der bitweise UND-Operator (&) wird verwendet, um nur die letzten 8 Bits der Zahl zu extrahieren. Dies hilft, den Wert auf einen Bereich von 0 bis 255 zu beschränken, der genau einem Byte entspricht.
    • Ohne diesen Schritt könnten zusätzliche Bits in der höheren Position der Zahl erhalten bleiben, die für unsere Zwecke irrelevant sind.

    3. Serial.print(…, HEX)

    • Serial.print(…, HEX) gibt die resultierende Zahl in hexadezimaler Form aus.
    • Der HEX-Parameter spezifiziert, dass die Ausgabe in hexadezimaler (also Basis 16) Darstellung erfolgen soll.

    Zusammensetzung der gesamten Zeile

    Die Zeile Serial.print((macAddress >> 40) & 0xFF, HEX); arbeitet also folgendermaßen:

    Ausgabe: Das Ergebnis wird in hexadezimaler Form ausgegeben.

    Rechtsverschiebung: Die MAC-Adresse wird um 40 Bits nach rechts verschoben, sodass das erste Byte der MAC-Adresse die niedrigsten 8 Bitpositionen einnimmt.

    Maskierung: Durch das Bitwise-AND mit 0xFF wird nur das erste Byte behalten und alle anderen Bits entfernt.

    Und nun will ich euch nicht die Ausgabe des oben gezeigten Codes vorenthalten.
    Zur besseren Orientierung und Bezug zur Seite mit den Erläuterungen der Funktionen habe ich jeden Abschnitt verlinkt.


    rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:2
    load:0x3fff0030,len:1184
    load:0x40078000,len:13232
    load:0x40080400,len:3028
    entry 0x400805e4

    Daten des Heap
    Heap Size: 367 KB
    Available Heap Size: 342 KB
    lowest level of free heap since boot: 336 KB
    largest block of heap that can be allocated at once: 111 KB

    Daten des PSRAM
    PSRAM Size: 0 KB
    Free PSRAM Size: 0 KB
    Min_Free PSRAM Size: 0 KB
    Free PSRAM Size: 0 KB

    Daten des Chips
    Chip Revision: 1
    Chip Model: ESP32-D0WDQ6
    Chip Cores: 2
    Chip Freq: 240 MHz

    Daten des Flash Speichers
    Flash Size: 4096 KB
    Flash Chip speed: 40000000
    Flash Chip Mode: 2

    Daten des Sketches
    Sketch Size: 268 KB
    Sketch Size MD5: 0afef9566b4ff39e40d71f2869165042
    Free Sketch Space: 1280 Kb

    Fuse
    MAC Address: B8:A4:C0:7E:B9:94


    Da sind wir schon wieder am Ende diese DIYTechAdventure angekommen. Ich hoffe, ihr fandet den Ausflug genau so spannend wie ich beim Schreiben. Und es gilt – ein Kommentar ist gerne gesehen!

    0 Kommentare
    Inline Feedbacks
    View all comments