Logotip de LAFVINIniciador bàsic ESP32
Kit

Llista d'embalatge

LAFVIN ESP32 Basic Starter Kit - PackingList

ESP32 Introducció

Nou a l'ESP32? Comença aquí! L'ESP32 és una sèrie de microcontroladors System on a Chip (SoC) de baix cost i baix consum desenvolupats per Espressif que inclouen capacitats sense fil Wi-Fi i Bluetooth i un processador de doble nucli. Si esteu familiaritzat amb l'ESP8266, l'ESP32 és el seu successor, carregat amb moltes funcions noves.LAFVIN ESP32 Basic Starter Kit - ESP32 IntroduccióEspecificacions ESP32
Si voleu obtenir una mica més tècnic i específic, podeu fer una ullada a les següents especificacions detallades de l'ESP32 (font: http://esp32.net/)—per a més detalls, comproveu el full de dades):

  • Connectivitat sense fil WiFi: velocitat de dades de 150.0 Mbps amb HT40
  • Bluetooth: BLE (Bluetooth Low Energy) i Bluetooth Classic
  • Processador: Tensilica Xtensa Dual-Core 32-bit LX6 microprocessador, que funciona a 160 o 240 MHz
  • Memòria:
  • ROM: 448 KB (per a l'arrencada i les funcions bàsiques)
  • SRAM: 520 KB (per a dades i instruccions)
  • RTC fa SRAM: 8 KB (per a l'emmagatzematge de dades i la CPU principal durant l'arrencada RTC des del mode de son profund)
  • SRAM lenta RTC: 8KB (per a l'accés del coprocessador durant el mode de son profund) eFuse: 1 Kbit (dels quals s'utilitzen 256 bits per al sistema (adreça MAC i configuració del xip) i els 768 bits restants es reserven per a aplicacions de client, incloses Xifratge Flash i ID de xip)

Flaix incrustat: flaix connectat internament mitjançant IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 i SD_DATA_1 a ESP32-D2WD i ESP32-PICO-D4.

  • 0 MiB (xips ESP32-D0WDQ6, ESP32-D0WD i ESP32-S0WD)
  • 2 MiB (xip ESP32-D2WD)
  • 4 MiB (mòdul SiP ESP32-PICO-D4)

Baixa potència: assegura que encara podeu utilitzar conversions ADC, per exempleample, durant el son profund.
Entrada/sortida perifèrica:

  • interfície perifèrica amb DMA que inclou tàctil capacitiu
  • ADC (convertidor analògic a digital)
  • DAC (convertidor de digital a analògic)
  • I²C (circuit inter-integrat)
  • UART (receptor/transmissor asíncron universal)
  • SPI (Interfície perifèrica sèrie)
  • I²S (So entre xips integrat)
  • RMII (interfície reduïda independent dels mitjans)
  • PWM (modulació d'amplada de pols)

Seguretat: acceleradors de maquinari per a AES i SSL/TLS

Taulers de desenvolupament ESP32

ESP32 es refereix al xip ESP32 nu. Tanmateix, el terme "ESP32" també s'utilitza per referir-se a les plaques de desenvolupament ESP32. L'ús de xips nus ESP32 no és fàcil ni pràctic, sobretot a l'hora d'aprendre, provar i crear prototips. La majoria de les vegades, voldreu utilitzar una placa de desenvolupament ESP32.
Utilitzarem la placa ESP32 DEVKIT V1 com a referència. La imatge següent mostra la placa ESP32 DEVKIT V1, versió amb 30 pins GPIO.LAFVIN ESP32 Basic Starter Kit - ESP32 Development BoardsEspecificacions – ESP32 DEVKIT V1
La taula següent mostra un resum de les característiques i especificacions de la placa ESP32 DEVKIT V1 DOIT:

Nombre de nuclis 2 (doble nucli)
Wi-Fi 2.4 GHz fins a 150 Mbits/s
Bluetooth BLE (Bluetooth Low Energy) i Bluetooth heretat
Arquitectura 32 bits
Freqüència de rellotge Fins a 240 MHz
RAM 512 KB
Pins 30 (segons el model)
Perifèrics Tàctil capacitiu, ADC (convertidor analògic a digital), DAC (convertidor digital a analògic), 12C (circuit inter-integrat), UART (receptor/transmissor asíncron universal), CAN 2.0 (àrea de control de xarxa), SPI (interfície perifèrica sèrie) , 12S (Inter-IC integrat
So), RMII (interfície independent dels mitjans reduïts), PWM (modulació d'amplada de pols) i molt més.
Botons integrats Botons RESET i BOOT
LEDs integrats LED blau integrat connectat a GPIO2; LED vermell integrat que indica que la placa s'està alimentant
USB a UART
pont
CP2102

LAFVIN ESP32 Basic Starter Kit - ESP32 DEVKITVe amb una interfície microUSB que podeu utilitzar per connectar la placa a l'ordinador per carregar codi o aplicar energia.
Utilitza el xip CP2102 (USB a UART) per comunicar-se amb el vostre ordinador mitjançant un port COM mitjançant una interfície sèrie. Un altre xip popular és el CH340. Comproveu quin és el convertidor de xip USB a UART al vostre tauler perquè haureu d'instal·lar els controladors necessaris perquè l'ordinador es pugui comunicar amb el tauler (més informació sobre això més endavant en aquesta guia).
Aquest tauler també inclou un botó RESET (pot estar etiquetat EN) per reiniciar el tauler i un botó d'arrencada per posar el tauler en mode intermitent (disponible per rebre codi). Tingueu en compte que alguns taulers poden no tenir un botó d'arrencada.
També ve amb un LED blau integrat que està connectat internament a GPIO 2. Aquest LED és útil per a la depuració per donar algun tipus de sortida física visual. També hi ha un LED vermell que s'il·lumina quan proporcioneu energia a la placa.LAFVIN ESP32 Basic Starter Kit -boardPinout de l'ESP32
Els perifèrics ESP32 inclouen:

  • 18 canals de convertidor analògic a digital (ADC).
  • 3 interfícies SPI
  • 3 interfícies UART
  • 2 interfícies I2C
  • 16 canals de sortida PWM
  • 2 convertidors de digital a analògic (DAC)
  • 2 interfícies I2S
  • 10 GPIO de detecció capacitiva

Les funcions ADC (convertidor analògic a digital) i DAC (convertidor digital a analògic) s'assignen a pins estàtics específics. Tanmateix, podeu decidir quins pins són UART, I2C, SPI, PWM, etc., només cal que els assigneu al codi. Això és possible a causa de la funció de multiplexació del xip ESP32.
Tot i que podeu definir les propietats dels pins al programari, hi ha pins assignats per defecte, tal com es mostra a la figura següentLAFVIN ESP32 Basic Starter Kit - ESP32 PinoutA més, hi ha pins amb característiques específiques que els fan adequats o no per a un projecte concret. La taula següent mostra quins pins són els millors per utilitzar com a entrades, sortides i quins cal tenir cura.
Els pins ressaltats en verd es poden utilitzar. Els ressaltats en groc estan bé d'utilitzar, però cal parar atenció perquè poden tenir un comportament inesperat principalment a l'arrencada. No es recomana utilitzar els pins ressaltats en vermell com a entrades o sortides.

GP IO Entrada Sortida Notes
0 tirat cap amunt OK emet senyal PWM a l'arrencada, ha de ser BAIX per entrar en mode intermitent
1 Pin TX OK sortida de depuració a l'arrencada
2 OK OK connectat al LED integrat, s'ha de deixar flotant o BAIX per entrar en mode intermitent
3 OK Pin RX ALTA a l'arrencada
4 OK OK
5 OK OK emet senyal PWM a l'arrencada, pin de corretja
12 OK OK La bota falla si s'estira alt, passador de corretja
13 OK OK
14 OK OK emet senyal PWM a l'arrencada
15 OK OK emet senyal PWM a l'arrencada, pin de corretja
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 només entrada
35 OK només entrada
36 OK només entrada
39 OK només entrada

Continueu llegint per obtenir una anàlisi més detallada i en profunditat dels GPIO ESP32 i les seves funcions.
Introduïu només pins
Els GPIO del 34 al 39 són GPI: només introduïu pins. Aquests pins no tenen resistències internes de pull-up o pull-down. No es poden utilitzar com a sortides, així que utilitzeu aquests pins només com a entrades:

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

Flaix SPI integrat a l'ESP-WROOM-32
GPIO 6 a GPIO 11 estan exposats en algunes plaques de desenvolupament ESP32. Tanmateix, aquests pins estan connectats al flaix SPI integrat al xip ESP-WROOM-32 i no es recomana per a altres usos. Per tant, no utilitzeu aquests pins als vostres projectes:

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

GPIO tàctils capacitius
L'ESP32 té 10 sensors tàctils capacitius interns. Aquests poden detectar variacions en qualsevol cosa que tingui una càrrega elèctrica, com la pell humana. Així poden detectar variacions induïdes en tocar els GPIO amb un dit. Aquests pins es poden integrar fàcilment en coixinets capacitius i substituir els botons mecànics. Els pins tàctils capacitius també es poden utilitzar per despertar l'ESP32 del son profund. Aquests sensors tàctils interns estan connectats a aquests GPIO:

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

Convertidor analògic a digital (ADC)
L'ESP32 té canals d'entrada ADC de 18 x 12 bits (mentre que l'ESP8266 només té 1 ADC de 10 bits). Aquests són els GPIO que es poden utilitzar com a ADC i canals respectius:

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

Nota: Els pins ADC2 no es poden utilitzar quan s'utilitza Wi-Fi. Per tant, si utilitzeu Wi-Fi i teniu problemes per obtenir el valor d'un GPIO ADC2, podeu considerar utilitzar un GPIO ADC1. Això hauria de resoldre el teu problema.
Els canals d'entrada ADC tenen una resolució de 12 bits. Això vol dir que podeu obtenir lectures analògiques que van de 0 a 4095, en què 0 correspon a 0 V i 4095 a 3.3 V. També podeu configurar la resolució dels vostres canals al codi i al rang ADC.
Els pins ESP32 ADC no tenen un comportament lineal. Probablement no podreu distingir entre 0 i 0.1 V, o entre 3.2 i 3.3 V. Heu de tenir-ho en compte quan feu servir els pins ADC. Obtindreu un comportament similar al que es mostra a la figura següent.LAFVIN ESP32 Basic Starter Kit - comportamentConvertidor digital a analògic (DAC)
Hi ha 2 canals DAC de 8 bits a l'ESP32 per convertir els senyals digitals en vol analògictage sortides de senyal. Aquests són els canals DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO
Hi ha suport RTC GPIO a l'ESP32. Els GPIO encaminats al subsistema de baixa potència RTC es poden utilitzar quan l'ESP32 està en son profund. Aquests RTC GPIO es poden utilitzar per despertar l'ESP32 d'un son profund quan l'Ultra Low
S'està executant el coprocessador d'alimentació (ULP). Els següents GPIO es poden utilitzar com a font d'activació externa.

  • 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
El controlador ESP32 LED PWM té 16 canals independents que es poden configurar per generar senyals PWM amb diferents propietats. Tots els pins que poden actuar com a sortides es poden utilitzar com a pins PWM (els GPIO 34 a 39 no poden generar PWM).
Per establir un senyal PWM, heu de definir aquests paràmetres al codi:

  • freqüència del senyal;
  • Cicle de treball;
  • canal PWM;
  • GPIO on voleu emetre el senyal.

I2C
L'ESP32 té dos canals I2C i qualsevol pin es pot configurar com a SDA o SCL. Quan utilitzeu l'ESP32 amb l'IDE Arduino, els pins I2C predeterminats són:

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

Si voleu utilitzar altres pins quan feu servir la biblioteca de cables, només heu de trucar a:
Wire.begin (SDA, SCL);
SPI
Per defecte, l'assignació de pins per a SPI és:

SPI Extensió MOSI MISO CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

Interrupcions
Tots els GPIO es poden configurar com a interrupcions.
Pins de corretja
El xip ESP32 té els següents pins de corretja:

  • GPIO 0 (ha de ser BAIX per entrar al mode d'arrencada)
  • GPIO 2 (ha de ser flotant o BAIX durant l'arrencada)
  • GPIO 4
  • GPIO 5 (ha de ser ALTA durant l'arrencada)
  • GPIO 12 (ha de ser BAIX durant l'arrencada)
  • GPIO 15 (ha de ser ALTA durant l'arrencada)

S'utilitzen per posar l'ESP32 en mode de carregador d'arrencada o de parpelleig. A la majoria de plaques de desenvolupament amb USB/Serial integrat, no cal que us preocupeu per l'estat d'aquests pins. El tauler posa els pins en l'estat correcte per a parpellejar o en mode d'arrencada. Podeu trobar més informació sobre la selecció del mode d'arrencada ESP32 aquí.
Tanmateix, si teniu perifèrics connectats a aquests pins, és possible que tingueu problemes per provar de carregar un codi nou, per flashejar l'ESP32 amb un microprogramari nou o per restablir la placa. Si teniu alguns perifèrics connectats als pins de corretja i teniu problemes per carregar el codi o per flashejar l'ESP32, pot ser que aquests perifèrics impedeixen que l'ESP32 entri al mode correcte. Llegiu la documentació de selecció del mode d'arrencada per guiar-vos en la direcció correcta. Després de restablir, parpellejar o arrencar, aquests pins funcionen com s'esperava.
Pins ALTA a l'arrencada
Alguns GPIO canvien el seu estat a HIGH o emeten senyals PWM a l'arrencada o al restabliment.
Això vol dir que si teniu sortides connectades a aquests GPIO, podeu obtenir resultats inesperats quan l'ESP32 es reiniciï o arrenqui.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 a GPIO 11 (connectat a la memòria flash SPI integrada ESP32; no es recomana utilitzar-lo).
  • GPIO 14
  • GPIO 15

Habilita (EN)
Enable (EN) és el pin d'habilitació del regulador de 3.3 V. Està tirat cap amunt, així que connecteu-vos a terra per desactivar el regulador de 3.3 V. Això vol dir que podeu utilitzar aquest pin connectat a un polsador per reiniciar el vostre ESP32, per exempleample.
corrent GPIO extret
El corrent màxim absolut consumit per GPIO és de 40 mA segons la secció "Condicions de funcionament recomanades" de la fitxa de dades ESP32.
Sensor d'efecte Hall integrat ESP32
L'ESP32 també inclou un sensor d'efecte hall integrat que detecta els canvis en el camp magnètic del seu entorn
ESP32 Arduino IDE
Hi ha un complement per a l'IDE Arduino que us permet programar l'ESP32 mitjançant l'IDE Arduino i el seu llenguatge de programació. En aquest tutorial us mostrarem com instal·lar la placa ESP32 a l'IDE Arduino tant si feu servir Windows, Mac OS X o Linux.
Requisits previs: Arduino IDE instal·lat
Abans d'iniciar aquest procediment d'instal·lació, heu de tenir l'IDE d'Arduino instal·lat al vostre ordinador. Hi ha dues versions de l'IDE d'Arduino que podeu instal·lar: la versió 1 i la versió 2.
Podeu descarregar i instal·lar Arduino IDE fent clic al següent enllaç: arduino.cc/en/Main/Software
Quina versió d'Arduino IDE us recomanem? De moment, n'hi ha plugins per a l'ESP32 (com els SPIFFS FileSystem Uploader Plugin) que encara no són compatibles amb Arduino 2. Per tant, si teniu intenció d'utilitzar el connector SPIFFS en el futur, us recomanem que instal·leu la versió heretada 1.8.X. Només heu de desplaçar-vos cap avall a la pàgina del programari Arduino per trobar-lo.
Instal·lació del complement ESP32 a l'IDE d'Arduino
Per instal·lar la placa ESP32 al vostre IDE Arduino, seguiu aquestes instruccions següents:

  1. Al vostre IDE Arduino, aneu a File> PreferènciesLAFVIN ESP32 Basic Starter Kit - Preferències
  2. Introduïu el següent al "Gestor de la junta addicional URLcamp s":

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
A continuació, feu clic al botó "D'acord":LAFVIN ESP32 Basic Starter Kit - Botó "D'acord".Nota: si ja teniu les plaques ESP8266 URL, podeu separar el URLs amb una coma de la manera següent:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Obriu el gestor de taules. Aneu a Eines > Tauler > Gestor de taulers...LAFVIN ESP32 Basic Starter Kit - EspressifCerca ESP32 and press install button for the “ESP32 by Espressif Systems“:LAFVIN ESP32 Basic Starter Kit - EspressifAixò és tot. S'ha d'instal·lar al cap d'uns segons.LAFVIN ESP32 Basic Starter Kit - instal·lat

Carregueu el codi de prova

Connecteu la placa ESP32 al vostre ordinador. Amb el vostre Arduino IDE obert, seguiu aquests passos:

  1. Seleccioneu el vostre tauler al menú Eines > Tauler (en el meu cas és el mòdul ESP32 DEV)Kit d'inici bàsic LAFVIN ESP32 - Tauler d'eines
  2. Seleccioneu el port (si no veieu el port COM al vostre IDE d'Arduino, heu d'instal·lar els controladors CP210x USB a UART Bridge VCP):LAFVIN ESP32 Basic Starter Kit - UART Bridge
  3. Obriu el següent exampli sota File > Examples > WiFi
    (ESP32) > WiFiScanKit d'inici bàsic LAFVIN ESP32 - WiFiScanKit d'inici bàsic LAFVIN ESP32 - WiFiScan 1
  4. S'obre un nou esbós al vostre IDE d'Arduino:LAFVIN ESP32 Basic Starter Kit - Arduino IDE
  5. Premeu el botó Carrega a l'IDE d'Arduino. Espereu uns segons mentre el codi es compila i es carrega al vostre tauler.LAFVIN ESP32 Basic Starter Kit - tauler
  6. Si tot ha anat com s'esperava, hauríeu de veure un "Càrrega feta". missatge.LAFVIN ESP32 Basic Starter Kit - S'ha acabat de carregar
  7. Obriu el monitor sèrie Arduino IDE a una velocitat de transmissió de 115200:LAFVIN ESP32 Basic Starter Kit - Monitor
  8. Premeu el botó Habilita a bord de l'ESP32 i hauríeu de veure les xarxes disponibles a prop del vostre ESP32:LAFVIN ESP32 Basic Starter Kit - Botó d'activació

Resolució de problemes

Si intenteu carregar un nou esbós a l'ESP32 i obteniu aquest missatge d'error "S'ha produït un error fatal: no s'ha pogut connectar a l'ESP32: es va esgotar el temps d'espera... S'està connectant...". Vol dir que el vostre ESP32 no està en mode intermitent/càrrega.
Tenint el nom de la placa correcta i el COM por seleccionat, seguiu aquests passos:
Manteniu premut el botó "BOOT" del vostre tauler ESP32Kit d'inici bàsic LAFVIN ESP32 - "BOOT"

  • Premeu el botó "Pujar" a l'IDE d'Arduino per carregar el vostre esbós:Kit d'inici bàsic LAFVIN ESP32 - ICONA 6
  • Després de veure "S'està connectant...". missatge al vostre IDE Arduino, deixeu anar el dit del botó "BOOT":LAFVIN ESP32 Basic Starter Kit - "Càrrega acabada
  • Després d'això, hauríeu de veure el missatge "Càrrega feta".
    Això és tot. El vostre ESP32 hauria de tenir el nou esbós en funcionament. Premeu el botó "HABILITA" per reiniciar l'ESP32 i executar el nou esbós carregat.
    També haureu de repetir aquesta seqüència de botons cada vegada que vulgueu carregar un esbós nou.

Projecte 1 ESP32 Entrades Sortides

En aquesta guia inicial, aprendràs a llegir entrades digitals com un interruptor de botó i controlar les sortides digitals com un LED mitjançant l'ESP32 amb Arduino IDE.
Requisits previs
Programarem l'ESP32 mitjançant l'IDE d'Arduino. Per tant, assegureu-vos que teniu instal·lat el complement de les plaques ESP32 abans de continuar:

  • Instal·lació del complement ESP32 a l'IDE d'Arduino

Sortides digitals de control ESP32
Primer, heu de configurar el GPIO que voleu controlar com a SORTIDA. Utilitzeu la funció pinMode() de la següent manera:
pinMode (GPIO, SORTIDA);
Per controlar una sortida digital només cal utilitzar la funció digitalWrite(), que accepta com a arguments, el GPIO (número int) al qual us referiu i l'estat, ja sigui HIGH o LOW.
digitalWrite(GPIO, STATE);
Tots els GPIO es poden utilitzar com a sortides excepte els GPIO 6 a 11 (connectats al flash SPI integrat) i els GPIO 34, 35, 36 i 39 (només GPIO d'entrada);
Més informació sobre els ESP32 GPIO: ESP32 GPIO Reference Guide
ESP32 Llegir entrades digitals
Primer, configureu el GPIO que voleu llegir com a INPUT, utilitzant la funció pinMode() de la següent manera:
pinMode (GPIO, INPUT);
Per llegir una entrada digital, com un botó, feu servir la funció digitalRead(), que accepta com a argument, el GPIO (número int) al qual us referiu.
lectura digital (GPIO);
Tots els GPIO ESP32 es poden utilitzar com a entrades, excepte els GPIO 6 a 11 (connectats al flash SPI integrat).
Més informació sobre els ESP32 GPIO: ESP32 GPIO Reference Guide
Projecte Example
Per mostrar-vos com utilitzar les entrades digitals i les sortides digitals, construirem un projecte senzill, pample amb un polsador i un LED. Llegirem l'estat del polsador i il·luminarem el LED en conseqüència, tal com es mostra a la figura següent.LAFVIN ESP32 Basic Starter Kit - Projecte Example

Peces necessàries
Aquí teniu una llista de les parts que necessiteu per construir el circuit:

  • ESP32 DEVKIT V1
  • LED de 5 mm
  • Resistència de 220 Ohm
  • Polsador
  • Resistència de 10k Ohm
  • Tauler
  • Cables de pont

Diagrama esquemàtic
Abans de continuar, heu de muntar un circuit amb un LED i un polsador.
Connectarem el LED a GPIO 5 i el polsador a GPIO 4.LAFVIN ESP32 Basic Starter Kit - Diagrama esquemàticCodi
Obriu el codi Project_1_ESP32_Inputs_Outputs.ino a l'IDE d'arduinoLAFVIN ESP32 Basic Starter Kit - CodiKit d'inici bàsic LAFVIN ESP32 - Codi 1Com funciona el codi
A les dues línies següents, creeu variables per assignar pins:

LAFVIN ESP32 Basic Starter Kit - Code WorksEl botó està connectat a GPIO 4 i el LED està connectat a GPIO 5. Quan s'utilitza l'IDE Arduino amb l'ESP32, 4 correspon a GPIO 4 i 5 correspon a GPIO 5.
A continuació, creeu una variable per mantenir premut l'estat del botó. Per defecte, és 0 (no es pressiona).
int buttonState = 0;
A la configuració (), inicialitzeu el botó com a INPUT i el LED com a SORTIDA.
Per això, utilitzeu la funció pinMode() que accepta el pin al qual us referiu i el mode: INPUT o OUTPUT.
pinMode(buttonPin, INPUT);
pinMode (ledPin, OUTPUT);
Al bucle () és on llegiu l'estat del botó i configureu el LED en conseqüència.
A la línia següent, llegiu l'estat del botó i el deseu a la variable buttonState.
Com hem vist anteriorment, feu servir la funció digitalRead().
buttonState = digitalRead(buttonPin);
La següent instrucció if, comprova si l'estat del botó és HIGH. Si és així, s'encén el LED mitjançant la funció digitalWrite() que accepta com a argument el ledPin i l'estat HIGH.
si (buttonState == ALTA)LAFVIN ESP32 Basic Starter Kit - Code Works 1Si l'estat del botó no és ALTA, apagueu el LED. Només heu d'establir LOW com a segon argument a la funció digitalWrite().LAFVIN ESP32 Basic Starter Kit - digitalWriteCarregant el codi
Abans de fer clic al botó de càrrega, aneu a Eines > Tauler i seleccioneu el tauler: DOIT ESP32 DEVKIT V1.
Aneu a Eines > Port i seleccioneu el port COM al qual està connectat l'ESP32. A continuació, premeu el botó de càrrega i espereu que aparegui el missatge "Càrrega feta".Kit d'inici bàsic LAFVIN ESP32 - ICONA 7Nota: si veieu molts punts (connexió...__...__) a la finestra de depuració i el missatge "No s'ha pogut connectar a ESP32: s'ha esgotat el temps d'espera per a la capçalera del paquet", això vol dir que heu de prémer el botó ESP32 integrat. botó després dels punts
començar a aparèixer.Resolució de problemes

Demostració

Després de carregar el codi, proveu el vostre circuit. El vostre LED s'hauria d'encendre quan premeu el polsador:LAFVIN ESP32 Basic Starter Kit - DemostracióI apagueu-lo quan el deixeu anar:LAFVIN ESP32 Basic Starter Kit - torn d'encesa

Projecte 2 entrades analògiques ESP32

Aquest projecte mostra com llegir entrades analògiques amb l'ESP32 mitjançant Arduino IDE.
La lectura analògica és útil per llegir valors de resistències variables com potenciòmetres o sensors analògics.
Entrades analògiques (ADC)
Llegir un valor analògic amb l'ESP32 significa que podeu mesurar diferents volumstage nivells entre 0 V i 3.3 V.
El voltagAleshores, el valor mesurat s'assigna a un valor entre 0 i 4095, en el qual 0 V correspon a 0 i 3.3 V correspon a 4095. Qualsevol voltage entre 0 V i 3.3 V es donarà el valor corresponent entremig.LAFVIN ESP32 Basic Starter Kit - Entrades analògiquesL'ADC és no lineal
Idealment, espereu un comportament lineal quan utilitzeu els pins ADC ESP32.
Tanmateix, això no passa. El que obtindreu és un comportament tal com es mostra al gràfic següent:LAFVIN ESP32 Basic Starter Kit - No linealAquest comportament significa que el vostre ESP32 no és capaç de distingir 3.3 V de 3.2 V.
Obtindreu el mateix valor per als dos voltages: 4095.
El mateix passa amb el volum molt baixtagValors e: per a 0 V i 0.1 V obtindreu el mateix valor: 0. Cal tenir-ho en compte quan utilitzeu els pins ADC ESP32.
Funció analogRead().
Llegir una entrada analògica amb l'ESP32 mitjançant l'IDE d'Arduino és tan senzill com utilitzar la funció analogRead(). Accepta com a argument, el GPIO que voleu llegir:
analogRead (GPIO);
Només 15 estan disponibles a la placa DEVKIT V1 (versió amb 30 GPIO).
Agafeu el pinout de la placa ESP32 i localitzeu els pins ADC. Aquests es destaquen amb una vora vermella a la figura següent.LAFVIN ESP32 Basic Starter Kit - voraAquests pins d'entrada analògic tenen una resolució de 12 bits. Això vol dir que quan llegiu una entrada analògica, el seu rang pot variar de 0 a 4095.
Nota: els pins ADC2 no es poden utilitzar quan s'utilitza Wi-Fi. Per tant, si utilitzeu Wi-Fi i teniu problemes per obtenir el valor d'un GPIO ADC2, podeu considerar utilitzar un GPIO ADC1, això hauria de resoldre el vostre problema.
Per veure com tot lliga, farem un exemple senzillample per llegir un valor analògic des d'un potenciòmetre.
Peces necessàries
Per aquest example, necessiteu les parts següents:

  • Placa ESP32 DEVKIT V1
  • Potenciòmetre
  • Tauler
  • Cables de pont

Esquemàtic
Connecteu un potenciòmetre al vostre ESP32. El pin central del potenciòmetre s'ha de connectar a GPIO 4. Podeu utilitzar el diagrama esquemàtic següent com a referència.LAFVIN ESP32 Basic Starter Kit - EsquemaCodi
Programarem l'ESP32 mitjançant l'IDE d'Arduino, així que assegureu-vos que teniu instal·lat el complement ESP32 abans de continuar: (si ja heu fet aquest pas, podeu passar al següent pas).
Instal·lació del complement ESP32 a l'IDE d'Arduino
Obriu el codi Project_2_ESP32_Inputs_Outputs.ino a l'IDE d'arduinoKit d'inici bàsic LAFVIN ESP32 - Codi 2Aquest codi simplement llegeix els valors del potenciòmetre i imprimeix aquests valors al monitor sèrie.
Al codi, comenceu definint el GPIO al qual està connectat el potenciòmetre. En aquest example, GPIO 4.LAFVIN ESP32 Basic Starter Kit - exampleA la configuració (), inicialitzeu una comunicació en sèrie a una velocitat de transmissió de 115200.LAFVIN ESP32 Basic Starter Kit - exampel 1Al bucle(), utilitzeu la funció analogRead() per llegir l'entrada analògica del potPin.LAFVIN ESP32 Basic Starter Kit - exampel 2Finalment, imprimiu els valors llegits des del potenciòmetre al monitor sèrie.LAFVIN ESP32 Basic Starter Kit - exampel 3Carregueu el codi proporcionat al vostre ESP32. Assegureu-vos que heu seleccionat el tauler i el port COM correctes al menú Eines.
Prova l'Example
Després de carregar el codi i prémer el botó de restabliment de l'ESP32, obriu el monitor sèrie a una velocitat de transmissió de 115200. Gireu el potenciòmetre i observeu com canvien els valors.El valor màxim que obtindreu és 4095 i el valor mínim és 0.LAFVIN ESP32 Basic Starter Kit -valor màxim

Embolcallant

En aquest article, heu après a llegir entrades analògiques mitjançant l'ESP32 amb l'IDE Arduino. En resum:

  • La placa ESP32 DEVKIT V1 DOIT (versió amb 30 pins) té 15 pins ADC que podeu utilitzar per llegir entrades analògiques.
  • Aquests pins tenen una resolució de 12 bits, el que significa que podeu obtenir valors de 0 a 4095.
  • Per llegir un valor a l'IDE d'Arduino, només cal que utilitzeu la funció analogRead().
  • Els pins ESP32 ADC no tenen un comportament lineal. Probablement no podreu distingir entre 0 i 0.1 V, o entre 3.2 i 3.3 V. Heu de tenir-ho en compte quan feu servir els pins ADC.

Projecte 3 ESP32 PWM (sortida analògica)

En aquest tutorial us mostrarem com generar senyals PWM amb l'ESP32 mitjançant Arduino IDE. Com a exampconstruirem un circuit senzill que atenuï un LED mitjançant el controlador PWM LED de l'ESP32.Kit d'inici bàsic LAFVIN ESP32 - Sortida analògicaControlador LED PWM ESP32
L'ESP32 té un controlador PWM LED amb 16 canals independents que es poden configurar per generar senyals PWM amb diferents propietats.
Aquests són els passos que haureu de seguir per atenuar un LED amb PWM mitjançant l'IDE d'Arduino:

  1. Primer, heu de triar un canal PWM. Hi ha 16 canals de 0 a 15.
  2. Aleshores, heu de configurar la freqüència del senyal PWM. Per a un LED, una freqüència de 5000 Hz està bé d'utilitzar.
  3. També heu d'establir la resolució del cicle de treball del senyal: teniu resolucions d'1 a 16 bits. Utilitzarem una resolució de 8 bits, el que significa que podeu controlar la brillantor del LED amb un valor de 0 a 255.
  4.  A continuació, heu d'especificar a quin GPIO o GPIO apareixerà el senyal. Per a això, utilitzaràs la següent funció:
    ledcAttachPin (GPIO, canal)
    Aquesta funció accepta dos arguments. El primer és el GPIO que sortirà el senyal, i el segon és el canal que generarà el senyal.
  5. Finalment, per controlar la brillantor del LED mitjançant PWM, utilitzeu la funció següent:

ledcWrite (canal, cicle de treball)
Aquesta funció accepta com a arguments el canal que està generant el senyal PWM i el cicle de treball.
Peces necessàries
Per seguir aquest tutorial necessiteu aquestes parts:

  • Placa ESP32 DEVKIT V1
  • LED de 5 mm
  • Resistència de 220 Ohm
  •  Tauler
  • Cables de pont

Esquemàtic
Connecteu un LED al vostre ESP32 com al diagrama esquemàtic següent. El LED ha d'estar connectat a GPIO 4.LAFVIN ESP32 Basic Starter Kit - EsquemaNota: podeu utilitzar qualsevol pin que vulgueu, sempre que pugui actuar com a sortida. Tots els pins que poden actuar com a sortides es poden utilitzar com a pins PWM. Per obtenir més informació sobre els GPIO ESP32, llegiu: Referència de pinout de l'ESP32: Quins pins GPIO hauríeu d'utilitzar?
Codi
Programarem l'ESP32 mitjançant l'IDE d'Arduino, així que assegureu-vos que teniu instal·lat el complement ESP32 abans de continuar: (si ja heu fet aquest pas, podeu passar al següent pas).
Instal·lació del complement ESP32 a l'IDE d'Arduino
Obriu el codi Project_3_ESP32_PWM.ino a l'IDE d'arduinoKit d'inici bàsic LAFVIN ESP32 - Codi 3Kit d'inici bàsic LAFVIN ESP32 - Codi 4Comenceu definint el pin al qual està connectat el LED. En aquest cas, el LED està connectat a GPIO 4.Kit d'inici bàsic LAFVIN ESP32 - Codi 5A continuació, configureu les propietats del senyal PWM. Definiu una freqüència de 5000 Hz, trieu el canal 0 per generar el senyal i establiu una resolució de 8 bits. Podeu triar altres propietats, diferents d'aquestes, per generar diferents senyals PWM.Kit d'inici bàsic LAFVIN ESP32 - Codi 6A la configuració(), heu de configurar el LED PWM amb les propietats que heu definit anteriorment utilitzant la funció ledcSetup() que accepta com a arguments, el ledChannel, la freqüència i la resolució, de la següent manera:Kit d'inici bàsic LAFVIN ESP32 - Codi 8A continuació, heu de triar el GPIO del qual obtindreu el senyal. Per a això, utilitzeu la funció ledcAttachPin() que accepta com a arguments el GPIO on voleu obtenir el senyal i el canal que està generant el senyal. En aquest example, obtindrem el senyal al ledPin GPIO, que correspon al GPIO 4. El canal que genera el senyal és el ledChannel, que correspon al canal 0.Kit d'inici bàsic LAFVIN ESP32 - Codi 9Al bucle, variareu el cicle de treball entre 0 i 255 per augmentar la brillantor del LED.LAFVIN ESP32 Basic Starter Kit - brillantorI després, entre 255 i 0 per disminuir la brillantor.LAFVIN ESP32 Basic Starter Kit - brillantor 1Per configurar la brillantor del LED, només cal utilitzar la funció ledcWrite() que accepta com a arguments el canal que genera el senyal i el cicle de treball.LAFVIN ESP32 Basic Starter Kit - brillantor 2Com que estem utilitzant una resolució de 8 bits, el cicle de treball es controlarà amb un valor de 0 a 255. Tingueu en compte que a la funció ledcWrite() fem servir el canal que genera el senyal, i no el GPIO.

Prova l'Example

Carregueu el codi al vostre ESP32. Assegureu-vos que heu seleccionat la placa i el port COM correctes. Mira el teu circuit. Hauríeu de tenir un LED atenuador que augmenti i disminueixi la brillantor.LAFVIN ESP32 Basic Starter Kit - Prova de l'Example

Projecte 4 Sensor de moviment PIR ESP32

Aquest projecte mostra com detectar moviment amb l'ESP32 mitjançant un sensor de moviment PIR. El timbre sonarà una alarma quan es detecti moviment i aturarà l'alarma quan no es detecti cap moviment durant un temps predeterminat (com ara 4 segons).
Com funciona el sensor de moviment HC-SR501
.LAFVIN ESP32 Basic Starter Kit - Motion Sensor WorksEl principi de funcionament del sensor HC-SR501 es basa en el canvi de la radiació infraroja de l'objecte en moviment. Per ser detectat pel sensor HC-SR501, l'objecte ha de complir dos requisits:

  • L'objecte està emetent per via infraroja.
  • L'objecte es mou o tremola

Així:
Si un objecte està emetent el raig infraroig però NO es mou (p. ex., una persona s'atura sense moure's), el sensor NO el detecta.
Si un objecte es mou però NO emet el raig infraroig (per exemple, robot o vehicle), el sensor NO el detecta.
Presentació dels temporitzadors
En aquest exampTambé introduirem temporitzadors. Volem que el LED es mantingui encès durant un nombre predeterminat de segons després que es detecti moviment. En lloc d'utilitzar una funció delay() que bloqueja el vostre codi i no us permet fer res més durant un nombre determinat de segons, hauríem d'utilitzar un temporitzador.LAFVIN ESP32 Basic Starter Kit - Presentació dels temporitzadorsLa funció delay().
Hauríeu d'estar familiaritzat amb la funció delay() ja que s'utilitza àmpliament. Aquesta funció és bastant senzilla d'utilitzar. Accepta un sol nombre int com a argument.
Aquest número representa el temps en mil·lisegons que el programa ha d'esperar fins a passar a la següent línia de codi.LAFVIN ESP32 Basic Starter Kit - codiQuan feu retard (1000), el vostre programa s'atura en aquesta línia durant 1 segon.
delay() és una funció de bloqueig. Les funcions de bloqueig impedeixen que un programa faci qualsevol altra cosa fins que s'hagi completat aquesta tasca en particular. Si necessiteu que es facin diverses tasques alhora, no podeu utilitzar delay().
Per a la majoria de projectes, hauríeu d'evitar utilitzar retards i utilitzar temporitzadors.
La funció millis().
Mitjançant una funció anomenada millis() podeu retornar el nombre de mil·lisegons que han passat des que el programa va començar.LAFVIN ESP32 Basic Starter Kit - el programa s'ha iniciat per primera vegadaPer què és útil aquesta funció? Perquè utilitzant algunes matemàtiques, podeu verificar fàcilment quant de temps ha passat sense bloquejar el vostre codi.
Peces necessàries
Per seguir aquest tutorial necessiteu les parts següents

  • Placa ESP32 DEVKIT V1
  • Sensor de moviment PIR (HC-SR501)
  • Zumbador actiu
  • Cables de pont
  • Tauler

EsquemàticKit d'inici bàsic LAFVIN ESP32 - Esquema 1Nota: El vol de treballtage de HC-SR501 és de 5V. Utilitzeu el pin Vin per alimentar-lo.
Codi
Abans de continuar amb aquest tutorial, hauríeu de tenir el complement ESP32 instal·lat al vostre IDE d'Arduino. Seguiu un dels tutorials següents per instal·lar l'ESP32 a l'IDE d'Arduino, si encara no ho heu fet. (Si ja heu fet aquest pas, podeu passar al pas següent.)
Instal·lació del complement ESP32 a l'IDE d'Arduino
Obriu el codi Project_4_ESP32_PIR_Motion_Sensor.ino a l'IDE d'arduino.
Demostració
Carregueu el codi al vostre tauler ESP32. Assegureu-vos que heu seleccionat el tauler i el port COM adequats. Carregueu els passos de referència del codi.
Obriu el monitor sèrie a una velocitat de transmissió de 115200.LAFVIN ESP32 Basic Starter Kit - Demostració 1Moveu la mà davant del sensor PIR. El timbre s'ha d'encendre i el missatge s'imprimeix al monitor sèrie que diu "S'ha detectat moviment! Alarma del timbre".
Després de 4 segons, el timbre s'ha d'apagar.LAFVIN ESP32 Basic Starter Kit - timbre

Projecte 5 Interruptor ESP32 Web Servidor

En aquest projecte creareu un autònom web servidor amb un ESP32 que controla les sortides (dos LED) mitjançant l'entorn de programació Arduino IDE. El web El servidor respon a mòbils i es pot accedir amb qualsevol dispositiu que sigui com a navegador a la xarxa local. Us mostrarem com crear el web servidor i com funciona el codi pas a pas.
Projecte acabatview
Abans d'anar directament al projecte, és important esbossar què és el nostre web servidor ho farà, de manera que sigui més fàcil seguir els passos més endavant.

  • El web servidor construiràs controls dos LED connectats a l'ESP32 GPIO 26 i GPIO 27;
  • Podeu accedir a l'ESP32 web servidor escrivint l'adreça IP de l'ESP32 en un navegador de la xarxa local;
  • Fent clic als botons del vostre web servidor, podeu canviar instantàniament l'estat de cada LED.

Peces necessàries
Per a aquest tutorial necessitareu les parts següents:

  • Placa ESP32 DEVKIT V1
  • 2x LED de 5 mm
  • 2 resistència de 200 ohms
  • Tauler
  • Cables de pont

Esquemàtic
Comenceu construint el circuit. Connecteu dos LED a l'ESP32 tal com es mostra al diagrama esquemàtic següent: un LED connectat a GPIO 26 i l'altre a GPIO 27.
Nota: Estem utilitzant la placa ESP32 DEVKIT DOIT amb 36 pins. Abans de muntar el circuit, assegureu-vos de comprovar el pinout de la placa que utilitzeu.LAFVIN ESP32 Basic Starter Kit - EsquemaCodi
Aquí proporcionem el codi que crea l'ESP32 web servidor. Obriu el codi Project_5_ESP32_Switch _Web_Server.ino a l'IDE arduino, però encara no el carregueu. Heu de fer alguns canvis perquè funcioni per a vosaltres.
Programarem l'ESP32 mitjançant l'IDE d'Arduino, així que assegureu-vos que teniu instal·lat el complement ESP32 abans de continuar: (si ja heu fet aquest pas, podeu passar al següent pas).
Instal·lació del complement ESP32 a l'IDE d'Arduino
Configuració de les vostres credencials de xarxa
Heu de modificar les següents línies amb les vostres credencials de xarxa: SSID i contrasenya. El codi està ben comentat on heu de fer els canvis.LAFVIN ESP32 Basic Starter Kit - Credencials de xarxaCarregant el codi
Ara, podeu pujar el codi i i web servidor funcionarà immediatament.
Seguiu els passos següents per carregar el codi a l'ESP32:

  1. Connecteu la vostra placa ESP32 a l'ordinador;
  2. A l'IDE d'Arduino, seleccioneu la vostra placa a Eines > Placa (en el nostre cas estem utilitzant la placa ESP32 DEVKIT DOIT);LAFVIN ESP32 Basic Starter Kit - Carregant el codi
  3. Seleccioneu el port COM a Eines > Port.Kit d'inici bàsic LAFVIN ESP32 - Port d'eines
  4. Premeu el botó Carrega a l'IDE d'Arduino i espereu uns segons mentre el codi es compila i es carrega al vostre tauler.Kit d'inici bàsic LAFVIN ESP32 - ICONA 7
  5. Espereu el missatge "S'ha fet la càrrega".LAFVIN ESP32 Basic Starter Kit - S'ha fet la càrrega 1

Trobar l'adreça IP de l'ESP
Després de carregar el codi, obriu el monitor sèrie a una velocitat de transmissió de 115200.LAFVIN ESP32 Basic Starter Kit - ESP Adreça IPPremeu el botó ESP32 EN (restabliment). L'ESP32 es connecta a Wi-Fi i emet l'adreça IP de l'ESP al monitor sèrie. Copieu aquesta adreça IP, perquè la necessiteu per accedir a l'ESP32 web servidor.Kit d'inici bàsic LAFVIN ESP32 - web servidorAccedint al Web Servidor
Per accedir al web servidor, obriu el navegador, enganxeu l'adreça IP de l'ESP32 i veureu la pàgina següent.
Nota: El vostre navegador i ESP32 haurien d'estar connectats a la mateixa LAN.LAFVIN ESP32 Basic Starter Kit - Accés al Web ServidorSi mireu el monitor sèrie, podreu veure què passa en segon pla. L'ESP rep una sol·licitud HTTP d'un client nou (en aquest cas, el vostre navegador).LAFVIN ESP32 Basic Starter Kit - Sol·licitud HTTPTambé podeu veure altra informació sobre la sol·licitud HTTP.
Demostració
Ara pots provar si el teu web servidor funciona correctament. Feu clic als botons per controlar els LED.LAFVIN ESP32 Basic Starter Kit - fonsAl mateix temps, podeu fer una ullada al monitor sèrie per veure què passa en segon pla. Per example, quan feu clic al botó per activar GPIO 26, ESP32 rep una sol·licitud al /26/on URL.Kit d'inici bàsic LAFVIN ESP32 - URLQuan l'ESP32 rep aquesta sol·licitud, encén el LED connectat a GPIO 26 i actualitza el seu estat al web pàgina.Kit d'inici bàsic LAFVIN ESP32 - web pàginaEl botó del GPIO 27 funciona de manera similar. Comprova que funciona correctament.LAFVIN ESP32 Basic Starter Kit - funciona correctament

Com funciona el codi

En aquesta secció mirarem més de prop el codi per veure com funciona.
El primer que heu de fer és incloure la biblioteca WiFi.LAFVIN ESP32 Basic Starter Kit - Biblioteca WiFiCom s'ha esmentat anteriorment, heu d'inserir el vostre ssid i contrasenya a les línies següents dins de les cometes dobles.LAFVIN ESP32 Basic Starter Kit - cometes doblesAleshores, configureu el vostre web servidor al port 80.Kit d'inici bàsic LAFVIN ESP32 - web servidorLa línia següent crea una variable per emmagatzemar la capçalera de la sol·licitud HTTP:LAFVIN ESP32 Basic Starter Kit - HTTPrequestA continuació, creeu variables auxiliars per emmagatzemar l'estat actual de les vostres sortides. Si voleu afegir més sortides i desar-ne l'estat, heu de crear més variables.LAFVIN ESP32 Basic Starter Kit - variablesTambé heu d'assignar un GPIO a cadascuna de les vostres sortides. Aquí estem utilitzant GPIO 26 i GPIO 27. Podeu utilitzar qualsevol altre GPIO adequat.LAFVIN ESP32 Basic Starter Kit - altre adequatconfiguració ()
Ara, anem a la configuració (). Primer, iniciem una comunicació en sèrie a una velocitat de transmissió de 115200 amb finalitats de depuració.LAFVIN ESP32 Basic Starter Kit - finsTambé definiu els vostres GPIO com a SORTIDA i els configureu a BAIX.LAFVIN ESP32 Basic Starter Kit - GPIO com a SORTIDALes línies següents comencen la connexió Wi-Fi amb WiFi.begin(ssid, contrasenya), espereu que la connexió sigui correcta i imprimiu l'adreça IP de l'ESP al monitor sèrie.LAFVIN ESP32 Basic Starter Kit - SerialKit d'inici bàsic LAFVIN ESP32 - Sèrie 1bucle ()
Al bucle() programem què passa quan un nou client estableix una connexió amb el web servidor.
L'ESP32 sempre escolta els clients entrants amb la línia següent:LAFVIN ESP32 Basic Starter Kit - bucleQuan rebem una sol·licitud d'un client, desarem les dades entrants. El bucle while que segueix s'executarà mentre el client es mantingui connectat. No recomanem canviar la part següent del codi tret que sàpigues exactament què estàs fent.LAFVIN ESP32 Basic Starter Kit - exactamentKit d'inici bàsic LAFVIN ESP32 - exactament 1Kit d'inici bàsic LAFVIN ESP32 - exactament 2La següent secció de les declaracions if i else comprova quin botó s'ha premut al vostre web pàgina i controla les sortides en conseqüència. Com hem vist anteriorment, fem una petició en diferents URLs segons el botó premut.LAFVIN ESP32 Basic Starter Kit - botó premutLAFVIN ESP32 Basic Starter Kit - botó premut 1Per exampsi heu premut el botó GPIO 26 ON, l'ESP32 rep una sol·licitud al /26/ON URL (podem veure que aquesta informació a la capçalera HTTP del monitor sèrie). Per tant, podem comprovar si la capçalera conté l'expressió GET /26/on. Si conté, canviem la variable output26state a ON i l'ESP32 encén el LED.
Això funciona de manera similar per als altres botons. Per tant, si voleu afegir més sortides, hauríeu de modificar aquesta part del codi per incloure-les.
Mostra l'HTML web pàgina
El següent que heu de fer és crear el web pàgina. L'ESP32 enviarà una resposta al vostre navegador amb algun codi HTML per crear-lo web pàgina.
El web La pàgina s'envia al client mitjançant aquesta expressió client.println(). Heu d'introduir el que voleu enviar al client com a argument.
El primer que hem d'enviar és sempre la línia següent, que indica que estem enviant HTML.LAFVIN ESP32 Basic Starter Kit - enviament d'HTMLAleshores, la línia següent fa el web pàgina responsiva en qualsevol web navegador.Kit d'inici bàsic LAFVIN ESP32 - web navegadorI el següent s'utilitza per evitar sol·licituds al favicon. – No cal que et preocupis per aquesta línia.LAFVIN ESP32 Basic Starter Kit - client.println

Estil el Web Pàgina

A continuació, tenim una mica de text CSS per estilitzar els botons i el web aspecte de la pàgina.
Escollim el tipus de lletra Helvetica, definim el contingut a mostrar com a bloc i alineat al centre.LAFVIN ESP32 Basic Starter Kit - Estil el Web PàginaEstilem els nostres botons amb el color #4CAF50, sense vora, text en color blanc, i amb aquest farciment: 16px 40px. També establim la decoració del text a cap, definim la mida de la lletra, el marge i el cursor a un punter.LAFVIN ESP32 Basic Starter Kit - punterTambé definim l'estil d'un segon botó, amb totes les propietats del botó que hem definit anteriorment, però amb un color diferent. Aquest serà l'estil del botó apagat.LAFVIN ESP32 Basic Starter Kit - client.println 1

Configuració del Web Primer encapçalament de la pàgina
A la línia següent podeu establir el primer encapçalament del vostre web pàgina. Aquí tenim “ESP32 Web Servidor”, però podeu canviar aquest text pel que vulgueu.Kit d'inici bàsic LAFVIN ESP32 - Web Encapçalament de la pàginaMostra els botons i l'estat corresponent
A continuació, escriviu un paràgraf per mostrar l'estat actual de GPIO 26. Com podeu veure, utilitzem la variable output26State, de manera que l'estat s'actualitza a l'instant quan aquesta variable canvia.LAFVIN ESP32 Basic Starter Kit - canvis variablesA continuació, mostrem el botó d'encesa o apagat, depenent de l'estat actual del GPIO. Si l'estat actual del GPIO està apagat, mostrem el botó ON, si no, mostrem el botó OFF.LAFVIN ESP32 Basic Starter Kit - mostra el botó OFFUtilitzem el mateix procediment per a GPIO 27.
Tancant la connexió
Finalment, quan acaba la resposta, esborram la variable de capçalera i aturem la connexió amb el client amb client.stop().LAFVIN ESP32 Basic Starter Kit - Tancant la connexió

Embolcallant

En aquest tutorial us hem mostrat com crear un web servidor amb l'ESP32. Us hem mostrat un ex senzillampque controla dos LED, però la idea és substituir aquests LED per un relé o qualsevol altra sortida que vulgueu controlar.

Projecte 6 LED RGB Web Servidor

En aquest projecte us mostrarem com controlar de forma remota un LED RGB amb una placa ESP32 mitjançant un web servidor amb un selector de colors.
Projecte acabatview
Abans de començar, veiem com funciona aquest projecte:LAFVIN ESP32 Basic Starter Kit - Project Overview

  • L'ESP32 web servidor mostra un selector de colors.
  • Quan trieu un color, el vostre navegador fa una sol·licitud a URL que conté els paràmetres R, G i B del color seleccionat.
  • El vostre ESP32 rep la sol·licitud i divideix el valor de cada paràmetre de color.
  • A continuació, envia un senyal PWM amb el valor corresponent als GPIO que controlen el LED RGB.

Com funcionen els LED RGB?
En un LED RGB de càtode comú, els tres LED comparteixen una connexió negativa (càtode). Tots els inclosos en el kit són RGB de càtode comú.LAFVIN ESP32 Basic Starter Kit - Els LED RGB funcionenCom crear diferents colors?
Amb un LED RGB, per descomptat, podeu produir llum vermella, verda i blava i, configurant la intensitat de cada LED, també podeu produir altres colors.
Per exampPer produir llum purament blava, establiríeu el LED blau a la intensitat més alta i els LED verds i vermells a la intensitat més baixa. Per a una llum blanca, establiríeu els tres LED a la intensitat més alta.
Barreja de colors
Per produir altres colors, podeu combinar els tres colors en diferents intensitats. Per ajustar la intensitat de cada LED podeu utilitzar un senyal PWM.
Com que els LED estan molt a prop els uns dels altres, els nostres ulls veuen el resultat de la combinació de colors, en lloc dels tres colors individualment.
Per tenir una idea de com combinar els colors, mireu el següent gràfic.
Aquest és el gràfic de barreja de colors més senzill, però us dóna una idea de com funciona i com produir diferents colors.LAFVIN ESP32 Basic Starter Kit - diferents colorsPeces necessàries
Per a aquest projecte necessiteu les següents parts:

  • Placa ESP32 DEVKIT V1
  • LED RGB
  • 3 resistències de 220 ohms
  • Cables de pont
  • Tauler

EsquemàticLAFVIN ESP32 Basic Starter Kit - EsquemaCodi
Programarem l'ESP32 mitjançant l'IDE d'Arduino, així que assegureu-vos que teniu instal·lat el complement ESP32 abans de continuar: (si ja heu fet aquest pas, podeu passar al següent pas).

  • Instal·lació del complement ESP32 a l'IDE d'Arduino

Després de muntar el circuit, obriu el codi
Projecte_6_RGB_LED_Web_Server.ino a l'IDE arduino.
Abans de carregar el codi, no oblideu inserir les vostres credencials de xarxa perquè l'ESP es pugui connectar a la vostra xarxa local.LAFVIN ESP32 Basic Starter Kit - xarxa localCom funciona el codi
L'esbós ESP32 utilitza la biblioteca WiFi.h.LAFVIN ESP32 Basic Starter Kit - Biblioteca WiFi.hLes línies següents defineixen variables de cadena per contenir els paràmetres R, G i B de la sol·licitud.LAFVIN ESP32 Basic Starter Kit - String redStringLes quatre variables següents s'utilitzen per descodificar la sol·licitud HTTP més endavant.LAFVIN ESP32 Basic Starter Kit - Sol·licitud HTTPCreeu tres variables per als GPIO que controlaran els paràmetres de la tira R, G i B. En aquest cas, estem utilitzant GPIO 13, GPIO 12 i GPIO 14.LAFVIN ESP32 Basic Starter Kit - GPIOs necessitenAquests GPIO necessiten emetre senyals PWM, de manera que primer hem de configurar les propietats PWM. Estableix la freqüència del senyal PWM a 5000 Hz. A continuació, associa un canal PWM per a cada colorLAFVIN ESP32 Basic Starter Kit - cada colorI, finalment, configureu la resolució dels canals PWM a 8 bitsLAFVIN ESP32 Basic Starter Kit - Canals PWMA la configuració (), assigneu les propietats PWM als canals PWMLAFVIN ESP32 Basic Starter Kit - Canals PWMConnecteu els canals PWM als GPIO corresponentsLAFVIN ESP32 Basic Starter Kit - GPIO corresponentsLa secció de codi següent mostra el selector de colors al vostre web pàgina i fa una sol·licitud en funció del color que heu escollit.LAFVIN ESP32 Basic Starter Kit - escollitLAFVIN ESP32 Basic Starter Kit - client.printlnLAFVIN ESP32 Basic Starter Kit - client.println 1Quan trieu un color, rebeu una sol·licitud amb el format següent.LAFVIN ESP32 Basic Starter Kit - següent format

Per tant, hem de dividir aquesta cadena per obtenir els paràmetres R, G i B. Els paràmetres es guarden a les variables redString, greenString i blueString i poden tenir valors entre 0 i 255.LAFVIN ESP32 Basic Starter Kit - capçaleraLAFVIN ESP32 Basic Starter Kit - capçalera 1Per controlar la tira amb l'ESP32, utilitzeu la funció ledcWrite() per generar senyals PWM amb els valors descodificats des de l'HTTP petició.LAFVIN ESP32 Basic Starter Kit - Sol·licitud HTTP 1Nota: més informació sobre PWM amb ESP32: Projecte 3 ESP32 PWM (sortida analògica)
Per controlar la tira amb l'ESP8266, només hem d'utilitzar
la funció analogWrite() per generar senyals PWM amb els valors descodificats de la sol·licitud HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Com que obtenim els valors d'una variable de cadena, hem de convertir-los en nombres enters mitjançant el mètode toInt().
Demostració
Després d'inserir les vostres credencials de xarxa, seleccioneu la placa correcta i el port COM i pengeu el codi al vostre ESP32. Passos de referència del codi de càrrega.
Després de carregar, obriu el monitor sèrie a una velocitat de transmissió de 115200 i premeu el botó Habilita/Restablir ESP. Hauríeu d'obtenir l'adreça IP del tauler.LAFVIN ESP32 Basic Starter Kit - mateixa LANObriu el vostre navegador i inseriu l'adreça IP de l'ESP. Ara, utilitzeu el selector de colors per triar un color per al LED RGB.
Aleshores, heu de prémer el botó "Canvia el color" perquè el color tingui efecte.Kit d'inici bàsic LAFVIN ESP32 - LED RGBPer apagar el LED RGB, seleccioneu el color negre.
Els colors més forts (a la part superior del selector de colors), són els que produiran millors resultats.LAFVIN ESP32 Basic Starter Kit - millors resultats

Projecte 7 Relleu ESP32 Web Servidor

L'ús d'un relé amb l'ESP32 és una manera fantàstica de controlar els electrodomèstics de CA de forma remota. Aquest tutorial explica com controlar un mòdul de relé amb l'ESP32.
Veurem com funciona un mòdul de relé, com connectar el relé a l'ESP32 i construir un web servidor per controlar un relé de manera remota.
Presentació de Relés
Un relé és un interruptor accionat elèctricament i com qualsevol altre interruptor, que es pot encendre o apagar, deixant passar el corrent o no. Es pot controlar amb baix voltages, com els 3.3V que proporcionen els GPIO ESP32 i ens permet controlar alt voltagés com 12V, 24V o xarxa voltage (230V a Europa i 120V als EUA).Kit d'inici bàsic LAFVIN ESP32 - Presentació de relésAl costat esquerre, hi ha dos jocs de tres endolls per connectar alt voltages, i les agulles del costat dret (baix volumtage) connectar-se als GPIO ESP32.
Mains Voltage ConnexionsLAFVIN ESP32 Basic Starter Kit - Mains Voltage ConnexionsEl mòdul de relé que es mostra a la foto anterior té dos connectors, cadascun amb tres preses: comuns (COM), Normalment tancat (NC) i Normalment obert (NO).

  • COM: connecteu el corrent que voleu controlar (voltagi).
  • NC (Normally Closed): la configuració normalment tancada s'utilitza quan es vol que el relé es tanqui per defecte. Els pins NC són COM estan connectats, és a dir, el corrent flueix tret que envieu un senyal de l'ESP32 al mòdul de relé per obrir el circuit i aturar el flux de corrent.
  • NO (Normally Open): la configuració normalment oberta funciona a l'inrevés: no hi ha connexió entre els pins NO i COM, de manera que el circuit està trencat tret que envieu un senyal des de l'ESP32 per tancar el circuit.

Pins de controlLAFVIN ESP32 Basic Starter Kit - Control PinsEl baix volumtagEl costat té un conjunt de quatre agulles i un conjunt de tres agulles. El primer conjunt consta de VCC i GND per alimentar el mòdul, i l'entrada 1 (IN1) i l'entrada 2 (IN2) per controlar els relés inferior i superior, respectivament.
Si el vostre mòdul de relé només té un canal, només tindreu un pin IN. Si teniu quatre canals, tindreu quatre pins IN, i així successivament.
El senyal que envieu als pins IN, determina si el relé està actiu o no. El relé s'activa quan l'entrada baixa a uns 2V. Això vol dir que tindreu els escenaris següents:

  • Configuració normalment tancada (NC):
  • Senyal ALTA: el corrent flueix
  • Senyal BAIX: el corrent no flueix
  • Configuració normalment oberta (NO):
  • Senyal ALTA: el corrent no flueix
  • Senyal BAIX - corrent que flueix

Hauríeu d'utilitzar una configuració normalment tancada quan el corrent hauria de fluir la majoria de vegades, i només voleu aturar-lo de tant en tant.
Utilitzeu una configuració normalment oberta quan vulgueu que el corrent flueixi de tant en tant (per exemple,ample, activa alamp ocasionalment).
Selecció de la font d'alimentacióLAFVIN ESP32 Basic Starter Kit - Selecció de fonts d'alimentacióEl segon conjunt de pins consta de pins GND, VCC i JD-VCC.
El pin JD-VCC alimenta l'electroimant del relé. Tingueu en compte que el mòdul té una tapa de pont que connecta els pins VCC i JD-VCC; el que es mostra aquí és groc, però el vostre pot ser d'un altre color.
Amb la tapa del pont posada, els pins VCC i JD-VCC estan connectats. Això significa que l'electroimant del relé s'alimenta directament des del pin d'alimentació ESP32, de manera que el mòdul de relé i els circuits ESP32 no estan aïllats físicament entre si.
Sense la tapa del pont, heu de proporcionar una font d'alimentació independent per alimentar l'electroimant del relé a través del pin JD-VCC. Aquesta configuració aïlla físicament els relés de l'ESP32 amb l'optoacoblador integrat del mòdul, que evita danys a l'ESP32 en cas de pics elèctrics.
EsquemàticLAFVIN ESP32 Basic Starter Kit - EsquemaAvís: Ús d'alt voltagLes fonts d'alimentació poden causar lesions greus.
Per tant, s'utilitzen LED de 5 mm en lloc d'un volum de subministrament elevattage bombetes a l'experiment. Si no esteu familiaritzat amb el voltagDemana a algú que t'ajudi. Mentre programeu l'ESP o connecteu el vostre circuit, assegureu-vos que tot estigui desconnectat de la xarxatage.LAFVIN ESP32 Basic Starter Kit - xarxa voltageInstal·lació de la biblioteca per a ESP32
Per construir això web servidor, fem servir l'ESPAsyncWebBiblioteca del servidor i biblioteca AsyncTCP.
Instal·lació de l'ESPAsyncWebBiblioteca del servidor
Seguiu els passos següents per instal·lar el ESPAsyncWebServidor biblioteca:

  1. Feu clic aquí per descarregar l'ESPAsyncWebBiblioteca del servidor. Hauries de tenir
    una carpeta .zip a la carpeta Baixades
  2. Descomprimiu la carpeta .zip i hauríeu d'obtenir ESPAsyncWebCarpeta principal del servidor
  3. Canvieu el nom de la vostra carpeta des d'ESPAsyncWebMestre del servidor a ESPAsyncWebServidor
  4. Mou l'ESPAsyncWebCarpeta del servidor a la carpeta de biblioteques d'instal·lació d'Arduino IDE

Alternativament, al vostre IDE Arduino, podeu anar a Sketch > Inclou
Biblioteca > Afegeix una biblioteca .ZIP... i selecciona la biblioteca que acabes de baixar.
Instal·lació de la biblioteca AsyncTCP per a ESP32
El ESPAsyncWebServidor biblioteca requereix el AsyncTCP biblioteca per treballar. Seguiu
els següents passos per instal·lar aquesta biblioteca:

  1. Feu clic aquí per descarregar la biblioteca AsyncTCP. Hauríeu de tenir una carpeta .zip a la carpeta Descàrregues
  2. Descomprimiu la carpeta .zip i hauríeu d'obtenir la carpeta AsyncTCP-master
    1. Canvieu el nom de la vostra carpeta d'AsyncTCP-master a AsyncTCP
    3. Mou la carpeta AsyncTCP a la carpeta de biblioteques d'instal·lació de l'IDE d'Arduino
    4. Finalment, torneu a obrir el vostre IDE Arduino

Alternativament, al vostre IDE Arduino, podeu anar a Sketch > Inclou
Biblioteca > Afegeix una biblioteca .ZIP... i selecciona la biblioteca que acabes de baixar.
Codi
Programarem l'ESP32 mitjançant l'IDE d'Arduino, així que assegureu-vos que teniu instal·lat el complement ESP32 abans de continuar: (si ja heu fet aquest pas, podeu passar al següent pas).
Instal·lació del complement ESP32 a l'IDE d'Arduino
Després d'instal·lar les biblioteques necessàries, obriu el codi Project_7_ESP32_Relay_Web_Server.ino a l'IDE arduino.
Abans de carregar el codi, no oblideu inserir les vostres credencials de xarxa perquè l'ESP es pugui connectar a la vostra xarxa local.LAFVIN ESP32 Basic Starter Kit - xarxa localDemostració
Després de fer els canvis necessaris, carregueu el codi al vostre ESP32. Passos de referència del codi de càrrega.
Obriu el monitor sèrie a una velocitat de transmissió de 115200 i premeu el botó ESP32 EN per obtenir la seva adreça IP. A continuació, obriu un navegador a la vostra xarxa local i escriviu l'adreça IP de l'ESP32 per accedir al web servidor.
Obriu el monitor sèrie a una velocitat de transmissió de 115200 i premeu el botó ESP32 EN per obtenir la seva adreça IP. A continuació, obriu un navegador a la vostra xarxa local i escriviu l'adreça IP de l'ESP32 per accedir al web servidor.Kit d'inici bàsic LAFVIN ESP32 - web servidorNota: El vostre navegador i ESP32 haurien d'estar connectats a la mateixa LAN.
Hauríeu d'obtenir alguna cosa de la següent manera amb dos botons com el nombre de relés que heu definit al vostre codi.LAFVIN ESP32 Basic Starter Kit - telèfon intel·ligentAra, podeu utilitzar els botons per controlar els vostres relés amb el vostre telèfon intel·ligent.LAFVIN ESP32 Basic Starter Kit - telèfon intel·ligent 1

Projecte_8_Sincronització_estat_de_sortida_ Web_Servidor

Aquest projecte mostra com controlar les sortides ESP32 o ESP8266 mitjançant a web servidor i un botó físic simultàniament. L'estat de sortida s'actualitza a web pàgina si es canvia mitjançant un botó físic o web servidor.
Projecte acabatview
Fem una ullada ràpida a com funciona el projecte.LAFVIN ESP32 Basic Starter Kit - Project OverviewL'ESP32 o l'ESP8266 allotja a web servidor que permet controlar l'estat d'una sortida;

  • L'estat de sortida actual es mostra a la web servidor;
  • L'ESP també està connectat a un polsador físic que controla la mateixa sortida;
  • Si canvieu l'estat de sortida mitjançant el polsador físic, el seu estat actual també s'actualitzarà al web servidor.

En resum, aquest projecte us permet controlar la mateixa sortida mitjançant a web servidor i un polsador simultàniament. Sempre que l'estat de sortida canvia, el web servidor està actualitzat.
Peces necessàries
Aquí teniu una llista de les parts que necessiteu per construir el circuit:

  • Placa ESP32 DEVKIT V1
  • LED de 5 mm
  • Resistència de 220 ohms
  • Polsador
  • Resistència de 10k Ohm
  • Tauler
  • Cables de pont

EsquemàticKit d'inici bàsic LAFVIN ESP32 - Esquema 1Instal·lació de la biblioteca per a ESP32
Per construir això web servidor, fem servir l'ESPAsyncWebBiblioteca del servidor i biblioteca AsyncTCP. (Si ja heu fet aquest pas, podeu saltar al pas següent.)
Instal·lació de l'ESPAsyncWebBiblioteca del servidor
Seguiu els passos següents per instal·lar l'ESPAsyncWebBiblioteca del servidor:

  1. Feu clic aquí per descarregar l'ESPAsyncWebBiblioteca del servidor. Hauries de tenir
    una carpeta .zip a la carpeta Baixades
  2. Descomprimiu la carpeta .zip i hauríeu d'obtenir ESPAsyncWebCarpeta principal del servidor
  3. Canvieu el nom de la vostra carpeta des d'ESPAsyncWebMestre del servidor a ESPAsyncWebServidor
  4. Mou l'ESPAsyncWebCarpeta del servidor a la carpeta de biblioteques d'instal·lació d'Arduino IDE
    Alternativament, al vostre IDE Arduino, podeu anar a Sketch > Inclou
    Biblioteca > Afegeix una biblioteca .ZIP... i selecciona la biblioteca que acabes de baixar.

Instal·lació de la biblioteca AsyncTCP per a ESP32
L'ESPAsyncWebLa biblioteca del servidor requereix que la biblioteca AsyncTCP funcioni. Seguiu els passos següents per instal·lar aquesta biblioteca:

  1. Feu clic aquí per descarregar la biblioteca AsyncTCP. Hauríeu de tenir una carpeta .zip a la carpeta Descàrregues
  2. Descomprimiu la carpeta .zip i hauríeu d'obtenir la carpeta AsyncTCP-master
  3. Canvieu el nom de la vostra carpeta d'AsyncTCP-master a AsyncTCP
  4. Moveu la carpeta AsyncTCP a la carpeta de biblioteques d'instal·lació d'Arduino IDE
  5. Finalment, torneu a obrir el vostre IDE Arduino
    Alternativament, al vostre IDE Arduino, podeu anar a Sketch > Inclou
    Biblioteca > Afegeix una biblioteca .ZIP... i selecciona la biblioteca que acabes de baixar.

Codi
Programarem l'ESP32 mitjançant l'IDE d'Arduino, així que assegureu-vos que teniu instal·lat el complement ESP32 abans de continuar: (si ja heu fet aquest pas, podeu passar al següent pas).
Instal·lació del complement ESP32 a l'IDE d'Arduino
Després d'instal·lar les biblioteques necessàries, obriu el codi
Projecte_8_Sincronització_estat_de_sortida_Web_Server.ino a l'IDE arduino.
Abans de carregar el codi, no oblideu inserir les vostres credencials de xarxa perquè l'ESP es pugui connectar a la vostra xarxa local.LAFVIN ESP32 Basic Starter Kit - Codi

Com funciona el codi

Estat del botó i estat de sortida
La variable ledState manté l'estat de sortida del LED. Per defecte, quan el web s'inicia el servidor, és BAIX.LAFVIN ESP32 Basic Starter Kit - Code Works

ButtonState i lastButtonState s'utilitzen per detectar si el polsador s'ha premut o no.LAFVIN ESP32 Basic Starter Kit - es va prémerBotó (web servidor)
No hem inclòs l'HTML per crear el botó a la variable index_html.
Això és perquè volem poder canviar-lo en funció de l'estat actual del LED que també es pot canviar amb el polsador.
Per tant, hem creat un marcador de posició per al botó %BUTTONPLACEHOLDER% que es substituirà per text HTML per crear el botó més endavant al codi (això es fa a la funció processador()).LAFVIN ESP32 Basic Starter Kit - es va prémer 1processador ()
La funció processador() substitueix qualsevol marcador de posició del text HTML amb valors reals. Primer, comprova si els textos HTML en contenen
marcadors de posició %BUTTONPLACEHOLDER%.LAFVIN ESP32 Basic Starter Kit - processadorA continuació, crida a la funció outputState() que retorna l'estat de sortida actual. El desem a la variable outputStateValue.LAFVIN ESP32 Basic Starter Kit - outputStateDesprés d'això, utilitzeu aquest valor per crear el text HTML per mostrar el botó amb l'estat correcte:Kit d'inici bàsic LAFVIN ESP32 - codi 4Sol·licitud HTTP GET per canviar l'estat de sortida (JavaScript)
Quan premeu el botó, es crida la funció toggleCheckbox(). Aquesta funció farà una sol·licitud en diferents URLs per encendre o apagar el LED.LAFVIN ESP32 Basic Starter Kit - JavaScriptPer encendre el LED, fa una sol·licitud a /update?state=1 URL:LAFVIN ESP32 Basic Starter Kit - element.checkedEn cas contrari, fa una sol·licitud a /update?state=0 URL.
Sol·licitud HTTP GET per actualitzar l'estat (JavaScript)
Per mantenir l'estat de sortida actualitzat a web servidor, anomenem la funció següent que fa una nova sol·licitud a l'estat / URL cada segon.LAFVIN ESP32 Basic Starter Kit - Actualització de l'estatLAFVIN ESP32 Basic Starter Kit - Actualització de l'estat 1Gestionar les sol·licituds
Aleshores, hem de gestionar què passa quan l'ESP32 o l'ESP8266 rep sol·licituds sobre aquests URLs.
Quan es rep una sol·licitud a l'arrel /URL, enviem la pàgina HTML així com el processador.LAFVIN ESP32 Basic Starter Kit - Maneja les sol·licitudsKit d'inici bàsic LAFVIN ESP32 - Sol·licituds de gestió 1Les línies següents comproven si heu rebut una sol·licitud a /update?state=1 o /update?state=0 URL i canvia el ledState en conseqüència.Kit d'inici bàsic LAFVIN ESP32 - ledStateLAFVIN ESP32 Basic Starter Kit - inputParamQuan es rep una sol·licitud a /state URL, enviem l'estat de sortida actual:LAFVIN ESP32 Basic Starter Kit - estat de sortidabucle ()
Al bucle (), desbotem el polsador i encenem o apaguem el LED segons el valor de ledState variable.LAFVIN ESP32 Basic Starter Kit - bucle 1Demostració
Carregueu el codi al vostre tauler ESP32. Carregueu els passos de referència del codi.
A continuació, obriu el monitor sèrie a una velocitat de baudios de 115200. Premeu el botó EN/RST integrat per obtenir l'adreça IP.LAFVIN ESP32 Basic Starter Kit - DemostracióObriu un navegador a la vostra xarxa local i escriviu l'adreça IP de l'ESP. Heu de tenir accés a web servidor tal com es mostra a continuació.
Nota: El vostre navegador i ESP32 haurien d'estar connectats a la mateixa LAN.LAFVIN ESP32 Basic Starter Kit - navegadorPodeu activar el botó del web servidor per encendre el LED.Kit d'inici bàsic LAFVIN ESP32 - web server 1També podeu controlar el mateix LED amb el polsador físic. El seu estat sempre s'actualitzarà automàticament al web servidor.

Projecte 9 ESP32 DHT11 Web Servidor

En aquest projecte, aprendràs a crear un ESP32 asíncron web servidor amb el DHT11 que mostra la temperatura i la humitat mitjançant Arduino IDE.
Requisits previs
El web servidor, construirem les actualitzacions de les lectures automàticament sense necessitat d'actualitzar web pàgina.
Amb aquest projecte aprendràs:

  • Com llegir la temperatura i la humitat dels sensors DHT;
  • Construeix un asincrònic web servidor utilitzant el ESPAsyncWebBiblioteca del servidor;
  • Actualitzeu les lectures del sensor automàticament sense necessitat d'actualitzar web pàgina.

Asíncron Web Servidor
Per construir el web servidor farem servir el ESPAsyncWebBiblioteca del servidor que proporciona una manera fàcil de crear un sistema asíncron web servidor. Construint un asincrònic web servidor té diversos advantages com s'esmenta a la pàgina de GitHub de la biblioteca, com ara:

  • "Manejar més d'una connexió alhora";
  • "Quan envieu la resposta, esteu immediatament preparat per gestionar altres connexions mentre el servidor s'encarrega d'enviar la resposta en segon pla";
  • "Motor de processament de plantilles senzill per gestionar plantilles";

Peces necessàries
Per completar aquest tutorial necessiteu les parts següents:

  • Placa de desenvolupament ESP32
  • Mòdul DHT11
  • Tauler
  • Cables de pont

EsquemàticKit d'inici bàsic LAFVIN ESP32 - Esquema 2Instal·lació de Biblioteques
Heu d'instal·lar un parell de biblioteques per a aquest projecte:

Instal·lació de la biblioteca de sensors DHT
Per llegir des del sensor DHT amb Arduino IDE, cal instal·lar el Biblioteca de sensors DHT. Seguiu els passos següents per instal·lar la biblioteca.

  1. Feu clic aquí per descarregar la biblioteca de sensors DHT. Hauríeu de tenir una carpeta .zip a la carpeta Descàrregues
  2. Descomprimiu la carpeta .zip i hauríeu d'obtenir la carpeta DHT-sensor-library-master
  3. Canvieu el nom de la vostra carpeta de DHT-sensor-library-master a DHT_sensor
  4. Moveu la carpeta DHT_sensor a la carpeta de biblioteques d'instal·lació de l'IDE d'Arduino
  5. Finalment, torneu a obrir el vostre IDE Arduino

Instal·lació del controlador de sensor unificat d'Adafruit
També cal instal·lar el Biblioteca de controladors de sensor unificat d'Adafruit per treballar amb el sensor DHT. Seguiu els passos següents per instal·lar la biblioteca.

  1. Feu clic aquí per descarregar la biblioteca de sensors unificats d'Adafruit. Hauríeu de tenir una carpeta .zip a la carpeta Descàrregues
  2. Descomprimiu la carpeta .zip i hauríeu d'obtenir la carpeta Adafruit_sensor-master
  3. Canvieu el nom de la vostra carpeta d'Adafruit_sensor-master a Adafruit_sensor
  4. Mou la carpeta Adafruit_sensor a la carpeta de biblioteques d'instal·lació de l'IDE d'Arduino
  5. Finalment, torneu a obrir el vostre IDE Arduino

Instal·lació de l'ESPAsyncWebBiblioteca del servidor

Seguiu els passos següents per instal·lar el ESPAsyncWebServidor biblioteca:

  1. Feu clic aquí per descarregar l'ESPAsyncWebBiblioteca del servidor. Hauries de tenir
    una carpeta .zip a la carpeta Baixades
  2. Descomprimiu la carpeta .zip i ho hauríeu de fer
    obtenir ESPAsyncWebCarpeta principal del servidor
  3. Canvieu el nom de la vostra carpeta des d'ESPAsyncWebMestre del servidor a ESPAsyncWebServidor
  4. Mou l'ESPAsyncWebCarpeta del servidor a la carpeta de biblioteques d'instal·lació d'Arduino IDE

Instal·lació de la biblioteca Async TCP per a ESP32
El ESPAsyncWebServidor biblioteca requereix el AsyncTCP biblioteca per treballar. Seguiu els passos següents per instal·lar aquesta biblioteca:

  1. Feu clic aquí per descarregar la biblioteca AsyncTCP. Hauríeu de tenir una carpeta .zip a la carpeta Descàrregues
  2. Descomprimiu la carpeta .zip i hauríeu d'obtenir la carpeta AsyncTCP-master
  3. Canvieu el nom de la vostra carpeta d'AsyncTCP-master a AsyncTCP
  4. Moveu la carpeta AsyncTCP a la carpeta de biblioteques d'instal·lació d'Arduino IDE
  5. Finalment, torneu a obrir el vostre IDE Arduino

Codi
Programarem l'ESP32 mitjançant l'IDE d'Arduino, així que assegureu-vos que teniu instal·lat el complement ESP32 abans de continuar: (si ja heu fet aquest pas, podeu passar al següent pas).
Instal·lació del complement ESP32 a l'IDE d'Arduino
Després d'instal·lar les biblioteques necessàries, obriu el codi
Projecte_9_ESP32_DHT11_Web_Server.ino a l'IDE arduino.
Abans de carregar el codi, no oblideu inserir les vostres credencials de xarxa perquè l'ESP es pugui connectar a la vostra xarxa local.LAFVIN ESP32 Basic Starter Kit - CodiCom funciona el codi
En els paràgrafs següents explicarem com funciona el codi. Segueix llegint si vols saber-ne més o salta a la secció de demostració per veure el resultat final.
Importació de biblioteques
Primer, importeu les biblioteques necessàries. El WiFi, ESPAsyncWebEl servidor i l'ESPAsyncTCP són necessaris per crear el web servidor. Les biblioteques Adafruit_Sensor i DHT són necessàries per llegir des dels sensors DHT11 o DHT22.LAFVIN ESP32 Basic Starter Kit - Importació de bibliotequesLAFVIN ESP32 Basic Starter Kit - Com funciona el codiDefinició de variables
Definiu el GPIO al qual està connectat el pin de dades DHT. En aquest cas, està connectat a GPIO 4.LAFVIN ESP32 Basic Starter Kit - Definició de variablesA continuació, seleccioneu el tipus de sensor DHT que utilitzeu. En el nostre example, estem utilitzant el DHT22. Si utilitzeu un altre tipus, només heu de deixar de comentar el vostre sensor i comentar tots els altres.LAFVIN ESP32 Basic Starter Kit - Definició de variables 1

Instancia un objecte DHT amb el tipus i el pin que hem definit anteriorment.LAFVIN ESP32 Basic Starter Kit - Definició de variables 2Creeu una sincronitzacióWebObjecte de servidor al port 80.LAFVIN ESP32 Basic Starter Kit - Definició de variables 3Llegir les funcions de temperatura i humitat
Hem creat dues funcions: una per llegir la temperatura Hem creat dues funcions: una per llegir la temperatura (readDHTTemperature()) i l'altra per llegir la humitat (readDHTHhumidity()).LAFVIN ESP32 Basic Starter Kit - llegirDHTHhumitatLAFVIN ESP32 Basic Starter Kit - lectures del sensorObtenir lectures del sensor és tan senzill com utilitzar Obtenir lectures del sensor és tan senzill com utilitzar els mètodes readTemperature() i readHumidity() a l'objecte dht.LAFVIN ESP32 Basic Starter Kit - objectTambé tenim una condició que retorna dos guions (–) en cas que el sensor no aconsegueixi les lectures.LAFVIN ESP32 Basic Starter Kit - lecturesLes lectures es tornen com a tipus de cadena. Per convertir un float en una cadena, utilitzeu la funció String().LAFVIN ESP32 Basic Starter Kit - StringPer defecte, estem llegint la temperatura en graus Celsius. Per obtenir la temperatura en graus Fahrenheit, comenta la temperatura en Celsius i descomenta la temperatura en Fahrenheit, de manera que tinguis el següent:Kit d'inici bàsic LAFVIN ESP32 - FahrenheitKit d'inici bàsic LAFVIN ESP32 - Fahrenheit 1Carregueu el codi
Ara, carregueu el codi al vostre ESP32. Assegureu-vos que heu seleccionat el tauler i el port COM correctes. Passos de referència del codi de pujada.
Després de carregar, obriu el monitor sèrie a una velocitat de transmissió de 115200. Premeu el botó de restabliment de l'ESP32. L'adreça IP de l'ESP32 s'ha d'imprimir a la sèrie monitor.LAFVIN ESP32 Basic Starter Kit - Carregueu el codiDemostració
Obriu un navegador i escriviu l'adreça IP de l'ESP32. El teu web servidor hauria de mostrar les darreres lectures del sensor.
Nota: El vostre navegador i ESP32 haurien d'estar connectats a la mateixa LAN.
Tingueu en compte que les lectures de temperatura i humitat s'actualitzen automàticament sense necessitat d'actualitzar web pàgina.LAFVIN ESP32 Basic Starter Kit - Demostració 1

Projecte_10_ESP32_OLED_Display

Aquest projecte mostra com utilitzar la pantalla OLED SSD0.96 de 1306 polzades amb ESP32 mitjançant Arduino IDE.
Presentació de la pantalla OLED de 0.96 polzades
El Pantalla OLED que utilitzarem en aquest tutorial és el model SSD1306: una pantalla monocolor de 0.96 polzades amb 128 × 64 píxels com es mostra a la figura següent.LAFVIN ESP32 Basic Starter Kit - OLEDDisplayLa pantalla OLED no requereix llum de fons, la qual cosa dóna com a resultat un contrast molt agradable en entorns foscos. A més, els seus píxels consumeixen energia només quan estan encesos, de manera que la pantalla OLED consumeix menys energia en comparació amb altres pantalles.
Com que la pantalla OLED utilitza el protocol de comunicació I2C, el cablejat és molt senzill. Podeu utilitzar la taula següent com a referència.

Pin OLED ESP32
Vin 3.3 V
GND GND
SCL GPIO 22
SDA GPIO 21

EsquemàticLAFVIN ESP32 Basic Starter Kit - EsquemaInstal·lació de la biblioteca OLED SSD1306 - ESP32
Hi ha diverses biblioteques disponibles per controlar la pantalla OLED amb l'ESP32.
En aquest tutorial farem servir dues biblioteques d'Adafruit: Biblioteca Adafruit_SSD1306 i Biblioteca Adafruit_GFX.
Seguiu els passos següents per instal·lar aquestes biblioteques.

  1. Obriu el vostre IDE Arduino i aneu a Sketch > Inclou la biblioteca > Gestiona les biblioteques. S'ha d'obrir el Gestor de la biblioteca.
  2. Escriviu "SSD1306" al quadre de cerca i instal·leu la biblioteca SSD1306 d'Adafruit.LAFVIN ESP32 Basic Starter Kit - OLEDLibrary–
  3. Després d'instal·lar la biblioteca SSD1306 d'Adafruit, escriviu "GFX" al quadre de cerca i instal·leu la biblioteca.LAFVIN ESP32 Basic Starter Kit - biblioteca
  4. Després d'instal·lar les biblioteques, reinicieu el vostre IDE Arduino.

Codi
Després d'instal·lar les biblioteques necessàries, obriu Project_10_ESP32_OLED_Display.ino a l'IDE d'arduino. codi
Programarem l'ESP32 mitjançant l'IDE d'Arduino, així que assegureu-vos que teniu instal·lat el complement ESP32 abans de continuar: (Si ja heu fet aquest pas, podeu passar al següent pas).
Instal·lació del complement ESP32 a l'IDE d'ArduinoKit d'inici bàsic LAFVIN ESP32 - Codi 1Kit d'inici bàsic LAFVIN ESP32 - Codi 2Kit d'inici bàsic LAFVIN ESP32 - Codi 3Com funciona el codi
Importació de biblioteques
En primer lloc, heu d'importar les biblioteques necessàries. La biblioteca Wire per utilitzar I2C i les biblioteques Adafruit per escriure a la pantalla: Adafruit_GFX i Adafruit_SSD1306.LAFVIN ESP32 Basic Starter Kit - Code Works 1LAFVIN ESP32 Basic Starter Kit - Code Works 2Inicialitzar la pantalla OLED
A continuació, definiu l'amplada i l'alçada de l'OLED. En aquest exampEn aquest cas, utilitzem una pantalla OLED de 128 × 64. Si utilitzeu altres mides, podeu canviar-ho a les variables SCREEN_WIDTH i SCREEN_HEIGHT.LAFVIN ESP32 Basic Starter Kit - Pantalla OLEDA continuació, inicialitzeu un objecte de visualització amb l'amplada i l'alçada definides anteriorment amb el protocol de comunicació I2C (&Wire).LAFVIN ESP32 Basic Starter Kit - protocol de comunicacióEl paràmetre (-1) significa que la vostra pantalla OLED no té un pin de RESET. Si la vostra pantalla OLED té un pin RESET, hauria d'estar connectada a un GPIO. En aquest cas, hauríeu de passar el número GPIO com a paràmetre.
A la configuració (), inicialitzeu el monitor sèrie a una velocitat de bauds de 115200 amb finalitats de depuració.LAFVIN ESP32 Basic Starter Kit - finsInicieu la pantalla OLED amb el mètode begin() de la següent manera:LAFVIN ESP32 Basic Starter Kit - display.beginLAFVIN ESP32 Basic Starter Kit - Serial.printlnAquest fragment també imprimeix un missatge al monitor sèrie, en cas que no ens puguem connectar a la pantalla.

LAFVIN ESP32 Basic Starter Kit - Serial.println 1En cas que utilitzeu una pantalla OLED diferent, és possible que hàgiu de canviar l'adreça OLED. En el nostre cas, l'adreça és 0x3C.LAFVIN ESP32 Basic Starter Kit - adreçaDesprés d'inicialitzar la pantalla, afegiu un retard de dos segons, de manera que l'OLED tingui prou temps per inicialitzar-se abans d'escriure text:LAFVIN ESP32 Basic Starter Kit - retardVisualització clara, estableix la mida de la lletra, el color i escriu text
Després d'inicialitzar la pantalla, esborreu la memòria intermèdia de visualització amb el mètode clearDisplay():LAFVIN ESP32 Basic Starter Kit - display

Abans d'escriure text, heu d'establir la mida del text, el color i on es mostrarà el text a l'OLED.
Estableix la mida del tipus de lletra mitjançant el mètode setTextSize():Kit d'inici bàsic LAFVIN ESP32 - pantalla 1Estableix el color de la font amb el mètode setTextColor():
BLANC defineix el tipus de lletra blanc i el fons negre.
Definiu la posició on comença el text mitjançant el mètode setCursor(x,y). En aquest cas, estem configurant el text perquè comenci a les coordenades (0,0), a la cantonada superior esquerra.Kit d'inici bàsic LAFVIN ESP32 - setTextColor 1Finalment, podeu enviar el text a la pantalla mitjançant el mètode println(), de la següent maneraKit d'inici bàsic LAFVIN ESP32 - codi 5Aleshores, heu de cridar al mètode display() per mostrar realment el text a la pantalla.LAFVIN ESP32 Basic Starter Kit - display

La biblioteca OLED d'Adafruit ofereix mètodes útils per desplaçar-se fàcilment al text.

  • startscrollright(0x00, 0x0F): desplaça el text d'esquerra a dreta
  • startscrollleft(0x00, 0x0F): desplaça el text de dreta a esquerra
  • startscrolldiagright(0x00, 0x07): desplaça el text de la cantonada inferior esquerra a la cantonada superior dreta startscrolldiagleft(0x00, 0x07): desplaça el text de la cantonada inferior dreta a la cantonada superior esquerra

Carregueu el codi
Ara, carregueu el codi al vostre ESP32. Passos de referència del codi de pujada.
Després de carregar el codi, l'OLED mostrarà un text de desplaçament.LAFVIN ESP32 Basic Starter Kit - text de desplaçamentLogotip de LAFVIN

Documents/Recursos

Kit d'inici bàsic LAFVIN ESP32 [pdfManual d'instruccions
Kit d'inici bàsic ESP32, ESP32, kit d'inici bàsic, kit d'inici

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *