or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Getting started with ESP32 and all the other things in the kitje
Elektronica kitje
Inleiding
Om makkelijk op weg te geraken zullen we gebruik maken van de Arduino omgeving.
(later kan je altijd nog platform.io gaan gebruiken in combinatie met visual studio code)
Voorbereiding
Installeren van de arduino omgeving.
ESP32 toevoegen aan de Arduino omgeving:
Hiervoor kan je de tutorial volgen op: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/ .
Of in het kort:
Testen van de installatie
Als dit gelukt is kan je aan de slag met volgende voorbeelden:
Werken met de seriele poort
De seriele poort is een van de nuttigste tools bij het werken met Arduino. Hiermee kan je makkelijk berichten naar buiten brengen van je code. Zo kan je makkelijk opzoek gaan naar de fouten en waar het mis loopt.
Werken met Digitale ingangen en uitgangen
Uitlezen digitale ingang
Hieronder heb je een overzicht van de pinnen van de ESP32 LOLIN. Bijna elke GPIO kan je lezen en schrijven

De volgende code zal gebruik makend van digitalRead(gpioPin); een pin uitlezen en deze waarde uitprinten. Digitale ingangen kunnen spanningen tussen 0 en 3.3V verdragen.
Laad de code in je bordje en open de serial monitor.
Verbind nu gpio pin 4 afwisselend met de 0V of 3.3V en merk op wat er gebeurt met de output in de serial monitor.
Verwachting
Als alles goed gaat veranderd de waarde van een logische 0 naar een 1 en terug.
Uitlezen digitale sensor
Om nu een digitale sensor uit te lezen kunnen we de code uit vorig voorbeeld gebruiken. Of als we de code een beetje herschrijven (naamgeving aanpassen) dan krijgen we:
Neem bijvoorbeeld de PIR sensor uit het kitje en sluit deze aan op de ESP32 als volgt:
Als je nu terug naar de seriele monitor kijkt zou je moeten zien dat er een logische één wordt geprint als er beweging is gedetecteerd.
Aansturen digitale uitgangen
Sluit voor volgend programma een LED met Voorschakelweerstand aan op PIN 5. Gebruik de \(1k\Omega\) weerstand uit je kitje in combinatie met een led naar keuze.
Digitale sensor koppelen aan een digitale uitgang
Als we de twee vorige voorbeelden combineren dan kunnen we een LED laten oplichten als er beweging is gedetecteerd.
Werken met Analoge ingangen en uitgangen
Werken met analoge ingangen
Een analoge ingang kan een spanning tussen 0V en 3.3V uitlezen met een 12-bit ADC (analoog digitaal converter) 0V = 0; 3.3V = 4095. Dit kan enkel met bij ADC ingang. Je kan bijvoorbeeld de analogewaarde op ADC3 (GPIO39) uitlezen met volgend commando analogRead(39).

Voor volgende code sluiten we een potentiometer van \(10k\Omega\) aan als spanningsdeler tussen GND en 3V3. De middenaftakking laten we naar de (SVN, GPIO39, ADC3) pin lopen.
PWM signaal maken
De makkelijkste manier om een led te dimmen is met een PWM signaal. Op het eerste zich is een PWM signaal maken iets moeilijker met een ESP32 dan met een Arduino. Maar deze kan ook veel meer.
Led dimmen (PWM) met potentiometer:
Buzzer
Er is ook een commando om een PWM kanaal te veranderen van frequentie.
Werken met externe bibliotheken
Uitlezen DHT11 Temperatuur en vochtigeheidsensor
Voor de DHT11 uit te lezen bestaan er al genoeg bibliotheken gemaakt door vriendelijke mensen op het internet. In dit geval kunnen we er maar beter gebruik van maken. Zodanig dat wij ons met coole dingen kunnen houden in plaats van dubbel werk te doen:
En hier zelf een programma voor te schrijven.
Instaleren externe bibliotheken:
Om de DHT sensor uit te lezen zullen we gebruik maken van de DHT library van Adafruit en de Adafruit Unified Sensor library.
Om deze te instaleren klik je op: Sketch > Include Library > Manage Libraries. De Library Manager is nu geopend.
Zoek naar “DHT” in het zoekveld en klik op install the DHT library from Adafruit.
Hierna zoek je naar “Adafruit Unified Sensor” In het zoekveld en instaleer je Adafruit Unified Sensor driver library.
Nu kan het nodig zijn de Arduino IDE te herstarten.
Testen DHT11 sensor
Bouw volgend schema:

Vergeet de pull-up weerstand niet.
(bron: randomnerdtutorials)
Programeer het bordje nu met volgende code en open de seriele monitor.
Werken met functies
Uitlezen afstand sensor
De afstand sensor is een ultrasone sensor deze stuurt een geluids puls en ontvangd de echo. Aan de hand van de tijd hiertussen kan berekend worden wat de afstand was. Hiervoor gebeuren wat berekeningen, om de code mooi te houden kunnen we een functie gebruiken op deze metingen in een lijn code uit te voeren.
Een klein probleem met deze sensor is dat deze de 5V versie is. En de echo pin zal dus een 5V puls terug sturen naar de ESP32 wat te veel is voor de ESP32. Om dit op te lossen zullen we werken met een spanningsdeler.
Aansluitingen
Voorbeeld programma
Gebruik van de serial ploter
Extra info

Met de code van vorig voorbeeld kan je ook de gemeten afstand waarden laten plotten door de Serial Plotter, deze vind je onder TOOLS > Serial Plotter
Gebruik van de OLED dispaly
Installeren van extra bibliotheken
Gebruik bibliotheek
In dit voorbeeld word een potentiometer als spanningsdeler tussen 3V3 en GND geschakeld en wordt de midden aftakking op pin 2 aangesloten.
Etch A Sketch