Introduktion: ESP32 gjort enkelt
At tekstkode en ESP32 uden at kende et eneste programtrin – lyder det lidt vildt? Det er helt med vilje!
Formålet med denne ressource på CFUmaker.dk er, at du og dine elever kan kaste jer ud i tekstprogrammering med ESP32 – også selvom I aldrig har skrevet en eneste linje kode før. I arbejder i Visual Studio Code med PlatformIO, og på esp32.stublab.dk finder I vores AI-agent ESP32 KodeGenerator, der er optimeret til netop dette forløb og guider jer hele vejen fra første blink til egne idéer.
AI-assistenten kan foreslå kode, forklare fejl og hjælpe jer med at forstå, hvad der sker linje for linje. Det kræver blot, at I tør stole på hjælpen, og lader jeres nysgerrighed drive processen.
Teknologiforståelse handler ikke kun om at bruge teknologi, det handler om at forstå den, forme den og skabe med den. Tekstkodning er centralt, fordi det giver eleverne adgang til den logik, der ligger bag digitale løsninger. Når elever koder, arbejder de med algoritmer og problemløsning i praksis, og de styrker deres teknologiske handleevne, fordi de selv kan bygge og styre løsninger frem for kun at være brugere.
Undervejs i ressourcen finder I links til korte forklaringer, tips og uddybninger. Prøv det af – og oplev, hvordan tekstkodning med ESP32 bliver både tilgængelig og motiverende, når man har en digital makker ved siden af.
Hvorfor ESP32 – og ikke micro:bit?
Du tænker måske: “Hvorfor skal jeg skifte fra micro:bit til ESP32? Jeg kan jo allerede tekstprogrammere på micro:bitten.” Det er et rigtig godt spørgsmål – og svaret handler ikke om, at micro:bitten ikke kan nok, men om at ESP32 er det næste naturlige skridt.
Micro:bit som læringsplatform er udviklet specifikt til undervisning. Der er truffet mange gode valg, der gør den sikker, robust og let at bruge for både børn og voksne. Det er netop derfor, micro:bitten har givet både lærere og elever mange gode oplevelser og succeser med digital skaberkraft.
ESP32 er et rigtigt udviklerboard – det bruges i alt fra smarte lamper og sensorer til intelligente systemer i hjemmet. Det betyder, at du med ESP32 bevæger dig fra et undervisningsmiljø til den virkelige verden af teknologiudvikling. Simultaneously er ESP32 markant billigere end micro:bit, og du får adgang til et kæmpe potentiale for at bygge og eksperimentere med rigtige projekter.
Er det svært? Ja, lidt – men ikke uoverskueligt. ESP32 kræver, at du lærer et mere professionelt miljø at kende, og at du gradvist får forståelse for elektronik og kode. Men du behøver ikke kunne det hele på én gang. Læringskurven er stejlere, men potentialet er langt større.
Med esp32.stublab.dk deler vi vores egne erfaringer, viser løsninger på typiske problemer og forklarer, hvordan tingene hænger sammen – trin for trin.
Deltag i vores CFUmaker online fællesskab på Oase.app
Link til Oase.app – både QR kode til mobil app samt link til Oase.app
Dette forløb er bygget op om en progression, der tager afsæt i enkle, håndgribelige opgaver og gradvist øger kompleksiteten. Eleverne møder reelle udfordringer undervejs: koden virker ikke altid første gang, kredsløb skal bygges korrekt, og biblioteker skal konfigureres. Det er intentionelt – at fejlfinde og prøve sig frem er en central kompetence i teknologiforståelse.
AI som læringspartner, ikke facitliste. esp32.stublab.dk indeholder en dedikeret AI-agent med SkoleGPT, som eleverne kan bruge til at forstå kode, få forklaringer og komme videre, når de sidder fast. SkoleGPT er et sikkert alternativ til mange AI-modeller, som ikke må bruges af elever under 18 år, det kører med data på danske servere. AI’en er ikke svaret, men stilladseringen.
Blokkode vs. tekstkode. Forløbet arbejder med tekstkodning frem for blokkode. Det er et bevidst valg: tekstkodning giver eleverne et mere autentisk og fleksibelt kodesprog, der svarer til det, professionelle udviklere bruger.
Tænk på Visual Studio Code (VS Code) som en superkraftig notesblok, der er specialbygget til at skrive kode. Det er en gratis og populær programeditor, men den er i sig selv ikke nok til at programmere en mikrokontroller.
Det er her, PlatformIO kommer ind. PlatformIO er en udvidelse (extension) til VS Code, der forvandler din editor til et komplet miljø til at udvikle for mikrokontrollere som ESP32. PlatformIO håndterer alle de komplekse trin for dig, så du kan fokusere på at skrive din kode.
Sammen giver VS Code og PlatformIO en række fordele frem for fx Arduino IDE:
Når du åbner PlatformIO i VS Code, får du et klart arbejdsområde. Du kan altid komme tilbage til PlatformIO-startsiden ved at klikke på hus-ikonet nederst på skærmen.
| Ikon | Funktion | Forklaring |
|---|---|---|
| 🏠 Hus | PlatformIO Home | Åbner hovedmenuen – opret projekter, administrér boards og biblioteker |
| ✔️ Flueben | Build | Kompilerer projektet og oversætter koden til maskinkode |
| ➡️ Pil | Upload | Uploader koden til din ESP32 |
| 🔌 Stikprop | Monitor | Åbner den serielle monitor – se hvad din ESP32 sender |
| ▶️ Upload and Monitor | Upload + Monitor | Bygger, uploader og åbner seriel monitor automatisk |
| 🧩 Environment | Boardvalg | Viser og skifter det aktive board/konfiguration |
Et PlatformIO-projekt har en fast og logisk struktur:
Forbind ESP32 med computeren og få den interne LED til at blinke
Formål: At lære at sætte ESP32 op i VS Code med PlatformIO, uploade et program og forstå grundstrukturen i al kode til ESP32.
Prompt til SkoleKode ESP32 på esp32.stublab.dk:
Skriv et simpelt program til ESP32 DevKit DOIT, hvor den interne LED blinker hvert sekund. Skriv kommentarer i koden, der forklarer hvert step i et enkelt sprog.
Hvad eleverne lærer:
Tip til underviseren: Gennemgå VS Code-brugerfladen med klassen, inden de går i gang. Fokusér på projektoversigt, terminalen og upload-knappen i PlatformIO.
Formål: At lære at forbinde hardware til ESP32’s GPIO-pins og styre en ekstern komponent med kode. Eleverne møder her forholdsvis simpel kode og et kredsløb med få fejlmuligheder.
Du skal bruge:
Sådan sættes kredsløbet op:
Husk: Det lange ben på LED’en er + (anode), det korte er – (katode).
Om GPIO-pins: GPIO (General Purpose Input/Output) er de ben på ESP32, du bruger til at styre og aflæse elektronik. Når GPIO21 sættes til HIGH, lyser LED’en. Når den sættes til LOW, slukkes den. Du kan desuden bruge GPIO2 som en ekstra kontrol, da den styrer den indbyggede LED på boardet – en nem måde at teste om koden virker, selv uden ekstern LED.
Vil du læse mere om GPIO-pins? Se https://esp32.brix-stub.dk/vejledning.html
Prompt til SkoleKode ESP32 på esp32.stublab.dk:
Jeg vil blinke en LED tilsluttet GPIO21 på min ESP32. Forbind LED’ens lange ben (+) via en 220 Ohm modstand til GPIO21. Forbind LED’ens korte ben (–) til GND. Lav kode der får LED’en til at blinke med 1 sekunds interval. Inkludér en detaljeret forklaring af koden og hvordan den matcher opsætningen.
Når du bruger denne prompt, vil du modtage koden klar til at kopiere ind i dit projekt.
Læs koden igennem og prøv at forstå, hvad der står. Kan du få LED’en til at blinke hurtigere? Hvilke linjer i koden vil du ændre?
Formål: At lære at bruge et eksternt sensor-bibliotek og hente data fra omverdenen ind i koden.
I denne opgave skal du måle temperatur med en ekstern sensor. Du kan enten bruge en BME280-sensor eller en DHT11-sensor.
En BME280 kan måle temperatur, luftfugtighed og lufttryk. Den bruges ofte i vejrstationer og IoT-projekter.
En DHT11 kan måle temperatur og luftfugtighed. Den er enkel at bruge og god til begyndere, men den er ikke lige så præcis som BME280.
Hvis du bruger BME280, kommunikerer ESP32 og sensoren typisk via I²C. I²C bruger kun to ledninger, SDA og SCL, og gør det muligt at tilslutte flere sensorer på de samme to ledninger.
Hvis du bruger DHT11, kommunikerer sensoren via én data-ledning til en digital pin på ESP32. Det gør den lidt lettere at forstå, men mindre fleksibel end I²C.
Hvis du bruger BME280:
Hvis du bruger DHT11:
| BME280 | Funktion | ESP32 |
|---|---|---|
| VCC | Strøm | 3,3V |
| GND | Jord | GND |
| SCL | Clock | GPIO 22 |
| SDA | Data | GPIO 21 |
Bemærk:
CSB og SDO skal ikke forbindes ved almindelig I²C-opsætning.
| DHT11 | Funktion | ESP32 |
|---|---|---|
| VCC | Strøm | 3,3V |
| GND | Jord | GND |
| DATA | Data | Valgfri digital pin (fx GPIO 4) |
Bemærk:
Nogle DHT11-moduler har allerede en modstand indbygget. Hvis du bruger en løs DHT11-sensor uden modul, skal der ofte bruges en 10 kΩ pull-up modstand mellem VCC og DATA.
Inden du går videre, så kontroller at:
Når alt er forbundet, er du klar til at installere biblioteket og hente temperaturdata ind i dit program.
Lav et program til en ESP32, der måler temperatur med den temperatursensor. (som er valgt i opsætningen enten BME280 eller DHT11).
Hvis der er valgt BME280, skal sensoren bruge I²C med GPIO 21 (SDA) og GPIO 22 (SCL).
Hvis der er valgt DHT11, skal den bruge den valgte datapin fra opsætningen.
Programmet skal måle temperaturen og vise den i Serial Monitor én gang i sekundet. Brug et passende bibliotek til den valgte sensor og skriv korte kommentarer i koden på dansk. Koden skal være komplet og klar til upload til ESP32.
Forventet resultat:
Resultatet er, at ESP32 løbende måler temperaturen og skriver den i Serial Monitor.
I VS Code / PlatformIO kan du åbne Serial Monitor ved at klikke på stikprop-ikonet nederst i programmet.
Forbind en LED-ring med ESP32 og styr farver med kode
Formål: At arbejde med et mere avanceret komponent og forstå, hvordan adresserbare LED’er kan styres enkeltvis med kode.
I denne opgave skal du arbejde med en WS2812 / NeoPixel LED-ring. LED-ringen kan vise mange forskellige farver, og hver LED kan styres individuelt. Det gør den velegnet til både kreative projekter, animationer og feedback i teknologiprojekter.
Prompt til SkoleKode ESP32 på esp32.stublab.dk:
Lav et program til en ESP32, der styrer den LED-ring (WS2812 / NeoPixel), som er valgt i opsætningen. Beskriv tydeligt, hvordan LED-ringen skal forbindes til ESP32 (strøm, GND og datapin ud fra opsætningen). Programmet skal få LED-ringen til at lyse i forskellige farver og gerne vise en simpel animation eller farveskift. Brug et passende bibliotek til WS2812 / NeoPixel og sørg for, at nødvendige tilføjelser til platformio.ini bliver inkluderet automatisk. Skriv korte kommentarer i koden på dansk, så en elev i 8. klasse kan forstå, hvad de forskellige dele af programmet gør. Koden skal være komplet og klar til upload til ESP32.
Hvad eleverne lærer
Ekstra udfordring:
Design jeres egne lyssekvenser eller farvetemaer. Kan LED-ringen fx vise en regnbue, en alarmfarve eller reagere på temperaturmålinger fra en sensor? Det åbner for kreativ kodning og design.
Creative Commons - CC/BY/NC/SA
Nedenfor vises ressourcer som er udvalgt baseret på tags
Nedenfor vises ressourcer indenfor samme emne