IoT Tutorial

IoT Tutorial: Snel aan de slag met XIAO ESP32-C3: Gaat het lampje branden?

juli 25, 2026

Deze IoT tutorial heb ik gebruikt in een workshop die ik gegeven heb op de FOSS4G Europe 2026 in Roemenie. In andere blog, Terugkijkend op de FOSS4G Europe 2026 Timișoara, Roemenië vertel ik over mijn ervaringen op die fantastische conferentie.

GIS draait al lang niet meer alleen om het analyseren van bestaande datasets. Steeds vaker worden geografische gegevens in realtime verzameld met IoT-sensoren. Daarom is het voor geo-professionals steeds belangrijker om te begrijpen hoe sensordata wordt verzameld, verwerkt en via Wi-Fi en protocollen zoals MQTT in een GIS terechtkomt. Deze kennis is onmisbaar in onder meer waterbeheer, infrastructuur, landbouw en smart cities. De knipperende LED in deze tutorial is de eerste stap naar het bouwen van professionele Geo-IoT-oplossingen met realtime geodata.

Elk microcontrollerproject begint met een eerste programma. In deze tutorial leer je hoe je de XIAO ESP32-C3 instelt, de Arduino IDE installeert en een eenvoudig programma uploadt dat een LED laat knipperen.

Onderweg maak je kennis met de basisprincipes van de hardware, software en programmeerworkflow die worden gebruikt voor de ontwikkeling van ESP32-projecten.

Welke hardware heb je nodig

Hoewel een knipperende LED misschien eenvoudig lijkt, is dit een belangrijke eerste stap. Zodra je begrijpt hoe je code uploadt en hardware aanstuurt, ben je klaar om geavanceerdere projecten te bouwen met sensoren, draadloze communicatie en IoT-technologieën.

Voordat je je eerste programma uploadt, heb je een paar eenvoudige onderdelen nodig. Geen zorgen als je nog nooit met elektronica hebt gewerkt: dit circuit is eenvoudig op te bouwen en vereist geen soldeerwerk.

Voor deze tutorial heb je nodig:

  • Microcontroller: XIAO ESP32-C3
  • Breadboard
  • 5 mm LED
  • 330 Ω-weerstand
An image of a microcontroller: XIAO ESP32-CR

De microcontroller is het brein van de sensoropstelling: XIAO ESP32-C3

Picture of a breadboard for connecting without soldering

Een breadboard om alles met elkaar te verbinden zonder te solderen. lees meer op https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard/all)

 

Red 5mm LED

Een LED (de lange poot is de +)

Picture of a 330-Ω resistor

Een 330 Ω-weerstand om te voorkomen dat de LED doorbrandt.

 

Het circuit opbouwen

Nu je alle benodigde onderdelen hebt, kun je deze op het breadboard aansluiten zoals hieronder is weergegeven:

Visualization of hardware setup on the breadboard

Visualisatie van de hardwareopstelling op het breadboard

Nu het circuit is opgebouwd, moeten we de microcontroller vertellen wat hij moet doen. Hiervoor gaan we de XIAO ESP32-C3 programmeren.

Programmeren van de XIAO ESP32-C3

We beginnen met het installeren van de Arduino IDE, het configureren van de software voor ESP32-ontwikkeling en het aansluiten van het board op de computer. Zodra alles is ingesteld, uploaden we ons eerste programma om de LED te laten knipperen.

Arduino IDE installeren

    1. Download de nieuwste stabiele versie van de Arduino IDE via de officiële website: https://www.arduino.cc/en/software
    2. Kies de download voor jouw besturingssysteem en volg de onderstaande stappen:

Op Windows:

  1. Download het Windows-installatiebestand (.exe).
  2. Open het gedownloade bestand.
  3. Volg de installatiewizard en accepteer de standaardinstellingen, tenzij je een reden hebt om deze aan te passen.
  4. Open na de installatie de Arduino IDE via het Startmenu.

Op macOS:

    1. Download het macOS-schijfimage (.dmg).
    2. Open het gedownloade bestand.
    3. Sleep de Arduino IDE naar de map Programma’s.
    4. Open de Arduino IDE vanuit de map Programma’s of via Spotlight.

Op Linux:

      1. Download de Linux AppImage.
      2. Open de bestandseigenschappen en geef het bestand toestemming om als programma te worden uitgevoerd.
      3. Dubbelklik op de AppImage om de Arduino IDE te starten.

ESP32 Board Support installeren

De Arduino IDE ondersteunt de XIAO ESP32-C3 niet standaard. Je moet daarom eerst de officiële pakketbron van Espressif toevoegen en vervolgens het ESP32-boardpakket installeren.

  1. Open de Arduino IDE.
  2. Ga op Windows of Linux naar File > Preferences. Ga op macOS naar Arduino IDE > Settings.
  3. Zoek naar Additional Boards Manager URLs en voeg de volgende URL toe: https://espressif.github.io/arduino-esp32/package_esp32_index.json
  4. Staat er al een URL in dit veld? Gebruik dan de knop naast het veld om de ESP32-URL op een nieuwe regel toe te voegen, in plaats van de bestaande URL te vervangen.
  5. Klik op OK om de instellingen op te slaan.
  6. Open Tools > Board > Boards Manager, of klik op het pictogram Boards Manager in de zijbalk.
  7. Zoek naar esp32.
  8. Zoek esp32 by Espressif Systems en klik op Install.
  9. Wacht tot de installatie is voltooid en start daarna de Arduino IDE opnieuw.

Het board aansluiten

Sluit de XIAO ESP32-C3 met een USB-C-kabel aan op je computer.

Gebruik een USB-C-kabel die gegevens kan overbrengen. Sommige USB-C-kabels zijn alleen geschikt om apparaten op te laden. Verschijnt het board niet in de Arduino IDE? Probeer dan eerst een andere kabel.

Het board selecteren

Ga naar Tools > Board > esp32 en selecteer XIAO_ESP32C3. Je kunt ook de boardselector boven in het Arduino IDE-venster gebruiken en zoeken op XIAO_ESP32C3.

De juiste poort selecteren

Ga naar Tools > Port en selecteer de USB-seriële poort die bij het board hoort. Je kunt deze ook selecteren via de boardselector boven in het Arduino IDE-venster.

Op Windows is dit meestal een COM-poort, bijvoorbeeld COM3, COM4 of een hoger nummer. Op macOS of Linux begint de naam meestal met /dev/.

Weet je niet zeker welke poort bij het board hoort? Koppel het board los, bekijk de lijst met poorten, sluit het board opnieuw aan en controleer welke poort is verschenen.

Controleer de installatie

  1. Open Bestand > Nieuwe schets.
  2. Controleer of XIAO_ESP32C3 en de juiste poort zijn geselecteerd in de boardselector bovenaan het venster. Selecteer deze opnieuw indien nodig.
  3. Klik op de knop met het vinkje of kies Sketch > Verifiëren/Compileren om de lege schets te compileren. Hiermee controleer je of het boardpakket en de compiler correct werken.
  4. Klik op de pijlknop of kies Sketch > Uploaden om de schets naar het board te uploaden.
  5. Bekijk het uitvoervenster onderaan het scherm. De Arduino IDE compileert eerst de C/C++-code naar machinecode en uploadt deze vervolgens naar het board. Wacht totdat de IDE aangeeft dat het uploaden is voltooid.

Met een beetje geluk is alles goed gegaan en doet je programma helemaal niets. Perfect. Dat betekent dat je het board succesvol kunt programmeren.

De Blink Sketch uploaden

Kopieer en plak onderstaande code en upload deze vervolgens naar je XIAO door op de pijl naar rechts in de Arduino IDE te klikken.

// XIAO has no built-in LED.
#define LED_NOTBUILTIN D10

void setup() {
  pinMode(LED_NOTBUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_NOTBUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_NOTBUILTIN, LOW);
  delay(1000);
}

Dat is alles! Als alles goed is gegaan, knippert de LED nu.

Troubleshooting

Het board wordt niet gedetecteerd

  • Gebruik een USB-C-kabel die gegevensoverdracht ondersteunt.
  • Koppel het board los en sluit het opnieuw aan.
  • Sluit de Serial Monitor als deze geopend is.
  • Open het menu Tools > Port opnieuw.
  • Druk één keer op de RESET-knop op het board.
  • Probeer een andere USB-poort.
  • Start de Arduino IDE opnieuw op.

Als het uploaden blijft hangen op Connecting…, druk dan op de RESET-knop zodra deze melding verschijnt en probeer het uploaden opnieuw.

En nu?

Gefeliciteerd!

Je hebt met succes je eerste XIAO ESP32-C3 geprogrammeerd en een externe LED aangestuurd.

Wil je verder bouwen aan praktische IoT-projecten? Dan gaat de cursus Van Sensor naar kaart met C++ en XIAO ESP32 C3 verder dan de basis. Je leert sensoren aansluiten, gegevens via Wi-Fi verzenden, werken met MQTT, GeoJSON genereren en sensordata uit de praktijk visualiseren op interactieve kaarten.

Joram van der Vlist

Joram is GIS-ontwikkelaar, gespecialiseerd in cloud-native en webgebaseerde geo-oplossingen.

Krijg wekelijks de beste
Geo content in je mailbox

Joram van der Vlist

Joram is GIS-ontwikkelaar, gespecialiseerd in cloud-native en webgebaseerde geo-oplossingen.

Krijg wekelijks de beste
Geo content in je mailbox

Joram van der Vlist

Joram is GIS-ontwikkelaar, gespecialiseerd in cloud-native en webgebaseerde geo-oplossingen.

Krijg wekelijks de beste
Geo content in je mailbox

FAQ's IoT en Geo-ICT

Steeds meer geografische data wordt in realtime verzameld met sensoren in plaats van handmatig. Hierdoor kunnen organisaties sneller inspelen op veranderingen en beschikken zij continu over actuele geografische informatie.

IoT-sensoren verzamelen gegevens zoals temperatuur, waterstand, luchtkwaliteit of GPS-locaties. GIS gebruikt deze gegevens om ze ruimtelijk te analyseren en te visualiseren op kaarten, waardoor patronen en trends zichtbaar worden.

Geo-IoT wordt onder andere gebruikt in waterbeheer, infrastructuur, landbouw, milieumonitoring, smart cities en assetmanagement. In al deze sectoren helpen realtime sensorgegevens bij het monitoren en beheren van objecten en de omgeving.

Steeds meer GIS-projecten maken gebruik van live sensordata. Door te begrijpen hoe deze data wordt verzameld, verzonden en verwerkt, kunnen GIS-professionals complete Geo-IoT-oplossingen ontwikkelen en beheren.

Basiskennis van programmeren is een groot voordeel. Met eenvoudige talen zoals C++ kun je sensoren aansturen, data verzamelen en deze automatisch verzenden naar GIS-platformen, webkaarten of databases. Hierdoor krijg je meer controle over de volledige dataketen.