Hoofdstuk 3 van 14

Wat je nodig hebt om te beginnen

Een van de leuke kanten van werken met een ESP32 is dat je niet meteen een volledig ingerichte elektronicawerkplaats nodig hebt. Met een ontwikkelbord, een…

Een van de leuke kanten van werken met een ESP32 is dat je niet meteen een volledig ingerichte elektronicawerkplaats nodig hebt. Met een ontwikkelbord, een paar eenvoudige onderdelen en een computer kun je al verrassend veel bouwen.

Toch is het verstandig om vooraf even stil te staan bij wat je precies nodig hebt. Daarmee voorkomen we dat je halverwege een project ontdekt dat een kabel niet geschikt is, een onderdeel ontbreekt of je ontwikkelbord niet goed op het breadboard past.

In dit hoofdstuk verzamelen we daarom onze belangrijkste gereedschappen en onderdelen. Je hoeft niet alles in één keer aan te schaffen. We beginnen met wat noodzakelijk is en breiden onze werkplaats later uit wanneer een project daarom vraagt.

Begin klein

Op internet vind je grote starterkits met tientallen sensoren, displays, motoren en andere onderdelen. Zo’n doos ziet er aantrekkelijk uit, maar kan in het begin ook overweldigend zijn.

Je hoeft nog niet van ieder onderdeel te weten wat het doet. Je hoeft ook niet direct voorbereid te zijn op ieder project dat je ooit zou kunnen bouwen.

Mijn advies is daarom eenvoudig:

Begin met de onderdelen die je nu nodig hebt en breid je verzameling uit terwijl je nieuwe ideeën ontdekt.

Op die manier leer je ieder onderdeel bewust kennen. Je weet niet alleen dát het in je verzameling zit, maar ook waarvoor je het kunt gebruiken.

De ESP32

Het belangrijkste onderdeel is natuurlijk het ontwikkelbord.

In deze gids gebruiken we een ESP32-ontwikkelbord met een ESP32-WROOM-32-module. Op webwinkels kom je hiervoor verschillende namen tegen, zoals:

  • ESP32 DevKit;
  • ESP32 DevKit V1;
  • ESP32-WROOM-32 Development Board;
  • ESP32 DOIT DevKit V1.

Deze namen worden niet altijd even consequent gebruikt. Twee borden die op elkaar lijken, kunnen een andere USB-aansluiting, pinindeling of USB-chip hebben.

Kijk daarom niet alleen naar de productnaam. Vergelijk ook de foto van het bord met de afbeeldingen en aansluitschema’s in deze gids.

Let bij de aanschaf in ieder geval op de volgende punten:

  • het bord bevat een ESP32-WROOM-32-module;
  • er is een USB-aansluiting aanwezig;
  • de aansluitpinnen zijn al op het bord gesoldeerd;
  • de pinnamen staan naast de aansluitingen;
  • het bord beschikt over een knop met EN of RST;
  • er is een knop met BOOT aanwezig.

De metalen behuizing op het ontwikkelbord hoort bij de ESP32-WROOM-32-module. Het volledige bord, inclusief USB-aansluiting en pinnen, is het ontwikkelbord.

Voor het gemak noemen we dit complete bord in de rest van de gids de ESP32.

Een geschikte USB-kabel

Met de USB-kabel verbinden we de ESP32 met onze computer. De kabel levert voeding en wordt gebruikt om programma’s naar het bord te uploaden.

Niet iedere USB-kabel kan beide taken uitvoeren.

Sommige kabels zijn alleen bedoeld om een apparaat op te laden. Ze kunnen wel stroom leveren, maar geen gegevens verzenden. De ESP32 gaat dan misschien branden, terwijl hij niet op de computer verschijnt.

Dat is een veelvoorkomende en bijzonder verwarrende fout.

Een brandend lampje bewijst dat de ESP32 voeding krijgt. Het bewijst niet dat de USB-kabel ook gegevens kan versturen.

Controleer daarnaast welke aansluiting op jouw ontwikkelbord zit. Veel ESP32-borden gebruiken Micro-USB, maar nieuwere uitvoeringen kunnen een USB-C-aansluiting hebben.

Je hebt dus een kabel nodig die:

  • in jouw ESP32 past;
  • op jouw computer kan worden aangesloten;
  • geschikt is voor gegevensoverdracht.

Als je twijfelt, gebruik dan een kabel waarvan je weet dat je er bestanden of gegevens mee kunt overzetten. Het is handig om een tweede, geteste kabel achter de hand te houden. Daarmee kun je bij verbindingsproblemen snel uitsluiten dat de kabel de oorzaak is.

Een computer

Voor het schrijven en uploaden van de code gebruiken we een computer met Windows, macOS of Linux.

De computer heeft het volgende nodig:

  • een vrije USB-aansluiting, eventueel via een geschikte adapter;
  • toegang tot internet voor het downloaden van software en bibliotheken;
  • voldoende rechten om de Arduino IDE te installeren;
  • toegang tot je WiFi-netwerk voor de latere hoofdstukken.

Je hebt geen bijzonder krachtige computer nodig. Het schrijven en uploaden van programma’s voor de ESP32 vraagt relatief weinig rekenkracht.

Wanneer jouw computer alleen USB-C-aansluitingen heeft, kun je een passende kabel of USB-adapter gebruiken. Houd er wel rekening mee dat ook de adapter gegevensoverdracht moet ondersteunen.

De Arduino IDE

We schrijven onze programma’s in de Arduino IDE. Deze software is gratis beschikbaar voor de gebruikelijke besturingssystemen.

De Arduino IDE bevat nog niet automatisch alles wat nodig is om een ESP32 te programmeren. We moeten later ook de ondersteuning voor ESP32-borden toevoegen en het juiste bord selecteren.

In het hoofdstuk over code uploaden doen we dit stap voor stap. Voorlopig is het voldoende om te weten dat we de Arduino IDE gebruiken voor:

  • het schrijven van code;
  • het controleren van code;
  • het installeren van bibliotheken;
  • het uploaden van programma’s;
  • het bekijken van berichten van de ESP32.

Installeer bij voorkeur de gewone desktopversie van de Arduino IDE. Daarmee sluiten de stappen en afbeeldingen in deze gids het beste aan op wat je op je scherm ziet.

Een breadboard

Een breadboard is een kunststof bord waarop je tijdelijke schakelingen kunt bouwen zonder te solderen.

Onder de gaatjes zitten metalen verbindingen. Wanneer je een draad of onderdeel in een gaatje steekt, maakt het contact met andere gaatjes in dezelfde verbonden rij.

Dat maakt een breadboard ideaal om te experimenteren. Je kunt een schakeling bouwen, testen, aanpassen en daarna weer uit elkaar halen.

Een breadboard heeft meestal:

  • korte verbonden rijen in het midden;
  • een onderbreking of sleuf tussen beide helften;
  • langere voedingsrails langs de zijkanten.

De verbindingen zijn aan de buitenkant niet zichtbaar. Daardoor is het in het begin gemakkelijk om twee onderdelen per ongeluk in dezelfde verbonden rij te plaatsen, of juist te denken dat twee gaatjes verbonden zijn terwijl dat niet zo is.

In het volgende hoofdstuk bekijken we de interne verbindingen voordat we onze eerste schakeling bouwen.

Past de ESP32 op het breadboard?

Veel ESP32-ontwikkelborden zijn vrij breed. Wanneer je het bord midden op een standaardbreadboard plaatst, blijft er soms aan beide kanten nauwelijks ruimte over voor aansluitdraden.

Dat ligt niet aan jou en ook niet aan het breadboard. Het is simpelweg een onhandige combinatie van afmetingen.

Mogelijke oplossingen zijn:

  • twee breadboards naast elkaar gebruiken;
  • de ESP32 naast het breadboard leggen en met jumperdraden verbinden;
  • een breder breadboard gebruiken;
  • een uitbreidingsbord gebruiken dat voor jouw ESP32-model geschikt is.

Forceer het ontwikkelbord niet in de gaatjes. De pinnen kunnen verbuigen en een verkeerd geplaatste pin kan buiten de aansluiting terechtkomen.

Jumperdraden

Met jumperdraden maken we verbindingen tussen de ESP32, het breadboard en de onderdelen.

De uiteinden van jumperdraden zijn verkrijgbaar als mannelijk of vrouwelijk:

  • mannelijk-mannelijk voor verbindingen tussen de ESP32 en het breadboard;
  • mannelijk-vrouwelijk voor sensormodules met uitstekende aansluitpinnen;
  • vrouwelijk-vrouwelijk voor verbindingen tussen twee onderdelen met uitstekende pinnen.

Voor onze eerste schakelingen zijn mannelijk-mannelijke jumperdraden het belangrijkst. Later zijn enkele mannelijk-vrouwelijke draden handig voor het aansluiten van sensormodules.

Verschillende kleuren maken een schakeling overzichtelijker. Een gebruikelijke afspraak is:

  • rood voor de voedingsspanning;
  • zwart of blauw voor massa;
  • andere kleuren voor signalen.

De kleur verandert technisch niets aan de draad. Het is een hulpmiddel voor onszelf.

Wanneer je consequent dezelfde kleuren gebruikt, kun je een schakeling later gemakkelijker controleren. Dat wordt vooral waardevol wanneer we fouten gaan opsporen.

Leds

Een led is een eenvoudige manier om zichtbaar te maken wat de ESP32 doet. We gebruiken een led daarom vaak als eerste uitgang.

Led staat voor light-emitting diode: een diode die licht geeft wanneer er stroom in de juiste richting doorheen loopt.

Een led heeft een plus- en een minkant. Bij een nieuwe led herken je die meestal aan de lengte van de pootjes:

  • het lange pootje is meestal de plus, ook wel de anode;
  • het korte pootje is meestal de min, ook wel de kathode.

Aan de behuizing zit vaak ook een afgeplatte kant. Die markeert gewoonlijk de kathode.

Een led werkt maar in één richting. Wanneer hij verkeerd om is aangesloten, gaat hij niet branden. Dat maakt hem meteen geschikt voor onze eerste oefening in waarnemen en foutzoeken.

Weerstanden

Een weerstand beperkt de elektrische stroom in een schakeling.

Wanneer we een losse led op de ESP32 aansluiten, plaatsen we een weerstand in serie met de led. Zonder deze weerstand kan er te veel stroom gaan lopen. Daardoor kunnen de led of de uitgang van de ESP32 beschadigd raken.

Voor de eerste schakelingen zijn weerstanden van ongeveer 220 tot 330 ohm geschikt voor veel gebruikelijke leds.

Weerstanden hebben gekleurde ringen waarmee hun waarde wordt aangegeven. Dat is compact, maar in het begin niet altijd gemakkelijk af te lezen. Bewaar verschillende waarden daarom gescheiden en voorzie het vakje of zakje van een duidelijk opschrift.

Een multimeter kan ons later helpen om een onbekende weerstand te controleren.

Een drukknop

Met een drukknop kunnen we een eerste ingang maken. De ESP32 kan vervolgens vaststellen of de knop wel of niet wordt ingedrukt.

Eenvoudige drukknoppen voor een breadboard hebben vaak vier pootjes. Twee pootjes aan dezelfde zijde zijn intern al met elkaar verbonden. Bij het indrukken worden beide zijden met elkaar verbonden.

Daardoor kan een drukknop correct op het breadboard lijken te zitten, terwijl de aansluiting toch niet doet wat je verwacht.

Dat is geen reden om de knop te vermijden. Het is juist een mooi voorbeeld van waarom we niet alleen naar de buitenkant van een onderdeel kijken, maar ook proberen te begrijpen wat er binnenin gebeurt.

Een sensor

Later in deze gids gaan we een sensor uitlezen en de meetwaarden via WiFi en MQTT versturen.

Welke sensor we daarvoor gebruiken, moeten we consequent laten aansluiten op het eindproject. Een sensor op een kant-en-klare module is voor een eerste project meestal prettiger dan een losse sensor. Op zo’n module zijn vaak al enkele benodigde onderdelen aangebracht en staan de aansluitingen duidelijk aangegeven.

Let bij iedere sensor op:

  • de benodigde voedingsspanning;
  • de betekenis en volgorde van de pinnen;
  • het soort uitgangssignaal;
  • de bibliotheek die eventueel nodig is;
  • de vraag of de signalen veilig zijn voor de 3,3-volt-pinnen van de ESP32.

De volgorde van de aansluitingen is niet bij iedere module hetzelfde. Vertrouw daarom niet alleen op de positie van een draad in een voorbeeld. Lees altijd de aanduidingen op jouw eigen module.

Een WiFi-netwerk

De ESP32 heeft WiFi ingebouwd. Voor de hoofdstukken over WiFi en MQTT hebben we toegang nodig tot een draadloos netwerk.

Veel ESP32-WROOM-32-ontwikkelborden maken gebruik van WiFi op 2,4 GHz. Een netwerk dat uitsluitend op 5 GHz werkt, is daarom niet geschikt voor deze ESP32.

Moderne routers bieden vaak beide frequenties aan. Soms gebruiken 2,4 en 5 GHz dezelfde netwerknaam. Dat hoeft geen probleem te zijn, maar het is handig om te weten wanneer de verbinding later niet meteen lukt.

We hebben uiteindelijk nodig:

  • de naam van het WiFi-netwerk;
  • het bijbehorende wachtwoord;
  • voldoende bereik op de plaats waar we werken;
  • toestemming om een nieuw apparaat met het netwerk te verbinden.

Plaats je echte WiFi-wachtwoord niet in afbeeldingen, gedeelde code of bestanden die je openbaar maakt. Later bekijken we hoe we gevoelige gegevens gescheiden kunnen houden van code die we met anderen delen.

Een MQTT-broker

MQTT is een manier om berichten tussen apparaten uit te wisselen. De ESP32 verstuurt daarbij niet rechtstreeks zomaar informatie naar ieder ander apparaat. De berichten lopen via een centrale tussenpersoon: de MQTT-broker.

Je kunt een MQTT-broker bijvoorbeeld uitvoeren:

  • op een computer;
  • op een Raspberry Pi;
  • binnen een Home Assistant-omgeving;
  • op een server in je eigen netwerk;
  • bij een externe aanbieder.

Je hoeft de broker nu nog niet te installeren. In het hoofdstuk over MQTT bekijken we eerst wat de broker doet en welke mogelijkheid bij jouw situatie past.

Voor de eerste schakelingen en het uploaden van code hebben we MQTT nog niet nodig.

Een multimeter

Een multimeter is niet noodzakelijk om de allereerste led te laten knipperen. Toch beschouw ik hem als een van de waardevolste gereedschappen voor iedereen die wil begrijpen wat er in een schakeling gebeurt.

Met een eenvoudige digitale multimeter kunnen we onder andere:

  • spanning meten;
  • weerstand controleren;
  • onderzoeken of twee punten elektrisch met elkaar zijn verbonden;
  • een onderbroken draad vinden;
  • controleren of de voeding op de juiste plaats aankomt.

Zonder multimeter blijven we vaak gissen. Met een multimeter kunnen we een vermoeden testen.

Je hebt geen duur professioneel model nodig om te beginnen. Een eenvoudig model met gelijkspanningsmeting, weerstandsmeting en een continuïteitstest is voor veel van onze werkzaamheden voldoende.

Een multimeter geeft alleen betrouwbare informatie wanneer je hem correct gebruikt. In het hoofdstuk over spanning en stroom bekijken we daarom niet alleen wat we kunnen meten, maar ook waar we de meetpennen moeten plaatsen en welke instellingen veilig zijn.

Handig, maar nog niet noodzakelijk

Naast de basisbenodigdheden zijn er enkele hulpmiddelen die het werken prettiger maken:

  • een kleine opbergdoos voor onderdelen;
  • labels voor waarden en onderdeelnamen;
  • een tangetje om draden of pootjes netjes te buigen;
  • een pincet voor kleine onderdelen;
  • een vergrootglas of goede werklamp;
  • extra USB- en jumperdraden;
  • een notitieboek voor metingen en bevindingen;
  • schilderstape of verwijderbare labels om borden en kabels te markeren.

Ook een camera of telefoon kan een nuttig gereedschap zijn. Maak een duidelijke foto van een schakeling voordat je draden loshaalt. Zo kun je later terugkijken hoe alles was aangesloten.

Foto’s helpen eveneens bij het foutzoeken. Op een opname zie je soms gemakkelijker dat een draad één gaatje verkeerd zit.

Onderdelen netjes bewaren

Weerstanden, leds en sensoren lijken in een bakje al snel op elkaar. Zodra de verpakking is verdwenen, is niet altijd meer duidelijk welk type of welke waarde je in handen hebt.

Bewaar onderdelen daarom bij voorkeur in afzonderlijke, gelabelde vakjes of zakjes.

Noteer bijvoorbeeld:

  • de naam van het onderdeel;
  • de waarde;
  • de toegestane voedingsspanning;
  • de winkel of leverancier;
  • eventueel een verwijzing naar de productpagina of datasheet.

Dat lijkt bij je eerste vijf onderdelen misschien overdreven. Zodra je verzameling groeit, bespaart het veel zoekwerk en voorkomt het verkeerde aannames.

Een goede werkplaats draait niet alleen om gereedschap. Overzicht is minstens zo belangrijk.

Een veilige en rustige werkplek

We werken in deze gids voornamelijk met lage spanningen. Dat maakt experimenteren toegankelijk, maar niet volledig zonder risico. Een verkeerde aansluiting kan nog steeds een onderdeel, USB-poort of ESP32 beschadigen.

Kies daarom een werkplek die:

  • schoon en droog is;
  • voldoende verlichting heeft;
  • ruimte biedt voor de computer en de schakeling;
  • vrij is van losse metalen voorwerpen;
  • niet gemakkelijk wordt verstoord door kinderen of huisdieren.

Leg de ESP32 niet ingeschakeld op een metalen oppervlak. Losse schroeven, gereedschappen of afgeknipte draadjes kunnen verbindingen maken die niet bedoeld zijn.

Maak er een gewoonte van om de USB-kabel los te koppelen voordat je grotere wijzigingen aan een schakeling aanbrengt.

Controleer daarna rustig:

  • Staat de voeding op de juiste aansluiting?
  • Is de massa overal verbonden waar dat nodig is?
  • Zijn er geen pinnen per ongeluk met elkaar verbonden?
  • Past de schakeling bij het schema?
  • Kan ieder onderdeel met 3,3 volt werken?

Pas daarna sluit je de ESP32 weer aan.

De 3,3-voltregel

De aansluitpinnen van de ESP32 werken met signalen van 3,3 volt. Dat is een belangrijk verschil met veel klassieke Arduino-borden die met signalen van 5 volt werken.

Een onderdeel dat een signaal van 5 volt naar een ESP32-pin stuurt, kan de microcontroller beschadigen.

Daarom geldt tijdens deze hele gids:

Sluit nooit zomaar een 5-voltsignaal aan op een pin van de ESP32.

Sommige modules kunnen wel met 5 volt worden gevoed, maar geven vervolgens een lager signaal af. Andere modules sturen juist dezelfde spanning terug als waarmee ze worden gevoed. Controleer daarom altijd de documentatie van het specifieke onderdeel.

In het hoofdstuk over spanning, stroom en pinnen gaan we hier uitgebreider op in.

Koop niet alleen op uiterlijk

Elektronische onderdelen die er hetzelfde uitzien, hoeven niet hetzelfde te zijn. Webwinkels gebruiken soms algemene productfoto’s of leveren een iets andere uitvoering dan op de afbeelding staat.

Controleer een nieuw onderdeel daarom voordat je het aansluit:

  • Welke naam staat erop?
  • Welke pinnen zijn aangegeven?
  • Welke voedingsspanning heeft het nodig?
  • Is er documentatie beschikbaar?
  • Komt de pinindeling overeen met het voorbeeld dat je volgt?

Dit is ook een vorm van foutzoeken. We wachten niet totdat er een probleem ontstaat, maar controleren vooraf welke aannames we maken.

Onze basisuitrusting

Om met de eerste hoofdstukken aan de slag te gaan, heb je in ieder geval nodig:

  • een ESP32-ontwikkelbord met ESP32-WROOM-32-module;
  • een passende USB-datakabel;
  • een computer;
  • de Arduino IDE;
  • een breadboard;
  • mannelijk-mannelijke jumperdraden;
  • enkele leds;
  • weerstanden van 220 tot 330 ohm;
  • bij voorkeur een eenvoudige multimeter.

Voor de latere hoofdstukken voegen we daaraan toe:

  • enkele mannelijk-vrouwelijke jumperdraden;
  • een drukknop;
  • de gekozen sensor of sensormodule;
  • toegang tot een 2,4GHz-wifinetwerk;
  • toegang tot een MQTT-broker.

Controle voordat we beginnen

Leg de basisbenodigdheden voor je neer en controleer het volgende:

  • Past de USB-kabel in de ESP32?
  • Kan de kabel gegevens verzenden?
  • Zijn de pinnen van de ESP32 recht?
  • Zijn de pinnamen op het bord leesbaar?
  • Past het bord bruikbaar op of naast het breadboard?
  • Heb je jumperdraden, een led en een geschikte weerstand?
  • Is je werkplek schoon, droog en voldoende verlicht?
  • Kun je de ESP32 veilig met je computer verbinden?

Wanneer deze punten in orde zijn, hebben we alles wat nodig is voor onze eerste schakeling.

Maak je geen zorgen als de onderdelen nu nog weinig betekenis voor je hebben. We gaan ze niet allemaal tegelijk gebruiken. Ik neem je stap voor stap mee en leg ieder onderdeel uit op het moment dat we het nodig hebben.

In het volgende hoofdstuk plaatsen we onze eerste onderdelen op het breadboard. Daarbij gaan we niet alleen kijken naar waar iedere draad komt, maar vooral naar waarom we hem daar aansluiten.