LAFVIN logoESP32 Basic starter
Kit

Pakkeliste

LAFVIN ESP32 Basic Starter Kit - Pakkeliste

ESP32 Introduktion

Ny til ESP32? Start her! ESP32 er en serie af billige og lavt strømforbrugende System on a Chip (SoC) mikrocontrollere udviklet af Espressif, der inkluderer trådløse Wi-Fi og Bluetooth-funktioner og dual-core processor. Hvis du er bekendt med ESP8266, er ESP32 dens efterfølger, fyldt med masser af nye funktioner.LAFVIN ESP32 Basic Starter Kit - ESP32 IntroduktionESP32 specifikationer
Hvis du ønsker at blive lidt mere teknisk og specifik, kan du tage et kig på følgende detaljerede specifikationer for ESP32 (kilde: http://esp32.net/)—for flere detaljer, tjek databladet):

  • Trådløs forbindelse WiFi: 150.0 Mbps datahastighed med HT40
  • Bluetooth: BLE (Bluetooth Low Energy) og Bluetooth Classic
  • Processor: Tensilica Xtensa Dual-Core 32-bit LX6 mikroprocessor, kører ved 160 eller 240 MHz
  • Hukommelse:
  • ROM: 448 KB (til opstart og kernefunktioner)
  • SRAM: 520 KB (for data og instruktioner)
  • RTC fas SRAM: 8 KB (til datalagring og hoved-CPU under RTC-start fra dyb dvaletilstand)
  • RTC langsom SRAM: 8KB (til co-processor-adgang under dyb dvaletilstand) eFuse: 1 Kbit (hvoraf 256 bit bruges til systemet (MAC-adresse og chipkonfiguration) og de resterende 768 bit er reserveret til kundeapplikationer, inkl. Flash-kryptering og chip-id)

Indbygget flash: flash tilsluttet internt via IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 og SD_DATA_1 på ESP32-D2WD og ESP32-PICO-D4.

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

Low Power: sikrer, at du stadig kan bruge ADC-konverteringer, f.eksample, under dyb søvn.
Periferisk input/output:

  • perifer grænseflade med DMA, der inkluderer kapacitiv berøring
  • ADC'er (analog-til-digital konverter)
  • DAC'er (Digital-til-Analog Converter)
  • I²C (Inter-Integrated Circuit)
  • UART (Universal Asynchronous Receiver/Transmitter)
  • SPI (Serial Peripheral Interface)
  • I²S (Integrated Interchip Sound)
  • RMII (Reduced Media-Independent Interface)
  • PWM (Pulse-Width Modulation)

Sikkerhed: hardwareacceleratorer til AES og SSL/TLS

ESP32 udviklingstavler

ESP32 refererer til den blottede ESP32-chip. Udtrykket "ESP32" bruges dog også til at henvise til ESP32-udviklingskort. Det er ikke nemt eller praktisk at bruge ESP32 bare chips, især når man lærer, tester og laver prototyper. Det meste af tiden vil du bruge et ESP32-udviklingskort.
Vi vil bruge ESP32 DEVKIT V1-kortet som reference. Billedet nedenfor viser ESP32 DEVKIT V1-kortet, version med 30 GPIO-ben.LAFVIN ESP32 Basic Starter Kit - ESP32 Development BoardsSpecifikationer – ESP32 DEVKIT V1
Følgende tabel viser en oversigt over ESP32 DEVKIT V1 DOIT-kortets funktioner og specifikationer:

Antal kerner 2 (dobbeltkerne)
Wi-Fi 2.4 GHz op til 150 Mbit/s
Bluetooth BLE (Bluetooth Low Energy) og ældre Bluetooth
Arkitektur 32 bits
Ur frekvens Op til 240 MHz
VÆDDER 512 KB
Pins 30 (afhængig af model)
Periferiudstyr Kapacitiv berøring, ADC (analog til digital konverter), DAC (digital til analog konverter), 12C (Inter-Integrated Circuit), UART (universal asynkron modtager/sender), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface) , 12S (Integreret Inter-IC
Lyd), RMII (Reduced Media-Independent Interface), PWM (pulsbreddemodulation) og mere.
Indbyggede knapper RESET og BOOT knapper
Indbyggede LED'er indbygget blå LED tilsluttet GPIO2; indbygget rød LED, der viser, at kortet får strøm
USB til UART
bro
CP2102

LAFVIN ESP32 Basic Starter Kit - ESP32 DEVKITDen leveres med et microUSB-interface, som du kan bruge til at forbinde kortet til din computer for at uploade kode eller sætte strøm på.
Den bruger CP2102-chippen (USB til UART) til at kommunikere med din computer via en COM-port ved hjælp af et serielt interface. En anden populær chip er CH340. Tjek, hvad der er USB til UART-chipkonverteren på dit kort, fordi du skal installere de nødvendige drivere, så din computer kan kommunikere med kortet (mere information om dette senere i denne vejledning).
Dette board kommer også med en RESET-knap (kan være mærket EN) for at genstarte boardet og en BOOT-knap for at sætte boardet i blinkende tilstand (tilgængelig for at modtage kode). Bemærk, at nogle boards muligvis ikke har en BOOT-knap.
Den kommer også med en indbygget blå LED, der er internt forbundet til GPIO 2. Denne LED er nyttig til fejlfinding for at give en form for visuel fysisk udgang. Der er også en rød LED, der lyser, når du giver strøm til kortet.LAFVIN ESP32 Basic Starter Kit -boardESP32 Pinout
ESP32-ydre enheder inkluderer:

  • 18 Analog-til-Digital Converter (ADC) kanaler
  • 3 SPI interfaces
  • 3 UART-grænseflader
  • 2 I2C-grænseflader
  • 16 PWM udgangskanaler
  • 2 digital-til-analog-konvertere (DAC)
  • 2 I2S interfaces
  • 10 kapacitive sensing GPIO'er

Funktionerne ADC (analog til digital konverter) og DAC (digital til analog konverter) er tildelt specifikke statiske ben. Du kan dog bestemme, hvilke ben der er UART, I2C, SPI, PWM osv. - du skal bare tildele dem i koden. Dette er muligt på grund af ESP32-chippens multipleksingsfunktion.
Selvom du kan definere pins egenskaber på softwaren, er der pins tildelt som standard som vist i følgende figurLAFVIN ESP32 Basic Starter Kit - ESP32 PinoutDerudover er der stifter med specifikke funktioner, der gør dem egnede eller ej til et bestemt projekt. Følgende tabel viser, hvilke ben der er bedst at bruge som input, output, og hvilke du skal være forsigtig.
De stifter, der er fremhævet med grønt, er OK at bruge. Dem, der er fremhævet med gult, er OK at bruge, men du skal være opmærksom, fordi de kan have en uventet adfærd, hovedsageligt ved opstart. De ben, der er fremhævet med rødt, anbefales ikke at bruge som input eller output.

GP IO Input Produktion Noter
0 trukket op OK udsender PWM-signal ved opstart, skal være LAV for at gå i blinkende tilstand
1 TX pin OK debug output ved opstart
2 OK OK tilsluttet til indbygget LED, skal efterlades svævende eller LAV for at gå i blinkende tilstand
3 OK RX pin HØJ ved støvlen
4 OK OK
5 OK OK udsender PWM-signal ved opstart, omsnøringsstift
12 OK OK støvlen fejler, hvis den trækkes højt, omsnøringsstift
13 OK OK
14 OK OK udsender PWM-signal ved opstart
15 OK OK udsender PWM-signal ved opstart, omsnøringsstift
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 kun input
35 OK kun input
36 OK kun input
39 OK kun input

Fortsæt med at læse for en mere detaljeret og dybdegående analyse af ESP32 GPIO'erne og dets funktioner.
Indtast kun stifter
GPIO'er 34 til 39 er GPI'er - kun input-ben. Disse stifter har ikke interne pull-up eller pull-down modstande. De kan ikke bruges som udgange, så brug kun disse ben som input:

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

SPI flash integreret på ESP-WROOM-32
GPIO 6 til GPIO 11 er eksponeret i nogle ESP32-udviklingskort. Disse ben er dog forbundet til den integrerede SPI-flash på ESP-WROOM-32 chippen og anbefales ikke til anden brug. Så brug ikke disse stifter i dine projekter:

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

Kapacitive berørings-GPIO'er
ESP32 har 10 interne kapacitive berøringssensorer. Disse kan mærke variationer i alt, der holder en elektrisk ladning, som den menneskelige hud. Så de kan registrere variationer induceret, når de rører ved GPIO'erne med en finger. Disse stifter kan nemt integreres i kapacitive puder og erstatte mekaniske knapper. De kapacitive berøringsstifter kan også bruges til at vække ESP32 fra dyb søvn. Disse interne berøringssensorer er forbundet til disse GPIO'er:

  • T0 (GPIO 4)
  • T1 (GPIO 0)
  • T2 (GPIO 2)
  • T3 (GPIO 15)
  • T4 (GPIO 13)
  • T5 (GPIO 12)
  • T6 (GPIO 14)
  • T7 (GPIO 27)
  • T8 (GPIO 33)
  • T9 (GPIO 32)

Analog til digital konverter (ADC)
ESP32 har 18 x 12 bit ADC-indgangskanaler (mens ESP8266 kun har 1x 10 bit ADC). Dette er de GPIO'er, der kan bruges som ADC og respektive kanaler:

  • 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)

Note: ADC2-ben kan ikke bruges, når der bruges Wi-Fi. Så hvis du bruger Wi-Fi, og du har problemer med at få værdien fra en ADC2 GPIO, kan du overveje at bruge en ADC1 GPIO i stedet. Det burde løse dit problem.
ADC-indgangskanalerne har en 12-bit opløsning. Det betyder, at du kan få analoge aflæsninger fra 0 til 4095, hvor 0 svarer til 0V og 4095 til 3.3V. Du kan også indstille opløsningen af ​​dine kanaler på koden og ADC-området.
ESP32 ADC-benene har ikke en lineær adfærd. Du vil sandsynligvis ikke være i stand til at skelne mellem 0 og 0.1V eller mellem 3.2 og 3.3V. Det skal du huske på, når du bruger ADC-stifterne. Du vil få en adfærd svarende til den, der er vist i følgende figur.LAFVIN ESP32 Basic Starter Kit - adfærdDigital til Analog Converter (DAC)
Der er 2 x 8 bit DAC-kanaler på ESP32 til at konvertere digitale signaler til analog voltage signaludgange. Disse er DAC-kanalerne:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO'er
Der er RTC GPIO-understøttelse på ESP32. GPIO'erne, der er dirigeret til RTC-lavstrømsundersystemet, kan bruges, når ESP32 er i dyb søvn. Disse RTC GPIO'er kan bruges til at vække ESP32 fra dyb søvn, når Ultra Low
Power (ULP) co-processor kører. Følgende GPIO'er kan bruges som en ekstern vækningskilde.

  • 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
ESP32 LED PWM-controlleren har 16 uafhængige kanaler, der kan konfigureres til at generere PWM-signaler med forskellige egenskaber. Alle ben, der kan fungere som udgange, kan bruges som PWM-ben (GPIO'er 34 til 39 kan ikke generere PWM).
For at indstille et PWM-signal skal du definere disse parametre i koden:

  • Signalets frekvens;
  • Driftscyklus;
  • PWM-kanal;
  • GPIO, hvor du vil udsende signalet.

I2C
ESP32 har to I2C-kanaler, og enhver pin kan indstilles som SDA eller SCL. Når du bruger ESP32 med Arduino IDE, er standard I2C-benene:

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

Hvis du vil bruge andre stifter, når du bruger ledningsbiblioteket, skal du blot ringe:
Wire.begin(SDA, SCL);
SPI
Som standard er pinmappingen for SPI:

SPI Mosi MISO CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

afbryder
Alle GPIO'er kan konfigureres som interrupts.
Strapping Pins
ESP32-chippen har følgende omsnøringsstifter:

  • GPIO 0 (skal være LAV for at gå i opstartstilstand)
  • GPIO 2 (skal være flydende eller LAV under opstart)
  • GPIO 4
  • GPIO 5 (skal være HØJ under opstart)
  • GPIO 12 (skal være LAV under opstart)
  • GPIO 15 (skal være HØJ under opstart)

Disse bruges til at sætte ESP32 i bootloader eller blinkende tilstand. På de fleste udviklingskort med indbygget USB/Seriel behøver du ikke bekymre dig om disse bens tilstand. Boardet sætter stifterne i den rigtige tilstand til blinkende eller opstartstilstand. Mere information om ESP32 Boot Mode Selection kan findes her.
Men hvis du har ydre enheder forbundet til disse ben, kan du have problemer med at prøve at uploade ny kode, flashe ESP32 med ny firmware eller nulstille kortet. Hvis du har nogle perifere enheder forbundet til omsnøringsstifterne, og du får problemer med at uploade kode eller blinke ESP32, kan det skyldes, at disse perifere enheder forhindrer ESP32 i at gå ind i den rigtige tilstand. Læs dokumentationen til valg af starttilstand for at guide dig i den rigtige retning. Efter nulstilling, blinkning eller opstart fungerer disse ben som forventet.
Pins HØJ ved Boot
Nogle GPIO'er ændrer deres tilstand til HIGH eller udsender PWM-signaler ved opstart eller nulstilling.
Dette betyder, at hvis du har udgange forbundet til disse GPIO'er, kan du få uventede resultater, når ESP32 nulstiller eller starter.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 til GPIO 11 (tilsluttet ESP32 integreret SPI flash-hukommelse – anbefales ikke at bruge).
  • GPIO 14
  • GPIO 15

Aktiver (DA)
Enable (EN) er 3.3V-regulatorens aktiveringsstift. Den er trukket op, så tilslut til jord for at deaktivere 3.3V-regulatoren. Det betyder, at du kan bruge denne pin tilsluttet en trykknap til at genstarte din ESP32, f.eksample.
GPIO-strøm trukket
Den absolutte maksimale strøm trukket pr. GPIO er 40mA i henhold til afsnittet "Anbefalede driftsbetingelser" i ESP32 databladet.
ESP32 Indbygget Hall Effect Sensor
ESP32 har også en indbygget halleffektsensor, der registrerer ændringer i magnetfeltet i omgivelserne
ESP32 Arduino IDE
Der er en tilføjelse til Arduino IDE, der giver dig mulighed for at programmere ESP32 ved hjælp af Arduino IDE og dets programmeringssprog. I denne vejledning viser vi dig, hvordan du installerer ESP32-kortet i Arduino IDE, uanset om du bruger Windows, Mac OS X eller Linux.
Forudsætninger: Arduino IDE installeret
Før du starter denne installationsprocedure, skal du have Arduino IDE installeret på din computer. Der er to versioner af Arduino IDE, du kan installere: version 1 og version 2.
Du kan downloade og installere Arduino IDE ved at klikke på følgende link: arduino.cc/da/Main/Software
Hvilken Arduino IDE-version anbefaler vi? I øjeblikket er der nogle plugins til ESP32 (som SPIFFS Filesystem Uploader Plugin), som endnu ikke er understøttet på Arduino 2. Så hvis du agter at bruge SPIFFS plugin i fremtiden, anbefaler vi at installere den ældre version 1.8.X. Du skal bare rulle ned på Arduino-softwaresiden for at finde den.
Installation af ESP32 Add-on i Arduino IDE
Følg disse næste instruktioner for at installere ESP32-kortet i din Arduino IDE:

  1. Gå til din Arduino IDE File> PræferencerLAFVIN ESP32 Basic Starter Kit - Præferencer
  2. Indtast følgende i "Yderligere bestyrelseschef URLs" felt:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Klik derefter på knappen "OK":LAFVIN ESP32 Basic Starter Kit - "OK" knapNote: hvis du allerede har ESP8266-kortene URL, kan du adskille URLs med et komma som følger:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Åbn Boards Manager. Gå til Tools > Board > Boards Manager...LAFVIN ESP32 Basic Starter Kit - EspressifSøg efter ESP32 and press install button for the “ESP32 by Espressif Systems“:LAFVIN ESP32 Basic Starter Kit - EspressifDet er det. Det bør installeres efter et par sekunder.LAFVIN ESP32 Basic Starter Kit - installeret

Upload testkode

Tilslut ESP32-kortet til din computer. Med din Arduino IDE åben, følg disse trin:

  1. Vælg dit board i menuen Værktøjer > Board (i mit tilfælde er det ESP32 DEV-modulet)LAFVIN ESP32 Basic Starter Kit - Værktøjstavle
  2. Vælg porten (hvis du ikke kan se COM-porten i din Arduino IDE, skal du installere CP210x USB til UART Bridge VCP-drivere):LAFVIN ESP32 Basic Starter Kit - UART Bridge
  3. Åbn følgende example under File > Eksamples > WiFi
    (ESP32) > WiFiScanLAFVIN ESP32 Basic Starter Kit - WiFiScanLAFVIN ESP32 Basic Starter Kit - WiFiScan 1
  4. En ny skitse åbner i din Arduino IDE:LAFVIN ESP32 Basic Starter Kit - Arduino IDE
  5. Tryk på Upload-knappen i Arduino IDE. Vent et par sekunder, mens koden kompileres og uploades til dit board.LAFVIN ESP32 Basic Starter Kit - bord
  6. Hvis alt gik som forventet, skulle du se en "Udfør upload." besked.LAFVIN ESP32 Basic Starter Kit - Færdig upload
  7. Åbn Arduino IDE Serial Monitor med en baudrate på 115200:LAFVIN ESP32 Basic Starter Kit - Skærm
  8. Tryk på ESP32 indbygget aktiveringsknap, og du skulle se de tilgængelige netværk i nærheden af ​​din ESP32:LAFVIN ESP32 Basic Starter Kit - Aktiver knap

Fejlfinding

Hvis du prøver at uploade en ny skitse til din ESP32, og du får denne fejlmeddelelse "En fatal fejl opstod: Kunne ikke oprette forbindelse til ESP32: Timeout... Connecting...". Det betyder, at din ESP32 ikke er i blinkende/upload-tilstand.
Når du har valgt det rigtige tavlenavn og COM por, skal du følge disse trin:
Hold "BOOT"-knappen nede på dit ESP32-kortLAFVIN ESP32 Basic Starter Kit - "BOOT"

  • Tryk på knappen "Upload" i Arduino IDE for at uploade din skitse:LAFVIN ESP32 Basic Starter Kit - ICON 6
  • Når du ser "Forbinder...." besked i din Arduino IDE, slip fingeren fra "BOOT"-knappen:LAFVIN ESP32 Basic Starter Kit - "Færdig upload
  • Derefter skulle du se meddelelsen "Udført upload".
    Det er det. Din ESP32 burde have den nye skitse kørende. Tryk på knappen "ENABLE" for at genstarte ESP32 og køre den nye uploadede skitse.
    Du bliver også nødt til at gentage denne knapsekvens, hver gang du vil uploade en ny skitse.

Projekt 1 ESP32 Indgange Udgange

I denne startvejledning lærer du, hvordan du læser digitale input som en knapkontakt og styrer digitale udgange som en LED ved hjælp af ESP32 med Arduino IDE.
Forudsætninger
Vi programmerer ESP32 ved hjælp af Arduino IDE. Så sørg for, at du har ESP32 boards-tilføjelsen installeret, før du fortsætter:

  • Installation af ESP32 Add-on i Arduino IDE

ESP32 Styr digitale udgange
Først skal du indstille den GPIO, du vil kontrollere, som en OUTPUT. Brug pinMode()-funktionen som følger:
pinMode(GPIO, OUTPUT);
For at styre et digitalt output skal du blot bruge digitalWrite()-funktionen, der accepterer som argumenter, det GPIO (int-nummer), du henviser til, og tilstanden, enten HIGH eller LOW.
digitalWrite(GPIO, STATE);
Alle GPIO'er kan bruges som udgange undtagen GPIO'er 6 til 11 (forbundet til den integrerede SPI-flash) og GPIO'er 34, 35, 36 og 39 (kun input-GPIO'er);
Lær mere om ESP32 GPIO'erne: ESP32 GPIO Reference Guide
ESP32 Læs digitale indgange
Indstil først den GPIO, du vil læse som INPUT, ved hjælp af pinMode()-funktionen som følger:
pinMode(GPIO, INPUT);
For at læse et digitalt input, som en knap, bruger du digitalRead()-funktionen, der accepterer det GPIO (int-nummer), du henviser til, som argument.
digitalRead(GPIO);
Alle ESP32 GPIO'er kan bruges som input, undtagen GPIO'er 6 til 11 (forbundet til den integrerede SPI-flash).
Lær mere om ESP32 GPIO'erne: ESP32 GPIO Reference Guide
Projekt Example
For at vise dig, hvordan du bruger digitale indgange og digitale udgange, bygger vi et simpelt projekt, f.eksample med en trykknap og en LED. Vi aflæser trykknappens tilstand og tænder LED'en i overensstemmelse hermed som vist i den følgende figur.LAFVIN ESP32 Basic Starter Kit - Projekt Example

Dele påkrævet
Her er en liste over de dele, du skal bruge for at bygge kredsløbet:

  • ESP32 DEVKIT V1
  • 5 mm LED
  • 220 Ohm modstand
  • Trykknap
  • 10k ohm modstand
  • Brødbræt
  • Jumper ledninger

Skematisk diagram
Før du fortsætter, skal du samle et kredsløb med en LED og en trykknap.
Vi forbinder LED'en til GPIO 5 og trykknappen til GPIO 4.LAFVIN ESP32 Basic Starter Kit - Skematisk diagramKode
Åbn koden Project_1_ESP32_Inputs_Outputs.ino i arduino IDELAFVIN ESP32 Basic Starter Kit - KodeLAFVIN ESP32 Basic Starter Kit - Kode 1Hvordan koden fungerer
I de følgende to linjer opretter du variabler for at tildele pins:

LAFVIN ESP32 Basic Starter Kit - Kode virkerKnappen er forbundet til GPIO 4, og LED'en er forbundet til GPIO 5. Når du bruger Arduino IDE med ESP32, svarer 4 til GPIO 4 og 5 svarer til GPIO 5.
Dernæst opretter du en variabel til at holde knappens tilstand. Som standard er den 0 (ikke trykket).
int knapState = 0;
I opsætningen() initialiserer du knappen som en INPUT, og LED'en som en OUTPUT.
Til det bruger du pinMode()-funktionen, der accepterer den pin, du henviser til, og tilstanden: INPUT eller OUTPUT.
pinMode(knapPin, INPUT);
pinMode(ledPin, OUTPUT);
I loop() er det, hvor du læser knappens tilstand og indstiller LED'en i overensstemmelse hermed.
I næste linje læser du knappens tilstand og gemmer den i variablen buttonState.
Som vi har set tidligere, bruger du digitalRead()-funktionen.
buttonState = digitalRead(buttonPin);
Følgende if-sætning kontrollerer, om knappens tilstand er HIGH. Hvis den er, tænder den LED'en ved hjælp af digitalWrite()-funktionen, der accepterer ledPin'en og tilstanden HIGH som argument.
if (knapState == HØJ)LAFVIN ESP32 Basic Starter Kit - Koden virker 1Hvis knaptilstanden ikke er HIGH, slukker du for LED'en. Indstil bare LOW som et andet argument til i digitalWrite()-funktionen.LAFVIN ESP32 Basic Starter Kit - digitalWriteUpload af koden
Inden du klikker på upload-knappen, skal du gå til Tools > Board og vælge boardet :DOIT ESP32 DEVKIT V1.
Gå til Værktøjer > Port, og vælg den COM-port, som ESP32 er tilsluttet. Tryk derefter på upload-knappen og vent på beskeden "Udført upload".LAFVIN ESP32 Basic Starter Kit - ICON 7Bemærk: Hvis du ser mange prikker (forbinder...__...__) i fejlfindingsvinduet og meddelelsen "Kunnede ikke oprette forbindelse til ESP32: Timeout venter på pakkeoverskrift", betyder det, at du skal trykke på ESP32 on-board BOOT knappen efter prikkerne
begynder at dukke op. Fejlfinding

Demonstration

Efter upload af koden, test dit kredsløb. Din LED bør lyse, når du trykker på trykknappen:LAFVIN ESP32 Basic Starter Kit - DemonstrationOg sluk, når du slipper den:LAFVIN ESP32 Basic Starter Kit - sluk

Projekt 2 ESP32 analoge indgange

Dette projekt viser, hvordan man læser analoge input med ESP32 ved hjælp af Arduino IDE.
Analog aflæsning er nyttig til at læse værdier fra variable modstande som potentiometre eller analoge sensorer.
Analoge indgange (ADC)
Aflæsning af en analog værdi med ESP32 betyder, at du kan måle varierende voltage niveauer mellem 0 V og 3.3 V.
Voltage målt tildeles derefter en værdi mellem 0 og 4095, hvor 0 V svarer til 0, og 3.3 V svarer til 4095. Enhver vol.tage mellem 0 V og 3.3 V vil blive givet den tilsvarende værdi imellem.LAFVIN ESP32 Basic Starter Kit - Analoge indgangeADC er ikke-lineær
Ideelt set ville du forvente en lineær adfærd, når du bruger ESP32 ADC-benene.
Det sker dog ikke. Det, du får, er en adfærd som vist i følgende diagram:LAFVIN ESP32 Basic Starter Kit - Ikke-lineærDenne adfærd betyder, at din ESP32 ikke er i stand til at skelne 3.3 V fra 3.2 V.
Du får den samme værdi for begge voltages: 4095.
Det samme sker for meget lav voltage-værdier: for 0 V og 0.1 V får du den samme værdi: 0. Du skal huske på dette, når du bruger ESP32 ADC-benene.
analogRead() funktion
At læse en analog indgang med ESP32 ved hjælp af Arduino IDE er lige så simpel som at bruge analogRead()-funktionen. Den accepterer som argument den GPIO du ønsker at læse:
analogRead(GPIO);
Kun 15 er tilgængelige i DEVKIT V1board (version med 30 GPIO'er).
Grib dit ESP32-kortstiftudtag, og find ADC-benene. Disse er fremhævet med en rød kant i nedenstående figur.LAFVIN ESP32 Basic Starter Kit - borderDisse analoge inputben har 12-bit opløsning. Det betyder, at når du læser en analog indgang, kan dens rækkevidde variere fra 0 til 4095.
Bemærk: ADC2-ben kan ikke bruges, når der bruges Wi-Fi. Så hvis du bruger Wi-Fi, og du har problemer med at få værdien fra en ADC2 GPIO, kan du overveje at bruge en ADC1 GPIO i stedet, det burde løse dit problem.
For at se, hvordan alt hænger sammen, laver vi et simpelt eksample for at aflæse en analog værdi fra et potentiometer.
Dele påkrævet
For denne example, du skal bruge følgende dele:

  • ESP32 DEVKIT V1 Board
  • Potentiometer
  • Brødbræt
  • Jumper ledninger

skematisk
Tilslut et potentiometer til din ESP32. Potentiometerets midterstift skal tilsluttes GPIO 4. Du kan bruge følgende skematiske diagram som reference.LAFVIN ESP32 Basic Starter Kit - SkematiskKode
Vi programmerer ESP32 ved hjælp af Arduino IDE, så sørg for at have ESP32-tilføjelsen installeret, før du fortsætter: (Hvis du allerede har gjort dette trin, kan du springe til næste trin.)
Installation af ESP32 Add-on i Arduino IDE
Åbn koden Project_2_ESP32_Inputs_Outputs.ino i arduino IDELAFVIN ESP32 Basic Starter Kit - Kode 2Denne kode læser simpelthen værdierne fra potentiometeret og udskriver disse værdier i den serielle monitor.
I koden starter du med at definere den GPIO potentiometeret er tilsluttet. I dette example, GPIO 4.LAFVIN ESP32 Basic Starter Kit - exampleI setup() skal du initialisere en seriel kommunikation med en baudrate på 115200.LAFVIN ESP32 Basic Starter Kit - example 1I loop() skal du bruge analogRead()-funktionen til at læse det analoge input fra potPin.LAFVIN ESP32 Basic Starter Kit - example 2Til sidst udskrives værdierne aflæst fra potentiometeret i den serielle monitor.LAFVIN ESP32 Basic Starter Kit - example 3Upload den angivne kode til din ESP32. Sørg for, at du har valgt det rigtige kort og COM-port i menuen Værktøjer.
Test af Example
Efter at have uploadet koden og trykket på ESP32-nulstillingsknappen, skal du åbne den serielle monitor med en baudhastighed på 115200. Drej potentiometeret og se værdierne ændre sig.Den maksimale værdi, du får, er 4095, og minimumsværdien er 0.LAFVIN ESP32 Basic Starter Kit -maksimal værdi

Indpakning

I denne artikel har du lært, hvordan du læser analoge input ved hjælp af ESP32 med Arduino IDE. Sammenfattende:

  • ESP32 DEVKIT V1 DOIT-kortet (version med 30 ben) har 15 ADC-ben, du kan bruge til at læse analoge input.
  • Disse ben har en opløsning på 12 bit, hvilket betyder, at du kan få værdier fra 0 til 4095.
  • For at læse en værdi i Arduino IDE, skal du blot bruge analogRead()-funktionen.
  • ESP32 ADC-benene har ikke en lineær adfærd. Du vil sandsynligvis ikke være i stand til at skelne mellem 0 og 0.1V eller mellem 3.2 og 3.3V. Det skal du huske på, når du bruger ADC-stifterne.

Projekt 3 ESP32 PWM (analog udgang)

I denne tutorial viser vi dig, hvordan du genererer PWM-signaler med ESP32 ved hjælp af Arduino IDE. Som eksampvi bygger et simpelt kredsløb, der dæmper en LED ved hjælp af LED PWM-controlleren på ESP32.LAFVIN ESP32 Basic Starter Kit - AnalogOutputESP32 LED PWM-controller
ESP32 har en LED PWM-controller med 16 uafhængige kanaler, der kan konfigureres til at generere PWM-signaler med forskellige egenskaber.
Her er de trin, du skal følge for at dæmpe en LED med PWM ved hjælp af Arduino IDE:

  1. Først skal du vælge en PWM-kanal. Der er 16 kanaler fra 0 til 15.
  2. Derefter skal du indstille PWM-signalfrekvensen. For en LED er en frekvens på 5000 Hz fint at bruge.
  3. Du skal også indstille signalets duty cycle-opløsning: du har opløsninger fra 1 til 16 bit. Vi bruger 8-bit opløsning, hvilket betyder, at du kan styre LED-lysstyrken med en værdi fra 0 til 255.
  4.  Dernæst skal du angive, til hvilke GPIO eller GPIO'er signalet vises på. Til det skal du bruge følgende funktion:
    ledcAttachPin(GPIO, kanal)
    Denne funktion accepterer to argumenter. Den første er GPIO'en, der udsender signalet, og den anden er den kanal, der genererer signalet.
  5. Til sidst, for at styre LED-lysstyrken ved hjælp af PWM, bruger du følgende funktion:

ledcWrite(kanal, arbejdscyklus)
Denne funktion accepterer som argumenter den kanal, der genererer PWM-signalet, og arbejdscyklussen.
Dele påkrævet
For at følge denne tutorial skal du bruge disse dele:

  • ESP32 DEVKIT V1 Board
  • 5mm LED
  • 220 Ohm modstand
  •  Brødbræt
  • Jumper ledninger

skematisk
Forbind en LED til din ESP32 som i følgende skematiske diagram. LED'en skal være tilsluttet GPIO 4.LAFVIN ESP32 Basic Starter Kit - SkematiskNote: du kan bruge hvilken som helst pin du vil, så længe den kan fungere som output. Alle ben, der kan fungere som udgange, kan bruges som PWM-ben. For mere information om ESP32 GPIO'erne, læs: ESP32 Pinout Reference: Hvilke GPIO pins skal du bruge?
Kode
Vi programmerer ESP32 ved hjælp af Arduino IDE, så sørg for at have ESP32-tilføjelsen installeret, før du fortsætter: (Hvis du allerede har gjort dette trin, kan du springe til næste trin.)
Installation af ESP32 Add-on i Arduino IDE
Åbn koden Project_3_ESP32_PWM.ino i arduino IDELAFVIN ESP32 Basic Starter Kit - Kode 3LAFVIN ESP32 Basic Starter Kit - Kode 4Du starter med at definere den pin, som LED'en er fastgjort til. I dette tilfælde er LED'en tilsluttet GPIO 4.LAFVIN ESP32 Basic Starter Kit - Kode 5Derefter indstiller du PWM-signalegenskaberne. Du definerer en frekvens på 5000 Hz, vælger kanal 0 for at generere signalet og indstiller en opløsning på 8 bit. Du kan vælge andre egenskaber, anderledes end disse, for at generere forskellige PWM-signaler.LAFVIN ESP32 Basic Starter Kit - Kode 6I setup() skal du konfigurere LED PWM med de egenskaber, du har defineret tidligere ved at bruge ledcSetup()-funktionen, der accepterer som argumenter, ledChannel, frekvensen og opløsningen som følger:LAFVIN ESP32 Basic Starter Kit - Kode 8Dernæst skal du vælge den GPIO, du vil få signalet fra. Til det skal du bruge ledcAttachPin()-funktionen, der accepterer som argumenter den GPIO, hvor du vil hente signalet, og den kanal, der genererer signalet. I dette example, vi får signalet i ledPin GPIO, der svarer til GPIO 4. Kanalen, der genererer signalet, er ledChannel, der svarer til kanal 0.LAFVIN ESP32 Basic Starter Kit - Kode 9I løkken vil du variere arbejdscyklussen mellem 0 og 255 for at øge LED-lysstyrken.LAFVIN ESP32 Basic Starter Kit - lysstyrkeOg derefter mellem 255 og 0 for at reducere lysstyrken.LAFVIN ESP32 Basic Starter Kit - lysstyrke 1For at indstille lysstyrken på LED'en skal du blot bruge ledcWrite()-funktionen, der accepterer den kanal, der genererer signalet, og arbejdscyklussen som argumenter.LAFVIN ESP32 Basic Starter Kit - lysstyrke 2Da vi bruger 8-bit opløsning, vil arbejdscyklussen blive styret med en værdi fra 0 til 255. Bemærk, at i ledcWrite()-funktionen bruger vi den kanal, der genererer signalet, og ikke GPIO.

Test af Example

Upload koden til din ESP32. Sørg for, at du har valgt det rigtige kort og COM-port. Se på dit kredsløb. Du bør have en lysdæmper LED, der øger og mindsker lysstyrken.LAFVIN ESP32 Basic Starter Kit - Test af Example

Project 4 ESP32 PIR Bevægelsessensor

Dette projekt viser, hvordan man registrerer bevægelse med ESP32 ved hjælp af en PIR-bevægelsessensor. Buzzeren vil afgive en alarm, når der registreres bevægelse, og stoppe alarmen, når der ikke registreres bevægelse i en forudindstillet tid (såsom 4 sekunder)
Sådan fungerer HC-SR501 Bevægelsessensor
.LAFVIN ESP32 Basic Starter Kit - Bevægelsessensor virkerFunktionsprincippet for HC-SR501-sensoren er baseret på ændringen af ​​den infrarøde stråling på det bevægelige objekt. For at blive detekteret af HC-SR501-sensoren skal objektet opfylde to krav:

  • Objektet udsender den infrarøde måde.
  • Objektet bevæger sig eller ryster

Så:
Hvis et objekt udsender den infrarøde stråle, men IKKE bevæger sig (f.eks. står en person stille uden at bevæge sig), registreres det IKKE af sensoren.
Hvis en genstand bevæger sig, men IKKE udsender den infrarøde stråle (f.eks. robot eller køretøj), registreres det IKKE af sensoren.
Introduktion af timere
I dette exampvi introducerer også timere. Vi ønsker, at LED'en forbliver tændt i et forudbestemt antal sekunder, efter at der er registreret bevægelse. I stedet for at bruge en delay() funktion, der blokerer din kode og ikke tillader dig at gøre andet i et bestemt antal sekunder, bør vi bruge en timer.LAFVIN ESP32 Basic Starter Kit - Introduktion af timereDelay()-funktionen
Du bør være bekendt med delay()-funktionen, da den er meget udbredt. Denne funktion er ret ligetil at bruge. Den accepterer et enkelt int-tal som et argument.
Dette tal repræsenterer den tid i millisekunder, programmet skal vente, indtil det går videre til næste kodelinje.LAFVIN ESP32 Basic Starter Kit - kodeNår du forsinker (1000), stopper dit program på den linje i 1 sekund.
delay() er en blokerende funktion. Blokeringsfunktioner forhindrer et program i at gøre noget andet, indtil den pågældende opgave er fuldført. Hvis du har brug for, at flere opgaver skal udføres på samme tid, kan du ikke bruge delay().
For de fleste projekter bør du undgå at bruge forsinkelser og bruge timere i stedet for.
Millis()-funktionen
Ved at bruge en funktion kaldet millis() kan du returnere antallet af millisekunder, der er gået siden programmet startede.LAFVIN ESP32 Basic Starter Kit - programmet startede førstHvorfor er den funktion nyttig? For ved at bruge noget matematik kan du nemt verificere hvor lang tid der er gået uden at blokere din kode.
Dele påkrævet
For at følge denne tutorial har du brug for følgende dele

  • ESP32 DEVKIT V1 Board
  • PIR bevægelsessensor (HC-SR501)
  • Aktiv summer
  • Jumper ledninger
  • Brødbræt

skematiskLAFVIN ESP32 Basic Starter Kit - Skematisk 1Note: Den arbejdende voltage af HC-SR501 er 5V. Brug Vin-stiften til at drive den.
Kode
Før du fortsætter med denne vejledning, skal du have ESP32-tilføjelsen installeret i din Arduino IDE. Følg en af ​​de følgende tutorials for at installere ESP32 på Arduino IDE, hvis du ikke allerede har gjort det. (Hvis du allerede har gjort dette trin, kan du springe til næste trin.)
Installation af ESP32 Add-on i Arduino IDE
Åbn koden Project_4_ESP32_PIR_Motion_Sensor.ino i arduino IDE.
Demonstration
Upload koden til dit ESP32-kort. Sørg for, at du har valgt det rigtige kort og den rigtige COM-port. Opload kodereferencetrin.
Åbn den serielle skærm med en baudrate på 115200.LAFVIN ESP32 Basic Starter Kit - Demonstration 1Bevæg din hånd foran PIR-sensoren. Buzzeren bør tænde, og meddelelsen udskrives i den serielle monitor, der siger "Bevægelse detekteret! Buzzer alarm".
Efter 4 sekunder bør summeren slukke.LAFVIN ESP32 Basic Starter Kit - buzzer

Project 5 ESP32 Switch Web Server

I dette projekt skal du oprette en selvstændig web server med en ESP32, der styrer udgange (to LED'er) ved hjælp af Arduino IDE-programmeringsmiljøet. De web serveren er mobil responsiv og kan tilgås med enhver enhed, der som browser på det lokale netværk. Vi viser dig, hvordan du opretter web server og hvordan koden fungerer trin for trin.
Projekt overståetview
Inden vi går direkte til projektet, er det vigtigt at skitsere, hvad vores web server vil gøre det, så det er lettere at følge trinene senere.

  • De web serveren, du skal bygge, styrer to LED'er, der er forbundet til ESP32 GPIO 26 og GPIO 27;
  • Du kan få adgang til ESP32 web server ved at indtaste ESP32 IP-adressen på en browser i det lokale netværk;
  • Ved at klikke på knapperne på din web server kan du øjeblikkeligt ændre tilstanden for hver LED.

Dele påkrævet
Til denne tutorial skal du bruge følgende dele:

  • ESP32 DEVKIT V1 Board
  • 2x 5mm LED
  • 2x 200 Ohm modstand
  • Brødbræt
  • Jumper ledninger

skematisk
Start med at bygge kredsløbet. Tilslut to LED'er til ESP32 som vist i følgende skematiske diagram – en LED tilsluttet GPIO 26, og den anden til GPIO 27.
Note: Vi bruger ESP32 DEVKIT DOIT board med 36 ben. Før du samler kredsløbet, skal du sørge for at tjekke pinout'en for det kort, du bruger.LAFVIN ESP32 Basic Starter Kit - SkematiskKode
Her giver vi koden, der skaber ESP32 web server. Åbn koden Project_5_ESP32_Switch _Web_Server.ino i arduino IDE, men upload det ikke endnu. Du skal foretage nogle ændringer for at få det til at fungere for dig.
Vi programmerer ESP32 ved hjælp af Arduino IDE, så sørg for at have ESP32-tilføjelsen installeret, før du fortsætter: (Hvis du allerede har gjort dette trin, kan du springe til næste trin.)
Installation af ESP32 Add-on i Arduino IDE
Indstilling af dine netværkslegitimationsoplysninger
Du skal ændre følgende linjer med dine netværksoplysninger: SSID og adgangskode. Koden er godt kommenteret på, hvor du skal foretage ændringerne.LAFVIN ESP32 Basic Starter Kit - NetværksoplysningerUpload af koden
Nu kan du uploade koden og og web serveren virker med det samme.
Følg de næste trin for at uploade kode til ESP32:

  1. Sæt dit ESP32-kort i din computer;
  2. I Arduino IDE skal du vælge dit board i Tools > Board (i vores tilfælde bruger vi ESP32 DEVKIT DOIT boardet);LAFVIN ESP32 Basic Starter Kit - Upload af koden
  3. Vælg COM-porten i Værktøjer > Port.LAFVIN ESP32 Basic Starter Kit - Værktøjsport
  4. Tryk på Upload-knappen i Arduino IDE og vent et par sekunder, mens koden kompileres og uploades til dit board.LAFVIN ESP32 Basic Starter Kit - ICON 7
  5. Vent på beskeden "Udført upload".LAFVIN ESP32 Basic Starter Kit - Færdig upload 1

Find ESP IP-adressen
Efter upload af koden skal du åbne den serielle skærm med en baudrate på 115200.LAFVIN ESP32 Basic Starter Kit - ESP IP-adresseTryk på knappen ESP32 EN (nulstil). ESP32 opretter forbindelse til Wi-Fi og udsender ESP IP-adressen på den serielle monitor. Kopiér den IP-adresse, fordi du har brug for den for at få adgang til ESP32 web server.LAFVIN ESP32 Basic Starter Kit - web serverAdgang til Web Server
For at få adgang til web server, åbn din browser, indsæt ESP32 IP-adressen, og du vil se den følgende side.
Note: Din browser og ESP32 skal være tilsluttet det samme LAN.LAFVIN ESP32 Basic Starter Kit - Adgang til Web ServerHvis du tager et kig på den serielle skærm, kan du se, hvad der sker i baggrunden. ESP'en modtager en HTTP-anmodning fra en ny klient (i dette tilfælde din browser).LAFVIN ESP32 Basic Starter Kit - HTTP-anmodningDu kan også se andre oplysninger om HTTP-anmodningen.
Demonstration
Nu kan du teste om din web serveren fungerer korrekt. Klik på knapperne for at styre lysdioderne.LAFVIN ESP32 Basic Starter Kit - baggrundSamtidig kan du tage et kig på Serial Monitor for at se, hvad der foregår i baggrunden. F.eksample, når du klikker på knappen for at tænde for GPIO 26, modtager ESP32 en anmodning på /26/on URL.LAFVIN ESP32 Basic Starter Kit - URLNår ESP32 modtager denne anmodning, tænder den lysdioden, der er knyttet til GPIO 26, og opdaterer dens tilstand på web side.LAFVIN ESP32 Basic Starter Kit - web sideKnappen til GPIO 27 fungerer på samme måde. Test at det fungerer korrekt.LAFVIN ESP32 Basic Starter Kit - fungerer korrekt

Hvordan koden fungerer

I dette afsnit vil vi se nærmere på koden for at se, hvordan den virker.
Den første ting du skal gøre er at inkludere WiFi-biblioteket.LAFVIN ESP32 Basic Starter Kit - WiFi-bibliotekSom tidligere nævnt skal du indsætte dit ssid og din adgangskode i de følgende linjer inden for de dobbelte anførselstegn.LAFVIN ESP32 Basic Starter Kit - dobbelte anførselstegnDerefter indstiller du din web server til port 80.LAFVIN ESP32 Basic Starter Kit - web serverFølgende linje opretter en variabel til at gemme headeren på HTTP-anmodningen:LAFVIN ESP32 Basic Starter Kit - HTTPrequestDernæst opretter du hjælpevariable for at gemme den aktuelle tilstand af dine udgange. Hvis du vil tilføje flere output og gemme dens tilstand, skal du oprette flere variabler.LAFVIN ESP32 Basic Starter Kit - variablerDu skal også tildele en GPIO til hver af dine udgange. Her bruger vi GPIO 26 og GPIO 27. Du kan bruge alle andre egnede GPIO'er.LAFVIN ESP32 Basic Starter Kit - andet passendeopsætning()
Lad os nu gå ind i opsætningen(). Først starter vi en seriel kommunikation med en baudrate på 115200 til fejlfindingsformål.LAFVIN ESP32 Basic Starter Kit - formålDu definerer også dine GPIO'er som OUTPUT'er og indstiller dem til LAV.LAFVIN ESP32 Basic Starter Kit - GPIO'er som OUTPUT'erDe følgende linjer begynder Wi-Fi-forbindelsen med WiFi.begin(ssid, adgangskode), vent på en vellykket forbindelse og udskriv ESP IP-adressen i den serielle skærm.LAFVIN ESP32 Basic Starter Kit - SerielLAFVIN ESP32 Basic Starter Kit - Serie 1loop()
I loop() programmerer vi, hvad der sker, når en ny klient etablerer en forbindelse med web server.
ESP32 lytter altid efter indkommende klienter med følgende linje:LAFVIN ESP32 Basic Starter Kit - sløjfeNår en anmodning modtages fra en klient, gemmer vi de indgående data. While-løkken, der følger, kører, så længe klienten forbliver forbundet. Vi anbefaler ikke at ændre den følgende del af koden, medmindre du ved præcis, hvad du gør.LAFVIN ESP32 Basic Starter Kit - præcisLAFVIN ESP32 Basic Starter Kit - præcis 1LAFVIN ESP32 Basic Starter Kit - præcis 2Det næste afsnit af if and else-udsagn kontrollerer, hvilken knap der blev trykket på i din web side, og styrer udgangene i overensstemmelse hermed. Som vi har set tidligere, laver vi en anmodning om forskellige URLs afhængigt af den trykte knap.LAFVIN ESP32 Basic Starter Kit - knap trykketLAFVIN ESP32 Basic Starter Kit - knap trykket 1F.eksample, hvis du har trykket på knappen GPIO 26 ON, modtager ESP32 en anmodning på /26/ON URL (vi kan se, at oplysningerne på HTTP-headeren på den serielle skærm). Så vi kan kontrollere, om overskriften indeholder udtrykket GET /26/on. Hvis den indeholder, ændrer vi output26state-variablen til ON, og ESP32 tænder LED'en.
Dette fungerer på samme måde for de andre knapper. Så hvis du vil tilføje flere output, bør du ændre denne del af koden for at inkludere dem.
Viser HTML web side
Den næste ting du skal gøre er at skabe web side. ESP32 vil sende et svar til din browser med noget HTML-kode til at bygge web side.
De web side sendes til klienten ved hjælp af denne udtrykkende client.println(). Du skal indtaste, hvad du vil sende til klienten som argument.
Det første vi skal sende er altid den følgende linje, der indikerer at vi sender HTML.LAFVIN ESP32 Basic Starter Kit - afsendelse af HTMLDerefter gør den følgende linje web side responsiv i enhver web browser.LAFVIN ESP32 Basic Starter Kit - web browserOg følgende bruges til at forhindre anmodninger på favicon. – Du behøver ikke bekymre dig om denne linje.LAFVIN ESP32 Basic Starter Kit - client.println

Styling af Web Side

Dernæst har vi noget CSS-tekst til at style knapperne og web side udseende.
Vi vælger Helvetica-skrifttypen, definerer indholdet, der skal vises som en blok og justeres i midten.LAFVIN ESP32 Basic Starter Kit - Styling af Web SideVi styler vores knapper med #4CAF50-farven, uden kant, tekst i hvid farve og med denne polstring: 16px 40px. Vi sætter også tekst-dekorationen til ingen, definerer skriftstørrelsen, margenen og markøren til en markør.LAFVIN ESP32 Basic Starter Kit - pointerVi definerer også stilen for en anden knap, med alle egenskaberne for knappen, vi har defineret tidligere, men med en anden farve. Dette vil være stilen for off-knappen.LAFVIN ESP32 Basic Starter Kit - client.println 1

Indstilling af Web Side første overskrift
I den næste linje kan du indstille den første overskrift på din web side. Her har vi "ESP32 Web Server", men du kan ændre denne tekst til hvad du vil.LAFVIN ESP32 Basic Starter Kit - Web SideoverskriftVisning af knapper og tilsvarende tilstand
Derefter skriver du et afsnit for at vise den aktuelle tilstand for GPIO 26. Som du kan se, bruger vi output26State-variablen, så tilstanden opdateres øjeblikkeligt, når denne variabel ændres.LAFVIN ESP32 Basic Starter Kit - variable ændringerDerefter viser vi tænd- eller sluk-knappen, afhængigt af GPIO'ens aktuelle tilstand. Hvis den aktuelle tilstand for GPIO'en er slukket, viser vi ON-knappen, hvis ikke, viser vi OFF-knappen.LAFVIN ESP32 Basic Starter Kit - vis OFF-knappenVi bruger samme procedure for GPIO 27.
Lukning af forbindelsen
Til sidst, når svaret slutter, rydder vi header-variablen og stopper forbindelsen med klienten med client.stop().LAFVIN ESP32 Basic Starter Kit - Lukning af forbindelsen

Indpakning

I denne tutorial har vi vist dig, hvordan du bygger en web server med ESP32. Vi har vist dig et simpelt eksample, der styrer to lysdioder, men ideen er at erstatte disse lysdioder med et relæ eller en hvilken som helst anden udgang, du vil styre.

Projekt 6 RGB LED Web Server

I dette projekt viser vi dig, hvordan du fjernstyrer en RGB LED med et ESP32-kort ved hjælp af en web server med en farvevælger.
Projekt overståetview
Inden du går i gang, lad os se, hvordan dette projekt fungerer:LAFVIN ESP32 Basic Starter Kit - Projekt overview

  • ESP32 web serveren viser en farvevælger.
  • Når du vælger en farve, sender din browser en anmodning om en URL der indeholder R-, G- og B-parametrene for den valgte farve.
  • Din ESP32 modtager anmodningen og deler værdien for hver farveparameter.
  • Derefter sender den et PWM-signal med den tilsvarende værdi til de GPIO'er, der styrer RGB-LED'en.

Hvordan fungerer RGB LED'er?
I en fælles katode RGB LED deler alle tre LED'er en negativ forbindelse (katode). Alle inkluderet i sættet er fælles katode RGB.LAFVIN ESP32 Basic Starter Kit - RGB LED'er virkerHvordan skaber man forskellige farver?
Med en RGB LED kan du selvfølgelig producere rødt, grønt og blåt lys, og ved at konfigurere intensiteten af ​​hver LED kan du også producere andre farver.
F.eksample, for at producere rent blåt lys, ville du indstille den blå LED til den højeste intensitet og den grønne og røde LED til den laveste intensitet. For et hvidt lys ville du indstille alle tre LED'er til den højeste intensitet.
Blanding af farver
For at producere andre farver kan du kombinere de tre farver i forskellige intensiteter. For at justere intensiteten af ​​hver LED kan du bruge et PWM-signal.
Fordi LED'erne er meget tæt på hinanden, ser vores øjne resultatet af kombinationen af ​​farver i stedet for de tre farver hver for sig.
For at få en idé om, hvordan man kombinerer farverne, skal du tage et kig på følgende skema.
Dette er det enkleste farveblandingsdiagram, men giver dig en ide om, hvordan det virker, og hvordan man producerer forskellige farver.LAFVIN ESP32 Basic Starter Kit - forskellige farverDele påkrævet
Til dette projekt har du brug for følgende dele:

  • ESP32 DEVKIT V1 Board
  • RGB LED
  • 3x 220 ohm modstande
  • Jumper ledninger
  • Brødbræt

skematiskLAFVIN ESP32 Basic Starter Kit - SkematiskKode
Vi programmerer ESP32 ved hjælp af Arduino IDE, så sørg for at have ESP32-tilføjelsen installeret, før du fortsætter: (Hvis du allerede har gjort dette trin, kan du springe til næste trin.)

  • Installation af ESP32 Add-on i Arduino IDE

Efter samling af kredsløbet, Åbn koden
Project_6_RGB_LED_Web_Server.ino i arduino IDE.
Inden du uploader koden, skal du ikke glemme at indsætte dine netværksoplysninger, så ESP'en kan oprette forbindelse til dit lokale netværk.LAFVIN ESP32 Basic Starter Kit - lokalt netværkSådan fungerer koden
ESP32-skitsen bruger WiFi.h-biblioteket.LAFVIN ESP32 Basic Starter Kit - WiFi.h bibliotekDe følgende linjer definerer strengvariabler til at holde R-, G- og B-parametrene fra anmodningen.LAFVIN ESP32 Basic Starter Kit - String redStringDe næste fire variabler bruges til at afkode HTTP-anmodningen senere.LAFVIN ESP32 Basic Starter Kit - HTTP-anmodningOpret tre variabler for de GPIO'er, der kontrollerer strimlens R-, G- og B-parametre. I dette tilfælde bruger vi GPIO 13, GPIO 12 og GPIO 14.LAFVIN ESP32 Basic Starter Kit - GPIO'er skal brugesDisse GPIO'er skal udsende PWM-signaler, så vi skal først konfigurere PWM-egenskaberne. Indstil PWM-signalfrekvensen til 5000 Hz. Tilknyt derefter en PWM-kanal for hver farveLAFVIN ESP32 Basic Starter Kit - hver farveOg endelig skal du indstille opløsningen af ​​PWM-kanalerne til 8-bitLAFVIN ESP32 Basic Starter Kit - PWM-kanalerTildel PWM-egenskaberne til PWM-kanalerne i setup().LAFVIN ESP32 Basic Starter Kit - PWM-kanalerTilslut PWM-kanalerne til de tilsvarende GPIO'erLAFVIN ESP32 Basic Starter Kit - tilsvarende GPIO'erFølgende kodeafsnit viser farvevælgeren i din web side og laver en anmodning baseret på den farve, du har valgt.LAFVIN ESP32 Basic Starter Kit - plukketLAFVIN ESP32 Basic Starter Kit - client.printlnLAFVIN ESP32 Basic Starter Kit - client.println 1Når du vælger en farve, modtager du en anmodning med følgende format.LAFVIN ESP32 Basic Starter Kit - følgende format

Så vi er nødt til at opdele denne streng for at få R-, G- og B-parametrene. Parametrene gemmes i variablerne redString, greenString og blueString og kan have værdier mellem 0 og 255.LAFVIN ESP32 Basic Starter Kit - skærebordLAFVIN ESP32 Basic Starter Kit - header 1For at styre strimlen med ESP32 skal du bruge ledcWrite()-funktionen til at generere PWM-signaler med værdierne afkodet fra HTTP anmodning.LAFVIN ESP32 Basic Starter Kit - HTTP-anmodning 1Note: lær mere om PWM med ESP32: Project 3 ESP32 PWM(Analog Output)
For at styre strimlen med ESP8266 skal vi bare bruge
funktionen analogWrite() til at generere PWM-signaler med værdierne afkodet fra HTPP-anmodningen.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Fordi vi får værdierne i en strengvariabel, skal vi konvertere dem til heltal ved hjælp af toInt()-metoden.
Demonstration
Når du har indsat dine netværksoplysninger, skal du vælge det rigtige kort og COM-port og uploade koden til din ESP32. Upload kodereferencetrin.
Efter upload skal du åbne den serielle skærm med en baudhastighed på 115200 og trykke på ESP Enable/Reset-knappen. Du bør få bestyrelsens IP-adresse.LAFVIN ESP32 Basic Starter Kit - samme LANÅbn din browser og indsæt ESP IP-adressen. Brug nu farvevælgeren til at vælge en farve til RGB LED.
Derefter skal du trykke på knappen "Skift farve" for at farven træder i kraft.LAFVIN ESP32 Basic Starter Kit - RGB LEDFor at slukke for RGB LED skal du vælge den sorte farve.
De stærkeste farver (øverst i farvevælgeren) er dem, der giver bedre resultater.LAFVIN ESP32 Basic Starter Kit - bedre resultater

Projekt 7 ESP32 relæ Web Server

Brug af et relæ med ESP32 er en fantastisk måde at fjernstyre AC husholdningsapparater. Denne vejledning forklarer, hvordan man styrer et relæmodul med ESP32.
Vi tager et kig på, hvordan et relæmodul fungerer, hvordan man forbinder relæet til ESP32 og bygger en web server til at fjernstyre et relæ.
Introduktion af relæer
Et relæ er en elektrisk betjent kontakt, og som enhver anden kontakt, kan den tændes eller slukkes, lade strømmen gå igennem eller ej. Den kan styres med lav voltages, ligesom 3.3V leveret af ESP32 GPIO'erne og giver os mulighed for at styre høj vol.tages som 12V, 24V eller netspændingtage (230V i Europa og 120V i USA).LAFVIN ESP32 Basic Starter Kit - Introduktion af relæerPå venstre side er der to sæt med tre stikkontakter til at forbinde høj voltages, og stifterne på højre side (low-voltage) opret forbindelse til ESP32 GPIO'erne.
Netværk Voltage ForbindelserLAFVIN ESP32 Basic Starter Kit - Mains Voltage ForbindelserRelæmodulet vist på det foregående billede har to stik, hver med tre stik: fælles (COM), Normally Closed (NC) og Normally Open (NO).

  • COM: Tilslut den strøm, du ønsker at styre (netvoltagog).
  • NC (Normalt lukket): den normalt lukkede konfiguration bruges, når du ønsker, at relæet skal være lukket som standard. NC'erne er COM-stifter forbundet, hvilket betyder, at strømmen flyder, medmindre du sender et signal fra ESP32 til relæmodulet for at åbne kredsløbet og stoppe strømmen.
  • NEJ (Normalt åben): den normalt åbne konfiguration fungerer omvendt: der er ingen forbindelse mellem NO- og COM-pindene, så kredsløbet er brudt, medmindre du sender et signal fra ESP32 om at lukke kredsløbet.

KontrolstifterLAFVIN ESP32 Basic Starter Kit - KontrolstifterDen lave voltage side har et sæt med fire stifter og et sæt med tre stifter. Det første sæt består af VCC og GND til at tænde for modulet, og input 1 (IN1) og input 2 (IN2) til at styre henholdsvis bund- og toprelæet.
Hvis dit relæmodul kun har én kanal, har du kun én IN-pin. Hvis du har fire kanaler, har du fire IN-stifter og så videre.
Signalet du sender til IN-benene, afgør om relæet er aktivt eller ej. Relæet udløses, når indgangen går under ca. 2V. Det betyder, at du har følgende scenarier:

  • Normalt lukket konfiguration (NC):
  • HØJT signal – strømmen løber
  • LAVT signal – strømmen løber ikke
  • Normalt åben konfiguration (NEJ):
  • HØJT signal – strømmen løber ikke
  • LAVT signal – strøm i flow

Du bør bruge en normalt lukket konfiguration, når strømmen skal flyde det meste af gange, og du kun ønsker at stoppe den lejlighedsvis.
Brug en normalt åben konfiguration, når du ønsker, at strømmen skal flyde lejlighedsvis (f.eksample, tænd alamp lejlighedsvis).
Valg af strømforsyningLAFVIN ESP32 Basic Starter Kit - Valg af strømforsyningDet andet sæt stifter består af GND-, VCC- og JD-VCC-stifter.
JD-VCC-stiften driver relæets elektromagnet. Bemærk, at modulet har en jumperhætte, der forbinder VCC- og JD-VCC-benene; den viste her er gul, men din kan have en anden farve.
Med jumperhætten på, er VCC- og JD-VCC-benene forbundet. Det betyder, at relæ-elektromagneten får strøm direkte fra ESP32-strømbenet, så relæmodulet og ESP32-kredsløbene er ikke fysisk isoleret fra hinanden.
Uden jumperhætten skal du sørge for en uafhængig strømkilde til at tænde for relæets elektromagnet gennem JD-VCC-stiften. Den konfiguration isolerer fysisk relæerne fra ESP32 med modulets indbyggede optokobler, som forhindrer skader på ESP32 i tilfælde af elektriske spidser.
skematiskLAFVIN ESP32 Basic Starter Kit - SkematiskAdvarsel: Brug af høj voltagStrømforsyninger kan forårsage alvorlig personskade.
Derfor bruges 5mm LED'er i stedet for høj forsyning voltage pærer i forsøget. Hvis du ikke er bekendt med netspænding voltage spørg en, der skal hjælpe dig. Mens du programmerer ESP'en eller forbinder dit kredsløb, skal du sørge for, at alt er afbrudt fra lysnettet voltage.LAFVIN ESP32 Basic Starter Kit - netspænding voltageInstallation af biblioteket til ESP32
At bygge dette web server, bruger vi ESPAsyncWebServerbibliotek og AsyncTCP-bibliotek.
Installation af ESPAsyncWebServer bibliotek
Følg de næste trin for at installere ESPAsyncWebServer bibliotek:

  1. Klik her for at downloade ESPAsyncWebServer bibliotek. Det burde du have
    en .zip-mappe i mappen Downloads
  2. Udpak .zip-mappen, og du bør få ESPAsyncWebServer-master mappe
  3. Omdøb din mappe fra ESPAsyncWebServer-master til ESPAsyncWebServer
  4. Flyt ESPAsyncWebServermappen til din Arduino IDE-installationsbiblioteksmappe

Alternativt kan du i din Arduino IDE gå til Sketch > Include
Bibliotek > Tilføj .ZIP-bibliotek... og vælg det bibliotek, du lige har downloadet.
Installation af AsyncTCP-biblioteket til ESP32
De ESPAsyncWebServer biblioteket kræver AsyncTCP bibliotek til at arbejde. Følge
de næste trin for at installere det bibliotek:

  1. Klik her for at downloade AsyncTCP-biblioteket. Du bør have en .zip-mappe i din Downloads-mappe
  2. Udpak .zip-mappen, og du skulle få AsyncTCP-master-mappen
    1. Omdøb din mappe fra AsyncTCP-master til AsyncTCP
    3. Flyt AsyncTCP-mappen til din Arduino IDE-installationsbiblioteksmappe
    4. Til sidst skal du genåbne din Arduino IDE

Alternativt kan du i din Arduino IDE gå til Sketch > Include
Bibliotek > Tilføj .ZIP-bibliotek... og vælg det bibliotek, du lige har downloadet.
Kode
Vi programmerer ESP32 ved hjælp af Arduino IDE, så sørg for at have ESP32-tilføjelsen installeret, før du fortsætter: (Hvis du allerede har gjort dette trin, kan du springe til næste trin.)
Installation af ESP32 Add-on i Arduino IDE
Når du har installeret de nødvendige biblioteker, skal du åbne koden Project_7_ESP32_Relay_Web_Server.ino i arduino IDE.
Inden du uploader koden, skal du ikke glemme at indsætte dine netværksoplysninger, så ESP'en kan oprette forbindelse til dit lokale netværk.LAFVIN ESP32 Basic Starter Kit - lokalt netværkDemonstration
Når du har foretaget de nødvendige ændringer, skal du uploade koden til din ESP32. Upload kodereferencetrin.
Åbn den serielle monitor med en baudrate på 115200, og tryk på ESP32 EN-knappen for at få dens IP-adresse. Åbn derefter en browser på dit lokale netværk og skriv ESP32 IP-adressen for at få adgang til web server.
Åbn den serielle monitor med en baudrate på 115200, og tryk på ESP32 EN-knappen for at få dens IP-adresse. Åbn derefter en browser på dit lokale netværk og skriv ESP32 IP-adressen for at få adgang til web server.LAFVIN ESP32 Basic Starter Kit - web serverNote: Din browser og ESP32 skal være tilsluttet det samme LAN.
Du bør få noget som følger med så to knapper som antallet af relæer, du har defineret i din kode.LAFVIN ESP32 Basic Starter Kit - smartphoneNu kan du bruge knapperne til at styre dine relæer ved hjælp af din smartphone.LAFVIN ESP32 Basic Starter Kit - smartphone 1

Project_8_Output_State_Synchronization_ Web_Server

Dette projekt viser, hvordan man styrer ESP32- eller ESP8266-udgangene ved hjælp af en web server og en fysisk knap samtidigt. Udgangstilstanden opdateres på web side om det ændres via fysisk knap eller web server.
Projekt overståetview
Lad os tage et hurtigt kig på, hvordan projektet fungerer.LAFVIN ESP32 Basic Starter Kit - Projekt overviewESP32 eller ESP8266 er vært for en web server, der giver dig mulighed for at kontrollere tilstanden af ​​et output;

  • Den aktuelle udgangstilstand vises på web server;
  • ESP'en er også forbundet med en fysisk trykknap, der styrer den samme udgang;
  • Hvis du ændrer outputtilstanden ved hjælp af den fysiske trykknap, opdateres dens aktuelle tilstand også på web server.

Sammenfattende giver dette projekt dig mulighed for at styre det samme output ved hjælp af en web server og en trykknap samtidigt. Når outputtilstanden ændres, vil web serveren er opdateret.
Dele påkrævet
Her er en liste over de dele, du skal bruge for at bygge kredsløbet:

  • ESP32 DEVKIT V1 Board
  • 5 mm LED
  • 220 Ohm modstand
  • Trykknap
  • 10k ohm modstand
  • Brødbræt
  • Jumper ledninger

skematiskLAFVIN ESP32 Basic Starter Kit - Skematisk 1Installation af biblioteket til ESP32
At bygge dette web server, bruger vi ESPAsyncWebServerbibliotek og AsyncTCP-bibliotek.(Hvis du allerede har gjort dette trin, kan du springe til næste trin.)
Installation af ESPAsyncWebServer bibliotek
Følg de næste trin for at installere ESPAsyncWebServerbibliotek:

  1. Klik her for at downloade ESPAsyncWebServer bibliotek. Det burde du have
    en .zip-mappe i mappen Downloads
  2. Udpak .zip-mappen, og du bør få ESPAsyncWebServer-master mappe
  3. Omdøb din mappe fra ESPAsyncWebServer-master til ESPAsyncWebServer
  4. Flyt ESPAsyncWebServermappen til din Arduino IDE-installationsbiblioteksmappe
    Alternativt kan du i din Arduino IDE gå til Sketch > Include
    Bibliotek > Tilføj .ZIP-bibliotek... og vælg det bibliotek, du lige har downloadet.

Installation af AsyncTCP-biblioteket til ESP32
ESPAsyncWebServerbiblioteket kræver, at AsyncTCP-biblioteket fungerer. Følg de næste trin for at installere det bibliotek:

  1. Klik her for at downloade AsyncTCP-biblioteket. Du bør have en .zip-mappe i din Downloads-mappe
  2. Udpak .zip-mappen, og du skulle få AsyncTCP-master-mappen
  3. Omdøb din mappe fra AsyncTCP-master til AsyncTCP
  4. Flyt AsyncTCP-mappen til din Arduino IDE-installationsbiblioteksmappe
  5. Til sidst skal du genåbne din Arduino IDE
    Alternativt kan du i din Arduino IDE gå til Sketch > Include
    Bibliotek > Tilføj .ZIP-bibliotek... og vælg det bibliotek, du lige har downloadet.

Kode
Vi programmerer ESP32 ved hjælp af Arduino IDE, så sørg for at have ESP32-tilføjelsen installeret, før du fortsætter: (Hvis du allerede har gjort dette trin, kan du springe til næste trin.)
Installation af ESP32 Add-on i Arduino IDE
Når du har installeret de nødvendige biblioteker, skal du åbne koden
Project_8_Output_State_Synchronization_Web_Server.ino i arduino IDE.
Inden du uploader koden, skal du ikke glemme at indsætte dine netværksoplysninger, så ESP'en kan oprette forbindelse til dit lokale netværk.LAFVIN ESP32 Basic Starter Kit - Kode

Hvordan koden fungerer

Knaptilstand og udgangstilstand
LEDState-variablen holder LED-outputtilstanden. Som standard, når web serveren starter, den er LAV.LAFVIN ESP32 Basic Starter Kit - Kode virker

buttonState og lastButtonState bruges til at registrere, om der blev trykket på trykknappen eller ej.LAFVIN ESP32 Basic Starter Kit - blev trykketknap (web server)
Vi inkluderede ikke HTML for at oprette knappen på index_html variablen.
Det er fordi vi ønsker at kunne ændre det afhængigt af den aktuelle LED-tilstand, der også kan ændres med trykknappen.
Så vi har oprettet en pladsholder for knappen %BUTTONPLACEHOLDER%, som vil blive erstattet med HTML-tekst for at oprette knappen senere i koden (dette gøres i processor()-funktionen).LAFVIN ESP32 Basic Starter Kit - blev trykket 1processor()
Processor()-funktionen erstatter eventuelle pladsholdere på HTML-teksten med faktiske værdier. Først tjekker den, om HTML-teksterne indeholder nogen
pladsholdere %BUTTONPLACEHOLDER%.LAFVIN ESP32 Basic Starter Kit - processorKald derefter funktionen outputState(), der returnerer den aktuelle outputtilstand. Vi gemmer det i outputStateValue-variablen.LAFVIN ESP32 Basic Starter Kit - outputStateBrug derefter denne værdi til at oprette HTML-teksten for at vise knappen med den rigtige tilstand:LAFVIN ESP32 Basic Starter Kit - kode 4HTTP GET-anmodning om at ændre outputtilstand (JavaScript)
Når du trykker på knappen, kaldes thetoggleCheckbox()-funktionen. Denne funktion vil lave en anmodning om forskellige URLs for at tænde eller slukke for LED'en.LAFVIN ESP32 Basic Starter Kit - JavaScriptFor at tænde for LED'en laver den en anmodning på /update?state=1 URL:LAFVIN ESP32 Basic Starter Kit - element.checkedEllers laver den en anmodning på /update?state=0 URL.
HTTP GET-anmodning om at opdatere tilstand (JavaScript)
For at holde outputtilstanden opdateret på web server, kalder vi følgende funktion, der laver en ny anmodning på /staten URL hvert sekund.LAFVIN ESP32 Basic Starter Kit - OpdateringstilstandLAFVIN ESP32 Basic Starter Kit - Opdateringstilstand 1Håndter anmodninger
Derefter skal vi håndtere, hvad der sker, når ESP32 eller ESP8266 modtager anmodninger om disse URLs.
Når en anmodning modtages på roden /URL, sender vi HTML-siden såvel som processoren.LAFVIN ESP32 Basic Starter Kit - Håndter anmodningerLAFVIN ESP32 Basic Starter Kit - Håndteringsanmodninger 1De følgende linjer kontrollerer, om du har modtaget en anmodning på /update?state=1 eller /update?state=0 URL og ændrer ledState i overensstemmelse hermed.LAFVIN ESP32 Basic Starter Kit - ledStateLAFVIN ESP32 Basic Starter Kit - inputParamNår en anmodning modtages på /staten URL, sender vi den aktuelle outputtilstand:LAFVIN ESP32 Basic Starter Kit - udgangstilstandloop()
I løkken() slår vi trykknappen tilbage og tænder eller slukker LED'en afhængigt af værdien af ​​ledState variabel.LAFVIN ESP32 Basic Starter Kit - sløjfe 1Demonstration
Upload koden til dit ESP32-kort. Upload kodereferencetrin.
Åbn derefter den serielle monitor med en baudrate på 115200. Tryk på den indbyggede EN/RST-knap for at få IP-adressen.LAFVIN ESP32 Basic Starter Kit - DemonstrationÅbn en browser på dit lokale netværk, og skriv ESP IP-adressen. Du skal have adgang til web server som vist nedenfor.
Note: Din browser og ESP32 skal være tilsluttet det samme LAN.LAFVIN ESP32 Basic Starter Kit - browserDu kan skifte til knappen på web server for at tænde LED'en.LAFVIN ESP32 Basic Starter Kit - web 1 serverDu kan også styre den samme LED med den fysiske trykknap. Dens tilstand vil altid blive opdateret automatisk på web server.

Projekt 9 ESP32 DHT11 Web Server

I dette projekt lærer du, hvordan du bygger en asynkron ESP32 web server med DHT11, der viser temperatur og luftfugtighed ved hjælp af Arduino IDE.
Forudsætninger
De web server, vi bygger, opdaterer aflæsningerne automatisk uden behov for at opdatere web side.
Med dette projekt lærer du:

  • Sådan aflæses temperatur og luftfugtighed fra DHT-sensorer;
  • Byg en asynkron web server ved hjælp af ESPAsyncWebServer bibliotek;
  • Opdater sensoraflæsningerne automatisk uden behov for at opdatere web side.

Asynkron Web Server
At bygge web server vi bruger ESPAsyncWebServer bibliotek der giver en nem måde at bygge en asynkron web server. Opbygning af en asynkron web serveren har flere advantages som nævnt på bibliotekets GitHub-side, såsom:

  • "Håndter mere end én forbindelse på samme tid";
  • "Når du sender svaret, er du straks klar til at håndtere andre forbindelser, mens serveren sørger for at sende svaret i baggrunden";
  • "Simpel skabelonbehandlingsmotor til at håndtere skabeloner";

Dele påkrævet
For at fuldføre denne øvelse har du brug for følgende dele:

  • ESP32 udviklingstavle
  • DHT11 modul
  • Brødbræt
  • Jumper ledninger

skematiskLAFVIN ESP32 Basic Starter Kit - Skematisk 2Installation af biblioteker
Du skal installere et par biblioteker til dette projekt:

Installation af DHT-sensorbiblioteket
For at læse fra DHT-sensoren ved hjælp af Arduino IDE, skal du installere DHT sensor bibliotek. Følg de næste trin for at installere biblioteket.

  1. Klik her for at downloade DHT-sensorbiblioteket. Du bør have en .zip-mappe i din Downloads-mappe
  2. Udpak .zip-mappen, og du skulle få DHT-sensor-library-master-mappen
  3. Omdøb din mappe fra DHT-sensor-library-master til DHT_sensor
  4. Flyt mappen DHT_sensor til din Arduino IDE-installationsbiblioteksmappe
  5. Til sidst skal du genåbne din Arduino IDE

Installation af Adafruit Unified Sensor Driver
Du skal også installere Adafruit Unified Sensor Driver bibliotek at arbejde med DHT-sensoren. Følg de næste trin for at installere biblioteket.

  1. Klik her for at downloade Adafruit Unified Sensor-biblioteket. Du bør have en .zip-mappe i mappen Downloads
  2. Udpak .zip-mappen, og du skulle få Adafruit_sensor-master-mappen
  3. Omdøb din mappe fra Adafruit_sensor-master til Adafruit_sensor
  4. Flyt Adafruit_sensor-mappen til din Arduino IDE-installationsbiblioteksmappe
  5. Til sidst skal du genåbne din Arduino IDE

Installation af ESPAsyncWebServer bibliotek

Følg de næste trin for at installere ESPAsyncWebServer bibliotek:

  1. Klik her for at downloade ESPAsyncWebServer bibliotek. Det burde du have
    en .zip-mappe i mappen Downloads
  2. Udpak .zip-mappen, og du bør
    få ESPAsyncWebServer-master mappe
  3. Omdøb din mappe fra ESPAsyncWebServer-master til ESPAsyncWebServer
  4. Flyt ESPAsyncWebServermappen til din Arduino IDE-installationsbiblioteksmappe

Installation af Async TCP Library til ESP32
De ESPAsyncWebServer biblioteket kræver AsyncTCP bibliotek til at arbejde. Følg de næste trin for at installere det bibliotek:

  1. Klik her for at downloade AsyncTCP-biblioteket. Du bør have en .zip-mappe i din Downloads-mappe
  2. Udpak .zip-mappen, og du skulle få AsyncTCP-master-mappen
  3. Omdøb din mappe fra AsyncTCP-master til AsyncTCP
  4. Flyt AsyncTCP-mappen til din Arduino IDE-installationsbiblioteksmappe
  5. Til sidst skal du genåbne din Arduino IDE

Kode
Vi programmerer ESP32 ved hjælp af Arduino IDE, så sørg for at have ESP32-tilføjelsen installeret, før du fortsætter: (Hvis du allerede har gjort dette trin, kan du springe til næste trin.)
Installation af ESP32 Add-on i Arduino IDE
Når du har installeret de nødvendige biblioteker, skal du åbne koden
Project_9_ESP32_DHT11_Web_Server.ino i arduino IDE.
Inden du uploader koden, skal du ikke glemme at indsætte dine netværksoplysninger, så ESP'en kan oprette forbindelse til dit lokale netværk.LAFVIN ESP32 Basic Starter Kit - KodeHvordan koden fungerer
I de følgende afsnit forklarer vi, hvordan koden fungerer. Fortsæt med at læse, hvis du vil lære mere, eller spring til demonstrationssektionen for at se det endelige resultat.
Import af biblioteker
Importer først de nødvendige biblioteker. WiFi, ESPAsyncWebServer og ESPAsyncTCP er nødvendige for at bygge web server. Adafruit_Sensor- og DHT-bibliotekerne er nødvendige for at læse fra DHT11- eller DHT22-sensorerne.LAFVIN ESP32 Basic Starter Kit - Import af bibliotekerLAFVIN ESP32 Basic Starter Kit - Sådan fungerer kodenVariable definition
Definer den GPIO, som DHT-datapinden er forbundet til. I dette tilfælde er den forbundet til GPIO 4.LAFVIN ESP32 Basic Starter Kit - Variable definitionVælg derefter den DHT-sensortype, du bruger. I vores eksample, vi bruger DHT22. Hvis du bruger en anden type, skal du blot fjerne kommentarer fra din sensor og kommentere alle de andre.LAFVIN ESP32 Basic Starter Kit - Variable definition 1

Instantiér et DHT-objekt med den type og pin, vi har defineret tidligere.LAFVIN ESP32 Basic Starter Kit - Variable definition 2Opret en AsyncWebServerobjekt på port 80.LAFVIN ESP32 Basic Starter Kit - Variable definition 3Læs temperatur- og fugtighedsfunktioner
Vi har lavet to funktioner: en til at aflæse temperaturen Vi har lavet to funktioner: en til at aflæse temperaturen (readDHTTemperature()) og den anden til at aflæse fugtighed (readDHTHumidity()).LAFVIN ESP32 Basic Starter Kit - readDHTHumidityLAFVIN ESP32 Basic Starter Kit - sensoraflæsningerAt få sensoraflæsninger er lige så simpelt som at bruge At få sensoraflæsninger er lige så enkelt som at bruge metoderne readTemperature() og readHumidity() på dht-objektet.LAFVIN ESP32 Basic Starter Kit - objektVi har også en tilstand, der returnerer to streger (–), hvis sensoren ikke kan få aflæsningerne.LAFVIN ESP32 Basic Starter Kit - aflæsningerAflæsningerne returneres som strengtype. For at konvertere en float til en streng skal du bruge String()-funktionenLAFVIN ESP32 Basic Starter Kit - StringSom standard aflæser vi temperaturen i Celsius-grader. For at få temperaturen i Fahrenheit grader skal du kommentere temperaturen i Celsius og fjerne temperaturen i Fahrenheit, så du har følgende:LAFVIN ESP32 Basic Starter Kit - FahrenheitLAFVIN ESP32 Basic Starter Kit - Fahrenheit 1Upload koden
Upload nu koden til din ESP32. Sørg for, at du har valgt det rigtige kort og den rigtige COM-port. Opload kodereferencetrin.
Efter upload skal du åbne den serielle skærm med en baudrate på 115200. Tryk på ESP32 reset-knappen. ESP32 IP-adressen skal udskrives i serien overvåge.LAFVIN ESP32 Basic Starter Kit - Upload kodenDemonstration
Åbn en browser og skriv ESP32 IP-adressen. Dine web serveren skal vise de seneste sensoraflæsninger.
Note: Din browser og ESP32 skal være tilsluttet det samme LAN.
Bemærk, at temperatur- og luftfugtighedsmålingerne opdateres automatisk uden behov for at opdatere web side.LAFVIN ESP32 Basic Starter Kit - Demonstration 1

Project_10_ESP32_OLED_Skærm

Dette projekt viser, hvordan man bruger 0.96 tommer SSD1306 OLED-skærmen med ESP32 ved hjælp af Arduino IDE.
Introduktion til 0.96 tommer OLED-skærm
De OLED skærm som vi vil bruge i denne tutorial er SSD1306-modellen: en ensfarvet 0.96 tommer skærm med 128×64 pixels som vist i følgende figur.LAFVIN ESP32 Basic Starter Kit - OLEDDisplayOLED-skærmen kræver ikke baggrundsbelysning, hvilket giver en meget flot kontrast i mørke omgivelser. Derudover bruger dens pixels kun energi, når de er tændt, så OLED-skærmen bruger mindre strøm sammenlignet med andre skærme.
Fordi OLED-skærmen bruger I2C kommunikationsprotokol, er ledningsføring meget enkel. Du kan bruge følgende tabel som reference.

OLED-stift ESP32
Vin 3.3V
GND GND
SCL GPIO 22
SDA GPIO 21

skematiskLAFVIN ESP32 Basic Starter Kit - SkematiskInstallation af SSD1306 OLED Library – ESP32
Der er flere tilgængelige biblioteker til at styre OLED-skærmen med ESP32.
I denne tutorial bruger vi to Adafruit-biblioteker: Adafruit_SSD1306 bibliotek og Adafruit_GFX bibliotek.
Følg de næste trin for at installere disse biblioteker.

  1. Åbn din Arduino IDE og gå til Sketch> Inkluder bibliotek> Administrer biblioteker. Biblioteksadministratoren bør åbne.
  2. Skriv "SSD1306" i søgefeltet og installer SSD1306-biblioteket fra Adafruit.LAFVIN ESP32 Basic Starter Kit - OLEDLibrary–
  3. Efter installation af SSD1306-biblioteket fra Adafruit, skriv "GFX" i søgefeltet og installer biblioteket.LAFVIN ESP32 Basic Starter Kit - bibliotek
  4. Efter installation af bibliotekerne, genstart din Arduino IDE.

Kode
Når du har installeret de nødvendige biblioteker, skal du åbne Project_10_ESP32_OLED_Display.ino i arduino IDE. kode
Vi programmerer ESP32 ved hjælp af Arduino IDE, så sørg for at have ESP32-tilføjelsen installeret, før du fortsætter: (Hvis du allerede har gjort dette trin, kan du springe til næste trin.)
Installation af ESP32 Add-on i Arduino IDELAFVIN ESP32 Basic Starter Kit - Kode 1LAFVIN ESP32 Basic Starter Kit - Kode 2LAFVIN ESP32 Basic Starter Kit - Kode 3Hvordan koden fungerer
Import af biblioteker
Først skal du importere de nødvendige biblioteker. Wire-biblioteket til at bruge I2C og Adafruit-bibliotekerne til at skrive til skærmen: Adafruit_GFX og Adafruit_SSD1306.LAFVIN ESP32 Basic Starter Kit - Koden virker 1LAFVIN ESP32 Basic Starter Kit - Koden virker 2Initialiser OLED-skærmen
Derefter definerer du din OLED-bredde og -højde. I dette exampvi bruger en 128×64 OLED-skærm. Hvis du bruger andre størrelser, kan du ændre det i variablerne SCREEN_WIDTH og SCREEN_HEIGHT.LAFVIN ESP32 Basic Starter Kit - OLED-skærmInitialiser derefter et visningsobjekt med den bredde og højde, der er defineret tidligere med I2C-kommunikationsprotokol (&Wire).LAFVIN ESP32 Basic Starter Kit - kommunikationsprotokolParameteren (-1) betyder, at din OLED-skærm ikke har en RESET-pin. Hvis din OLED-skærm har en RESET-pin, skal den tilsluttes en GPIO. I så fald skal du videregive GPIO-nummeret som en parameter.
I opsætningen(), initialiser den serielle monitor ved en baud raute på 115200 til fejlfindingsformål.LAFVIN ESP32 Basic Starter Kit - formålInitialiser OLED-skærmen med start()-metoden som følger:LAFVIN ESP32 Basic Starter Kit - display.beginLAFVIN ESP32 Basic Starter Kit - Serial.printlnDette uddrag udskriver også en meddelelse på den serielle skærm, hvis vi ikke kan oprette forbindelse til skærmen.

LAFVIN ESP32 Basic Starter Kit - Serial.println 1Hvis du bruger en anden OLED-skærm, skal du muligvis ændre OLED-adressen. I vores tilfælde er adressen 0x3C.LAFVIN ESP32 Basic Starter Kit - adresseEfter initialisering af skærmen skal du tilføje en forsinkelse på to sekunder, så OLED'en har tid nok til at initialisere, før du skriver tekst:LAFVIN ESP32 Basic Starter Kit - forsinkelseRyd display, indstil skriftstørrelse, farve og skriv tekst
Efter initialisering af skærmen skal du rydde skærmbufferen med clearDisplay()-metoden:LAFVIN ESP32 Basic Starter Kit - display

Før du skriver tekst, skal du indstille tekststørrelse, farve og hvor teksten skal vises i OLED'en.
Indstil skriftstørrelsen ved hjælp af setTextSize() metoden:LAFVIN ESP32 Basic Starter Kit - display 1Indstil skriftfarven med metoden setTextColor():
WHITE indstiller hvid skrifttype og sort baggrund.
Definer positionen, hvor teksten starter ved hjælp af setCursor(x,y) metoden. I dette tilfælde indstiller vi teksten til at starte ved (0,0) koordinaterne – i øverste venstre hjørne.LAFVIN ESP32 Basic Starter Kit - setTextColor 1Endelig kan du sende teksten til displayet ved hjælp af println() metoden, som følgerLAFVIN ESP32 Basic Starter Kit - kode 5Derefter skal du kalde display()-metoden for faktisk at vise teksten på skærmen.LAFVIN ESP32 Basic Starter Kit - display

Adafruit OLED-biblioteket giver nyttige metoder til nemt at rulle tekst.

  • startscrollright(0x00, 0x0F): rul tekst fra venstre mod højre
  • startscrollleft(0x00, 0x0F): rul tekst fra højre mod venstre
  • startscrolldiagright(0x00, 0x07): rul tekst fra nederste venstre hjørne til øverste højre hjørne startscrolldiagleft(0x00, 0x07): rul tekst fra nederste højre hjørne til øverste venstre hjørne

Upload koden
Upload nu koden til din ESP32. Upload kodereferencetrin.
Efter upload af koden vil OLED'en vise rulletekst.LAFVIN ESP32 Basic Starter Kit - rulletekstLAFVIN logo

Dokumenter/ressourcer

LAFVIN ESP32 Basic Starter Kit [pdf] Brugsanvisning
ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *