Les 1 · Module 1 · De ESP32 als sensorknooppunt
Je ESP32 klaarmaken
Je ESP32 flashen, een REPL-verbinding maken en code als bestand op het bordje zetten.
🎯 Na deze les kun je
- MicroPython-firmware op een ESP32 zetten
- met mpremote code uitvoeren en bestanden kopiëren
- uitleggen wat boot.py en main.py doen
In Een beetje MicroPython leerde je LED's, knoppen en sensoren aansturen. In deze cursus bouw je daarmee één echt IoT-project: een meetstation dat metingen via wifi verstuurt en op een dashboard toont. De eerste les gaat over een betrouwbare werkomgeving, want daar loop je bij IoT het vaakst op vast.
Wat je nodig hebt
- Een ESP32-ontwikkelbord (bijvoorbeeld ESP32-DevKitC) en een USB-datakabel
- Python 3 op je computer
- Later in de cursus: een BME280- of SHT31-sensor en een paar jumperdraden
Firmware flashen
python3 -m venv .venv && source .venv/bin/activate
pip install esptool mpremote
esptool.py --chip esp32 erase_flash
esptool.py --chip esp32 --baud 460800 write_flash -z 0x1000 ESP32_GENERIC-<versie>.bin
Download de firmware van micropython.org/download (kies ESP32_GENERIC). Op Linux heet de poort meestal
/dev/ttyUSB0, op macOS /dev/cu.usbserial-… en op Windows COM3 of hoger. esptool zoekt hem
meestal zelf.
Uitgewerkt voorbeeld
Verbind met de REPL:
mpremote
Typ:
import sys, machine
print(sys.implementation)
print(machine.freq())
Voorspel eerst: welke kloksnelheid verwacht je? Een ESP32 draait standaard op 160 of 240 MHz,
dus je ziet 160000000 of 240000000. Verlaat de REPL met Ctrl+].
Maak op je computer main.py:
from machine import Pin
import time
led = Pin(2, Pin.OUT) # ingebouwde LED op veel DevKit-bordjes
for i in range(5):
led.value(not led.value())
print("knipper", i)
time.sleep(0.5)
Zet het bestand op het bordje en herstart:
mpremote cp main.py :main.py
mpremote reset
mpremote # bekijk de uitvoer
boot.py en main.py
Bij het opstarten voert MicroPython eerst boot.py uit (instellingen, later: wifi) en daarna main.py
(je programma). Gaat main.py in een oneindige lus, dan kun je hem altijd onderbreken met Ctrl+C in
mpremote.
Oefenen
- Laat de LED sneller knipperen naarmate
igroter wordt. - Gebruik
mpremote lsenmpremote cat :main.pyom te zien wat er op het bordje staat. - Zet een fout in
main.py(bijvoorbeeld een typfout inPin) en lees de foutmelding in de REPL.
Typische fouten
- Geen poort gevonden: veel USB-kabels zijn alleen oplaadkabels. Probeer een andere kabel. Op Windows heb je soms een CP210x- of CH340-driver nodig.
Permission denied: /dev/ttyUSB0(Linux): voeg jezelf toe aan de groepdialouten log opnieuw in.- LED doet niets: niet elk bordje heeft een LED op pin 2. Zoek de pinout van jouw bordje op.
Samenvatting
Je hebt een werkende keten: firmware, REPL en bestanden op het bordje. In de volgende les deel je je code op in modules, zodat het project overzichtelijk blijft als het groeit.