Logotipo de LAFVINIntroducción básica al ESP32
Equipo

Lista de embalaje

Kit básico de inicio LAFVIN ESP32: lista de empaque

Introducción al ESP32

¿No conoce el ESP32? ¡Empiece aquí! El ESP32 es una serie de microcontroladores de sistema en un chip (SoC) de bajo costo y bajo consumo desarrollados por Espressif que incluyen capacidades inalámbricas Wi-Fi y Bluetooth y un procesador de doble núcleo. Si está familiarizado con el ESP8266, el ESP32 es su sucesor, repleto de nuevas funciones.Kit básico de inicio LAFVIN ESP32: Introducción al ESP32Especificaciones del ESP32
Si quieres ser un poco más técnico y específico, puedes echar un vistazo a las siguientes especificaciones detalladas del ESP32 (fuente: http://esp32.net/)—para más detalles, Consulte la hoja de datos):

  • Conectividad inalámbrica WiFi: velocidad de datos de 150.0 Mbps con HT40
  • Bluetooth: BLE (Bluetooth de bajo consumo) y Bluetooth clásico
  • Procesador: microprocesador Tensilica Xtensa Dual-Core LX32 de 6 bits, que funciona a 160 o 240 MHz
  • Memoria:
  • ROM: 448 KB (para arranque y funciones principales)
  • SRAM: 520 KB (para datos e instrucciones)
  • RTC fas SRAM: 8 KB (para almacenamiento de datos y CPU principal durante el arranque RTC desde el modo de suspensión profunda)
  • SRAM lenta RTC: 8 KB (para el acceso del coprocesador durante el modo de suspensión profunda) eFuse: 1 Kbit (de los cuales 256 bits se utilizan para el sistema (dirección MAC y configuración del chip) y los 768 bits restantes se reservan para aplicaciones del cliente, incluidos Flash-Encryption y Chip-ID)

Flash incorporado: flash conectado internamente a través de IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 y SD_DATA_1 en ESP32-D2WD y ESP32-PICO-D4.

  • 0 MiB (chips ESP32-D0WDQ6, ESP32-D0WD y ESP32-S0WD)
  • 2 MiB (chip ESP32-D2WD)
  • 4 MiB (módulo SiP ESP32-PICO-D4)

Bajo consumo: garantiza que aún pueda utilizar conversiones ADC, por ejemploample, durante el sueño profundo.
Entrada/salida periférica:

  • Interfaz periférica con DMA que incluye pantalla táctil capacitiva
  • Convertidores analógico-digitales (ADC)
  • DAC (convertidores de digital a analógico)
  • I²C (Circuito Interintegrado)
  • UART (Receptor/Transmisor Asíncrono Universal)
  • SPI (Interfaz periférica serial)
  • I²S (Sonido integrado entre chips)
  • RMII (Interfaz independiente del medio reducida)
  • PWM (modulación por ancho de pulso)

Seguridad: Aceleradores de hardware para AES y SSL/TLS

Placas de desarrollo ESP32

ESP32 se refiere al chip ESP32 desnudo. Sin embargo, el término “ESP32” también se utiliza para referirse a las placas de desarrollo ESP32. El uso de chips ESP32 desnudos no es fácil ni práctico, especialmente al aprender, probar y crear prototipos. La mayoría de las veces, querrá utilizar una placa de desarrollo ESP32.
Usaremos la placa ESP32 DEVKIT V1 como referencia. La siguiente imagen muestra la placa ESP32 DEVKIT V1, versión con 30 pines GPIO.Kit básico de inicio LAFVIN ESP32: placas de desarrollo ESP32Especificaciones – ESP32 DEVKIT V1
La siguiente tabla muestra un resumen de las características y especificaciones de la placa ESP32 DEVKIT V1 DOIT:

Número de núcleos 2 (doble núcleo)
Wifi 2.4 GHz hasta 150 Mbits/s
Bluetooth BLE (Bluetooth Low Energy) y Bluetooth heredado
Arquitectura 32 bits
Frecuencia de reloj Hasta 240 MHz
RAM 512 KB
Patas 30(según el modelo)
Periféricos Táctil capacitivo, ADC (convertidor analógico a digital), DAC (convertidor digital a analógico), 12C (circuito integrado), UART (receptor/transmisor asíncrono universal), CAN 2.0 (red de área del controlador), SPI (interfaz periférica en serie), 12S (inter-IC integrado).
Sonido), RMII (Interfaz independiente del medio reducida), PWM (modulación de ancho de pulso) y más.
Botones incorporados Botones RESET y BOOT
LED incorporados LED azul incorporado conectado a GPIO2; LED rojo incorporado que muestra que la placa está recibiendo energía
USB a UART
puente
CP2102

Kit básico de inicio LAFVIN ESP32 - ESP32 DEVKITViene con una interfaz microUSB que puedes usar para conectar la placa a tu computadora para cargar código o aplicar energía.
Utiliza el chip CP2102 (USB a UART) para comunicarse con tu computadora a través de un puerto COM usando una interfaz serial. Otro chip popular es el CH340. Comprueba cuál es el convertidor de chip USB a UART en tu placa, ya que necesitarás instalar los controladores necesarios para que tu computadora pueda comunicarse con la placa (más información sobre esto más adelante en esta guía).
Esta placa también viene con un botón de REINICIO (puede tener la etiqueta EN) para reiniciar la placa y un botón de ARRANQUE para poner la placa en modo intermitente (disponible para recibir código). Tenga en cuenta que algunas placas pueden no tener un botón de ARRANQUE.
También viene con un LED azul integrado que está conectado internamente a GPIO 2. Este LED es útil para la depuración para brindar algún tipo de salida física visual. También hay un LED rojo que se enciende cuando se proporciona energía a la placa.Kit básico de inicio LAFVIN ESP32 - placaDistribución de pines del ESP32
Los periféricos ESP32 incluyen:

  • 18 canales de conversión de analógico a digital (ADC)
  • 3 interfaces SPI
  • 3 interfaces UART
  • 2 interfaces I2C
  • 16 canales de salida PWM
  • 2 convertidores de digital a analógico (DAC)
  • 2 interfaces I2S
  • 10 GPIO de detección capacitiva

Las funciones ADC (conversor analógico a digital) y DAC (conversor digital a analógico) están asignadas a pines estáticos específicos. Sin embargo, puedes decidir qué pines son UART, I2C, SPI, PWM, etc.; solo tienes que asignarlos en el código. Esto es posible gracias a la función de multiplexación del chip ESP32.
Aunque puede definir las propiedades de los pines en el software, hay pines asignados de forma predeterminada como se muestra en la siguiente figuraKit básico de inicio LAFVIN ESP32: distribución de pines del ESP32Además, existen pines con características específicas que los hacen adecuados o no para un proyecto en particular. La siguiente tabla muestra qué pines son mejores para usar como entradas, salidas y con cuáles hay que tener cuidado.
Los pines resaltados en verde se pueden usar. Los resaltados en amarillo se pueden usar, pero debe prestar atención porque pueden tener un comportamiento inesperado, principalmente en el arranque. No se recomienda usar los pines resaltados en rojo como entradas o salidas.

E/S de GP Aporte Producción Notas
0 levantado OK emite señal PWM al arrancar, debe estar BAJA para ingresar al modo intermitente
1 pasador de transmisión OK salida de depuración en el arranque
2 OK OK conectado al LED incorporado, debe dejarse flotante o BAJO para ingresar al modo intermitente
3 OK pasador RX ALTO en el arranque
4 OK OK
5 OK OK emite señal PWM en el arranque, pin de sujeción
12 OK OK La bota falla si se tira hacia arriba, pasador de sujeción
13 OK OK
14 OK OK emite señal PWM en el arranque
15 OK OK emite señal PWM en el arranque, pin de sujeción
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 entrada solamente
35 OK entrada solamente
36 OK entrada solamente
39 OK entrada solamente

Continúe leyendo para obtener un análisis más detallado y profundo de los GPIO ESP32 y sus funciones.
Pines de solo entrada
Los GPIO 34 a 39 son GPI (pines de solo entrada). Estos pines no tienen resistencias pull-up o pull-down internas. No se pueden usar como salidas, así que use estos pines solo como entradas:

  • GPIO34
  • GPIO35
  • GPIO36
  • GPIO39

Flash SPI integrado en el ESP-WROOM-32
Los pines GPIO 6 a GPIO 11 están expuestos en algunas placas de desarrollo ESP32. Sin embargo, estos pines están conectados a la memoria flash SPI integrada en el chip ESP-WROOM-32 y no se recomiendan para otros usos. Por lo tanto, no utilice estos pines en sus proyectos:

  • Entrada y salida de GPIO 6 (SCK/CLK)
  • Entrada y salida de protocolo de Internet (GPIO) 7 (SDO/SD0)
  • Entrada y salida de datos GPIO 8 (SDI/SD1)
  • Entrada y salida de datos GPIO 9 (SHD/SD2)
  • Entrada y salida de GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

GPIO táctiles capacitivos
El ESP32 tiene 10 sensores táctiles capacitivos internos. Estos pueden detectar variaciones en cualquier cosa que tenga una carga eléctrica, como la piel humana. Por lo tanto, pueden detectar variaciones inducidas al tocar los GPIO con un dedo. Estos pines se pueden integrar fácilmente en almohadillas capacitivas y reemplazar botones mecánicos. Los pines táctiles capacitivos también se pueden usar para despertar al ESP32 del sueño profundo. Esos sensores táctiles internos están conectados a estos 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ógico a digital (ADC)
El ESP32 tiene 18 canales de entrada ADC de 12 bits (mientras que el ESP8266 solo tiene 1 ADC de 10 bits). Estos son los GPIO que se pueden usar como ADC y los canales respectivos:

  • 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: Los pines ADC2 no se pueden usar cuando se usa Wi-Fi. Por lo tanto, si usa Wi-Fi y tiene problemas para obtener el valor de un GPIO ADC2, puede considerar usar un GPIO ADC1 en su lugar. Eso debería resolver su problema.
Los canales de entrada del ADC tienen una resolución de 12 bits. Esto significa que puedes obtener lecturas analógicas que van desde 0 a 4095, donde 0 corresponde a 0 V y 4095 a 3.3 V. También puedes configurar la resolución de tus canales en el código y el rango del ADC.
Los pines del ADC del ESP32 no tienen un comportamiento lineal. Probablemente no podrás distinguir entre 0 y 0.1 V, o entre 3.2 y 3.3 V. Debes tener esto en cuenta al utilizar los pines del ADC. Obtendrás un comportamiento similar al que se muestra en la siguiente figura.Kit básico de inicio LAFVIN ESP32 - comportamientoConvertidor digital a analógico (DAC)
Hay 2 canales DAC de 8 bits en el ESP32 para convertir señales digitales en volumen analógico.tagSalidas de señal. Estos son los canales del DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

GPIO de RTC
El ESP32 tiene compatibilidad con GPIO RTC. Los GPIO enrutados al subsistema de bajo consumo RTC se pueden usar cuando el ESP32 está en modo de suspensión profunda. Estos GPIO RTC se pueden usar para despertar al ESP32 del modo de suspensión profunda cuando el modo de suspensión ultra baja
El coprocesador de energía (ULP) está en funcionamiento. Los siguientes GPIO se pueden utilizar como fuente de activación 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)

Modulación por ancho de pulso (PWM)
El controlador LED PWM ESP32 tiene 16 canales independientes que se pueden configurar para generar señales PWM con diferentes propiedades. Todos los pines que pueden actuar como salidas se pueden usar como pines PWM (los GPIO 34 a 39 no pueden generar PWM).
Para configurar una señal PWM, debe definir estos parámetros en el código:

  • Frecuencia de la señal;
  • Ciclo de trabajo;
  • Canal PWM;
  • GPIO donde desea emitir la señal.

I2C
El ESP32 tiene dos canales I2C y cualquier pin se puede configurar como SDA o SCL. Al utilizar el ESP32 con el IDE de Arduino, los pines I2C predeterminados son:

  • GPIO21 (SDA)
  • GPIO22 (SCL)

Si desea utilizar otros pines al usar la biblioteca de cables, solo necesita llamar a:
Cable.begin(SDA, SCL);
Inspección de la inducción
De forma predeterminada, la asignación de pines para SPI es:

Inspección de la inducción MOSI MISO Clic CS
VSPI GPIO23 GPIO19 GPIO18 GPIO5
Inspección de instalaciones de alta presión (HSPI) GPIO13 GPIO12 GPIO14 GPIO15

interrupciones
Todos los GPIO se pueden configurar como interrupciones.
Pasadores de flejado
El chip ESP32 tiene los siguientes pines de conexión:

  • GPIO 0 (debe estar BAJO para ingresar al modo de arranque)
  • GPIO 2 (debe estar flotante o BAJO durante el arranque)
  • GPIO4
  • GPIO 5 (debe estar en ALTO durante el arranque)
  • GPIO 12 (debe estar BAJO durante el arranque)
  • GPIO 15 (debe estar en ALTO durante el arranque)

Se utilizan para poner el ESP32 en modo de arranque o flasheo. En la mayoría de las placas de desarrollo con USB/Serial integrado, no es necesario preocuparse por el estado de estos pines. La placa coloca los pines en el estado correcto para el flasheo o el modo de arranque. Puede encontrar más información sobre la selección del modo de arranque del ESP32 aquí.
Sin embargo, si tienes periféricos conectados a esos pines, es posible que tengas problemas al intentar cargar un nuevo código, flashear el ESP32 con un nuevo firmware o reiniciar la placa. Si tienes algunos periféricos conectados a los pines de conexión y tienes problemas para cargar código o flashear el ESP32, puede deberse a que esos periféricos impiden que el ESP32 entre en el modo correcto. Lee la documentación de selección del modo de arranque para guiarte en la dirección correcta. Después de reiniciar, flashear o arrancar, esos pines funcionan como se espera.
Pines ALTOS en el arranque
Algunos GPIO cambian su estado a ALTO o emiten señales PWM al arrancar o reiniciar.
Esto significa que si tiene salidas conectadas a estos GPIO, puede obtener resultados inesperados cuando el ESP32 se reinicie o arranque.

  • GPIO1
  • GPIO3
  • GPIO5
  • GPIO 6 a GPIO 11 (conectado a la memoria flash SPI integrada del ESP32; no se recomienda su uso).
  • GPIO14
  • GPIO15

Habilitar (ES)
Habilitar (EN) es el pin de habilitación del regulador de 3.3 V. Está levantado, por lo que se debe conectar a tierra para deshabilitar el regulador de 3.3 V. Esto significa que puede usar este pin conectado a un botón para reiniciar su ESP32, por ejemplo.ampel.
Consumo de corriente GPIO
La corriente máxima absoluta consumida por GPIO es de 40 mA según la sección “Condiciones de funcionamiento recomendadas” en la hoja de datos del ESP32.
Sensor de efecto Hall incorporado ESP32
El ESP32 también cuenta con un sensor de efecto Hall incorporado que detecta cambios en el campo magnético de su entorno.
IDE de Arduino ESP32
Hay un complemento para Arduino IDE que te permite programar el ESP32 usando Arduino IDE y su lenguaje de programación. En este tutorial te mostraremos cómo instalar la placa ESP32 en Arduino IDE ya sea que uses Windows, Mac OS X o Linux.
Prerrequisitos: Arduino IDE instalado
Antes de comenzar con este procedimiento de instalación, debe tener instalado Arduino IDE en su computadora. Hay dos versiones de Arduino IDE que puede instalar: versión 1 y versión 2.
Puedes descargar e instalar Arduino IDE haciendo clic en el siguiente enlace: arduino.cc/es/Principal/Software
¿Qué versión de Arduino IDE recomendamos? Actualmente, hay algunas plugins para el ESP32 (como el SPIFFS FilePlugin de carga del sistema) que aún no son compatibles con Arduino 2. Por lo tanto, si tiene la intención de utilizar el complemento SPIFFS en el futuro, le recomendamos instalar la versión anterior 1.8.X. Solo tiene que desplazarse hacia abajo en la página del software de Arduino para encontrarlo.
Instalación del complemento ESP32 en Arduino IDE
Para instalar la placa ESP32 en su IDE Arduino, siga estas siguientes instrucciones:

  1. En su IDE de Arduino, vaya a File> PreferenciasKit básico de inicio LAFVIN ESP32: preferencias
  2. Introduzca lo siguiente en el “Administrador de tablero adicional” URLcampo s”:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Luego, haga clic en el botón “Aceptar”:Kit básico de inicio LAFVIN ESP32: botón “OK”Nota: Si ya tienes las placas ESP8266 URL, puedes separar el URLs con una coma de la siguiente manera:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Abra el Administrador de tableros. Vaya a Herramientas > Tablero > Administrador de tableros…Kit básico de inicio LAFVIN ESP32 - EspressifBuscar ESP32 y presione el botón de instalación para “ESP32 de Espressif Systems“:Kit básico de inicio LAFVIN ESP32 - EspressifEso es todo. Debería instalarse después de unos segundos.Kit básico de inicio LAFVIN ESP32 - instalado

Subir código de prueba

Conecte la placa ESP32 a su computadora. Con el IDE de Arduino abierto, siga estos pasos:

  1. Seleccione su placa en Herramientas > Menú de placa (en mi caso es el módulo ESP32 DEV)Kit básico de inicio LAFVIN ESP32 - Tablero de herramientas
  2. Seleccione el puerto (si no ve el puerto COM en su IDE de Arduino, necesita instalar los controladores VCP del puente USB a UART CP210x):Kit básico de inicio LAFVIN ESP32: puente UART
  3. Abra el siguiente example debajo File > Examples > WiFi
    (ESP32) > Escaneo WiFiKit básico de inicio LAFVIN ESP32 - WiFiScanKit básico de inicio LAFVIN ESP32 - WiFiScan 1
  4. Se abre un nuevo boceto en tu IDE de Arduino:Kit básico de inicio LAFVIN ESP32 - IDE de Arduino
  5. Pulsa el botón Cargar en el IDE de Arduino. Espera unos segundos mientras el código se compila y se carga en tu placa.Kit básico de inicio LAFVIN ESP32 - placa
  6. Si todo salió como esperabas, deberías ver el mensaje “Carga finalizada”.Kit básico de inicio LAFVIN ESP32: carga completa
  7. Abra el Monitor Serial IDE de Arduino a una velocidad en baudios de 115200:Kit básico de inicio LAFVIN ESP32 - Monitor
  8. Presione el botón Habilitar integrado del ESP32 y debería ver las redes disponibles cerca de su ESP32:Kit básico de inicio LAFVIN ESP32: botón de activación

Solución de problemas

Si intentas cargar un nuevo boceto en tu ESP32 y recibes este mensaje de error “Se produjo un error fatal: No se pudo conectar con ESP32: Se agotó el tiempo de espera… Conectando…”, significa que tu ESP32 no está en modo de actualización/carga.
Una vez seleccionado el nombre de la placa y el puerto COM correctos, siga estos pasos:
Mantenga presionado el botón “BOOT” en su placa ESP32Kit básico de inicio LAFVIN ESP32 - “BOOT”

  • Presione el botón “Cargar” en el IDE de Arduino para cargar su boceto:Kit básico de inicio LAFVIN ESP32 - ICON 6
  • Después de ver el mensaje “Conectando…” en su IDE de Arduino, suelte el dedo del botón “BOOT”:Kit de inicio básico LAFVIN ESP32: “Carga finalizada
  • Después de eso, deberías ver el mensaje "Carga finalizada".
    Eso es todo. Tu ESP32 debería tener el nuevo boceto ejecutándose. Presiona el botón “HABILITAR” para reiniciar el ESP32 y ejecutar el nuevo boceto cargado.
    También tendrás que repetir esa secuencia de botones cada vez que quieras cargar un nuevo boceto.

Proyecto 1 Entradas y salidas ESP32

En esta guía de inicio, aprenderá a leer entradas digitales como un interruptor de botón y a controlar salidas digitales como un LED usando el ESP32 con Arduino IDE.
Prerrequisitos
Programaremos el ESP32 con Arduino IDE. Por lo tanto, asegúrese de tener instalado el complemento de placas ESP32 antes de continuar:

  • Instalación del complemento ESP32 en Arduino IDE

Salidas digitales de control ESP32
En primer lugar, debe configurar el GPIO que desea controlar como SALIDA. Utilice la función pinMode() de la siguiente manera:
pinMode(GPIO, SALIDA);
Para controlar una salida digital solo necesitas utilizar la función digitalWrite(), que acepta como argumentos, el GPIO (número int) al que haces referencia y el estado, ya sea ALTO o BAJO.
digitalWrite(GPIO, ESTADO);
Todos los GPIO se pueden utilizar como salidas excepto los GPIO 6 a 11 (conectados al flash SPI integrado) y los GPIO 34, 35, 36 y 39 (GPIO de solo entrada);
Obtenga más información sobre los GPIO ESP32: Guía de referencia de GPIO ESP32
ESP32 lee entradas digitales
Primero, configure el GPIO que desea leer como ENTRADA, utilizando la función pinMode() de la siguiente manera:
pinMode(GPIO, ENTRADA);
Para leer una entrada digital, como un botón, se utiliza la función digitalRead(), que acepta como argumento el GPIO (número int) al que se hace referencia.
lectura digital(GPIO);
Todos los GPIO ESP32 se pueden utilizar como entradas, excepto los GPIO 6 a 11 (conectados al flash SPI integrado).
Obtenga más información sobre los GPIO ESP32: Guía de referencia de GPIO ESP32
Proyecto example
Para mostrarle cómo utilizar entradas y salidas digitales, crearemos un proyecto simple.ampcon un pulsador y un LED. Leeremos el estado del pulsador y encenderemos el LED según se ilustra en la siguiente figura.Kit básico de inicio LAFVIN ESP32 - Proyecto Example

Piezas necesarias
Aquí tienes una lista de las piezas que necesitas para construir el circuito:

  • Kit de desarrollo ESP32 versión 1
  • LED de 5 mm
  • Resistencia de 220 ohmios
  • Presionar el botón
  • Resistencia de 10k ohmios
  • Tablero de circuitos
  • Cables puente

Diagrama esquemático
Antes de continuar, es necesario montar un circuito con un LED y un pulsador.
Conectaremos el LED a GPIO 5 y el pulsador a GPIO 4.Diagrama esquemático del kit básico de inicio LAFVIN ESP32Código
Abra el código Project_1_ESP32_Inputs_Outputs.ino en arduino IDEKit básico de inicio LAFVIN ESP32 - CódigoKit básico de inicio LAFVIN ESP32 - Código 1Cómo funciona el código
En las siguientes dos líneas, crea variables para asignar pines:

Kit básico de inicio LAFVIN ESP32 - Code WorksEl botón está conectado a GPIO 4 y el LED está conectado a GPIO 5. Al usar el IDE de Arduino con el ESP32, 4 corresponde a GPIO 4 y 5 corresponde a GPIO 5.
A continuación, crea una variable para guardar el estado del botón. De forma predeterminada, es 0 (no presionado).
int botónState = 0;
En la configuración(), inicializa el botón como ENTRADA y el LED como SALIDA.
Para ello, utiliza la función pinMode() que acepta el pin al que haces referencia y el modo: INPUT o OUTPUT.
pinMode(botonPin, ENTRADA);
pinMode(ledPin, SALIDA);
En el bucle() es donde se lee el estado del botón y se configura el LED en consecuencia.
En la siguiente línea, lee el estado del botón y lo guarda en la variable buttonState.
Como hemos visto anteriormente, utiliza la función digitalRead().
botónState = digitalRead(botónPin);
La siguiente sentencia if, verifica si el estado del botón es ALTO. Si lo es, enciende el LED mediante la función digitalWrite() que acepta como argumento el ledPin y el estado ALTO.
si (botónEstado == ALTO)Kit básico de inicio LAFVIN ESP32: Code Works 1Si el estado del botón no es ALTO, se apaga el LED. Solo hay que configurar BAJO como segundo argumento en la función digitalWrite().Kit básico de inicio LAFVIN ESP32 - digitalWriteSubiendo el código
Antes de hacer clic en el botón de carga, vaya a Herramientas > Placa y seleccione la placa: placa DOIT ESP32 DEVKIT V1.
Vaya a Herramientas > Puerto y seleccione el puerto COM al que está conectado el ESP32. Luego, presione el botón de carga y espere hasta que aparezca el mensaje “Carga finalizada”.Kit básico de inicio LAFVIN ESP32 - ICON 7Nota: Si ve muchos puntos (conectando…__…__) en la ventana de depuración y el mensaje “Error al conectar a ESP32: Se agotó el tiempo de espera del encabezado del paquete”, eso significa que debe presionar el botón de ARRANQUE integrado del ESP32 después de los puntos.
comienzan a aparecer.Solución de problemas

Demostración

Después de cargar el código, prueba el circuito. El LED debería encenderse cuando presiones el botón:Kit básico de inicio LAFVIN ESP32: demostraciónY lo apagas al soltarlo:Kit de inicio básico LAFVIN ESP32 - cambio de

Proyecto 2 Entradas analógicas ESP32

Este proyecto muestra cómo leer entradas analógicas con el ESP32 usando Arduino IDE.
La lectura analógica es útil para leer valores de resistencias variables como potenciómetros o sensores analógicos.
Entradas analógicas (ADC)
Leer un valor analógico con el ESP32 significa que puedes medir volúmenes variablestagy niveles entre 0 V y 3.3 V.
El voltagA continuación, se asigna al valor medido un valor entre 0 y 4095, en el que 0 V corresponde a 0 y 3.3 V corresponde a 4095. Cualquier voltagA cada tensión comprendida entre 0 V y 3.3 V se le asignará el valor intermedio correspondiente.Kit básico de inicio LAFVIN ESP32: entradas analógicasEl ADC no es lineal
Lo ideal sería esperar un comportamiento lineal al utilizar los pines ADC ESP32.
Sin embargo, esto no sucede. Lo que se obtiene es un comportamiento como el que se muestra en el siguiente gráfico:Kit básico de inicio LAFVIN ESP32 - No linealEste comportamiento significa que su ESP32 no puede distinguir 3.3 V de 3.2 V.
Obtendrás el mismo valor para ambos volúmenes.tages: 4095.
Lo mismo ocurre con volúmenes muy bajos.tagValores e: para 0 V y 0.1 V obtendrá el mismo valor: 0. Debe tener esto en cuenta al utilizar los pines ADC ESP32.
Función analogRead()
Leer una entrada analógica con el ESP32 usando el IDE de Arduino es tan sencillo como usar la función analogRead(). Esta acepta como argumento el GPIO que se desea leer:
lectura analógica(GPIO);
Solo 15 están disponibles en la placa DEVKIT V1 (versión con 30 GPIO).
Toma la distribución de pines de la placa ESP32 y ubica los pines del ADC. Estos están resaltados con un borde rojo en la siguiente figura.Kit básico de inicio LAFVIN ESP32 - bordeEstos pines de entrada analógica tienen una resolución de 12 bits. Esto significa que cuando se lee una entrada analógica, su rango puede variar de 0 a 4095.
Nota: los pines ADC2 no se pueden usar cuando se usa Wi-Fi. Por lo tanto, si usa Wi-Fi y tiene problemas para obtener el valor de un GPIO ADC2, puede considerar usar un GPIO ADC1 en su lugar, lo que debería resolver su problema.
Para ver cómo todo se conecta, haremos un ejemplo simple.ample permite leer un valor analógico de un potenciómetro.
Piezas necesarias
Para este exampEs decir, necesitas las siguientes piezas:

  • Placa ESP32 DEVKIT V1
  • Potenciómetro
  • Tablero de circuitos
  • Cables puente

Esquemático
Conecte un potenciómetro a su ESP32. El pin central del potenciómetro debe estar conectado a GPIO 4. Puede utilizar el siguiente diagrama esquemático como referencia.Kit básico de inicio LAFVIN ESP32: esquemaCódigo
Programaremos el ESP32 usando Arduino IDE, así que asegúrate de tener instalado el complemento ESP32 antes de continuar: (si ya has realizado este paso, puedes saltar al siguiente).
Instalación del complemento ESP32 en Arduino IDE
Abra el código Project_2_ESP32_Inputs_Outputs.ino en arduino IDEKit básico de inicio LAFVIN ESP32 - Código 2Este código simplemente lee los valores del potenciómetro e imprime esos valores en el Monitor Serial.
En el código, se comienza definiendo el GPIO al que está conectado el potenciómetro. En este ejemploampel, GPIO 4.Kit de inicio básico LAFVIN ESP32 - exampleEn la configuración (), inicialice una comunicación en serie a una velocidad en baudios de 115200.Kit de inicio básico LAFVIN ESP32 - exampel 1En el bucle(), utilice la función analogRead() para leer la entrada analógica del potPin.Kit de inicio básico LAFVIN ESP32 - exampel 2Por último, imprima los valores leídos del potenciómetro en el monitor serial.Kit de inicio básico LAFVIN ESP32 - exampel 3Sube el código proporcionado a tu ESP32. Asegúrate de tener la placa y el puerto COM correctos seleccionados en el menú Herramientas.
Probando el Example
Después de cargar el código y presionar el botón de reinicio ESP32, abra el Monitor Serial a una velocidad en baudios de 115200. Gire el potenciómetro y observe cómo cambian los valores.El valor máximo que obtendrá es 4095 y el valor mínimo es 0.Kit básico de inicio LAFVIN ESP32: valor máximo

Terminando

En este artículo aprendiste a leer entradas analógicas usando el ESP32 con el IDE de Arduino. En resumen:

  • La placa ESP32 DEVKIT V1 DOIT (versión con 30 pines) tiene 15 pines ADC que puedes usar para leer entradas analógicas.
  • Estos pines tienen una resolución de 12 bits, lo que significa que puede obtener valores de 0 a 4095.
  • Para leer un valor en el IDE de Arduino, simplemente use la función analogRead().
  • Los pines del ADC del ESP32 no tienen un comportamiento lineal. Probablemente no podrás distinguir entre 0 y 0.1 V, o entre 3.2 y 3.3 V. Debes tener esto en cuenta al utilizar los pines del ADC.

Proyecto 3 ESP32 PWM (salida analógica)

En este tutorial te mostraremos cómo generar señales PWM con el ESP32 usando Arduino IDE. Como ejemploampConstruiremos un circuito simple que atenúa un LED usando el controlador LED PWM del ESP32.Kit básico de inicio LAFVIN ESP32 - Salida analógicaControlador LED PWM ESP32
El ESP32 tiene un controlador LED PWM con 16 canales independientes que se pueden configurar para generar señales PWM con diferentes propiedades.
Estos son los pasos que tendrás que seguir para atenuar un LED con PWM usando el IDE de Arduino:

  1. Primero, debes elegir un canal PWM. Hay 16 canales, del 0 al 15.
  2. A continuación, debe configurar la frecuencia de la señal PWM. Para un LED, una frecuencia de 5000 Hz es adecuada.
  3. También es necesario configurar la resolución del ciclo de trabajo de la señal: existen resoluciones de entre 1 y 16 bits. Nosotros utilizaremos una resolución de 8 bits, lo que significa que puedes controlar el brillo del LED utilizando un valor de entre 0 y 255.
  4.  A continuación, debe especificar en qué GPIO o GPIO aparecerá la señal. Para ello, utilizará la siguiente función:
    ledcAttachPin(GPIO, canal)
    Esta función acepta dos argumentos. El primero es el GPIO que emitirá la señal y el segundo es el canal que generará la señal.
  5. Por último, para controlar el brillo del LED mediante PWM, utiliza la siguiente función:

ledcWrite(canal, ciclo de trabajo)
Esta función acepta como argumentos el canal que está generando la señal PWM y el ciclo de trabajo.
Piezas necesarias
Para seguir este tutorial necesitas estas partes:

  • Placa ESP32 DEVKIT V1
  • 5mm LED
  • Resistencia de 220 ohmios
  •  Tablero de circuitos
  • Cables puente

Esquemático
Conecte un LED a su ESP32 como se muestra en el siguiente diagrama esquemático. El LED debe estar conectado a GPIO 4.Kit básico de inicio LAFVIN ESP32: esquemaNota: Puedes usar cualquier pin que quieras, siempre que pueda actuar como salida. Todos los pines que pueden actuar como salidas se pueden usar como pines PWM. Para obtener más información sobre los GPIO del ESP32, lee: Referencia de configuración de pines del ESP32: ¿Qué pines GPIO deberías usar?
Código
Programaremos el ESP32 usando Arduino IDE, así que asegúrate de tener instalado el complemento ESP32 antes de continuar: (si ya has realizado este paso, puedes saltar al siguiente).
Instalación del complemento ESP32 en Arduino IDE
Abra el código Project_3_ESP32_PWM.ino en arduino IDEKit básico de inicio LAFVIN ESP32 - Código 3Kit básico de inicio LAFVIN ESP32 - Código 4Para empezar, hay que definir el pin al que está conectado el LED. En este caso, el LED está conectado a GPIO 4.Kit básico de inicio LAFVIN ESP32 - Código 5A continuación, se configuran las propiedades de la señal PWM. Se define una frecuencia de 5000 Hz, se elige el canal 0 para generar la señal y se establece una resolución de 8 bits. Se pueden elegir otras propiedades, distintas a estas, para generar diferentes señales PWM.Kit básico de inicio LAFVIN ESP32 - Código 6En setup(), debes configurar LED PWM con las propiedades que has definido anteriormente utilizando la función ledcSetup() que acepta como argumentos, el ledChannel, la frecuencia y la resolución, de la siguiente manera:Kit básico de inicio LAFVIN ESP32 - Código 8A continuación, debes elegir el GPIO del que obtendrás la señal. Para ello, utiliza la función ledcAttachPin() que acepta como argumentos el GPIO del que quieres obtener la señal y el canal que la está generando. En este ejemploample, obtendremos la señal en el ledPin GPIO, que corresponde al GPIO 4. El canal que genera la señal es el ledChannel, que corresponde al canal 0.Kit básico de inicio LAFVIN ESP32 - Código 9En el bucle, variará el ciclo de trabajo entre 0 y 255 para aumentar el brillo del LED.Kit básico de inicio LAFVIN ESP32: brilloY luego, entre 255 y 0 para disminuir el brillo.Kit básico de inicio LAFVIN ESP32 - brillo 1Para configurar el brillo del LED, solo necesitas utilizar la función ledcWrite() que acepta como argumentos el canal que está generando la señal y el ciclo de trabajo.Kit básico de inicio LAFVIN ESP32 - brillo 2Como usamos una resolución de 8 bits, el ciclo de trabajo se controlará utilizando un valor de 0 a 255. Tenga en cuenta que en la función ledcWrite() usamos el canal que genera la señal, y no el GPIO.

Probando el Example

Sube el código a tu ESP32. Asegúrate de que tienes la placa y el puerto COM correctos seleccionados. Observa tu circuito. Deberías tener un LED más atenuado que aumenta y disminuye el brillo.Kit básico de inicio LAFVIN ESP32: prueba del Example

Proyecto 4 Sensor de movimiento PIR ESP32

Este proyecto muestra cómo detectar movimiento con el ESP32 usando un sensor de movimiento PIR. El timbre hará sonar una alarma cuando se detecte movimiento y detendrá la alarma cuando no se detecte movimiento durante un tiempo preestablecido (por ejemplo, 4 segundos).
Cómo funciona el sensor de movimiento HC-SR501
.Kit básico de inicio LAFVIN ESP32: sensor de movimiento funcionaEl principio de funcionamiento del sensor HC-SR501 se basa en el cambio de la radiación infrarroja en el objeto en movimiento. Para ser detectado por el sensor HC-SR501, el objeto debe cumplir dos requisitos:

  • El objeto emite en forma de infrarrojos.
  • El objeto se está moviendo o temblando

Entonces:
Si un objeto emite rayos infrarrojos pero no se mueve (por ejemplo, una persona permanece quieta sin moverse), el sensor no lo detecta.
Si un objeto se mueve pero NO emite rayos infrarrojos (por ejemplo, un robot o un vehículo), el sensor NO lo detecta.
Presentando los temporizadores
En este exampTambién introduciremos temporizadores. Queremos que el LED permanezca encendido durante una cantidad predeterminada de segundos después de que se detecte movimiento. En lugar de utilizar una función delay() que bloquea el código y no permite hacer nada más durante una cantidad determinada de segundos, deberíamos utilizar un temporizador.Kit básico de inicio LAFVIN ESP32: introducción a los temporizadoresLa función delay()
Debes estar familiarizado con la función delay(), ya que se utiliza ampliamente. Esta función es bastante sencilla de utilizar. Acepta un único número int como argumento.
Este número representa el tiempo en milisegundos que el programa debe esperar hasta pasar a la siguiente línea de código.Kit de inicio básico LAFVIN ESP32 - códigoCuando realiza delay(1000), su programa se detiene en esa línea durante 1 segundo.
delay() es una función de bloqueo. Las funciones de bloqueo impiden que un programa haga cualquier otra cosa hasta que se complete esa tarea en particular. Si necesita que se realicen varias tareas al mismo tiempo, no puede usar delay().
Para la mayoría de los proyectos es mejor evitar el uso de retrasos y utilizar temporizadores en su lugar.
La función millis()
Usando una función llamada millis() puedes devolver el número de milisegundos que han pasado desde que el programa se inició por primera vez.Kit de inicio básico LAFVIN ESP32: programa iniciado por primera vez¿Por qué resulta útil esta función? Porque, con un poco de matemática, puedes verificar fácilmente cuánto tiempo ha pasado sin bloquear tu código.
Piezas necesarias
Para seguir este tutorial necesitas las siguientes partes

  • Placa ESP32 DEVKIT V1
  • Sensor de movimiento PIR (HC-SR501)
  • Zumbador activo
  • Cables puente
  • Tablero de circuitos

EsquemáticoKit básico de inicio LAFVIN ESP32: esquema 1Nota: El volumen de trabajotagLa tensión del HC-SR501 es de 5 V. Utilice el pin Vin para alimentarlo.
Código
Antes de continuar con este tutorial, debe tener instalado el complemento ESP32 en su IDE de Arduino. Siga uno de los siguientes tutoriales para instalar el ESP32 en el IDE de Arduino, si aún no lo ha hecho. (Si ya ha realizado este paso, puede pasar al siguiente).
Instalación del complemento ESP32 en Arduino IDE
Abra el código Project_4_ESP32_PIR_Motion_Sensor.ino en arduino IDE.
Demostración
Sube el código a tu placa ESP32. Asegúrate de que tienes la placa y el puerto COM correctos seleccionados. Pasos de referencia para subir el código.
Abra el Monitor serie a una velocidad en baudios de 115200.Kit básico de inicio LAFVIN ESP32 - Demostración 1Mueva su mano frente al sensor PIR. El timbre debería activarse y en el monitor serial se imprimirá el mensaje “¡Movimiento detectado! Alarma de timbre”.
Después de 4 segundos el timbre debería apagarse.Kit básico de inicio LAFVIN ESP32 - zumbador

Proyecto 5 Conmutador ESP32 Web Servidor

En este proyecto crearás un proyecto independiente web servidor con un ESP32 que controla las salidas (dos LED) utilizando el entorno de programación Arduino IDE. web El servidor es compatible con dispositivos móviles y se puede acceder a él desde cualquier dispositivo que tenga un navegador en la red local. Le mostraremos cómo crear el servidor. web Servidor y cómo funciona el código paso a paso.
Proyecto terminadoview
Antes de ir directamente al proyecto, es importante delinear cuál es nuestro web El servidor lo hará, para que sea más fácil seguir los pasos más adelante.

  • El web El servidor que construirás controla dos LED conectados al ESP32 GPIO 26 y GPIO 27;
  • Puedes acceder al ESP32 web servidor escribiendo la dirección IP del ESP32 en un navegador en la red local;
  • Al hacer clic en los botones de su web servidor puede cambiar instantáneamente el estado de cada LED.

Piezas necesarias
Para este tutorial necesitarás las siguientes piezas:

  • Placa ESP32 DEVKIT V1
  • 2 LED de 5 mm
  • 2x resistencia de 200 ohmios
  • Tablero de circuitos
  • Cables puente

Esquemático
Comience por construir el circuito. Conecte dos LED al ESP32 como se muestra en el siguiente diagrama esquemático: un LED conectado a GPIO 26 y el otro a GPIO 27.
Nota: Estamos usando la placa ESP32 DEVKIT DOIT con 36 pines. Antes de ensamblar el circuito, asegúrate de verificar la distribución de pines de la placa que estás usando.Kit básico de inicio LAFVIN ESP32: esquemaCódigo
Aquí proporcionamos el código que crea el ESP32 web servidor. Abra el código Project_5_ESP32_Switch_Web_Server.ino en la IDE de Arduino, pero no lo cargues todavía. Debes realizar algunos cambios para que funcione.
Programaremos el ESP32 usando Arduino IDE, así que asegúrate de tener instalado el complemento ESP32 antes de continuar: (si ya has realizado este paso, puedes saltar al siguiente).
Instalación del complemento ESP32 en Arduino IDE
Configuración de sus credenciales de red
Debes modificar las siguientes líneas con tus credenciales de red: SSID y contraseña. El código está bien comentado sobre dónde debes realizar los cambios.Kit básico de inicio LAFVIN ESP32: credenciales de redSubiendo el código
Ahora, puedes cargar el código y el web El servidor funcionará inmediatamente.
Siga los siguientes pasos para cargar el código al ESP32:

  1. Conecte su placa ESP32 a su computadora;
  2. En el IDE de Arduino, seleccione su placa en Herramientas > Placa (en nuestro caso estamos usando la placa ESP32 DEVKIT DOIT);Kit básico de inicio LAFVIN ESP32: carga del código
  3. Seleccione el puerto COM en Herramientas > Puerto.Kit básico de inicio LAFVIN ESP32: puerto de herramientas
  4. Presione el botón Cargar en el IDE de Arduino y espere unos segundos mientras el código se compila y se carga en su placa.Kit básico de inicio LAFVIN ESP32 - ICON 7
  5. Espere el mensaje “Carga finalizada”.Kit de inicio básico LAFVIN ESP32: carga completa 1

Cómo encontrar la dirección IP del ESP
Después de cargar el código, abra el Monitor Serial a una velocidad en baudios de 115200.Kit básico de inicio LAFVIN ESP32: dirección IP ESPPresione el botón EN del ESP32 (reinicio). El ESP32 se conecta a Wi-Fi y muestra la dirección IP del ESP en el monitor serial. Copie esa dirección IP, ya que la necesitará para acceder al ESP32. web servidor.Kit de inicio básico LAFVIN ESP32 - web servidorAccediendo a la Web Servidor
Para acceder a la web servidor, abra su navegador, pegue la dirección IP ESP32 y verá la siguiente página.
Nota: Su navegador y ESP32 deben estar conectados a la misma LAN.Kit de inicio básico LAFVIN ESP32: acceso al Web ServidorSi echas un vistazo al Monitor serial, puedes ver lo que sucede en segundo plano. El ESP recibe una solicitud HTTP de un nuevo cliente (en este caso, tu navegador).Kit básico de inicio LAFVIN ESP32: solicitud HTTPTambién puede ver otra información sobre la solicitud HTTP.
Demostración
Ahora puedes probar si tu web El servidor está funcionando correctamente. Haga clic en los botones para controlar los LED.Kit básico de inicio LAFVIN ESP32: antecedentesAl mismo tiempo, puedes echar un vistazo al Monitor serial para ver qué está sucediendo en segundo plano. Por ejemplo,ampes decir, cuando hace clic en el botón para activar GPIO 26, ESP32 recibe una solicitud en /26/on URL.Kit de inicio básico LAFVIN ESP32 - URLCuando el ESP32 recibe esa solicitud, enciende el LED conectado a GPIO 26 y actualiza su estado en el web página.Kit de inicio básico LAFVIN ESP32 - web páginaEl botón para GPIO 27 funciona de manera similar. Comprueba que funciona correctamente.Kit básico de inicio LAFVIN ESP32: funciona correctamente

Cómo funciona el código

En esta sección analizaremos más de cerca el código para ver cómo funciona.
Lo primero que debes hacer es incluir la biblioteca WiFi.Kit básico de inicio LAFVIN ESP32: biblioteca WiFiComo se mencionó anteriormente, debe insertar su SSID y contraseña en las siguientes líneas dentro de las comillas dobles.Kit básico de inicio LAFVIN ESP32 (comillas dobles)Luego, configura tu web servidor al puerto 80.Kit de inicio básico LAFVIN ESP32 - web servidorLa siguiente línea crea una variable para almacenar el encabezado de la solicitud HTTP:Kit básico de inicio LAFVIN ESP32 - HTTPrequestA continuación, crea variables auxiliares para almacenar el estado actual de tus salidas. Si quieres añadir más salidas y guardar su estado, necesitas crear más variables.Kit básico de inicio LAFVIN ESP32 - variablesTambién debe asignar un GPIO a cada una de sus salidas. Aquí usamos GPIO 26 y GPIO 27. Puede usar cualquier otro GPIO adecuado.Kit de inicio básico LAFVIN ESP32 - otros adecuadosconfiguración()
Ahora, pasemos a la configuración (). Primero, iniciamos una comunicación serial a una velocidad en baudios de 115200 para fines de depuración.Kit básico de inicio LAFVIN ESP32: propósitosTambién define tus GPIO como SALIDAS y configúralas en BAJO.Kit básico de inicio LAFVIN ESP32: GPIO como SALIDASLas siguientes líneas inician la conexión Wi-Fi con WiFi.begin(ssid, password), esperan una conexión exitosa e imprimen la dirección IP ESP en el Monitor Serial.Kit básico de inicio LAFVIN ESP32 - SerieKit básico de inicio LAFVIN ESP32 - Serie 1bucle()
En el loop() programamos lo que sucede cuando un nuevo cliente establece una conexión con el web servidor.
El ESP32 siempre está escuchando clientes entrantes con la siguiente línea:Kit básico de inicio LAFVIN ESP32 - bucleCuando se recibe una solicitud de un cliente, guardamos los datos entrantes. El bucle while que sigue se ejecutará mientras el cliente permanezca conectado. No recomendamos cambiar la siguiente parte del código a menos que sepa exactamente lo que está haciendo.Kit de inicio básico LAFVIN ESP32 - exactamenteKit de inicio básico LAFVIN ESP32: exactamente 1Kit de inicio básico LAFVIN ESP32: exactamente 2La siguiente sección de las declaraciones if y else verifica qué botón se presionó en su web página y controla las salidas en consecuencia. Como hemos visto anteriormente, hacemos una solicitud en diferentes URLs dependiendo del botón presionado.Kit básico de inicio LAFVIN ESP32: botón presionadoKit básico de inicio LAFVIN ESP32: botón presionado 1Por ejemploampes decir, si ha presionado el botón GPIO 26 ON, el ESP32 recibe una solicitud en /26/ON URL (podemos ver esa información en el encabezado HTTP en el Monitor serial). Entonces, podemos verificar si el encabezado contiene la expresión GET /26/on. Si la contiene, cambiamos la variable output26state a ON y el ESP32 enciende el LED.
Esto funciona de manera similar para los demás botones. Por lo tanto, si desea agregar más salidas, debe modificar esta parte del código para incluirlas.
Visualización del HTML web página
Lo siguiente que debes hacer es crear el web página. El ESP32 enviará una respuesta a su navegador con un código HTML para construir la web página.
El web La página se envía al cliente mediante esta expresión client.println(). Debes ingresar lo que deseas enviar al cliente como argumento.
Lo primero que debemos enviar siempre es la siguiente línea, que indica que estamos enviando HTML.Kit básico de inicio LAFVIN ESP32: envío de HTMLLuego, la siguiente línea hace lo siguiente: web Página responsiva en cualquier web navegador.Kit de inicio básico LAFVIN ESP32 - web navegadorY lo siguiente se utiliza para evitar solicitudes en el favicon. – No necesita preocuparse por esta línea.Kit básico de inicio LAFVIN ESP32 - client.println

Estilizando el Web Página

A continuación, tenemos algo de texto CSS para darle estilo a los botones y al web apariencia de la página.
Elegimos la fuente Helvética, definimos el contenido a mostrar en bloque y alineado al centro.Kit de inicio básico LAFVIN ESP32: diseño del Web PáginaDiseñamos nuestros botones con el color #4CAF50, sin borde, texto en color blanco y con este relleno: 16px 40px. También configuramos la decoración del texto en ninguno, definimos el tamaño de la fuente, el margen y el cursor como puntero.Kit básico de inicio LAFVIN ESP32 - punteroTambién definimos el estilo para un segundo botón, con todas las propiedades del botón que definimos anteriormente, pero con un color diferente. Este será el estilo para el botón de apagado.Kit básico de inicio LAFVIN ESP32 - client.println 1

Configuración de la Web Encabezado de la primera página
En la siguiente línea puedes establecer el primer encabezado de tu web página. Aquí tenemos “ESP32 Web Servidor”, pero puedes cambiar este texto por el que desees.Kit de inicio básico LAFVIN ESP32 - Web Encabezado de páginaVisualización de los botones y su estado correspondiente
Luego, escribe un párrafo para mostrar el estado actual de GPIO 26. Como puedes ver, usamos la variable output26State, de modo que el estado se actualice instantáneamente cuando esta variable cambie.Kit básico de inicio LAFVIN ESP32: cambios de variablesLuego, mostramos el botón de encendido o apagado, dependiendo del estado actual del GPIO. Si el estado actual del GPIO es apagado, mostramos el botón de encendido, si no, mostramos el botón de apagado.Kit básico de inicio LAFVIN ESP32: muestra el botón OFFUtilizamos el mismo procedimiento para GPIO 27.
Cerrando la conexión
Finalmente, cuando finaliza la respuesta, borramos la variable de encabezado y detenemos la conexión con el cliente con client.stop().Kit básico de inicio LAFVIN ESP32: cierre de la conexión

Terminando

En este tutorial le mostramos cómo construir un web servidor con el ESP32. Te mostramos un ejemplo sencilloample que controla dos LED, pero la idea es reemplazar esos LED con un relé o cualquier otra salida que desee controlar.

Proyecto 6 LED RGB Web Servidor

En este proyecto le mostraremos cómo controlar de forma remota un LED RGB con una placa ESP32 usando un web Servidor con un selector de color.
Proyecto terminadoview
Antes de empezar, veamos cómo funciona este proyecto:Kit básico de inicio LAFVIN ESP32: proyecto terminadoview

  • El ESP32 web El servidor muestra un selector de color.
  • Cuando eliges un color, tu navegador realiza una solicitud en un URL que contiene los parámetros R, G y B del color seleccionado.
  • Su ESP32 recibe la solicitud y divide el valor de cada parámetro de color.
  • Luego, envía una señal PWM con el valor correspondiente a los GPIO que controlan el LED RGB.

¿Cómo funcionan los LED RGB?
En un LED RGB de cátodo común, los tres LED comparten una conexión negativa (cátodo). Todos los incluidos en el kit son RGB de cátodo común.Kit de inicio básico LAFVIN ESP32: los LED RGB funcionan¿Cómo crear diferentes colores?
Con un LED RGB puedes, por supuesto, producir luz roja, verde y azul, y configurando la intensidad de cada LED, también puedes producir otros colores.
Por ejemploampPara producir una luz puramente azul, debes configurar el LED azul con la intensidad más alta y los LED verde y rojo con la intensidad más baja. Para una luz blanca, debes configurar los tres LED con la intensidad más alta.
Mezclando colores
Para producir otros colores, puedes combinar los tres colores en diferentes intensidades. Para ajustar la intensidad de cada LED puedes utilizar una señal PWM.
Debido a que los LED están muy cerca uno del otro, nuestros ojos ven el resultado de la combinación de colores, en lugar de los tres colores individualmente.
Para tener una idea de cómo combinar los colores, mira la siguiente tabla.
Esta es la tabla de mezcla de colores más simple, pero te da una idea de cómo funciona y cómo producir diferentes colores.Kit básico de inicio LAFVIN ESP32 - diferentes coloresPiezas necesarias
Para este proyecto necesitarás las siguientes piezas:

  • Placa ESP32 DEVKIT V1
  • LED RGB
  • 3 resistencias de 220 ohmios
  • Cables puente
  • Tablero de circuitos

EsquemáticoKit básico de inicio LAFVIN ESP32: esquemaCódigo
Programaremos el ESP32 usando Arduino IDE, así que asegúrate de tener instalado el complemento ESP32 antes de continuar: (si ya has realizado este paso, puedes saltar al siguiente).

  • Instalación del complemento ESP32 en Arduino IDE

Después de ensamblar el circuito, abra el código
Proyecto_6_LED_RGB_Web_Server.ino en IDE arduino.
Antes de cargar el código, no olvides insertar tus credenciales de red para que el ESP pueda conectarse a tu red local.Kit básico de inicio LAFVIN ESP32 - red localCómo funciona el código
El boceto ESP32 utiliza la biblioteca WiFi.h.Kit básico de inicio LAFVIN ESP32 - Biblioteca WiFi.hLas siguientes líneas definen variables de cadena para contener los parámetros R, G y B de la solicitud.Kit básico de inicio LAFVIN ESP32 - Cadena roja CadenaLas siguientes cuatro variables se utilizan para decodificar la solicitud HTTP más adelante.Kit básico de inicio LAFVIN ESP32: solicitud HTTPCree tres variables para los GPIO que controlarán los parámetros R, G y B de la tira. En este caso, usamos GPIO 13, GPIO 12 y GPIO 14.Kit de inicio básico LAFVIN ESP32: se necesitan GPIOEstos GPIO necesitan emitir señales PWM, por lo que primero debemos configurar las propiedades PWM. Establezca la frecuencia de la señal PWM en 5000 Hz. Luego, asocie un canal PWM para cada color.Kit básico de inicio LAFVIN ESP32 (cada color)Y por último, configure la resolución de los canales PWM a 8 bits.Kit básico de inicio LAFVIN ESP32: canales PWMEn la configuración(), asigne las propiedades PWM a los canales PWMKit básico de inicio LAFVIN ESP32: canales PWMConecte los canales PWM a los GPIO correspondientesKit básico de inicio LAFVIN ESP32: GPIO correspondientesLa siguiente sección de código muestra el selector de color en su web página y realiza una solicitud basada en el color que haya elegido.Kit básico de inicio LAFVIN ESP32 - seleccionadoKit básico de inicio LAFVIN ESP32 - client.printlnKit básico de inicio LAFVIN ESP32 - client.println 1Al elegir un color, recibirás una solicitud con el siguiente formato.Kit básico de inicio LAFVIN ESP32: siguiente formato

Entonces, necesitamos dividir esta cadena para obtener los parámetros R, G y B. Los parámetros se guardan en las variables redString, greenString y blueString y pueden tener valores entre 0 y 255.Kit básico de inicio LAFVIN ESP32 - cabezalKit básico de inicio LAFVIN ESP32 - encabezado 1Para controlar la tira con el ESP32, utilice la función ledcWrite() para generar señales PWM con los valores decodificados del HTTP pedido.Kit básico de inicio LAFVIN ESP32: solicitud HTTP 1Nota: Obtenga más información sobre PWM con ESP32: Proyecto 3 ESP32 PWM (salida analógica)
Para controlar la tira con el ESP8266, solo necesitamos usar
la función analogWrite() para generar señales PWM con los valores decodificados de la solicitud HTPP.
analogWrite(pinRojo, cadenaRoja.toInt());
analogWrite(pinverde, cadenaverde.toInt());
analogWrite(pinazul, cadenaazul.toInt())
Como obtenemos los valores en una variable de cadena, necesitamos convertirlos en números enteros usando el método toInt().
Demostración
Después de insertar sus credenciales de red, seleccione la placa y el puerto COM correctos y cargue el código a su ESP32.Pasos de referencia para cargar el código.
Después de cargar, abra el Monitor serial a una velocidad en baudios de 115200 y presione el botón Activar/Reiniciar ESP. Debería obtener la dirección IP de la placa.Kit de inicio básico LAFVIN ESP32 (misma LAN)Abra su navegador e ingrese la dirección IP del ESP. Ahora, utilice el selector de color para elegir un color para el LED RGB.
Luego debes presionar el botón “Cambiar color” para que el color tenga efecto.Kit básico de inicio LAFVIN ESP32: LED RGBPara apagar el LED RGB, seleccione el color negro.
Los colores más fuertes (en la parte superior del selector de color) son los que producirán mejores resultados.Kit básico de inicio LAFVIN ESP32: mejores resultados

Proyecto 7 Relé ESP32 Web Servidor

El uso de un relé con el ESP32 es una excelente manera de controlar electrodomésticos de aire acondicionado de forma remota. Este tutorial explica cómo controlar un módulo de relé con el ESP32.
Veremos cómo funciona un módulo de relé, cómo conectar el relé al ESP32 y construir un web Servidor para controlar un relé de forma remota.
Presentación de los relés
Un relé es un interruptor que funciona eléctricamente y, como cualquier otro interruptor, puede encenderse o apagarse, dejar pasar la corriente o no. Puede controlarse con un bajo voltaje.tages, como los 3.3 V proporcionados por los GPIO del ESP32 y nos permite controlar un alto volumen.tagEs como 12 V, 24 V o voltaje de red.tage (230 V en Europa y 120 V en EE. UU.).Kit básico de inicio LAFVIN ESP32: presentación de los relésEn el lado izquierdo, hay dos juegos de tres enchufes para conectar alto volumen.tages, y los pines del lado derecho (bajo volumen)tage) conectarse a los GPIO del ESP32.
Vol. De redtage ConexionesKit de inicio básico LAFVIN ESP32 - Volumen de redtage ConexionesEl módulo de relé que se muestra en la foto anterior tiene dos conectores, cada uno con tres enchufes: común (COM), normalmente cerrado (NC) y normalmente abierto (NO).

  • COM: conecta la corriente que quieres controlar (volumen de red)tagmi).
  • NC (Normalmente cerrado): la configuración normalmente cerrada se utiliza cuando se desea que el relé esté cerrado de forma predeterminada. Los pines NC son COM que están conectados, lo que significa que la corriente fluye a menos que envíe una señal desde el ESP32 al módulo de relé para abrir el circuito y detener el flujo de corriente.
  • NO (normalmente abierto): la configuración normalmente abierta funciona al revés: no hay conexión entre los pines NO y COM, por lo que el circuito se interrumpe a menos que envíe una señal desde el ESP32 para cerrar el circuito.

Pines de controlKit básico de inicio LAFVIN ESP32: pines de controlEl de bajo volumentagEl lado tiene un conjunto de cuatro pines y un conjunto de tres pines. El primer conjunto consta de VCC y GND para encender el módulo, y la entrada 1 (IN1) y la entrada 2 (IN2) para controlar los relés inferior y superior, respectivamente.
Si su módulo de relé solo tiene un canal, tendrá solo un pin IN. Si tiene cuatro canales, tendrá cuatro pines IN, y así sucesivamente.
La señal que envías a los pines IN determina si el relé está activo o no. El relé se activa cuando la entrada desciende por debajo de aproximadamente 2 V. Esto significa que tendrás las siguientes situaciones:

  • Configuración normalmente cerrada (NC):
  • Señal ALTA: está fluyendo corriente
  • Señal BAJA: no fluye corriente
  • Configuración normalmente abierta (NO):
  • Señal ALTA: no fluye corriente
  • Señal BAJA: corriente fluyendo

Debes utilizar una configuración normalmente cerrada cuando la corriente debería fluir la mayor parte del tiempo y solo deseas detenerla ocasionalmente.
Utilice una configuración normalmente abierta cuando desee que la corriente fluya ocasionalmente (por ejemplo,ample, enciende todoamp ocasionalmente).
Selección de fuente de alimentaciónKit básico de inicio LAFVIN ESP32: selección de fuente de alimentaciónEl segundo conjunto de pines consta de los pines GND, VCC y JD-VCC.
El pin JD-VCC alimenta el electroimán del relé. Observe que el módulo tiene una tapa de puente que conecta los pines VCC y JD-VCC; el que se muestra aquí es amarillo, pero el suyo puede ser de un color diferente.
Con la tapa del puente puesta, los pines VCC y JD-VCC están conectados. Esto significa que el electroimán del relé se alimenta directamente desde el pin de alimentación del ESP32, por lo que el módulo del relé y los circuitos del ESP32 no están aislados físicamente entre sí.
Sin la tapa del puente, es necesario proporcionar una fuente de alimentación independiente para alimentar el electroimán del relé a través del pin JD-VCC. Esa configuración aísla físicamente los relés del ESP32 con el optoacoplador integrado del módulo, lo que evita daños al ESP32 en caso de picos eléctricos.
EsquemáticoKit básico de inicio LAFVIN ESP32: esquemaAdvertencia: Uso de alto volumentagLas fuentes de alimentación pueden provocar lesiones graves.
Por lo tanto, se utilizan LED de 5 mm en lugar de altos volúmenes de suministro.tagLas bombillas en el experimento. Si no estás familiarizado con el voltaje de la redtagPídele a alguien que te ayude. Mientras programas el ESP o cableas tu circuito, asegúrate de que todo esté desconectado de la red eléctrica.tage.Kit de inicio básico LAFVIN ESP32 - voltaje de redtageInstalación de la biblioteca para ESP32
Para construir esto web servidor, utilizamos ESPAsyncWebBiblioteca de servidor y biblioteca AsyncTCP.
Instalación de ESPAsyncWebBiblioteca del servidor
Siga los siguientes pasos para instalar el ESPAsyncWebServidor biblioteca:

  1. Haga clic aquí para descargar ESPAsyncWebBiblioteca del servidor. Deberías tener
    una carpeta .zip en su carpeta de Descargas
  2. Descomprima la carpeta .zip y debería obtener ESPAsyncWebCarpeta del servidor maestro
  3. Cambie el nombre de su carpeta desde ESPAsyncWebServidor maestro a ESPAsyncWebServidor
  4. Mueva el ESPAsyncWebCarpeta del servidor a la carpeta de bibliotecas de instalación de Arduino IDE

Alternativamente, en su IDE de Arduino, puede ir a Sketch > Incluir
Biblioteca > Agregar biblioteca .ZIP… y selecciona la biblioteca que acabas de descargar.
Instalación de la biblioteca AsyncTCP para ESP32
El ESPAsyncWebServidor La biblioteca requiere la TCP asíncrono biblioteca para trabajar. Seguir
Los siguientes pasos para instalar esa biblioteca:

  1. Haga clic aquí para descargar la biblioteca AsyncTCP. Debe tener una carpeta .zip en su carpeta de Descargas
  2. Descomprima la carpeta .zip y debería obtener la carpeta AsyncTCP-master
    1. Cambie el nombre de su carpeta de AsyncTCP-master a AsyncTCP
    3. Mueva la carpeta AsyncTCP a la carpeta de bibliotecas de instalación de Arduino IDE
    4. Por último, vuelve a abrir tu IDE de Arduino.

Alternativamente, en su IDE de Arduino, puede ir a Sketch > Incluir
Biblioteca > Agregar biblioteca .ZIP… y selecciona la biblioteca que acabas de descargar.
Código
Programaremos el ESP32 usando Arduino IDE, así que asegúrate de tener instalado el complemento ESP32 antes de continuar: (si ya has realizado este paso, puedes saltar al siguiente).
Instalación del complemento ESP32 en Arduino IDE
Después de instalar las bibliotecas necesarias, abra el código Project_7_ESP32_Relay_Web_Server.ino en IDE arduino.
Antes de cargar el código, no olvides insertar tus credenciales de red para que el ESP pueda conectarse a tu red local.Kit básico de inicio LAFVIN ESP32 - red localDemostración
Después de realizar los cambios necesarios, cargue el código en su ESP32.Pasos de referencia para cargar el código.
Abra el Monitor serial a una velocidad en baudios de 115200 y presione el botón ESP32 EN para obtener su dirección IP. Luego, abra un navegador en su red local y escriba la dirección IP del ESP32 para obtener acceso al web servidor.
Abra el Monitor serial a una velocidad en baudios de 115200 y presione el botón ESP32 EN para obtener su dirección IP. Luego, abra un navegador en su red local y escriba la dirección IP del ESP32 para obtener acceso al web servidor.Kit de inicio básico LAFVIN ESP32 - web servidorNota: Su navegador y ESP32 deben estar conectados a la misma LAN.
Debería obtener algo como lo siguiente con dos botones tantos como la cantidad de relés que haya definido en su código.Kit básico de inicio LAFVIN ESP32 para smartphoneAhora, puedes usar los botones para controlar tus relés usando tu teléfono inteligente.Kit básico de inicio LAFVIN ESP32 - teléfono inteligente 1

Proyecto_8_Sincronización_del_estado_de_salida_ Web_Servidor

Este proyecto muestra cómo controlar las salidas ESP32 o ESP8266 usando un web servidor y un botón físico simultáneamente. El estado de salida se actualiza en el web página si se cambia mediante un botón físico o web servidor.
Proyecto terminadoview
Echemos un vistazo rápido a cómo funciona el proyecto.Kit básico de inicio LAFVIN ESP32: proyecto terminadoviewEl ESP32 o ESP8266 aloja un web servidor que permite controlar el estado de una salida;

  • El estado de salida actual se muestra en la web servidor;
  • El ESP también está conectado a un pulsador físico que controla la misma salida;
  • Si cambia el estado de salida mediante el botón físico, su estado actual también se actualiza en el web servidor.

En resumen, este proyecto le permite controlar la misma salida utilizando un web servidor y un pulsador simultáneamente. Siempre que cambia el estado de salida, el web El servidor está actualizado.
Piezas necesarias
Aquí tienes una lista de las piezas que necesitas para construir el circuito:

  • Placa ESP32 DEVKIT V1
  • LED de 5 mm
  • Resistencia de 220 ohmios
  • Presionar el botón
  • Resistencia de 10k ohmios
  • Tablero de circuitos
  • Cables puente

EsquemáticoKit básico de inicio LAFVIN ESP32: esquema 1Instalación de la biblioteca para ESP32
Para construir esto web servidor, utilizamos ESPAsyncWebBiblioteca del servidor y biblioteca AsyncTCP. (Si ya ha realizado este paso, puede saltar al siguiente).
Instalación de ESPAsyncWebBiblioteca del servidor
Siga los siguientes pasos para instalar ESPAsyncWebBiblioteca del servidor:

  1. Haga clic aquí para descargar ESPAsyncWebBiblioteca del servidor. Deberías tener
    una carpeta .zip en su carpeta de Descargas
  2. Descomprima la carpeta .zip y debería obtener ESPAsyncWebCarpeta del servidor maestro
  3. Cambie el nombre de su carpeta desde ESPAsyncWebServidor maestro a ESPAsyncWebServidor
  4. Mueva el ESPAsyncWebCarpeta del servidor a la carpeta de bibliotecas de instalación de Arduino IDE
    Alternativamente, en su IDE de Arduino, puede ir a Sketch > Incluir
    Biblioteca > Agregar biblioteca .ZIP… y selecciona la biblioteca que acabas de descargar.

Instalación de la biblioteca AsyncTCP para ESP32
El ESPAsyncWebLa biblioteca del servidor requiere la biblioteca AsyncTCP para funcionar. Siga los pasos siguientes para instalar esa biblioteca:

  1. Haga clic aquí para descargar la biblioteca AsyncTCP. Debe tener una carpeta .zip en su carpeta de Descargas
  2. Descomprima la carpeta .zip y debería obtener la carpeta AsyncTCP-master
  3. Cambie el nombre de su carpeta de AsyncTCP-master a AsyncTCP
  4. Mueva la carpeta AsyncTCP a la carpeta de bibliotecas de instalación de Arduino IDE
  5. Por último, vuelve a abrir tu IDE de Arduino.
    Alternativamente, en su IDE de Arduino, puede ir a Sketch > Incluir
    Biblioteca > Agregar biblioteca .ZIP… y selecciona la biblioteca que acabas de descargar.

Código
Programaremos el ESP32 usando Arduino IDE, así que asegúrate de tener instalado el complemento ESP32 antes de continuar: (si ya has realizado este paso, puedes saltar al siguiente).
Instalación del complemento ESP32 en Arduino IDE
Después de instalar las bibliotecas necesarias, abra el código
Proyecto_8_Sincronización_del_estado_de_salida_Web_Server.ino en IDE arduino.
Antes de cargar el código, no olvides insertar tus credenciales de red para que el ESP pueda conectarse a tu red local.Kit básico de inicio LAFVIN ESP32 - Código

Cómo funciona el código

Estado del botón y estado de salida
La variable ledState contiene el estado de salida del LED. De manera predeterminada, cuando el LED está encendido, web El servidor se inicia, está BAJO.Kit básico de inicio LAFVIN ESP32 - Code Works

buttonState y lastButtonState se utilizan para detectar si se presionó el botón o no.Kit de inicio básico LAFVIN ESP32: se presionóBotón (web servidor)
No incluimos el HTML para crear el botón en la variable index_html.
Esto se debe a que queremos poder cambiarlo dependiendo del estado actual del LED, que también se puede cambiar con el botón pulsador.
Entonces, hemos creado un marcador de posición para el botón %BUTTONPLACEHOLDER% que será reemplazado con texto HTML para crear el botón más adelante en el código (esto se hace en la función procesador()).Kit de inicio básico LAFVIN ESP32: se presionó 1procesador()
La función procesador() reemplaza cualquier marcador de posición en el texto HTML con valores reales. Primero, verifica si el texto HTML contiene algún
marcadores de posición %BUTTONPLACEHOLDER%.Kit básico de inicio LAFVIN ESP32: procesadorLuego, llamamos a la función outputState() que devuelve el estado de salida actual. Lo guardamos en la variable outputStateValue.Kit básico de inicio LAFVIN ESP32 - outputStateDespués de eso, use ese valor para crear el texto HTML para mostrar el botón con el estado correcto:Kit básico de inicio LAFVIN ESP32 - código 4Solicitud HTTP GET para cambiar el estado de salida (JavaScript)
Cuando presionas el botón, se llama a la función toggleCheckbox(). Esta función realizará una solicitud en diferentes URLs para encender o apagar el LED.Kit básico de inicio LAFVIN ESP32 - JavaScriptPara encender el LED, realiza una solicitud en /update?state=1 URL:Kit básico de inicio LAFVIN ESP32 - element.checkedDe lo contrario, realiza una solicitud en /update?state=0 URL.
Solicitud HTTP GET para actualizar el estado (JavaScript)
Para mantener el estado de salida actualizado en el web servidor, llamamos a la siguiente función que realiza una nueva solicitud en el /estado URL uno de cada dos.Kit básico de inicio LAFVIN ESP32: estado de actualizaciónKit básico de inicio LAFVIN ESP32: actualización de estado 1Manejar solicitudes
Luego, debemos manejar lo que sucede cuando el ESP32 o ESP8266 recibe solicitudes en esos URLs.
Cuando se recibe una solicitud en la raíz /URLEnviamos la página HTML así como el procesador.Kit básico de inicio LAFVIN ESP32: gestión de solicitudesKit básico de inicio LAFVIN ESP32: gestión de solicitudes 1Las siguientes líneas comprueban si recibió una solicitud en /update?state=1 o /update?state=0 URL y cambia el ledState en consecuencia.Kit básico de inicio LAFVIN ESP32 - ledStateKit básico de inicio LAFVIN ESP32 - inputParamCuando se recibe una solicitud en el /estado URL, enviamos el estado de salida actual:Kit de inicio básico LAFVIN ESP32: estado de salidabucle()
En el bucle(), eliminamos el rebote del pulsador y encendemos o apagamos el LED según el valor de ledState variable.Kit básico de inicio LAFVIN ESP32 - circuito 1Demostración
Sube el código a tu placa ESP32.Pasos de referencia para cargar el código.
Luego, abra el Monitor Serial a una velocidad en baudios de 115200. Presione el botón EN/RST incorporado para obtener su dirección IP.Kit básico de inicio LAFVIN ESP32: demostraciónAbra un navegador en su red local y escriba la dirección IP del ESP. Debería tener acceso a la web servidor como se muestra a continuación.
Nota: Su navegador y ESP32 deben estar conectados a la misma LAN.Kit básico de inicio LAFVIN ESP32 - navegadorPuede alternar el botón en el web servidor para encender el LED.Kit de inicio básico LAFVIN ESP32 - web servidor 1También puedes controlar el mismo LED con el pulsador físico. Su estado siempre se actualizará automáticamente en el web servidor.

Proyecto 9 ESP32 DHT11 Web Servidor

En este proyecto, aprenderá a construir un ESP32 asincrónico. web Servidor con el DHT11 que muestra la temperatura y la humedad usando Arduino IDE.
Prerrequisitos
El web El servidor que crearemos actualizará las lecturas automáticamente sin necesidad de refrescar el web página.
Con este proyecto aprenderás:

  • Cómo leer la temperatura y la humedad de los sensores DHT;
  • Construir un sistema asincrónico web servidor que utiliza el ESPAsyncWebBiblioteca del servidor;
  • Actualice las lecturas del sensor automáticamente sin necesidad de refrescar la web página.

Asincrónico Web Servidor
Para construir el web servidor que utilizaremos el ESPAsyncWebBiblioteca del servidor que proporciona una manera fácil de crear un sistema asincrónico web servidor. Construyendo un servidor asincrónico web El servidor tiene varias ventajastages como se menciona en la página de GitHub de la biblioteca, como:

  • “Manejar más de una conexión al mismo tiempo”;
  • “Cuando envías la respuesta, estás inmediatamente listo para manejar otras conexiones mientras el servidor se encarga de enviar la respuesta en segundo plano”;
  • “Motor de procesamiento de plantillas simple para manejar plantillas”;

Piezas necesarias
Para completar este tutorial necesitas las siguientes partes:

  • Placa de desarrollo ESP32
  • Módulo DHT11
  • Tablero de circuitos
  • Cables puente

EsquemáticoKit básico de inicio LAFVIN ESP32: esquema 2Instalación de bibliotecas
Necesitas instalar un par de bibliotecas para este proyecto:

Instalación de la biblioteca de sensores DHT
Para leer desde el sensor DHT usando Arduino IDE, necesitas instalar el Biblioteca de sensores DHT. Siga los siguientes pasos para instalar la biblioteca.

  1. Haga clic aquí para descargar la biblioteca de sensores DHT. Debe tener una carpeta .zip en su carpeta de Descargas
  2. Descomprima la carpeta .zip y debería obtener la carpeta DHT-sensor-library-master
  3. Cambie el nombre de su carpeta de DHT-sensor-library-master a DHT_sensor
  4. Mueva la carpeta DHT_sensor a la carpeta de bibliotecas de instalación de Arduino IDE
  5. Por último, vuelve a abrir tu IDE de Arduino.

Instalación del controlador de sensor unificado de Adafruit
También es necesario instalar el Biblioteca de controladores de sensores unificados de Adafruit Para trabajar con el sensor DHT, siga los siguientes pasos para instalar la biblioteca.

  1. Haga clic aquí para descargar la biblioteca de sensores unificados de Adafruit. Debe tener una carpeta .zip en su carpeta de Descargas
  2. Descomprima la carpeta .zip y debería obtener la carpeta Adafruit_sensor-master
  3. Cambie el nombre de su carpeta de Adafruit_sensor-master a Adafruit_sensor
  4. Mueva la carpeta Adafruit_sensor a la carpeta de bibliotecas de instalación de Arduino IDE
  5. Por último, vuelve a abrir tu IDE de Arduino.

Instalación de ESPAsyncWebBiblioteca del servidor

Siga los siguientes pasos para instalar el ESPAsyncWebServidor biblioteca:

  1. Haga clic aquí para descargar ESPAsyncWebBiblioteca del servidor. Deberías tener
    una carpeta .zip en su carpeta de Descargas
  2. Descomprima la carpeta .zip y debería
    obtener ESPAsyncWebCarpeta del servidor maestro
  3. Cambie el nombre de su carpeta desde ESPAsyncWebServidor maestro a ESPAsyncWebServidor
  4. Mueva el ESPAsyncWebCarpeta del servidor a la carpeta de bibliotecas de instalación de Arduino IDE

Instalación de la biblioteca Async TCP para ESP32
El ESPAsyncWebServidor La biblioteca requiere la TCP asíncrono biblioteca para que funcione. Siga los siguientes pasos para instalar esa biblioteca:

  1. Haga clic aquí para descargar la biblioteca AsyncTCP. Debe tener una carpeta .zip en su carpeta de Descargas
  2. Descomprima la carpeta .zip y debería obtener la carpeta AsyncTCP-master
  3. Cambie el nombre de su carpeta de AsyncTCP-master a AsyncTCP
  4. Mueva la carpeta AsyncTCP a la carpeta de bibliotecas de instalación de Arduino IDE
  5. Por último, vuelve a abrir tu IDE de Arduino.

Código
Programaremos el ESP32 usando Arduino IDE, así que asegúrate de tener instalado el complemento ESP32 antes de continuar: (si ya has realizado este paso, puedes saltar al siguiente).
Instalación del complemento ESP32 en Arduino IDE
Después de instalar las bibliotecas necesarias, abra el código
Proyecto_9_ESP32_DHT11_Web_Server.ino en IDE arduino.
Antes de cargar el código, no olvides insertar tus credenciales de red para que el ESP pueda conectarse a tu red local.Kit básico de inicio LAFVIN ESP32 - CódigoCómo funciona el código
En los siguientes párrafos explicaremos cómo funciona el código. Sigue leyendo si quieres saber más o salta a la sección de Demostración para ver el resultado final.
Importación de bibliotecas
Primero, importe las bibliotecas necesarias. WiFi, ESPAsyncWebSe necesitan el servidor y ESPAsyncTCP para construir el web servidor. Las bibliotecas Adafruit_Sensor y DHT son necesarias para leer desde los sensores DHT11 o DHT22.Kit básico de inicio LAFVIN ESP32: importación de bibliotecasKit básico de inicio LAFVIN ESP32: cómo funciona el códigoDefinición de variables
Define el GPIO al que está conectado el pin de datos DHT. En este caso, está conectado al GPIO 4.Kit básico de inicio LAFVIN ESP32: definición de variablesLuego, seleccione el tipo de sensor DHT que está utilizando. En nuestro ejemploampLe, estamos usando el DHT22. Si estás usando otro tipo, solo tienes que descomentar tu sensor y comentar todos los demás.Kit básico de inicio LAFVIN ESP32: definición de variables 1

Cree una instancia de un objeto DHT con el tipo y pin que hemos definido anteriormente.Kit básico de inicio LAFVIN ESP32: definición de variables 2Crear un AsyncWebObjeto de servidor en el puerto 80.Kit básico de inicio LAFVIN ESP32: definición de variables 3Leer funciones de temperatura y humedad
Hemos creado dos funciones: una para leer la temperatura Hemos creado dos funciones: una para leer la temperatura (readDHTTemperature()) y la otra para leer la humedad (readDHTHumidity()).Kit básico de inicio LAFVIN ESP32 - readDHTHumidityKit básico de inicio LAFVIN ESP32: lecturas de sensoresObtener lecturas del sensor es tan simple como usar los métodos readTemperature() y readHumidity() en el objeto dht.Kit básico de inicio LAFVIN ESP32 - objetoTambién tenemos una condición que devuelve dos guiones (–) en caso de que el sensor no obtenga las lecturas.Kit básico de inicio LAFVIN ESP32: lecturasLas lecturas se devuelven como tipo de cadena. Para convertir un valor flotante en una cadena, utilice la función String()Kit básico de inicio LAFVIN ESP32 - CuerdaDe forma predeterminada, leemos la temperatura en grados Celsius. Para obtener la temperatura en grados Fahrenheit, comente la temperatura en grados Celsius y descomente la temperatura en grados Fahrenheit, de modo que tenga lo siguiente:Kit básico de inicio LAFVIN ESP32 - FahrenheitKit básico de inicio LAFVIN ESP32 - Fahrenheit 1Subir el código
Ahora, cargue el código en su ESP32. Asegúrese de haber seleccionado la placa y el puerto COM correctos. Pasos de referencia para cargar el código.
Después de cargar, abra el Monitor serial a una velocidad en baudios de 115200. Presione el botón de reinicio del ESP32. La dirección IP del ESP32 debe estar impresa en el puerto serial. monitor.Kit básico de inicio LAFVIN ESP32: cargue el códigoDemostración
Abra un navegador y escriba la dirección IP del ESP32. web El servidor debe mostrar las últimas lecturas del sensor.
Nota: Su navegador y ESP32 deben estar conectados a la misma LAN.
Tenga en cuenta que las lecturas de temperatura y humedad se actualizan automáticamente sin necesidad de refrescar la página. web página.Kit básico de inicio LAFVIN ESP32 - Demostración 1

Proyecto_10_Pantalla_OLED_ESP32

Este proyecto muestra cómo utilizar la pantalla OLED SSD0.96 de 1306 pulgadas con ESP32 usando Arduino IDE.
Presentamos la pantalla OLED de 0.96 pulgadas
El Pantalla OLED que utilizaremos en este tutorial es el modelo SSD1306: una pantalla monocolor de 0.96 pulgadas y 128×64 píxeles como se muestra en la siguiente figura.Kit básico de inicio LAFVIN ESP32 - Pantalla OLEDLa pantalla OLED no necesita luz de fondo, lo que da como resultado un contraste muy agradable en entornos oscuros. Además, sus píxeles consumen energía solo cuando están encendidos, por lo que la pantalla OLED consume menos energía en comparación con otras pantallas.
Como la pantalla OLED utiliza el protocolo de comunicación I2C, el cableado es muy sencillo. Puede utilizar la siguiente tabla como referencia.

Pin OLED ESP32
Vino 3.3 V
Tierra Tierra
LCC GPIO22
Adventista del Séptimo Día GPIO21

EsquemáticoKit básico de inicio LAFVIN ESP32: esquemaInstalación de la biblioteca OLED SSD1306 – ESP32
Hay varias bibliotecas disponibles para controlar la pantalla OLED con el ESP32.
En este tutorial utilizaremos dos bibliotecas de Adafruit: Biblioteca Adafruit_SSD1306 y Biblioteca Adafruit_GFX.
Siga los siguientes pasos para instalar esas bibliotecas.

  1. Abra el IDE de Arduino y vaya a Sketch > Incluir biblioteca > Administrar bibliotecas. Debería abrirse el Administrador de bibliotecas.
  2. Escriba “SSD1306” en el cuadro de búsqueda e instale la biblioteca SSD1306 de Adafruit.Kit básico de inicio LAFVIN ESP32 - OLEDLibrary–
  3. Después de instalar la biblioteca SSD1306 de Adafruit, escriba “GFX” en el cuadro de búsqueda e instale la biblioteca.Kit básico de inicio LAFVIN ESP32 - biblioteca
  4. Después de instalar las bibliotecas, reinicie su IDE de Arduino.

Código
Después de instalar las bibliotecas necesarias, abra el código Project_10_ESP32_OLED_Display.ino en el IDE de Arduino.
Programaremos el ESP32 usando Arduino IDE, así que asegúrate de tener instalado el complemento ESP32 antes de continuar: (si ya has realizado este paso, puedes saltar al siguiente).
Instalación del complemento ESP32 en Arduino IDEKit básico de inicio LAFVIN ESP32 - Código 1Kit básico de inicio LAFVIN ESP32 - Código 2Kit básico de inicio LAFVIN ESP32 - Código 3Cómo funciona el código
Importación de bibliotecas
En primer lugar, es necesario importar las bibliotecas necesarias. La biblioteca Wire para utilizar I2C y las bibliotecas Adafruit para escribir en la pantalla: Adafruit_GFX y Adafruit_SSD1306.Kit básico de inicio LAFVIN ESP32: Code Works 1Kit básico de inicio LAFVIN ESP32: Code Works 2Inicializar la pantalla OLED
Luego, define el ancho y la altura de tu OLED. En este ejemploampEn este caso, utilizamos una pantalla OLED de 128×64. Si utiliza otros tamaños, puede cambiarlos en las variables SCREEN_WIDTH y SCREEN_HEIGHT.Kit básico de inicio LAFVIN ESP32: pantalla OLEDLuego, inicialice un objeto de visualización con el ancho y la altura definidos anteriormente con el protocolo de comunicación I2C (&Wire).Kit básico de inicio LAFVIN ESP32: protocolo de comunicaciónEl parámetro (-1) significa que su pantalla OLED no tiene un pin RESET. Si su pantalla OLED tiene un pin RESET, debe estar conectado a un GPIO. En ese caso, debe pasar el número de GPIO como parámetro.
En la configuración (), inicialice el Monitor serie a una velocidad en baudios de 115200 para fines de depuración.Kit básico de inicio LAFVIN ESP32: propósitosInicialice la pantalla OLED con el método begin() de la siguiente manera:Kit básico de inicio LAFVIN ESP32 - display.beginKit básico de inicio LAFVIN ESP32 - Serial.printlnEste fragmento también imprime un mensaje en el monitor serie, en caso de que no podamos conectarnos a la pantalla.

Kit básico de inicio LAFVIN ESP32 - Serial.println 1En caso de que estés usando una pantalla OLED diferente, es posible que tengas que cambiar la dirección de la pantalla OLED. En nuestro caso, la dirección es 0x3C.Kit básico de inicio LAFVIN ESP32 - direcciónDespués de inicializar la pantalla, agregue un retraso de dos segundos, para que el OLED tenga tiempo suficiente para inicializarse antes de escribir texto:Kit básico de inicio LAFVIN ESP32 - retardoBorrar pantalla, configurar tamaño de fuente, color y escribir texto
Después de inicializar la pantalla, borre el búfer de pantalla con el método clearDisplay():Kit básico de inicio LAFVIN ESP32 - pantalla

Antes de escribir texto, debe configurar el tamaño del texto, el color y dónde se mostrará el texto en el OLED.
Establezca el tamaño de fuente utilizando el método setTextSize():Kit básico de inicio LAFVIN ESP32 - pantalla 1Establezca el color de la fuente con el método setTextColor():
BLANCO establece fuente blanca y fondo negro.
Define la posición en la que comienza el texto mediante el método setCursor(x,y). En este caso, configuramos el texto para que comience en las coordenadas (0,0), en la esquina superior izquierda.Kit básico de inicio LAFVIN ESP32 - setTextColor 1Finalmente, puedes enviar el texto a la pantalla usando el método println(), de la siguiente maneraKit básico de inicio LAFVIN ESP32 - código 5Luego, debes llamar al método display() para mostrar el texto en la pantalla.Kit básico de inicio LAFVIN ESP32 - pantalla

La biblioteca OLED de Adafruit proporciona métodos útiles para desplazarse fácilmente por el texto.

  • startscrollright(0x00, 0x0F): desplaza el texto de izquierda a derecha
  • startscrollleft(0x00, 0x0F): desplaza el texto de derecha a izquierda
  • startscrolldiagright(0x00, 0x07): desplaza el texto desde la esquina inferior izquierda hasta la esquina superior derecha startscrolldiagleft(0x00, 0x07): desplaza el texto desde la esquina inferior derecha hasta la esquina superior izquierda

Subir el código
Ahora, cargue el código en su ESP32.Pasos de referencia para cargar el código.
Después de cargar el código, la pantalla OLED mostrará texto desplazable.Kit básico de inicio LAFVIN ESP32: texto desplazableLogotipo de LAFVIN

Documentos / Recursos

Kit básico de inicio LAFVIN ESP32 [pdf] Manual de instrucciones
Kit básico de inicio ESP32, ESP32, Kit básico de inicio, Kit de inicio

Referencias

Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados *