LAFVIN-logoESP32 Basis Starter
Uitrusting

Paklijst

LAFVIN ESP32 Basis Starter Kit - Paklijst

ESP32 Inleiding

Nieuw bij ESP32? Begin hier! De ESP32 is een serie goedkope en energiezuinige System on a Chip (SoC) microcontrollers ontwikkeld door Espressif die Wi-Fi en Bluetooth draadloze mogelijkheden en een dual-core processor bevatten. Als u bekend bent met de ESP8266, is de ESP32 zijn opvolger, vol met veel nieuwe functies.LAFVIN ESP32 Basis Starter Kit - ESP32 IntroductieESP32-specificaties
Als u wat technischer en specifieker wilt zijn, kunt u een kijkje nemen naar de volgende gedetailleerde specificaties van de ESP32 (bron: http://esp32.net/)—voor meer details, controleer het gegevensblad):

  • Draadloze connectiviteit WiFi: 150.0 Mbps gegevenssnelheid met HT40
  • Bluetooth: BLE (Bluetooth Low Energy) en Bluetooth Classic
  • Processor: Tensilica Xtensa Dual-Core 32-bit LX6 microprocessor, draaiend op 160 of 240 MHz
  • Geheugen:
  • ROM: 448 KB (voor opstarten en kernfuncties)
  • SRAM: 520 KB (voor gegevens en instructies)
  • RTC fas SRAM: 8 KB (voor gegevensopslag en hoofd-CPU tijdens RTC Boot vanuit de diepe slaapstand)
  • RTC langzaam SRAM: 8 KB (voor co-processortoegang tijdens diepe slaapstand) eFuse: 1 Kbit (waarvan 256 bits worden gebruikt voor het systeem (MAC-adres en chipconfiguratie) en de resterende 768 bits zijn gereserveerd voor klanttoepassingen, waaronder Flash-encryptie en chip-ID)

Ingebouwde flash: flash intern aangesloten via IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 en SD_DATA_1 op ESP32-D2WD en ESP32-PICO-D4.

  • 0 MiB (ESP32-D0WDQ6-, ESP32-D0WD- en ESP32-S0WD-chips)
  • 2 MiB (ESP32-D2WD-chip)
  • 4 MiB (ESP32-PICO-D4 SiP-module)

Laag vermogen: zorgt ervoor dat u nog steeds ADC-conversies kunt gebruiken, bijvoorbeeldample, tijdens diepe slaap.
Randapparatuur invoer/uitvoer:

  • perifere interface met DMA die capacitieve aanraking omvat
  • ADC's (Analoog-naar-Digitaal Converter)
  • DAC's (Digitaal-naar-Analoog Converter)
  • I²C (Inter-Integrated Circuit)
  • UART (Universele Asynchrone Ontvanger/Zender)
  • SPI (Seriële Perifere Interface)
  • I²S (Geïntegreerd Interchip Geluid)
  • RMII (gereduceerde media-onafhankelijke interface)
  • PWM (Pulsbreedtemodulatie)

Beveiliging: hardwareversnellers voor AES en SSL/TLS

ESP32-ontwikkelingsborden

ESP32 verwijst naar de kale ESP32-chip. De term "ESP32" wordt echter ook gebruikt om te verwijzen naar ESP32-ontwikkelborden. Het gebruik van ESP32 kale chips is niet eenvoudig of praktisch, vooral niet bij het leren, testen en prototypen. Meestal wilt u een ESP32-ontwikkelbord gebruiken.
We gebruiken het ESP32 DEVKIT V1-bord als referentie. De onderstaande afbeelding toont het ESP32 DEVKIT V1-bord, een versie met 30 GPIO-pinnen.LAFVIN ESP32 Basis Starter Kit - ESP32 OntwikkelingsbordenSpecificaties – ESP32 DEVKIT V1
De volgende tabel geeft een overzicht van de kenmerken en specificaties van het ESP32 DEVKIT V1 DOIT-bord:

Aantal kernen 2 (dubbele kern)
Wi-Fi 2.4 GHz tot 150 Mbits/s
Bluetooth BLE (Bluetooth Low Energy) en oudere Bluetooth
Architectuur 32-bits
Klokfrequentie Tot 240 MHz
RAM 512 KB
Spelden 30 (afhankelijk van het model)
Randapparatuur Capacitieve aanraking, ADC (analoog naar digitaal converter), DAC (digitaal naar analoog converter), 12C (Inter-Integrated Circuit), UART (universele asynchrone ontvanger/zender), CAN 2.0 (Controller Area Network), SPI (Serial Peripheral Interface), 12S (Integrated Inter-IC)
Geluid), RMII (Reduced Media-Independent Interface), PWM (pulsbreedtemodulatie) en meer.
Ingebouwde knoppen RESET- en BOOT-knoppen
Ingebouwde LED's ingebouwde blauwe LED aangesloten op GPIO2; ingebouwde rode LED die aangeeft dat het bord wordt gevoed
USB naar UART
brug
CP2102

LAFVIN ESP32 Basis Starter Kit - ESP32 DEVKITHet wordt geleverd met een microUSB-interface waarmee u het bord kunt aansluiten op uw computer om code te uploaden of stroom aan te sluiten.
Het gebruikt de CP2102-chip (USB naar UART) om te communiceren met uw computer via een COM-poort met behulp van een seriële interface. Een andere populaire chip is de CH340. Controleer wat de USB naar UART-chipconverter op uw bord is, want u moet de vereiste drivers installeren zodat uw computer kan communiceren met het bord (meer informatie hierover later in deze handleiding).
Dit bord wordt ook geleverd met een RESET-knop (mogelijk gelabeld als EN) om het bord opnieuw op te starten en een BOOT-knop om het bord in de knippermodus te zetten (beschikbaar om code te ontvangen). Houd er rekening mee dat sommige borden mogelijk geen BOOT-knop hebben.
Het wordt ook geleverd met een ingebouwde blauwe LED die intern is verbonden met GPIO 2. Deze LED is handig voor debuggen om een ​​soort visuele fysieke output te geven. Er is ook een rode LED die oplicht wanneer u stroom levert aan het bord.LAFVIN ESP32 Basis Starter Kit -bordESP32-pinbezetting
De ESP32-randapparatuur omvat:

  • 18 analoog-naar-digitaal converter (ADC) kanalen
  • 3 SPI-interfaces
  • 3 UART-interfaces
  • 2 I2C-interfaces
  • 16 PWM-uitgangskanalen
  • 2 Digitaal-naar-Analoog Converters (DAC)
  • 2 I2S-interfaces
  • 10 Capacitieve sensor GPIO's

De ADC (analoog naar digitaal converter) en DAC (digitaal naar analoog converter) functies zijn toegewezen aan specifieke statische pinnen. U kunt echter zelf bepalen welke pinnen UART, I2C, SPI, PWM, etc. zijn – u hoeft ze alleen maar toe te wijzen in de code. Dit is mogelijk dankzij de multiplexing-functie van de ESP32-chip.
Hoewel u de pin-eigenschappen in de software kunt definiëren, zijn er standaard pinnen toegewezen, zoals weergegeven in de volgende afbeeldingLAFVIN ESP32 Basis Starter Kit - ESP32 PinoutDaarnaast zijn er pinnen met specifieke eigenschappen die ze geschikt maken voor een bepaald project of juist niet. De volgende tabel laat zien welke pinnen het beste zijn om te gebruiken als inputs, outputs en welke je voorzichtig moet gebruiken.
De pinnen die groen gemarkeerd zijn, zijn OK om te gebruiken. De pinnen die geel gemarkeerd zijn, zijn OK om te gebruiken, maar u moet opletten omdat ze een onverwacht gedrag kunnen vertonen, vooral bij het opstarten. De pinnen die rood gemarkeerd zijn, worden niet aanbevolen om te gebruiken als invoer of uitvoer.

GP IO Invoer Uitvoer Notities
0 omhoog getrokken OK geeft PWM-signaal af bij het opstarten, moet LAAG zijn om de knippermodus te kunnen activeren
1 TX-pin OK debug-uitvoer bij het opstarten
2 OK OK aangesloten op de ingebouwde LED, moet zwevend of LAAG blijven om de knippermodus te kunnen activeren
3 OK RX-pin HOOG bij de laars
4 OK OK
5 OK OK geeft PWM-signaal af bij boot, strapping pin
12 OK OK laars faalt als hij hoog wordt getrokken, spanpen
13 OK OK
14 OK OK geeft PWM-signaal af bij opstarten
15 OK OK geeft PWM-signaal af bij boot, strapping pin
16 OK OK
17 OK OK
18 OK OK
19 OK OK
21 OK OK
22 OK OK
23 OK OK
25 OK OK
26 OK OK
27 OK OK
32 OK OK
33 OK OK
34 OK alleen invoer
35 OK alleen invoer
36 OK alleen invoer
39 OK alleen invoer

Lees verder voor een meer gedetailleerde en diepgaande analyse van de ESP32 GPIO's en hun functies.
Alleen invoerpinnen
GPIO's 34 tot 39 zijn GPI's – input only pinnen. Deze pinnen hebben geen interne pull-up of pull-down weerstanden. Ze kunnen niet als outputs worden gebruikt, dus gebruik deze pinnen alleen als inputs:

  • GPI 34
  • GPI 35
  • GPI 36
  • GPI 39

SPI-flash geïntegreerd op de ESP-WROOM-32
GPIO 6 tot GPIO 11 zijn blootgesteld in sommige ESP32-ontwikkelborden. Deze pinnen zijn echter verbonden met de geïntegreerde SPI-flash op de ESP-WROOM-32-chip en worden niet aanbevolen voor andere toepassingen. Gebruik deze pinnen dus niet in uw projecten:

  • GPIO 6 (SCK/CLK)
  • GPIO 7 (SDO/SD0)
  • GPIO 8 (SDI/SD1)
  • GPIO 9 (SHD/SD2)
  • GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

Capacitieve touch GPIO's
De ESP32 heeft 10 interne capacitieve aanraaksensoren. Deze kunnen variaties detecteren in alles wat een elektrische lading heeft, zoals de menselijke huid. Ze kunnen dus variaties detecteren die worden veroorzaakt door het aanraken van de GPIO's met een vinger. Deze pinnen kunnen eenvoudig worden geïntegreerd in capacitieve pads en mechanische knoppen vervangen. De capacitieve aanraakpinnen kunnen ook worden gebruikt om de ESP32 uit diepe slaap te wekken. Die interne aanraaksensoren zijn verbonden met deze GPIO's:

  • T0 (GPIO4)
  • T1 (GPIO0)
  • T2 (GPIO2)
  • T3 (GPIO15)
  • T4 (GPIO13)
  • T5 (GPIO12)
  • T6 (GPIO14)
  • T7 (GPIO27)
  • T8 (GPIO33)
  • T9 (GPIO32)

Analoog naar digitaal converter (ADC)
De ESP32 heeft 18 x 12 bits ADC input kanalen (terwijl de ESP8266 slechts 1x 10 bits ADC heeft). Dit zijn de GPIO's die gebruikt kunnen worden als ADC en bijbehorende kanalen:

  • ADC1_CH0 (GPIO 36)
  • ADC1_CH1 (GPIO 37)
  • ADC1_CH2 (GPIO 38)
  • ADC1_CH3 (GPIO 39)
  • ADC1_CH4 (GPIO 32)
  • ADC1_CH5 (GPIO 33)
  • ADC1_CH6 (GPIO 34)
  • ADC1_CH7 (GPIO 35)
  • ADC2_CH0 (GPIO 4)
  • ADC2_CH1 (GPIO 0)
  • ADC2_CH2 (GPIO 2)
  • ADC2_CH3 (GPIO 15)
  • ADC2_CH4 (GPIO 13)
  • ADC2_CH5 (GPIO 12)
  • ADC2_CH6 (GPIO 14)
  • ADC2_CH7 (GPIO 27)
  • ADC2_CH8 (GPIO 25)
  • ADC2_CH9 (GPIO 26)

Opmerking: ADC2-pinnen kunnen niet worden gebruikt als Wi-Fi wordt gebruikt. Dus als u Wi-Fi gebruikt en u hebt moeite om de waarde van een ADC2 GPIO te krijgen, kunt u overwegen om in plaats daarvan een ADC1 GPIO te gebruiken. Dat zou uw probleem moeten oplossen.
De ADC-ingangskanalen hebben een resolutie van 12 bits. Dit betekent dat u analoge waarden kunt krijgen van 0 tot 4095, waarbij 0 overeenkomt met 0 V en 4095 met 3.3 V. U kunt ook de resolutie van uw kanalen instellen op de code en het ADC-bereik.
De ESP32 ADC-pinnen hebben geen lineair gedrag. U zult waarschijnlijk geen onderscheid kunnen maken tussen 0 en 0.1 V, of tussen 3.2 en 3.3 V. U moet dat in gedachten houden bij het gebruik van de ADC-pinnen. U krijgt een gedrag dat vergelijkbaar is met het gedrag dat in de volgende afbeelding wordt getoond.LAFVIN ESP32 Basic Starter Kit - gedragDigitaal naar analoog converter (DAC)
Er zijn 2 x 8 bits DAC-kanalen op de ESP32 om digitale signalen om te zetten in analoge signalen.tage signaaluitgangen. Dit zijn de DAC-kanalen:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO's
Er is RTC GPIO-ondersteuning op de ESP32. De GPIO's die naar het RTC low-power subsysteem worden gerouteerd, kunnen worden gebruikt wanneer de ESP32 in diepe slaap is. Deze RTC GPIO's kunnen worden gebruikt om de ESP32 uit diepe slaap te wekken wanneer de Ultra Low
Power (ULP) co-processor draait. De volgende GPIO's kunnen worden gebruikt als een externe wake-upbron.

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

PWM
De ESP32 LED PWM-controller heeft 16 onafhankelijke kanalen die kunnen worden geconfigureerd om PWM-signalen met verschillende eigenschappen te genereren. Alle pinnen die als uitgangen kunnen fungeren, kunnen worden gebruikt als PWM-pinnen (GPIO's 34 tot 39 kunnen geen PWM genereren).
Om een ​​PWM-signaal in te stellen, moet u deze parameters in de code definiëren:

  • Frequentie van het signaal;
  • Inschakelduur;
  • PWM-kanaal;
  • GPIO waar u het signaal wilt uitsturen.

I2C
De ESP32 heeft twee I2C-kanalen en elke pin kan worden ingesteld als SDA of SCL. Bij gebruik van de ESP32 met de Arduino IDE zijn de standaard I2C-pinnen:

  • GPIO21 (SDA)
  • GPIO 22 (SCL)

Als u andere pinnen wilt gebruiken bij het gebruik van de draadbibliotheek, hoeft u alleen maar het volgende aan te roepen:
Draad.begin(SDA, SCL);
SPI
Standaard is de pintoewijzing voor SPI:

SPI MOSI MISO KLIK CS
VSPI GPI 23 GPI 19 GPI 18 GPI 5
HSPI GPI 13 GPI 12 GPI 14 GPI 15

interrupts
Alle GPIO's kunnen worden geconfigureerd als interrupts.
Omsnoeringspennen
De ESP32-chip heeft de volgende strapping-pinnen:

  • GPIO 0 (moet LAAG zijn om de opstartmodus te kunnen openen)
  • GPIO 2 (moet zwevend of LOW zijn tijdens het opstarten)
  • GPI 4
  • GPIO 5 (moet HOOG zijn tijdens het opstarten)
  • GPIO 12 (moet LAAG zijn tijdens het opstarten)
  • GPIO 15 (moet HOOG zijn tijdens het opstarten)

Deze worden gebruikt om de ESP32 in de bootloader- of flashmodus te zetten. Op de meeste ontwikkelborden met ingebouwde USB/Serial hoeft u zich geen zorgen te maken over de status van deze pinnen. Het bord zet de pinnen in de juiste status voor flashen of bootmodus. Meer informatie over de ESP32 Boot Mode Selection vindt u hier.
Als u echter randapparatuur op die pinnen hebt aangesloten, kunt u problemen ondervinden bij het uploaden van nieuwe code, het flashen van de ESP32 met nieuwe firmware of het resetten van het bord. Als u randapparatuur op de strapping-pinnen hebt aangesloten en u ondervindt problemen bij het uploaden van code of het flashen van de ESP32, kan dit komen doordat die randapparatuur voorkomt dat de ESP32 de juiste modus ingaat. Lees de documentatie over het selecteren van de opstartmodus om u in de juiste richting te leiden. Na het resetten, flashen of opstarten werken die pinnen zoals verwacht.
Pinnen HOOG bij de laars
Sommige GPIO's veranderen hun status naar HOOG of geven PWM-signalen af ​​bij het opstarten of resetten.
Dit betekent dat als u uitgangen hebt aangesloten op deze GPIO's, u onverwachte resultaten kunt krijgen wanneer de ESP32 wordt gereset of opgestart.

  • GPI 1
  • GPI 3
  • GPI 5
  • GPIO 6 tot GPIO 11 (aangesloten op het geïntegreerde SPI-flashgeheugen van de ESP32 – gebruik wordt afgeraden).
  • GPI 14
  • GPI 15

Inschakelen (EN)
Enable (EN) is de enable-pin van de 3.3V-regelaar. Deze is omhooggetrokken, dus sluit deze aan op de grond om de 3.3V-regelaar uit te schakelen. Dit betekent dat u deze pin die is aangesloten op een drukknop kunt gebruiken om uw ESP32 opnieuw op te starten, bijvoorbeeldampik.
GPIO-stroomverbruik
De absolute maximale stroom die per GPIO wordt opgenomen, bedraagt ​​40 mA volgens het gedeelte 'Aanbevolen bedrijfsomstandigheden' in het ESP32-gegevensblad.
ESP32 Ingebouwde Hall-effectsensor
De ESP32 beschikt ook over een ingebouwde hall-effectsensor die veranderingen in het magnetische veld in zijn omgeving detecteert
ESP32 Arduino-IDE
Er is een add-on voor de Arduino IDE waarmee u de ESP32 kunt programmeren met behulp van de Arduino IDE en de programmeertaal. In deze tutorial laten we u zien hoe u het ESP32-bord in Arduino IDE installeert, ongeacht of u Windows, Mac OS X of Linux gebruikt.
Vereisten: Arduino IDE geïnstalleerd
Voordat u met deze installatieprocedure begint, moet u Arduino IDE op uw computer hebben geïnstalleerd. Er zijn twee versies van de Arduino IDE die u kunt installeren: versie 1 en versie 2.
U kunt Arduino IDE downloaden en installeren door op de volgende link te klikken: arduino.cc/nl/Hoofdpagina/Software
Welke Arduino IDE versie raden wij aan? Op dit moment zijn er een aantal plugins voor de ESP32 (zoals de SPIFFS Filesystem Uploader Plugin) die nog niet worden ondersteund op Arduino 2. Dus als u van plan bent om de SPIFFS plugin in de toekomst te gebruiken, raden we u aan om de legacy versie 1.8.X te installeren. U hoeft alleen maar naar beneden te scrollen op de Arduino software pagina om deze te vinden.
ESP32 Add-on installeren in Arduino IDE
Volg de onderstaande instructies om het ESP32-bord in uw Arduino IDE te installeren:

  1. Ga in je Arduino IDE naar File> VoorkeurenLAFVIN ESP32 Basis Starter Kit - Voorkeuren
  2. Voer het volgende in bij het veld 'Extra bestuursmanager' URLs”-veld:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Klik vervolgens op de knop “OK”:LAFVIN ESP32 Basis Starter Kit - “OK”-knopOpmerking: als je al de ESP8266-borden hebt URL, kunt u de URLs met een komma als volgt:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Open de Boards Manager. Ga naar Tools > Board > Boards Manager…LAFVIN ESP32 Basis Starter Kit - EspressifZoeken naar ESP32 and press install button for the “ESP32 by Espressif Systems“:LAFVIN ESP32 Basis Starter Kit - EspressifDat is het. Het zou na een paar seconden geïnstalleerd moeten zijn.LAFVIN ESP32 Basis Starter Kit - geïnstalleerd

Testcode uploaden

Sluit het ESP32-bord aan op uw computer. Volg deze stappen met uw Arduino IDE open:

  1. Selecteer uw bord in het menu Extra > Bord (in mijn geval is dat de ESP32 DEV-module)LAFVIN ESP32 Basis Starter Kit - Gereedschapsbord
  2. Selecteer de poort (als u de COM-poort niet in uw Arduino IDE ziet, moet u de CP210x USB naar UART Bridge VCP-stuurprogramma's installeren):LAFVIN ESP32 Basis Starter Kit - UART-brug
  3. Open de volgende example onder File > Bijv.amples > WiFi
    (ESP32) > WiFiScanLAFVIN ESP32 Basis Starterkit - WiFiScanLAFVIN ESP32 Basis Starterkit - WiFiScan 1
  4. Er wordt een nieuwe schets geopend in uw Arduino IDE:LAFVIN ESP32 Basis Starter Kit - Arduino IDE
  5. Druk op de Upload-knop in de Arduino IDE. Wacht een paar seconden terwijl de code compileert en uploadt naar je board.LAFVIN ESP32 Basis Starter Kit - bord
  6. Als alles volgens verwachting is verlopen, zou u het bericht 'Uploaden voltooid' moeten zien.LAFVIN ESP32 Basic Starter Kit - Uploaden voltooid
  7. Open de Arduino IDE Serial Monitor met een baudrate van 115200:LAFVIN ESP32 Basis Starter Kit - Monitor
  8. Druk op de ingebouwde knop 'Enable' van de ESP32. U zou nu de beschikbare netwerken in de buurt van uw ESP32 moeten zien:LAFVIN ESP32 Basic Starter Kit - Inschakelknop

Probleemoplossing

Als u probeert een nieuwe schets te uploaden naar uw ESP32 en u krijgt deze foutmelding "Er is een fatale fout opgetreden: kon geen verbinding maken met ESP32: Time-out... Verbinding maken...", betekent dit dat uw ESP32 niet in de flash-/uploadmodus staat.
Nadat u de juiste boardnaam en COM-poort hebt geselecteerd, volgt u deze stappen:
Houd de "BOOT"-knop op uw ESP32-bord ingedruktLAFVIN ESP32 Basis Starter Kit - “BOOT”

  • Druk op de knop “Uploaden” in de Arduino IDE om uw schets te uploaden:LAFVIN ESP32 Basis Starter Kit - ICON 6
  • Nadat u het bericht "Connecting..." in uw Arduino IDE ziet, laat u uw vinger los van de "BOOT"-knop:LAFVIN ESP32 Basic Starter Kit - "Klaar met uploaden
  • Daarna zou je het bericht 'Uploaden voltooid' moeten zien
    Dat is alles. Je ESP32 zou de nieuwe sketch moeten draaien. Druk op de knop "ENABLE" om de ESP32 opnieuw op te starten en de nieuwe geüploade sketch te draaien.
    Je moet deze knoppenreeks ook elke keer herhalen als je een nieuwe schets wilt uploaden.

Project 1 ESP32 Ingangen Uitgangen

In deze handleiding leert u hoe u digitale ingangen, zoals drukknoppen, kunt lezen en digitale uitgangen, zoals LED's, kunt bedienen met behulp van de ESP32 met Arduino IDE.
Vereisten
We programmeren de ESP32 met Arduino IDE. Zorg er dus voor dat je de ESP32 boards add-on hebt geïnstalleerd voordat je verdergaat:

  • ESP32 Add-on installeren in Arduino IDE

ESP32-besturing digitale uitgangen
Eerst moet u de GPIO die u wilt besturen instellen als een OUTPUT. Gebruik de pinMode()-functie als volgt:
pinMode(GPIO, UITVOER);
Om een ​​digitale uitgang te besturen, hoeft u alleen maar de functie digitalWrite() te gebruiken. Deze accepteert als argumenten de GPIO (int-nummer) waarnaar u verwijst en de status (HIGH of LOW).
digitalWrite(GPIO, STAAT);
Alle GPIO's kunnen als uitgangen worden gebruikt, behalve GPIO's 6 tot en met 11 (aangesloten op de geïntegreerde SPI-flash) en GPIO's 34, 35, 36 en 39 (alleen ingangs-GPIO's);
Meer informatie over de ESP32 GPIO's: ESP32 GPIO-referentiehandleiding
ESP32 Lees digitale ingangen
Stel eerst de GPIO in die u wilt lezen als INPUT met behulp van de functie pinMode(), als volgt:
pinMode(GPIO, INGANG);
Om een ​​digitale invoer, zoals een knop, te lezen, gebruikt u de functie digitalRead(). Deze accepteert als argument de GPIO (int-nummer) waarnaar u verwijst.
digitaal lezen(GPIO);
Alle ESP32 GPIO's kunnen als ingangen worden gebruikt, behalve GPIO's 6 tot en met 11 (aangesloten op de geïntegreerde SPI-flash).
Meer informatie over de ESP32 GPIO's: ESP32 GPIO-referentiehandleiding
Project bijvample
Om u te laten zien hoe u digitale ingangen en uitgangen kunt gebruiken, bouwen we een eenvoudig projectvoorbeeld.ample met een drukknop en een LED. We lezen de status van de drukknop en lichten de LED overeenkomstig op zoals geïllustreerd in de volgende afbeelding.LAFVIN ESP32 Basis Starter Kit - Project Example

Benodigde onderdelen
Hier is een lijst met de onderdelen die je nodig hebt om het circuit te bouwen:

  • ESP32 DEVKIT V1
  • 5 mm-led
  • 220 Ohm weerstand
  • Druk op de knop
  • 10k Ohm-weerstand
  • Broodplank
  • Jumper-draden

Schematisch diagram
Voordat u verdergaat, moet u een circuit met een LED en een drukknop samenstellen.
We verbinden de LED met GPIO 5 en de drukknop met GPIO 4.LAFVIN ESP32 Basis Starter Kit - Schematisch diagramCode
Open de code Project_1_ESP32_Inputs_Outputs.ino in Arduino IDELAFVIN ESP32 Basis Starter Kit - CodeLAFVIN ESP32 Basis Starterkit - Code 1Hoe de code werkt
In de volgende twee regels maakt u variabelen om pinnen toe te wijzen:

LAFVIN ESP32 Basis Starter Kit - Code WorksDe knop is verbonden met GPIO 4 en de LED is verbonden met GPIO 5. Bij gebruik van de Arduino IDE met de ESP32 komt 4 overeen met GPIO 4 en 5 met GPIO 5.
Vervolgens maak je een variabele om de knopstatus vast te houden. Standaard is dit 0 (niet ingedrukt).
int knopStatus = 0;
In setup() initialiseert u de knop als INPUT en de LED als OUTPUT.
Hiervoor gebruikt u de functie pinMode() die de pin accepteert waarnaar u verwijst en de modus: INPUT of OUTPUT.
pinMode(knopPin, INPUT);
pinMode(ledPin, UITVOER);
In loop() leest u de status van de knop uit en stelt u de LED dienovereenkomstig in.
In de volgende regel leest u de knopstatus en slaat u deze op in de variabele buttonState.
Zoals we eerder hebben gezien, gebruikt u de functie digitalRead().
knopStatus = digitaalLezen(knopPin);
De volgende if-statement controleert of de knopstatus HIGH is. Als dat zo is, schakelt het de LED in met behulp van de digitalWrite()-functie die de ledPin en de status HIGH als argument accepteert.
als (buttonState == HOOG)LAFVIN ESP32 Basis Starter Kit - Code Werkt 1Als de knopstatus niet HIGH is, zet u de LED uit. Stel gewoon LOW in als tweede argument in de digitalWrite()-functie.LAFVIN ESP32 Basis Starter Kit - digitalWriteDe code uploaden
Voordat u op de uploadknop klikt, gaat u naar Extra > Bord en selecteert u het bord: DOIT ESP32 DEVKIT V1 bord.
Ga naar Tools > Port en selecteer de COM-poort waarmee de ESP32 is verbonden. Druk vervolgens op de uploadknop en wacht op het bericht "Done uploading".LAFVIN ESP32 Basis Starter Kit - ICON 7Let op: Als u veel stippen (verbinden…__…__) ziet in het foutopsporingsvenster en het bericht “Kan geen verbinding maken met ESP32: Time-out bij wachten op pakketheader”, betekent dit dat u op de ESP32-boord-BOOT-knop moet drukken nadat de stippen zijn verschenen.
beginnen te verschijnen.Probleemoplossing

Demonstratie

Nadat u de code hebt geüpload, test u uw circuit. Uw LED zou moeten oplichten wanneer u op de drukknop drukt:LAFVIN ESP32 Basis Starter Kit - DemonstratieEn schakel uit wanneer u het loslaat:LAFVIN ESP32 Basic Starter Kit - uitzetten

Project 2 ESP32 analoge ingangen

Dit project laat zien hoe je analoge ingangen kunt lezen met de ESP32 met behulp van Arduino IDE.
Analoog uitlezen is handig om waarden uit te lezen van variabele weerstanden, zoals potentiometers, of analoge sensoren.
Analoge ingangen (ADC)
Met de ESP32 kunt u een analoge waarde aflezen, wat betekent dat u verschillende volumes kunt meten.tage-niveaus tussen 0 V en 3.3 V.
de voltagDe gemeten waarde wordt vervolgens toegewezen aan een waarde tussen 0 en 4095, waarbij 0 V overeenkomt met 0 en 3.3 V overeenkomt met 4095. Elk volumetagDe waarden tussen 0 V en 3.3 V krijgen de bijbehorende waarde ertussen.LAFVIN ESP32 Basis Starter Kit - Analoge ingangenADC is niet-lineair
Idealiter verwacht u een lineair gedrag bij gebruik van de ESP32 ADC-pinnen.
Dat gebeurt echter niet. Wat u krijgt is een gedrag zoals weergegeven in de volgende grafiek:LAFVIN ESP32 Basis Starter Kit - Niet-lineairDit gedrag betekent dat uw ESP32 geen onderscheid kan maken tussen 3.3 V en 3.2 V.
Je krijgt dezelfde waarde voor beide voltagnl: 4095.
Hetzelfde gebeurt bij zeer lage volumestage waarden: voor 0 V en 0.1 V krijg je dezelfde waarde: 0. Je moet dit in gedachten houden bij het gebruik van de ESP32 ADC-pinnen.
analogRead() Functie
Het lezen van een analoge input met de ESP32 met behulp van de Arduino IDE is net zo eenvoudig als het gebruiken van de analogRead() functie. Het accepteert als argument de GPIO die u wilt lezen:
analoogLezen(GPIO);
Er zijn er slechts 15 beschikbaar op het DEVKIT V1-bord (versie met 30 GPIO's).
Pak je ESP32 board pinout en zoek de ADC pinnen. Deze zijn gemarkeerd met een rode rand in de onderstaande afbeelding.LAFVIN ESP32 Basis Starter Kit - randDeze analoge inputpinnen hebben een resolutie van 12 bits. Dit betekent dat wanneer u een analoge input leest, het bereik kan variëren van 0 tot 4095.
Let op: ADC2-pinnen kunnen niet worden gebruikt als Wi-Fi wordt gebruikt. Dus als u Wi-Fi gebruikt en u hebt problemen met het verkrijgen van de waarde van een ADC2 GPIO, kunt u overwegen om in plaats daarvan een ADC1 GPIO te gebruiken, dat zou uw probleem moeten oplossen.
Om te zien hoe alles met elkaar samenhangt, maken we een eenvoudige example om een ​​analoge waarde van een potentiometer te lezen.
Benodigde onderdelen
Voor deze exampJe hebt de volgende onderdelen nodig:

  • ESP32 DEVKIT V1-bord
  • Potentiometer
  • Broodplank
  • Jumper-draden

Schematisch
Sluit een potentiometer aan op uw ESP32. De middelste pin van de potentiometer moet worden aangesloten op GPIO 4. U kunt het volgende schema als referentie gebruiken.LAFVIN ESP32 Basis Starter Kit - SchematischCode
We programmeren de ESP32 met Arduino IDE, dus zorg ervoor dat je de ESP32-add-on hebt geïnstalleerd voordat je verdergaat: (Als je deze stap al hebt uitgevoerd, kun je naar de volgende stap gaan.)
ESP32 Add-on installeren in Arduino IDE
Open de code Project_2_ESP32_Inputs_Outputs.ino in Arduino IDELAFVIN ESP32 Basis Starterkit - Code 2Deze code leest eenvoudigweg de waarden van de potentiometer en drukt deze waarden af ​​op de seriële monitor.
In de code begin je met het definiëren van de GPIO waarmee de potentiometer is verbonden. In dit voorbeeldample, GPIO 4.LAFVIN ESP32 Basis Starter Kit - exampleIn setup() initialiseert u een seriële communicatie met een baudrate van 115200.LAFVIN ESP32 Basis Starter Kit - exampde 1Gebruik in de loop() de functie analogRead() om de analoge invoer van de potPin te lezen.LAFVIN ESP32 Basis Starter Kit - exampde 2Druk ten slotte de waarden die u van de potentiometer hebt afgelezen, af op de seriële monitor.LAFVIN ESP32 Basis Starter Kit - exampde 3Upload de meegeleverde code naar uw ESP32. Zorg ervoor dat u het juiste bord en de juiste COM-poort hebt geselecteerd in het menu Extra.
Het testen van de Example
Nadat u de code hebt geüpload en op de resetknop van de ESP32 hebt gedrukt, opent u de seriële monitor met een baudrate van 115200. Draai aan de potentiometer en zie de waarden veranderen.De maximale waarde die u krijgt is 4095 en de minimale waarde is 0.LAFVIN ESP32 Basic Starter Kit - maximale waarde

Afronden

In dit artikel heb je geleerd hoe je analoge inputs kunt lezen met de ESP32 met de Arduino IDE. Samengevat:

  • Het ESP32 DEVKIT V1 DOIT-bord (versie met 30 pinnen) heeft 15 ADC-pinnen die u kunt gebruiken om analoge ingangen te lezen.
  • Deze pinnen hebben een resolutie van 12 bits, wat betekent dat u waarden van 0 tot 4095 kunt verkrijgen.
  • Om een ​​waarde in de Arduino IDE te lezen, gebruikt u eenvoudig de functie analogRead().
  • De ESP32 ADC-pinnen hebben geen lineair gedrag. U zult waarschijnlijk geen onderscheid kunnen maken tussen 0 en 0.1 V, of tussen 3.2 en 3.3 V. U moet dat in gedachten houden bij het gebruik van de ADC-pinnen.

Project 3 ESP32 PWM (Analoge Uitgang)

In deze tutorial laten we je zien hoe je PWM-signalen genereert met de ESP32 met behulp van Arduino IDE. Als exampLaten we een eenvoudig circuit bouwen dat een LED dimt met behulp van de LED PWM-controller van de ESP32.LAFVIN ESP32 Basis Starter Kit - Analoge UitgangESP32 LED PWM-controller
De ESP32 beschikt over een LED PWM-controller met 16 onafhankelijke kanalen die geconfigureerd kunnen worden om PWM-signalen met verschillende eigenschappen te genereren.
Dit zijn de stappen die u moet volgen om een ​​LED te dimmen met PWM met behulp van de Arduino IDE:

  1. Eerst moet je een PWM-kanaal kiezen. Er zijn 16 kanalen van 0 tot 15.
  2. Vervolgens moet u de PWM-signaalfrequentie instellen. Voor een LED is een frequentie van 5000 Hz prima.
  3. U moet ook de duty cycle-resolutie van het signaal instellen: u hebt resoluties van 1 tot 16 bits. We gebruiken een resolutie van 8 bits, wat betekent dat u de helderheid van de LED kunt regelen met een waarde van 0 tot 255.
  4.  Vervolgens moet u opgeven op welke GPIO of GPIO's het signaal zal verschijnen. Hiervoor gebruikt u de volgende functie:
    ledcAttachPin(GPIO, kanaal)
    Deze functie accepteert twee argumenten. De eerste is de GPIO die het signaal zal uitsturen, en de tweede is het kanaal dat het signaal zal genereren.
  5. Om de helderheid van de LED te regelen met behulp van PWM, gebruikt u de volgende functie:

ledcWrite(kanaal, dutycycle)
Deze functie accepteert als argumenten het kanaal dat het PWM-signaal genereert en de duty cycle.
Benodigde onderdelen
Om deze tutorial te volgen heb je de volgende onderdelen nodig:

  • ESP32 DEVKIT V1-bord
  • 5mm-led
  • 220 Ohm weerstand
  •  Broodplank
  • Jumper-draden

Schematisch
Sluit een LED aan op uw ESP32 zoals in het volgende schema. De LED moet worden aangesloten op GPIO 4.LAFVIN ESP32 Basis Starter Kit - SchematischOpmerking: je kunt elke pin gebruiken die je wilt, zolang deze maar als output kan fungeren. Alle pinnen die als output kunnen fungeren, kunnen als PWM-pinnen worden gebruikt. Lees voor meer informatie over de ESP32 GPIO's: ESP32 Pinout Reference: Welke GPIO-pinnen moet je gebruiken?
Code
We programmeren de ESP32 met Arduino IDE, dus zorg ervoor dat je de ESP32-add-on hebt geïnstalleerd voordat je verdergaat: (Als je deze stap al hebt uitgevoerd, kun je naar de volgende stap gaan.)
ESP32 Add-on installeren in Arduino IDE
Open de code Project_3_ESP32_PWM.ino in Arduino IDELAFVIN ESP32 Basis Starterkit - Code 3LAFVIN ESP32 Basis Starterkit - Code 4Je begint met het definiëren van de pin waaraan de LED is bevestigd. In dit geval is de LED bevestigd aan GPIO 4.LAFVIN ESP32 Basis Starterkit - Code 5Vervolgens stelt u de PWM-signaaleigenschappen in. U definieert een frequentie van 5000 Hz, kiest kanaal 0 om het signaal te genereren en stelt een resolutie van 8 bits in. U kunt andere eigenschappen kiezen, anders dan deze, om verschillende PWM-signalen te genereren.LAFVIN ESP32 Basis Starterkit - Code 6In setup() moet u LED PWM configureren met de eigenschappen die u eerder hebt gedefinieerd met behulp van de ledcSetup()-functie die als argumenten het ledChannel, de frequentie en de resolutie accepteert, als volgt:LAFVIN ESP32 Basis Starterkit - Code 8Vervolgens moet u de GPIO kiezen waarvan u het signaal wilt ontvangen. Gebruik hiervoor de ledcAttachPin()-functie die als argumenten de GPIO accepteert waar u het signaal wilt ontvangen en het kanaal dat het signaal genereert. In dit voorbeeldample, we krijgen het signaal in de ledPin GPIO, dat overeenkomt met GPIO 4. Het kanaal dat het signaal genereert is de ledChannel, dat overeenkomt met kanaal 0.LAFVIN ESP32 Basis Starterkit - Code 9In de lus varieert u de duty cycle tussen 0 en 255 om de helderheid van de LED te verhogen.LAFVIN ESP32 Basis Starter Kit - helderheidEn dan, tussen 255 en 0 om de helderheid te verlagen.LAFVIN ESP32 Basis Starter Kit - helderheid 1Om de helderheid van de LED in te stellen, hoeft u alleen maar de functie ledcWrite() te gebruiken. Deze accepteert als argumenten het kanaal dat het signaal genereert en de duty cycle.LAFVIN ESP32 Basis Starter Kit - helderheid 2Omdat we een resolutie van 8 bits gebruiken, wordt de duty cycle geregeld met een waarde van 0 tot 255. Houd er rekening mee dat we in de ledcWrite()-functie het kanaal gebruiken dat het signaal genereert, en niet de GPIO.

Het testen van de Example

Upload de code naar je ESP32. Zorg dat je het juiste bord en de juiste COM-poort hebt geselecteerd. Kijk naar je circuit. Je zou een dimmer-LED moeten hebben die de helderheid verhoogt en verlaagt.LAFVIN ESP32 Basic Starter Kit - Ex testenample

Project 4 ESP32 PIR-bewegingssensor

Dit project laat zien hoe je beweging kunt detecteren met de ESP32 met behulp van een PIR-bewegingssensor. De zoemer laat een alarm horen wanneer er beweging wordt gedetecteerd en stopt het alarm wanneer er gedurende een vooraf ingestelde tijd (bijvoorbeeld 4 seconden) geen beweging wordt gedetecteerd.
Hoe de HC-SR501 bewegingssensor werkt
.LAFVIN ESP32 Basis Starter Kit - Bewegingssensor werktHet werkingsprincipe van de HC-SR501-sensor is gebaseerd op de verandering van de infraroodstraling op het bewegende object. Om door de HC-SR501-sensor te worden gedetecteerd, moet het object aan twee vereisten voldoen:

  • Het object zendt infraroodstraling uit.
  • Het object beweegt of schudt

Dus:
Als een object infraroodstraling uitzendt maar niet beweegt (bijvoorbeeld een persoon die stilstaat zonder te bewegen), wordt dit door de sensor niet gedetecteerd.
Als een object beweegt maar geen infraroodstraling uitzendt (bijvoorbeeld een robot of voertuig), wordt dit NIET door de sensor gedetecteerd.
Introductie van timers
In deze exampwe zullen ook timers introduceren. We willen dat de LED een vooraf bepaald aantal seconden aan blijft nadat er beweging is gedetecteerd. In plaats van een delay()-functie te gebruiken die uw code blokkeert en u gedurende een bepaald aantal seconden niets anders laat doen, zouden we een timer moeten gebruiken.LAFVIN ESP32 Basis Starter Kit - Introductie van timersDe delay()-functie
U zou bekend moeten zijn met de delay()-functie, omdat deze veelgebruikt wordt. Deze functie is vrij eenvoudig te gebruiken. Het accepteert één enkel int-nummer als argument.
Dit getal geeft de tijd in milliseconden aan die het programma moet wachten voordat het naar de volgende regel code kan gaan.LAFVIN ESP32 Basis Starter Kit - codeWanneer u delay(1000) uitvoert, stopt uw ​​programma 1 seconde op die regel.
delay() is een blokkerende functie. Blokkerende functies voorkomen dat een programma iets anders doet totdat die specifieke taak is voltooid. Als u meerdere taken tegelijkertijd wilt laten plaatsvinden, kunt u delay() niet gebruiken.
Voor de meeste projecten moet u het gebruik van vertragingen vermijden en in plaats daarvan timers gebruiken.
De millis()-functie
Met behulp van de functie millis() kunt u het aantal milliseconden retourneren dat is verstreken sinds het programma voor het eerst is gestart.LAFVIN ESP32 Basic Starter Kit - programma voor het eerst gestartWaarom is die functie nuttig? Omdat je met behulp van wat wiskunde eenvoudig kunt verifiëren hoeveel tijd er is verstreken zonder je code te blokkeren.
Benodigde onderdelen
Om deze tutorial te volgen heb je de volgende onderdelen nodig

  • ESP32 DEVKIT V1-bord
  • PIR-bewegingssensor (HC-SR501)
  • Actieve zoemer
  • Jumper-draden
  • Broodplank

SchematischLAFVIN ESP32 Basis Starter Kit - Schema 1Opmerking: De werkende voltagDe spanning van de HC-SR501 is 5V. Gebruik de Vin-pin om hem van stroom te voorzien.
Code
Voordat u verdergaat met deze tutorial, moet u de ESP32-add-on in uw Arduino IDE hebben geïnstalleerd. Volg een van de volgende tutorials om de ESP32 op de Arduino IDE te installeren, als u dat nog niet hebt gedaan. (Als u deze stap al hebt uitgevoerd, kunt u doorgaan naar de volgende stap.)
ESP32 Add-on installeren in Arduino IDE
Open de code Project_4_ESP32_PIR_Motion_Sensor.ino in Arduino IDE.
Demonstratie
Upload de code naar je ESP32-bord. Zorg dat je het juiste bord en de juiste COM-poort hebt geselecteerd. Upload code referentiestappen.
Open de seriële monitor met een baudrate van 115200.LAFVIN ESP32 Basis Starter Kit - Demonstratie 1Beweeg uw hand voor de PIR-sensor. De zoemer zou moeten aangaan en het bericht wordt afgedrukt in de Serial Monitor met de tekst "Beweging gedetecteerd! Zoemeralarm".
Na 4 seconden zou de zoemer moeten uitschakelen.LAFVIN ESP32 Basis Starter Kit - zoemer

Project 5 ESP32-schakelaar Web Server

In dit project maak je een stand-alone web server met een ESP32 die uitgangen (twee LED's) bestuurt met behulp van de Arduino IDE-programmeeromgeving. De web server is mobiel responsief en kan worden benaderd met elk apparaat dat als browser op het lokale netwerk is. We laten u zien hoe u de web server en hoe de code stap voor stap werkt.
Project voorbijview
Voordat we direct naar het project gaan, is het belangrijk om te schetsen wat onze web server zal doen, zodat het later gemakkelijker is om de stappen te volgen.

  • De web De server die je gaat bouwen bestuurt twee LED's die verbonden zijn met de ESP32 GPIO 26 en GPIO 27;
  • Je hebt toegang tot de ESP32 web server door het ESP32 IP-adres in te typen in een browser in het lokale netwerk;
  • Door op de knoppen op uw web server kunt u direct de status van elke LED wijzigen.

Benodigde onderdelen
Voor deze tutorial heb je de volgende onderdelen nodig:

  • ESP32 DEVKIT V1-bord
  • 2x 5mm LED
  • 2x 200 Ohm weerstand
  • Broodplank
  • Jumper-draden

Schematisch
Begin met het bouwen van het circuit. Sluit twee LED's aan op de ESP32 zoals weergegeven in het volgende schema: één LED aangesloten op GPIO 26 en de andere op GPIO 27.
Opmerking: We gebruiken het ESP32 DEVKIT DOIT-bord met 36 pinnen. Controleer de pinout van het bord dat u gebruikt voordat u het circuit in elkaar zet.LAFVIN ESP32 Basis Starter Kit - SchematischCode
Hier bieden we de code die de ESP32 creëert web server. Open de code Project_5_ESP32_Switch _Web_Server.ino in arduino IDE, maar upload het nog niet. Je moet wat wijzigingen aanbrengen om het voor jou te laten werken.
We programmeren de ESP32 met Arduino IDE, dus zorg ervoor dat je de ESP32-add-on hebt geïnstalleerd voordat je verdergaat: (Als je deze stap al hebt uitgevoerd, kun je naar de volgende stap gaan.)
ESP32 Add-on installeren in Arduino IDE
Uw netwerkreferenties instellen
U moet de volgende regels aanpassen met uw netwerkreferenties: SSID en wachtwoord. De code is goed becommentarieerd over waar u de wijzigingen moet aanbrengen.LAFVIN ESP32 Basic Starter Kit - NetwerkreferentiesDe code uploaden
Nu kunt u de code uploaden en de web server zal direct werken.
Volg de volgende stappen om code naar de ESP32 te uploaden:

  1. Sluit uw ESP32-kaart aan op uw computer;
  2. Selecteer in de Arduino IDE je bord in Extra > Bord (in ons geval gebruiken we het ESP32 DEVKIT DOIT-bord);LAFVIN ESP32 Basic Starter Kit - De code uploaden
  3. Selecteer de COM-poort in Extra > Poort.LAFVIN ESP32 Basis Starter Kit - Gereedschapspoort
  4. Druk op de Upload-knop in de Arduino IDE en wacht een paar seconden terwijl de code wordt gecompileerd en naar je bord wordt geüpload.LAFVIN ESP32 Basis Starter Kit - ICON 7
  5. Wacht op het bericht ‘Uploaden voltooid’.LAFVIN ESP32 Basic Starter Kit - Uploaden voltooid 1

Het ESP IP-adres vinden
Nadat u de code hebt geüpload, opent u de Serial Monitor met een baudrate van 115200.LAFVIN ESP32 Basis Starter Kit - ESP IP-adresDruk op de ESP32 EN-knop (reset). De ESP32 maakt verbinding met wifi en geeft het ESP IP-adres weer op de seriële monitor. Kopieer dat IP-adres, omdat u het nodig hebt om toegang te krijgen tot de ESP32 web server.LAFVIN ESP32 Basis Starterkit - web serverToegang tot de Web Server
Om toegang te krijgen tot de web server, open uw browser, plak het ESP32 IP-adres erin en u ziet de volgende pagina.
Opmerking: Uw browser en ESP32 moeten op hetzelfde LAN zijn aangesloten.LAFVIN ESP32 Basic Starter Kit - Toegang tot de Web ServerAls u naar de Serial Monitor kijkt, ziet u wat er op de achtergrond gebeurt. De ESP ontvangt een HTTP-verzoek van een nieuwe client (in dit geval uw browser).LAFVIN ESP32 Basis Starter Kit - HTTP-verzoekU kunt ook andere informatie over de HTTP-aanvraag bekijken.
Demonstratie
Nu kunt u testen of uw web server werkt goed. Klik op de knoppen om de LED's te bedienen.LAFVIN ESP32 Basis Starter Kit - achtergrondTegelijkertijd kunt u een kijkje nemen op de Serial Monitor om te zien wat er op de achtergrond gebeurt. Bijvoorbeeldample, wanneer u op de knop klikt om GPIO 26 AAN te zetten, ontvangt ESP32 een verzoek op de /26/on URL.LAFVIN ESP32 Basis Starterkit - URLWanneer de ESP32 dat verzoek ontvangt, schakelt hij de LED die is aangesloten op GPIO 26 in en werkt hij de status ervan bij op de web pagina.LAFVIN ESP32 Basis Starterkit - web paginaDe knop voor GPIO 27 werkt op een vergelijkbare manier. Test of deze goed werkt.LAFVIN ESP32 Basic Starter Kit - werkt naar behoren

Hoe de code werkt

In dit gedeelte gaan we dieper in op de code om te zien hoe deze werkt.
Het eerste wat u moet doen, is de WiFi-bibliotheek toevoegen.LAFVIN ESP32 Basis Starter Kit - WiFi-bibliotheekZoals eerder vermeld, moet u uw ssid en wachtwoord in de volgende regels tussen dubbele aanhalingstekens plaatsen.LAFVIN ESP32 Basic Starter Kit - dubbele aanhalingstekensVervolgens stelt u uw web server naar poort 80.LAFVIN ESP32 Basis Starterkit - web serverDe volgende regel maakt een variabele om de header van de HTTP-aanvraag op te slaan:LAFVIN ESP32 Basis Starter Kit - HTTPrequestVervolgens maakt u hulpvariabelen om de huidige status van uw outputs op te slaan. Als u meer outputs wilt toevoegen en de status wilt opslaan, moet u meer variabelen maken.LAFVIN ESP32 Basis Starter Kit - variabelenU moet ook een GPIO toewijzen aan elk van uw uitgangen. Hier gebruiken we GPIO 26 en GPIO 27. U kunt elke andere geschikte GPIO gebruiken.LAFVIN ESP32 Basic Starter Kit - andere geschikteinstellen()
Laten we nu naar setup() gaan. Eerst starten we een seriële communicatie met een baudrate van 115200 voor foutopsporingsdoeleinden.LAFVIN ESP32 Basic Starter Kit - doeleindenU definieert uw GPIO's ook als OUTPUT's en stelt ze in op LOW.LAFVIN ESP32 Basic Starter Kit - GPIO's als UITGANGENMet de volgende regels start u de Wi-Fi-verbinding met WiFi.begin(ssid, wachtwoord), wacht u tot de verbinding succesvol is en drukt u het ESP IP-adres af in de seriële monitor.LAFVIN ESP32 Basis Starter Kit - SerieelLAFVIN ESP32 Basis Starter Kit - Serie 1lus()
In de loop() programmeren we wat er gebeurt als een nieuwe client een verbinding tot stand brengt met de web server.
De ESP32 luistert altijd naar inkomende clients met de volgende regel:LAFVIN ESP32 Basis Starter Kit - lusWanneer een verzoek van een client wordt ontvangen, slaan we de inkomende gegevens op. De while-lus die volgt, blijft actief zolang de client verbonden blijft. We raden u aan het volgende deel van de code niet te wijzigen, tenzij u precies weet wat u doet.LAFVIN ESP32 Basic Starter Kit - preciesLAFVIN ESP32 Basis Starter Kit - precies 1LAFVIN ESP32 Basis Starter Kit - precies 2Het volgende gedeelte van de if- en else-instructies controleert welke knop in uw web pagina, en regelt de outputs dienovereenkomstig. Zoals we eerder hebben gezien, doen we een verzoek op verschillende URLs afhankelijk van de ingedrukte knop.LAFVIN ESP32 Basic Starter Kit - knop ingedruktLAFVIN ESP32 Basic Starter Kit - knop ingedrukt 1Bijvoorbeeldample, als je op de GPIO 26 ON-knop drukt, ontvangt de ESP32 een verzoek op de /26/ON URL (we kunnen die informatie zien op de HTTP-header op de Serial Monitor). Dus we kunnen controleren of de header de expressie GET /26/on bevat. Als dat zo is, veranderen we de output26state variabele naar ON, en de ESP32 zet de LED aan.
Dit werkt op dezelfde manier voor de andere knoppen. Dus als u meer outputs wilt toevoegen, moet u dit deel van de code aanpassen om ze op te nemen.
De HTML weergeven web pagina
Het volgende dat u moet doen, is het maken van de web pagina. De ESP32 stuurt een antwoord naar uw browser met wat HTML-code om de web pagina.
De web pagina wordt naar de client verzonden met behulp van deze expressie client.println(). U moet opgeven wat u naar de client wilt verzenden als argument.
Het eerste wat we altijd moeten versturen is de volgende regel, die aangeeft dat we HTML versturen.LAFVIN ESP32 Basic Starter Kit - HTML verzendenDan maakt de volgende regel de web pagina responsief in elke web browser.LAFVIN ESP32 Basis Starterkit - web browserEn het volgende wordt gebruikt om verzoeken op het favicon te voorkomen. – U hoeft zich geen zorgen te maken over deze regel.LAFVIN ESP32 Basis Starter Kit - client.println

Stijl de Web Pagina

Vervolgens hebben we wat CSS-tekst om de knoppen en de web paginaweergave.
We kiezen het Helvetica-lettertype en definiëren dat de inhoud als een blok moet worden weergegeven en in het midden moet worden uitgelijnd.LAFVIN ESP32 Basis Starter Kit - Styling van de Web PaginaWe stylen onze knoppen met de kleur #4CAF50, zonder rand, tekst in witte kleur en met deze padding: 16px 40px. We stellen ook de tekstdecoratie in op none, definiëren de lettergrootte, de marge en de cursor op een pointer.LAFVIN ESP32 Basis Starter Kit - aanwijzerWe definiëren ook de stijl voor een tweede knop, met alle eigenschappen van de knop die we eerder hebben gedefinieerd, maar met een andere kleur. Dit wordt de stijl voor de uitknop.LAFVIN ESP32 Basis Starter Kit - client.println 1

Het instellen van de Web Pagina Eerste Kop
In de volgende regel kunt u de eerste kop van uw web pagina. Hier hebben we “ESP32 Web Server”, maar u kunt deze tekst naar wens wijzigen.LAFVIN ESP32 Basis Starterkit - Web Pagina kopDe knoppen en bijbehorende status weergeven
Vervolgens schrijft u een alinea om de huidige status van GPIO 26 weer te geven. Zoals u kunt zien gebruiken we de variabele output26State, zodat de status direct wordt bijgewerkt wanneer deze variabele verandert.LAFVIN ESP32 Basic Starter Kit - variabele wijzigingenVervolgens tonen we de aan- of uitknop, afhankelijk van de huidige status van de GPIO. Als de huidige status van de GPIO uit is, tonen we de AAN-knop, anders tonen we de UIT-knop.LAFVIN ESP32 Basic Starter Kit - toon de UIT-knopWe gebruiken dezelfde procedure voor GPIO 27.
De verbinding sluiten
Wanneer het antwoord ten slotte is afgelopen, wissen we de headervariabele en verbreken we de verbinding met de client met client.stop().LAFVIN ESP32 Basic Starter Kit - De verbinding sluiten

Afronden

In deze tutorial hebben we je laten zien hoe je een web server met de ESP32. We hebben je een eenvoudige ex laten zienampdie twee LED's aanstuurt, maar het idee is om die LED's te vervangen door een relais of een andere uitgang die u wilt aansturen.

Project 6 RGB LED Web Server

In dit project laten we je zien hoe je een RGB LED op afstand kunt bedienen met een ESP32-bord met behulp van een web server met een kleurenkiezer.
Project voorbijview
Voordat we beginnen, laten we eens kijken hoe dit project werkt:LAFVIN ESP32 Basis Starter Kit - Project Afgelopenview

  • De ESP32 web De server toont een kleurenkiezer.
  • Wanneer u een kleur kiest, doet uw browser een verzoek op een URL die de R-, G- en B-parameters van de geselecteerde kleur bevat.
  • Uw ESP32 ontvangt het verzoek en splitst de waarde voor elke kleurparameter.
  • Vervolgens wordt een PWM-signaal met de bijbehorende waarde naar de GPIO's gestuurd die de RGB-LED aansturen.

Hoe werken RGB-LED's?
Bij een RGB-led met gemeenschappelijke kathode delen alle drie de leds een negatieve aansluiting (kathode). Alle in de kit inbegrepen leds zijn RGB-leds met gemeenschappelijke kathode.LAFVIN ESP32 Basic Starter Kit - RGB LED's werkenHoe creëer je verschillende kleuren?
Met een RGB-LED kunt u uiteraard rood, groen en blauw licht produceren. Door de intensiteit van elke LED te configureren, kunt u ook andere kleuren produceren.
Bijvoorbeeldample, om puur blauw licht te produceren, zou je de blauwe LED op de hoogste intensiteit zetten en de groene en rode LED's op de laagste intensiteit. Voor een wit licht, zou je alle drie de LED's op de hoogste intensiteit zetten.
Kleuren mengen
Om andere kleuren te produceren, kunt u de drie kleuren combineren in verschillende intensiteiten. Om de intensiteit van elke LED aan te passen, kunt u een PWM-signaal gebruiken.
Omdat de LED-lampjes heel dicht bij elkaar zitten, zien onze ogen het resultaat van de kleurencombinatie, in plaats van de drie kleuren afzonderlijk.
Om een ​​idee te krijgen hoe u de kleuren kunt combineren, kunt u het volgende schema bekijken.
Dit is de eenvoudigste kleurenmengtabel, maar geeft u wel een idee van hoe het werkt en hoe u verschillende kleuren kunt produceren.LAFVIN ESP32 Basis Starter Kit - verschillende kleurenBenodigde onderdelen
Voor dit project heb je de volgende onderdelen nodig:

  • ESP32 DEVKIT V1-bord
  • RGB-LED
  • 3x 220 ohm weerstanden
  • Jumper-draden
  • Broodplank

SchematischLAFVIN ESP32 Basis Starter Kit - SchematischCode
We programmeren de ESP32 met Arduino IDE, dus zorg ervoor dat je de ESP32-add-on hebt geïnstalleerd voordat je verdergaat: (Als je deze stap al hebt uitgevoerd, kun je naar de volgende stap gaan.)

  • ESP32 Add-on installeren in Arduino IDE

Nadat u het circuit hebt gemonteerd, opent u de code
Project_6_RGB_LED_Web_Server.ino in Arduino IDE.
Vergeet niet uw netwerkgegevens in te voeren voordat u de code uploadt, zodat de ESP verbinding kan maken met uw lokale netwerk.LAFVIN ESP32 Basis Starter Kit - lokaal netwerkHoe de code werkt
De ESP32-schets maakt gebruik van de WiFi.h-bibliotheek.LAFVIN ESP32 Basis Starter Kit - WiFi.h-bibliotheekDe volgende regels definiëren tekenreeksvariabelen om de parameters R, G en B uit de aanvraag vast te houden.LAFVIN ESP32 Basic Starter Kit - Snaar roodSnaarDe volgende vier variabelen worden later gebruikt om de HTTP-aanvraag te decoderen.LAFVIN ESP32 Basis Starter Kit - HTTP-verzoekMaak drie variabelen voor de GPIO's die de strip R-, G- en B-parameters zullen besturen. In dit geval gebruiken we GPIO 13, GPIO 12 en GPIO 14.LAFVIN ESP32 Basic Starter Kit - GPIO's nodigDeze GPIO's moeten PWM-signalen uitsturen, dus we moeten eerst de PWM-eigenschappen configureren. Stel de PWM-signaalfrequentie in op 5000 Hz. Koppel vervolgens een PWM-kanaal aan elke kleurLAFVIN ESP32 Basis Starter Kit - elke kleurEn stel ten slotte de resolutie van de PWM-kanalen in op 8-bitsLAFVIN ESP32 Basic Starter Kit - PWM-kanalenIn setup() wijst u de PWM-eigenschappen toe aan de PWM-kanalenLAFVIN ESP32 Basic Starter Kit - PWM-kanalenSluit de PWM-kanalen aan op de bijbehorende GPIO'sLAFVIN ESP32 Basic Starter Kit - bijbehorende GPIO'sHet volgende codegedeelte toont de kleurenkiezer in uw web pagina en doet een verzoek op basis van de door u gekozen kleur.LAFVIN ESP32 Basis Starter Kit - gepluktLAFVIN ESP32 Basis Starter Kit - client.printlnLAFVIN ESP32 Basis Starter Kit - client.println 1Wanneer u een kleur kiest, ontvangt u een verzoek met de volgende indeling.LAFVIN ESP32 Basic Starter Kit - volgend formaat

We moeten deze string dus splitsen om de parameters R, G en B te krijgen. De parameters worden opgeslagen in de variabelen redString, greenString en blueString en kunnen waarden hebben tussen 0 en 255.LAFVIN ESP32 Basis Starter Kit - headerLAFVIN ESP32 Basis Starter Kit - header 1Om de strip met de ESP32 te besturen, gebruikt u de ledcWrite()-functie om PWM-signalen te genereren met de waarden die zijn gedecodeerd uit de HTTP verzoek.LAFVIN ESP32 Basis Starter Kit - HTTP-verzoek 1Opmerking: leer meer over PWM met ESP32: Project 3 ESP32 PWM (analoge uitgang)
Om de strip met de ESP8266 te bedienen, hoeven we alleen maar te gebruiken
de functie analogWrite() om PWM-signalen te genereren met de waarden die zijn gedecodeerd uit de HTPP-aanvraag.
analogWrite(rodePin, rodeString.toInt());
analogWrite(groenePin, groeneString.toInt());
analoogSchrijven(bluePin, blueString.toInt())
Omdat we de waarden in een tekenreeksvariabele krijgen, moeten we ze met behulp van de toInt()-methode omzetten naar gehele getallen.
Demonstratie
Nadat u uw netwerkgegevens hebt ingevoerd, selecteert u het juiste bord en de juiste COM-poort en uploadt u de code naar uw ESP32. Stappen voor het uploaden van de code.
Na het uploaden opent u de Serial Monitor op een baudrate van 115200 en drukt u op de ESP Enable/Reset-knop. U zou het IP-adres van het board moeten krijgen.LAFVIN ESP32 Basic Starter Kit - zelfde LANOpen uw browser en voer het ESP IP-adres in. Gebruik nu de kleurenkiezer om een ​​kleur voor de RGB-led te kiezen.
Vervolgens moet u op de knop 'Kleur wijzigen' klikken om de kleur te activeren.LAFVIN ESP32 Basis Starter Kit - RGB LEDOm de RGB LED uit te schakelen, selecteert u de kleur zwart.
De sterkste kleuren (bovenaan de kleurenkiezer) leveren de beste resultaten op.LAFVIN ESP32 Basic Starter Kit - betere resultaten

Project 7 ESP32-relais Web Server

Een relais gebruiken met de ESP32 is een geweldige manier om huishoudelijke AC-apparaten op afstand te bedienen. Deze tutorial legt uit hoe u een relaismodule met de ESP32 bedient.
We gaan kijken hoe een relaismodule werkt, hoe je het relais aansluit op de ESP32 en hoe je een relaismodule bouwt. web server om een ​​relais op afstand te bedienen.
Introductie van relais
Een relais is een elektrisch bediende schakelaar en net als elke andere schakelaar kan deze aan of uit worden gezet, waarbij de stroom wel of niet door kan gaan. Het kan worden aangestuurd met een laag volumetages, zoals de 3.3V die door de ESP32 GPIO's wordt geleverd en waarmee we hoge volumes kunnen regelentagzoals 12V, 24V of netspanningtage (230V in Europa en 120V in de VS).LAFVIN ESP32 Basis Starter Kit - Introductie van relaisAan de linkerkant bevinden zich twee sets van drie aansluitingen om hoogvolume-apparaten aan te sluitentages, en de pinnen aan de rechterkant (laag-volumetage) verbinding maken met de ESP32 GPIO's.
Hoofdvolumetage AansluitingenLAFVIN ESP32 Basis Starter Kit - Netvoeding Voltage AansluitingenDe relaismodule die u op de vorige foto ziet, heeft twee aansluitingen met elk drie aansluitingen: common (COM), normally closed (NC) en normally open (NO).

  • COM: sluit de stroom aan die u wilt regelen (netspanning)tagen).
  • NC (Normally Closed): de normaal gesloten configuratie wordt gebruikt wanneer u wilt dat het relais standaard gesloten is. De NC- en COM-pinnen zijn verbonden, wat betekent dat de stroom stroomt tenzij u een signaal van de ESP32 naar de relaismodule stuurt om het circuit te openen en de stroom te stoppen.
  • NO (Normally Open): bij de normaal open configuratie werkt het precies andersom: er is geen verbinding tussen de NO- en COM-pinnen, dus het circuit is verbroken tenzij u een signaal vanaf de ESP32 stuurt om het circuit te sluiten.

Controle pinnenLAFVIN ESP32 Basis Starter Kit - ControlepennenDe lage-voltagDe kant heeft een set van vier pinnen en een set van drie pinnen. De eerste set bestaat uit VCC en GND om de module van stroom te voorzien, en input 1 (IN1) en input 2 (IN2) om respectievelijk de onderste en bovenste relais te bedienen.
Als uw relaismodule maar één kanaal heeft, hebt u maar één IN-pin. Als u vier kanalen hebt, hebt u vier IN-pins, enzovoort.
Het signaal dat u naar de IN-pinnen stuurt, bepaalt of het relais actief is of niet. Het relais wordt geactiveerd wanneer de invoer onder ongeveer 2V komt. Dit betekent dat u de volgende scenario's krijgt:

  • Normaal gesloten configuratie (NC):
  • HOOG signaal – er stroomt stroom
  • LAAG signaal – er stroomt geen stroom
  • Normaal open configuratie (NO):
  • HOOG signaal – er stroomt geen stroom
  • LAAG signaal – stroom in stroming

U gebruikt een normaal gesloten configuratie als de stroom er het grootste deel van de tijd moet zijn en u deze slechts af en toe wilt stoppen.
Gebruik een normaal open configuratie als u wilt dat de stroom af en toe vloeit (bijvoorbeeldample, zet al aanamp af en toe).
Selectie van de voedingLAFVIN ESP32 Basis Starter Kit - VoedingsselectieDe tweede set pinnen bestaat uit GND-, VCC- en JD-VCC-pinnen.
De JD-VCC-pin voedt de elektromagneet van het relais. Let op dat de module een jumperkap heeft die de VCC- en JD-VCC-pinnen verbindt; degene die hier wordt getoond is geel, maar die van u kan een andere kleur hebben.
Met de jumperdop erop zijn de VCC- en JD-VCC-pinnen verbonden. Dat betekent dat de relais-elektromagneet rechtstreeks wordt gevoed door de ESP32-voedingspin, dus de relaismodule en de ESP32-circuits zijn niet fysiek van elkaar geïsoleerd.
Zonder de jumperkap moet u een onafhankelijke stroombron leveren om de elektromagneet van het relais van stroom te voorzien via de JD-VCC-pin. Die configuratie isoleert de relais fysiek van de ESP32 met de ingebouwde optocoupler van de module, die schade aan de ESP32 voorkomt in geval van elektrische pieken.
SchematischLAFVIN ESP32 Basis Starter Kit - SchematischWaarschuwing: Gebruik van hoge voltagDe voedingen kunnen ernstig letsel veroorzaken.
Daarom worden er 5mm LED's gebruikt in plaats van hoge voedingsspanningen.tage-lampen in het experiment. Als u niet bekend bent met netstroomtage vraag iemand die je kan helpen. Zorg ervoor dat alles losgekoppeld is van het lichtnet tijdens het programmeren van de ESP of het bedraden van je circuit.tage.LAFVIN ESP32 Basis Starter Kit - netstroomtageDe bibliotheek voor ESP32 installeren
Om dit te bouwen web server, gebruiken we de ESPAsyncWebServerbibliotheek en AsyncTCP-bibliotheek.
ESPAsync installerenWebServerbibliotheek
Volg de volgende stappen om de ESPAsyncWebServer bibliotheek:

  1. Klik hier om de ESPAsync te downloadenWebServerbibliotheek. Je zou moeten hebben
    een .zip-map in uw Downloads-map
  2. Pak de .zip-map uit en je zou ESPAsync moeten krijgenWebServer-master-map
  3. Hernoem uw map van ESPAsyncWebServer-master naar ESPAsyncWebServer
  4. Verplaats de ESPAsyncWebServermap naar uw Arduino IDE-installatiebibliothekenmap

Als alternatief kunt u in uw Arduino IDE naar Schets > Opnemen gaan
Bibliotheek > .ZIP-bibliotheek toevoegen… en selecteer de bibliotheek die u zojuist hebt gedownload.
De AsyncTCP-bibliotheek voor ESP32 installeren
De ESPAsyncWebServer bibliotheek vereist de AsyncTCP bibliotheek om te werken. Volgen
De volgende stappen om die bibliotheek te installeren:

  1. Klik hier om de AsyncTCP-bibliotheek te downloaden. U zou een .zip-map in uw Downloads-map moeten hebben
  2. Pak de .zip-map uit en je zou de AsyncTCP-master-map moeten krijgen
    1. Hernoem uw map van AsyncTCP-master naar AsyncTCP
    3. Verplaats de map AsyncTCP naar de map met uw Arduino IDE-installatiebibliotheken
    4. Open ten slotte uw Arduino IDE opnieuw

Als alternatief kunt u in uw Arduino IDE naar Schets > Opnemen gaan
Bibliotheek > .ZIP-bibliotheek toevoegen… en selecteer de bibliotheek die u zojuist hebt gedownload.
Code
We programmeren de ESP32 met Arduino IDE, dus zorg ervoor dat je de ESP32-add-on hebt geïnstalleerd voordat je verdergaat: (Als je deze stap al hebt uitgevoerd, kun je naar de volgende stap gaan.)
ESP32 Add-on installeren in Arduino IDE
Nadat u de vereiste bibliotheken hebt geïnstalleerd, opent u de code Project_7_ESP32_Relay_Web_Server.ino in Arduino IDE.
Vergeet niet uw netwerkgegevens in te voeren voordat u de code uploadt, zodat de ESP verbinding kan maken met uw lokale netwerk.LAFVIN ESP32 Basic Starter Kit - lokaal netwerkDemonstratie
Nadat u de nodige wijzigingen hebt aangebracht, uploadt u de code naar uw ESP32. Stappen voor het uploaden van de code.
Open de Serial Monitor met een baudrate van 115200 en druk op de ESP32 EN-knop om het IP-adres te verkrijgen. Open vervolgens een browser in uw lokale netwerk en typ het ESP32 IP-adres om toegang te krijgen tot de web server.
Open de Serial Monitor met een baudrate van 115200 en druk op de ESP32 EN-knop om het IP-adres te verkrijgen. Open vervolgens een browser in uw lokale netwerk en typ het ESP32 IP-adres om toegang te krijgen tot de web server.LAFVIN ESP32 Basis Starterkit - web serverOpmerking: Uw browser en ESP32 moeten op hetzelfde LAN zijn aangesloten.
Het volgende zou dan moeten verschijnen, met twee knoppen voor het aantal relais dat u in uw code hebt gedefinieerd.LAFVIN ESP32 Basis Starter Kit - smartphoneNu kunt u de knoppen gebruiken om uw relais te bedienen met uw smartphone.LAFVIN ESP32 Basis Starter Kit - smartphone 1

Project_8_Uitvoerstatus_Synchronisatie_ Web_Server

Dit project laat zien hoe je de ESP32 of ESP8266 uitgangen kunt bedienen met een web server en een fysieke knop tegelijkertijd. De uitvoerstatus wordt bijgewerkt op de web pagina, ongeacht of deze via een fysieke knop wordt gewijzigd of web server.
Project voorbijview
Laten we eens snel kijken hoe het project werkt.LAFVIN ESP32 Basis Starter Kit - Project AfgelopenviewDe ESP32 of ESP8266 heeft een web server waarmee u de status van een uitvoer kunt beheren;

  • De huidige uitvoerstatus wordt weergegeven op de web server;
  • De ESP is ook verbonden met een fysieke drukknop die dezelfde uitgang bestuurt;
  • Als u de uitvoerstatus wijzigt met behulp van de fysieke drukknop, wordt de huidige status ook bijgewerkt op de web server.

Samengevat, met dit project kunt u dezelfde uitvoer besturen met behulp van een web server en een drukknop tegelijkertijd. Wanneer de uitvoerstatus verandert, web server is bijgewerkt.
Benodigde onderdelen
Hier is een lijst met de onderdelen die je nodig hebt om het circuit te bouwen:

  • ESP32 DEVKIT V1-bord
  • 5 mm-led
  • 220Ohm weerstand
  • Druk op de knop
  • 10k Ohm-weerstand
  • Broodplank
  • Jumper-draden

SchematischLAFVIN ESP32 Basis Starter Kit - Schema 1De bibliotheek voor ESP32 installeren
Om dit te bouwen web server, gebruiken we de ESPAsyncWebServerbibliotheek en AsyncTCP-bibliotheek. (Als u deze stap al hebt uitgevoerd, kunt u naar de volgende stap gaan.)
ESPAsync installerenWebServerbibliotheek
Volg de volgende stappen om ESPAsync te installerenWebServerbibliotheek:

  1. Klik hier om de ESPAsync te downloadenWebServerbibliotheek. Je zou moeten hebben
    een .zip-map in uw Downloads-map
  2. Pak de .zip-map uit en je zou ESPAsync moeten krijgenWebServer-master-map
  3. Hernoem uw map van ESPAsyncWebServer-master naar ESPAsyncWebServer
  4. Verplaats de ESPAsyncWebServermap naar uw Arduino IDE-installatiebibliothekenmap
    Als alternatief kunt u in uw Arduino IDE naar Schets > Opnemen gaan
    Bibliotheek > .ZIP-bibliotheek toevoegen… en selecteer de bibliotheek die u zojuist hebt gedownload.

De AsyncTCP-bibliotheek voor ESP32 installeren
De ESPAsyncWebServerbibliotheek vereist de AsyncTCP-bibliotheek om te werken. Volg de volgende stappen om die bibliotheek te installeren:

  1. Klik hier om de AsyncTCP-bibliotheek te downloaden. U zou een .zip-map in uw Downloads-map moeten hebben
  2. Pak de .zip-map uit en je zou de AsyncTCP-master-map moeten krijgen
  3. Hernoem uw map van AsyncTCP-master naar AsyncTCP
  4. Verplaats de map AsyncTCP naar de map met uw Arduino IDE-installatiebibliotheken
  5. Open ten slotte uw Arduino IDE opnieuw
    Als alternatief kunt u in uw Arduino IDE naar Schets > Opnemen gaan
    Bibliotheek > .ZIP-bibliotheek toevoegen… en selecteer de bibliotheek die u zojuist hebt gedownload.

Code
We programmeren de ESP32 met Arduino IDE, dus zorg ervoor dat je de ESP32-add-on hebt geïnstalleerd voordat je verdergaat: (Als je deze stap al hebt uitgevoerd, kun je naar de volgende stap gaan.)
ESP32 Add-on installeren in Arduino IDE
Nadat u de vereiste bibliotheken hebt geïnstalleerd, opent u de code
Project_8_Uitvoerstatus_Synchronisatie_Web_Server.ino in Arduino IDE.
Vergeet niet uw netwerkgegevens in te voeren voordat u de code uploadt, zodat de ESP verbinding kan maken met uw lokale netwerk.LAFVIN ESP32 Basis Starter Kit - Code

Hoe de code werkt

Knopstatus en uitvoerstatus
De ledState-variabele bevat de LED-uitvoerstatus. Standaard, wanneer de web server start, is het LAAG.LAFVIN ESP32 Basis Starter Kit - Code Works

De buttonState en lastButtonState worden gebruikt om te detecteren of de drukknop is ingedrukt of niet.LAFVIN ESP32 Basic Starter Kit - werd geperstKnop (web server)
We hebben de HTML voor het maken van de knop niet opgenomen in de variabele index_html.
Dat komt omdat we de mogelijkheid willen hebben om de status te veranderen, afhankelijk van de actuele LED-status. Deze status kan ook met de drukknop worden gewijzigd.
We hebben dus een tijdelijke aanduiding gemaakt voor de knop %BUTTONPLACEHOLDER%. Deze wordt vervangen door HTML-tekst om de knop later in de code te maken (dit gebeurt in de processor()-functie).LAFVIN ESP32 Basic Starter Kit - werd geperst 1processor()
De processor()-functie vervangt alle tijdelijke aanduidingen in de HTML-tekst met werkelijke waarden. Eerst controleert het of de HTML-teksten
plaatsaanduidingen %BUTTONPLACEHOLDER%.LAFVIN ESP32 Basis Starter Kit - processorRoep vervolgens de outputState()-functie aan die de huidige outputstatus retourneert. We slaan deze op in de outputStateValue-variabele.LAFVIN ESP32 Basis Starter Kit - outputStateGebruik daarna die waarde om de HTML-tekst te maken om de knop met de juiste status weer te geven:LAFVIN ESP32 Basis Starter Kit - code 4HTTP GET-verzoek om uitvoerstatus te wijzigen (JavaScript)
Wanneer u op de knop drukt, wordt de functie toggleCheckbox() aangeroepen. Deze functie zal een verzoek doen op verschillende URLs om de LED aan of uit te zetten.LAFVIN ESP32 Basis Starter Kit - JavaScriptOm de LED in te schakelen, wordt een verzoek gedaan op /update?state=1 URL:LAFVIN ESP32 Basis Starter Kit - element.checkedAnders doet het een verzoek op /update?state=0 URL.
HTTP GET-aanvraag om status bij te werken (JavaScript)
Om de uitvoerstatus up-to-date te houden op de web server, roepen we de volgende functie aan die een nieuw verzoek doet op de /state URL elke seconde.LAFVIN ESP32 Basis Starter Kit - Update StatusLAFVIN ESP32 Basis Starter Kit - Update Status 1Verzoeken behandelen
Vervolgens moeten we bepalen wat er gebeurt als de ESP32 of ESP8266 verzoeken ontvangt op die apparaten. URLs.
Wanneer een verzoek wordt ontvangen op de root /URL, sturen wij zowel de HTML-pagina als de processor.LAFVIN ESP32 Basic Starter Kit - Verwerk verzoekenLAFVIN ESP32 Basis Starter Kit - Verwerk verzoeken 1De volgende regels controleren of u een verzoek hebt ontvangen op /update?state=1 of /update?state=0 URL en verandert de ledState dienovereenkomstig.LAFVIN ESP32 Basis Starter Kit - ledStateLAFVIN ESP32 Basis Starter Kit - inputParamWanneer een verzoek wordt ontvangen op de /state URL, sturen we de huidige uitvoerstatus:LAFVIN ESP32 Basis Starter Kit - uitgangsstatuslus()
In de loop() debouncen we de drukknop en zetten we de LED aan of uit, afhankelijk van de waarde van de ledState variabel.LAFVIN ESP32 Basis Starter Kit - lus 1Demonstratie
Upload de code naar uw ESP32-bord. Upload codereferentiestappen.
Open vervolgens de seriële monitor met een baudrate van 115200. Druk op de ingebouwde EN/RST-knop om het IP-adres op te vragen.LAFVIN ESP32 Basis Starter Kit - DemonstratieOpen een browser op uw lokale netwerk en typ het ESP IP-adres. U zou toegang moeten hebben tot de web server zoals hieronder weergegeven.
Opmerking: Uw browser en ESP32 moeten op hetzelfde LAN zijn aangesloten.LAFVIN ESP32 Basis Starter Kit - browserU kunt de knop op de web server om de LED aan te zetten.LAFVIN ESP32 Basis Starterkit - web 1 serverU kunt dezelfde LED ook bedienen met de fysieke drukknop. De status wordt altijd automatisch bijgewerkt op de web server.

Project 9 ESP32 DHT11 Web Server

In dit project leert u hoe u een asynchrone ESP32 bouwt web server met de DHT11 die temperatuur en vochtigheid weergeeft met behulp van Arduino IDE.
Vereisten
De web server die we zullen bouwen, werkt de metingen automatisch bij zonder dat het nodig is om de web pagina.
Met dit project leert u:

  • Hoe u temperatuur en vochtigheid van DHT-sensoren kunt aflezen;
  • Bouw een asynchrone web server met behulp van de ESPAsyncWebServerbibliotheek;
  • Werk de sensorwaarden automatisch bij zonder dat u de gegevens hoeft te vernieuwen. web pagina.

Asynchroon Web Server
Om de web server zullen we gebruiken ESPAsyncWebServerbibliotheek die een eenvoudige manier biedt om een ​​asynchrone web server. Een asynchrone server bouwen web server heeft verschillende voordelentagzoals vermeld op de GitHub-pagina van de bibliotheek, zoals:

  • “Meer dan één verbinding tegelijkertijd verwerken”;
  • “Wanneer u het antwoord verzendt, bent u onmiddellijk klaar om andere verbindingen af ​​te handelen, terwijl de server op de achtergrond zorgt voor het verzenden van het antwoord”;
  • “Eenvoudige sjabloonverwerkingsengine voor het verwerken van sjablonen”;

Benodigde onderdelen
Om deze tutorial te voltooien, hebt u de volgende onderdelen nodig:

  • ESP32-ontwikkelbord
  • DHT11-module
  • Broodplank
  • Jumper-draden

SchematischLAFVIN ESP32 Basis Starter Kit - Schema 2Bibliotheken installeren
Voor dit project moet u een aantal bibliotheken installeren:

De DHT-sensorbibliotheek installeren
Om de DHT-sensor te kunnen lezen met behulp van Arduino IDE, moet u de volgende software installeren: DHT-sensorbibliotheekVolg de volgende stappen om de bibliotheek te installeren.

  1. Klik hier om de DHT Sensor-bibliotheek te downloaden. U zou een .zip-map in uw Downloads-map moeten hebben
  2. Pak de .zip-map uit en je zou de map DHT-sensor-library-master moeten krijgen
  3. Hernoem uw map van DHT-sensor-library-master naar DHT_sensor
  4. Verplaats de map DHT_sensor naar de map met uw Arduino IDE-installatiebibliotheken
  5. Open ten slotte uw Arduino IDE opnieuw

Het Adafruit Unified Sensor-stuurprogramma installeren
U moet ook de Adafruit Unified Sensor Driver-bibliotheek om met de DHT-sensor te werken. Volg de volgende stappen om de bibliotheek te installeren.

  1. Klik hier om de Adafruit Unified Sensor-bibliotheek te downloaden. U zou een .zip-map in uw Downloads-map moeten hebben
  2. Pak de .zip-map uit en je zou de map Adafruit_sensor-master moeten krijgen
  3. Hernoem uw map van Adafruit_sensor-master naar Adafruit_sensor
  4. Verplaats de map Adafruit_sensor naar de map met uw Arduino IDE-installatiebibliotheken
  5. Open ten slotte uw Arduino IDE opnieuw

ESPAsync installerenWebServerbibliotheek

Volg de volgende stappen om de ESPAsyncWebServer bibliotheek:

  1. Klik hier om de ESPAsync te downloadenWebServerbibliotheek. Je zou moeten hebben
    een .zip-map in uw Downloads-map
  2. Pak de .zip-map uit en je zou
    krijg ESPAsyncWebServer-master-map
  3. Hernoem uw map van ESPAsyncWebServer-master naar ESPAsyncWebServer
  4. Verplaats de ESPAsyncWebServermap naar uw Arduino IDE-installatiebibliothekenmap

De Async TCP-bibliotheek voor ESP32 installeren
De ESPAsyncWebServer bibliotheek vereist de AsyncTCP bibliotheek om te werken. Volg de volgende stappen om die bibliotheek te installeren:

  1. Klik hier om de AsyncTCP-bibliotheek te downloaden. U zou een .zip-map in uw Downloads-map moeten hebben
  2. Pak de .zip-map uit en je zou de AsyncTCP-master-map moeten krijgen
  3. Hernoem uw map van AsyncTCP-master naar AsyncTCP
  4. Verplaats de map AsyncTCP naar de map met uw Arduino IDE-installatiebibliotheken
  5. Open ten slotte uw Arduino IDE opnieuw

Code
We programmeren de ESP32 met Arduino IDE, dus zorg ervoor dat je de ESP32-add-on hebt geïnstalleerd voordat je verdergaat: (Als je deze stap al hebt uitgevoerd, kun je naar de volgende stap gaan.)
ESP32 Add-on installeren in Arduino IDE
Nadat u de vereiste bibliotheken hebt geïnstalleerd, opent u de code
Project_9_ESP32_DHT11_Web_Server.ino in Arduino IDE.
Vergeet niet uw netwerkgegevens in te voeren voordat u de code uploadt, zodat de ESP verbinding kan maken met uw lokale netwerk.LAFVIN ESP32 Basis Starter Kit - CodeHoe de code werkt
In de volgende paragrafen leggen we uit hoe de code werkt. Blijf lezen als u meer wilt weten of ga naar het Demonstratiegedeelte om het uiteindelijke resultaat te zien.
Bibliotheken importeren
Importeer eerst de vereiste bibliotheken. De WiFi, ESPAsyncWebServer en ESPAsyncTCP zijn nodig om de web server. De Adafruit_Sensor en de DHT-bibliotheken zijn nodig om te lezen van de DHT11- of DHT22-sensoren.LAFVIN ESP32 Basic Starter Kit - Bibliotheken importerenLAFVIN ESP32 Basis Starter Kit - Hoe de code werktDefinitie van variabelen
Definieer de GPIO waarmee de DHT-datapin is verbonden. In dit geval is deze verbonden met GPIO 4.LAFVIN ESP32 Basic Starter Kit - VariabelendefinitieSelecteer vervolgens het type DHT-sensor dat u gebruikt. In onze example, we gebruiken de DHT22. Als je een ander type gebruikt, hoef je alleen maar je sensor te uncommentariëren en alle anderen te commentariëren.LAFVIN ESP32 Basis Starter Kit - Variabelendefinitie 1

Instantieer een DHT-object met het type en de pin die we eerder hebben gedefinieerd.LAFVIN ESP32 Basis Starter Kit - Variabelendefinitie 2Maak een asyncWebServerobject op poort 80.LAFVIN ESP32 Basis Starter Kit - Variabelendefinitie 3Lees temperatuur- en vochtigheidsfuncties
We hebben twee functies gemaakt: een om de temperatuur te meten (readDHTTemperature()) en een om de vochtigheid te meten (readDHTHumidity()).LAFVIN ESP32 Basis Starter Kit - readDHTHumidityLAFVIN ESP32 Basis Starter Kit - sensormetingenHet verkrijgen van sensorwaarden is net zo eenvoudig als het gebruiken van de methoden readTemperature() en readHumidity() op het dht-object.LAFVIN ESP32 Basis Starter Kit - objectWe hebben ook een voorwaarde die twee streepjes (–) retourneert voor het geval de sensor de metingen niet kan verkrijgen.LAFVIN ESP32 Basic Starter Kit - metingenDe metingen worden geretourneerd als stringtype. Om een ​​float naar een string te converteren, gebruikt u de String()-functieLAFVIN ESP32 Basis Starter Kit - SnaarStandaard lezen we de temperatuur in graden Celsius. Om de temperatuur in graden Fahrenheit te krijgen, commenteer je de temperatuur in Celsius en uncommenteer je de temperatuur in Fahrenheit, zodat je het volgende hebt:LAFVIN ESP32 Basis Starter Kit - FahrenheitLAFVIN ESP32 Basis Starter Kit - Fahrenheit 1Upload de code
Upload nu de code naar je ESP32. Zorg ervoor dat je het juiste bord en de juiste COM-poort hebt geselecteerd. Upload code referentiestappen.
Na het uploaden opent u de Serial Monitor met een baudrate van 115200. Druk op de ESP32 resetknop. Het ESP32 IP-adres zou in de seriële monitor.LAFVIN ESP32 Basis Starter Kit - Upload de codeDemonstratie
Open een browser en typ het ESP32 IP-adres. Uw web De server moet de laatste sensormetingen weergeven.
Opmerking: Uw browser en ESP32 moeten op hetzelfde LAN zijn aangesloten.
Houd er rekening mee dat de temperatuur- en vochtigheidsmetingen automatisch worden bijgewerkt zonder dat u de gegevens hoeft te vernieuwen. web pagina.LAFVIN ESP32 Basis Starter Kit - Demonstratie 1

Project_10_ESP32_OLED_scherm

Dit project laat zien hoe je het 0.96 inch SSD1306 OLED-scherm met ESP32 kunt gebruiken met behulp van Arduino IDE.
Introductie van 0.96 inch OLED-scherm
De OLED-scherm In deze tutorial gebruiken we het SSD1306-model: een monochroom 0.96 inch-scherm met 128×64 pixels, zoals weergegeven in de volgende afbeelding.LAFVIN ESP32 Basis Starter Kit - OLED-schermHet OLED-scherm heeft geen backlight nodig, wat resulteert in een heel mooi contrast in donkere omgevingen. Bovendien verbruiken de pixels alleen energie als ze aan staan, dus het OLED-scherm verbruikt minder stroom in vergelijking met andere schermen.
Omdat het OLED-scherm het I2C-communicatieprotocol gebruikt, is de bedrading heel eenvoudig. U kunt de volgende tabel als referentie gebruiken.

OLED-pin ESP32
Wijn 3.3V
GND GND
SCL GPI 22
Zevende-dags Adventisten GPI 21

SchematischLAFVIN ESP32 Basis Starter Kit - SchematischInstallatie van SSD1306 OLED-bibliotheek – ESP32
Er zijn verschillende bibliotheken beschikbaar om het OLED-scherm met de ESP32 te bedienen.
In deze tutorial gebruiken we twee Adafruit-bibliotheken: Adafruit_SSD1306-bibliotheek En Adafruit_GFX-bibliotheek.
Volg de volgende stappen om deze bibliotheken te installeren.

  1. Open je Arduino IDE en ga naar Sketch > Include Library > Manage Libraries. De Library Manager zou moeten openen.
  2. Typ “SSD1306” in het zoekvak en installeer de SSD1306-bibliotheek van Adafruit.LAFVIN ESP32 Basis Starter Kit - OLEDLibrary–
  3. Nadat u de SSD1306-bibliotheek van Adafruit hebt geïnstalleerd, typt u 'GFX' in het zoekvak en installeert u de bibliotheek.LAFVIN ESP32 Basis Starter Kit - bibliotheek
  4. Start uw Arduino IDE opnieuw op nadat u de bibliotheken hebt geïnstalleerd.

Code
Nadat u de vereiste bibliotheken hebt geïnstalleerd, opent u Project_10_ESP32_OLED_Display.ino in Arduino IDE. code
We programmeren de ESP32 met Arduino IDE, dus zorg ervoor dat u de ESP32-add-on hebt geïnstalleerd voordat u verdergaat: (Als u deze stap al hebt uitgevoerd, kunt u doorgaan naar de volgende stap.)
ESP32 Add-on installeren in Arduino IDELAFVIN ESP32 Basis Starterkit - Code 1LAFVIN ESP32 Basis Starterkit - Code 2LAFVIN ESP32 Basis Starterkit - Code 3Hoe de code werkt
Bibliotheken importeren
Eerst moet u de benodigde bibliotheken importeren. De Wire-bibliotheek om I2C te gebruiken en de Adafruit-bibliotheken om naar het display te schrijven: Adafruit_GFX en Adafruit_SSD1306.LAFVIN ESP32 Basis Starter Kit - Code Werkt 1LAFVIN ESP32 Basis Starter Kit - Code Werkt 2Initialiseer het OLED-scherm
Vervolgens definieert u uw OLED-breedte en -hoogte. In dit voorbeeldample, we gebruiken een 128×64 OLED-scherm. Als u andere formaten gebruikt, kunt u dat wijzigen in de variabelen SCREEN_WIDTH en SCREEN_HEIGHT.LAFVIN ESP32 Basis Starter Kit - OLED-schermInitialiseer vervolgens een weergaveobject met de eerder gedefinieerde breedte en hoogte via het I2C-communicatieprotocol (&Wire).LAFVIN ESP32 Basis Starter Kit - communicatieprotocolDe (-1) parameter betekent dat uw OLED-scherm geen RESET-pin heeft. Als uw OLED-scherm wel een RESET-pin heeft, moet deze worden aangesloten op een GPIO. In dat geval moet u het GPIO-nummer als parameter doorgeven.
Initialiseer in setup() de seriële monitor met een baudrate van 115200 voor foutopsporingsdoeleinden.LAFVIN ESP32 Basic Starter Kit - doeleindenInitialiseer het OLED-scherm met de begin()-methode als volgt:LAFVIN ESP32 Basis Starter Kit - display.beginLAFVIN ESP32 Basis Starter Kit - Serial.printlnDit fragment print ook een bericht op de seriële monitor, voor het geval we geen verbinding kunnen maken met het beeldscherm.

LAFVIN ESP32 Basis Starter Kit - Serieel.println 1Als u een ander OLED-scherm gebruikt, moet u mogelijk het OLED-adres wijzigen. In ons geval is het adres 0x3C.LAFVIN ESP32 Basis Starter Kit - adresVoeg na het initialiseren van het scherm een ​​vertraging van twee seconden toe, zodat de OLED voldoende tijd heeft om te initialiseren voordat er tekst wordt geschreven:LAFVIN ESP32 Basis Starter Kit - vertragingDuidelijke weergave, lettergrootte, kleur en schrijf tekst instellen
Nadat u het display hebt geïnitialiseerd, wist u de displaybuffer met de clearDisplay()-methode:LAFVIN ESP32 Basis Starter Kit - display

Voordat u tekst gaat schrijven, moet u de tekstgrootte, de kleur en de plek instellen waar de tekst in het OLED-scherm wordt weergegeven.
Stel de lettergrootte in met de setTextSize()-methode:LAFVIN ESP32 Basis Starter Kit - display 1Stel de letterkleur in met de setTextColor()-methode:
Met WIT kiest u voor een wit lettertype en een zwarte achtergrond.
Definieer de positie waar de tekst begint met de setCursor(x,y) methode. In dit geval stellen we de tekst in om te beginnen bij de (0,0) coördinaten – in de linkerbovenhoek.LAFVIN ESP32 Basis Starter Kit - setTekstKleur 1Ten slotte kunt u de tekst naar het display sturen met behulp van de println()-methode, als volgtLAFVIN ESP32 Basis Starter Kit - code 5Vervolgens moet u de display()-methode aanroepen om de tekst daadwerkelijk op het scherm weer te geven.LAFVIN ESP32 Basis Starter Kit - display

De Adafruit OLED-bibliotheek biedt handige methoden om eenvoudig door tekst te scrollen.

  • startscrollright(0x00, 0x0F): scroll tekst van links naar rechts
  • startscrollleft(0x00, 0x0F): scroll tekst van rechts naar links
  • startscrolldiagright(0x00, 0x07): scroll tekst van de linkerbenedenhoek naar de rechterbovenhoek startscrolldiagright(0x00, 0x07): scroll tekst van de rechterbenedenhoek naar de linkerbovenhoek

Upload de code
Upload nu de code naar uw ESP32. Stappen voor het uploaden van de code.
Nadat u de code hebt geüpload, geeft het OLED-scherm een ​​scrollende tekst weer.LAFVIN ESP32 Basis Starter Kit - scrollende tekstLAFVIN-logo

Documenten / Bronnen

LAFVIN ESP32 Basis Starterkit [pdf] Gebruiksaanwijzing
ESP32 Basis Starterkit, ESP32, Basis Starterkit, Starterkit

Referenties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *