Table of Contents

ESP32 – Beskrivelse og funktionaliteter

ESP32 er en lavpris, lavt strømforbrugende system-on-chip (SoC) udviklet af Espressif Systems. Den er designet til IoT (Internet of Things), indlejrede systemer og trådløse applikationer. ESP32 kombinerer Wi-Fi, Bluetooth (Classic + BLE), en dual-core mikrocontroller og en række periferienheder, hvilket gør den ekstremt alsidig for både hobbyprojekter og professionelle løsninger.


Nyere modeller er beskrevet på https://let-elektronik.dk/esp32 (nederst, under produkt-billeder/links)


OBS!
Nedestående beskrivelser er primært gældende for den oprindelige ESP32


Hovedkomponenter og specifikationer

Komponent Beskrivelse
CPU Dual-core Xtensa LX6 (32-bit) med op til 240 MHz (kan køre på 80/160/240 MHz).
Hukommelse 520 KB SRAM (ekstern RAM kan tilføjes op til 16 MB via PSRAM).
Flash-hukommelse Ekstern SPI flash (typisk 4–16 MB, understøtter op til 32 MB).
Wi-Fi 802.11 b/g/n (2,4 GHz), understøtter STA (Station), AP (Access Point), P2P (Peer-to-Peer).
Bluetooth Bluetooth 4.2 (Classic + BLE – Bluetooth Low Energy).
Periferienheder GPIO, ADC, DAC, PWM, I²C, SPI, UART, CAN, Touch Sensor, Hall Sensor, RTC, DMA mv.
Strømforbrug ~0,15 mA i dyb søvn, ~10–20 mA i aktiv tilstand (afhænger af konfiguration).
Spændingsforsyning 2,2–3,6 V (typisk 3,3 V).
Driftstemperatur -40°C til +125°C (industrielt interval).

Hovedfunktionaliteter

Trådløs kommunikation

[1] Nyere modeller har dog 2/4/5G som f.eks. ESP32-C5

Mikrocontroller-funktioner

I/O og periferienheder

Type Beskrivelse Antal
GPIO Generelle input/output-pins (kan konfigureres som input, output, interrupt mv.). 34–48 (afhænger af pakke)
ADC (Analog-Digital) 12-bit SAR ADC (op til 2,048 niveauer), understøtter 18 kanaler (nogle med 12-bit, andre med 9-bit). 2x 12-bit ADC
DAC (Digital-Analog) 8-bit DAC til at generere analoge signaler. 2x
PWM Pulse-Width Modulation til motorstyring, LED-dimming mv. 16 kanaler
I²C Inter-Integrated Circuit (2-lednings kommunikation til sensorer mv.). 2x
SPI Serial Peripheral Interface (højhastigheds kommunikation til flash, display mv.). 4x
UART Asynkron serial kommunikation (RS-232/485). 3x
CAN Controller Area Network (til bilindustri og industrielle applikationer). 1x
Touch Sensor Kapacitive berøringsensorer (op til 10 kanaler). 10x
Hall Sensor Måling af magnetfelter (til f.eks. strømsensorer). 1x
RTC (Real-Time Clock) Hardware-ur med kalenderfunktion (kan køre i dyb søvn). 1x
DMA Direct Memory Access (til hurtig dataoverførsel uden CPU-indblanding). 2x

Strømforbrug og energistyring

ESP32 understøtter flere strømbesparende tilstande:

Tilstand Beskrivelse Strømforbrug
Aktiv CPU, Wi-Fi/Bluetooth og periferienheder kører. ~80–200 mA
Modem Søvn CPU kører, men Wi-Fi/Bluetooth er slukket. ~20–30 mA
Let Søvn CPU er slukket, men RAM bevares. Kan wake up via eksterne interrupts. ~0,8 mA
Dyb Søvn CPU, RAM og de fleste periferienheder er slukket. Kan kun vækkes via eksterne signals (GPIO, RTC). ~5–150 µA
Hibernation Alt er slukket (inkl. RTC). Kan kun vækkes via reset. ~1 µA

Programmering og udvikling

ESP32 kan programmeres på flere måder:

Metode Beskrivelse Fordele Ulemper
Arduino IDE Populært værktøj med ESP32-core (understøtter de fleste Arduino-biblioteker). Nemt for begyndere, stort community. Begrænset adgang til avancerede funktioner.
ESP-IDF Espressifs officielle framework (C/C++). Fuldt udnyttelse af hardware, avancerede funktioner. stejl læringskurve.
MicroPython Python-implementering til ESP32. Nem syntax, godt til hurtig prototyping. Langsommere end C, begrænset RAM.
PlatformIO Avanceret udviklingsmiljø (understøtter Arduino, ESP-IDF, MicroPython). Fleksibelt, god til store projekter. Kræver opsætning.
Lua (NodeMCU) Scripting-sprog til ESP32 (baseret på Lua). Hurtig udvikling, dynamisk. Mindre udbredt end Arduino/ESP-IDF.

Populære ESP32-moduler

ESP32 findes i flere fysiske pakker, hvoraf de mest populære er:

Modul Beskrivelse Antal GPIO Wi-Fi/Bluetooth PSRAM Flash Pris (ca.)
ESP32-WROOM-32 Standardmodul med 4 MB flash, PCB-antenne. 34 ✅ Ja ❌ Nej 4 MB ~50–100 DKK
ESP32-WROOM-32D Som WROOM-32, men med 16 MB flash og PSRAM-understøttelse. 34 ✅ Ja ✅ Ja 16 MB ~80–120 DKK
ESP32-WROOM-32E Opdateret version med 16 MB flash og bedre antenne. 34 ✅ Ja ✅ Ja 16 MB ~100–150 DKK
ESP32-SOLA-1 Single-core, 2 MB flash, ingen Bluetooth. 18 ✅ Wi-Fi kun ❌ Nej 2 MB ~40–70 DKK
ESP32-C3 RISC-V CPU, 2,4 GHz Wi-Fi + BLE 5.0, ingen Bluetooth Classic. 22 ✅ Ja ✅ Ja 4–16 MB ~60–100 DKK
ESP32-S2 Single-core Xtensa, 2,4 GHz Wi-Fi (ingen Bluetooth), USB OTG. 42 ✅ Wi-Fi kun ✅ Ja 4–16 MB ~70–120 DKK
ESP32-S3 Dual-core Xtensa, 2,4 GHz Wi-Fi + BLE 5.0, USB OTG, PSRAM-understøttelse. 45 ✅ Ja ✅ Ja 8–16 MB ~100–150 DKK
ESP32-C6 RISC-V CPU, 2,4 GHz Wi-Fi 6 + BLE 5.0, Zigbee/Thread-understøttelse. 22 ✅ Ja ✅ Ja 4–16 MB ~120–180 DKK

Typiske anvendelsesområder

Fordele og ulemper

Fordele Ulemper
Lav pris (fra ~50 DKK). Begrænset 5 GHz Wi-Fi (kun 2,4 GHz).
Dual-core CPU (høj ydeevne). ADC-nøjagtighed (12-bit, men ikke lineær ved lave spændinger).
Wi-Fi + Bluetooth integreret. Begrænset RAM (520 KB, men kan udvides med PSRAM).
Lavt strømforbrug (god til batteridrevne enheder). Kompleks opsætning (kræver ekstern flash/RAM).
Stort community (mange biblioteker og eksempler). Varmeudvikling (kan kræve køling ved høj belastning).
Mange periferienheder (GPIO, I²C, SPI, UART mv.). Forskellige revisioner (kan være svært at vælge det rigtige modul).
Understøtter flere programmeringssprog (C, Python, Lua). Begrænset USB-understøttelse (nogle moduler kræver ekstern USB-chip).
OBS 5G kan tilføjes som ekstern enhed

Eksternt 5G-modem


==== Eksempel: Enkel Wi-Fi-klient (Arduino-kode) ====

<code cpp> #include <WiFi.h>

const char* ssid = “DitNetværk”; const char* password = “DitPassword”;

void setup() {

Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED