ESP32 - WiFi & Bluetooth & Zigbee
Introducción a ESP32
Instructor: Ivan Vargas A.
• Desarrollador de hardware y firmware
• Director de proyectos en INTECX S.A.C.
Instructor: Ivan Vargas
ESP32 - Introducción
ESP32 es un SoC (System on a Chip), desarrollado por Espressif Systems. ESP32 proporciona una
plataforma sólida y altamente integrada que ayuda a satisfacer las demandas de uso eficiente de
la energía, diseño compacto, seguridad, alto rendimiento y confiabilidad.
Características:
•
•
•
•
WiFi y Bluetooth (banda de 2,4 GHz), Zigbee
Núcleos de CPU Xtensa® y RISC-V de 32 bits
Coprocesador de ultra bajo consumo
Múltiples periféricos
Espressif propone 3 opciones para iniciar en el desarrollo con ESP32:
ESP32 - SoC
ESP32 - Module
Instructor: Ivan Vargas
ESP32 - DevKit
ESP32 - Familias
ESP32-S3 Series
• 2.4 GHz Wi-Fi & Bluetooth 5 (LE)
• Xtensa® 32-bit LX7 dual-core processor that operates at up to 240 MHz
ESP32-S2 Series
• 2.4 GHz Wi-Fi
• Xtensa® High-performance 240 MHz single-core CPU
ESP32-C6 Series
• 2.4 GHz Wi-Fi 6 & Bluetooth 5 (LE) & IEEE 802.15.4
• 32-bit RISC-V MCU single-core processor that operates at up to 160 MHz
ESP32-C3 Series
• 2.4 GHz Wi-Fi & Bluetooth 5 (LE)
• 32-bit RISC-V MCU single-core processor with a four-stage pipeline that operates at up to 160
MHz
Instructor: Ivan Vargas
ESP32 - Familias
ESP32-C2 Series
• 2.4 GHz Wi-Fi & Bluetooth 5 (LE)
• 32-bit RISC-V MCU single-core processor that operates at up to 120 MHz
ESP32-H2 Series
• Bluetooth 5 (LE) & IEEE 802.15.4
• 32-bit RISC-V MCU single-core processor that operates at up to 96 MHz
ESP32 Series
• 2.4 GHz Wi-Fi & Bluetooth/Bluetooth LE
• 32-bit MCU Two or one CPU core(s) with adjustable clock frequency, ranging from 80 MHz to
240 MHz
Instructor: Ivan Vargas
ESP32 - Module
Instructor: Ivan Vargas
ESP32 - Esquemático del módulo ESP32
Instructor: Ivan Vargas
ESP32 - Módulos y Devkit
ESP32 Modules
ESP32-DevKi V1
ESP32-DevKitM-1
ESP32-Ethernet-Kit V1.2
Instructor: Ivan Vargas
ESP32-PICO-DevKitM-2
nanoESP32-C6
ESP32-C6 Series
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
CPU: ESP32-C6 RISC-V 160 MHz
Memoria
FLASH: 4MB
ROM:320 KB
HP SRAM: 512 KB
LP SRAM: 16KB
Banda de frecuencia de 2.4 GHz
Bluetooth Low Energy 5,0
Admite el protocolo IEEE 802.11ax,
Support Zigbee 3.0
2 UART
1 I2C
3 SPI
6 canales PWM
2 pines ADC SAR
22 E/S programables
1 pin para el control del LED RGB
Compatible con ESP32-C6-DevKitC-1
Instructor: Ivan Vargas
nanoESP32-C6
Instructor: Ivan Vargas
Otras placas basadas en ESP32-C6
ESP32-C6 Super Mini
Instructor: Ivan Vargas
Arquitectura ESP32-C6
Instructor: Ivan Vargas
ESP32 - Herramientas de desarrollo de software
Arduino Core para ESP32
Espressif IoT Development Framework (ESP-IDF) para ESP32
Instructor: Ivan Vargas
ESP32 - Arduino
Link de descarga Arduino (recomendable la última versión):
https://www.arduino.cc/en/software
Gestor de controladores para placas ESP32 en Arduino
https://dl.espressif.com/dl/package_esp32_index.json
Instalar Arduino core para ESP32
https://github.com/espressif/arduino-esp32
Driver CP210x USB to UART
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads
Driver CH9102x USB to UART
https://www.wch.cn/search?t=all&q=CH9102
Video: https://www.youtube.com/watch?v=wjc9oleXVdQ
Instructor: Ivan Vargas
ESP32-C6 Led RGB
LED RGB direccionables WS2812B
La cinta LED RGB se basa en el chip controlador WS2812B de Neopixel tiene el control de cada
pixel y de cada color, ya sea rojo, verde y azul a través de un solo cable. Además, tienen la
ventaja de poder encadenarse unos tras otros (la salida de uno se puede conectar a la entrada
de la siguiente) para obtener cadenas más largas.
Instructor: Ivan Vargas
ESP32-C6 Led RGB
Instalar la librería Adafruit_NeoPixel by Adafruit
#include <Adafruit_NeoPixel.h>
#define PIN_LED
8
#define NUMPIXELS
1
Adafruit_NeoPixel pixels(NUMPIXELS, PIN_LED, NEO_GRB + NEO_KHZ800);
void setup() {
}
pixels.begin();
void loop() {
pixels.setPixelColor(0, pixels.Color(255, 0, 0)); // Rojo
pixels.show();
delay(500);
pixels.setPixelColor(0, pixels.Color(0, 255, 0)); // Verde
pixels.show();
delay(500);
}
pixels.setPixelColor(0, pixels.Color(0, 0, 255)); // Azul
pixels.show();
delay(500);
Instructor: Ivan Vargas
ESP32-C6 - Led RGB
Explicación del Código
1.
2.
3.
4.
Definimos el pin PIN_LED que está conectado al WS2812B. En el circuito, se usa el GPIO8.
Creamos un objeto Adafruit_NeoPixel para manejar el LED.
Inicializamos el LED en setup() con pixels.begin().
Encendemos el LED con diferentes colores en loop(), enviando valores RGB con
pixels.setPixelColor().
5. Llamamos pixels.show() para actualizar el LED con el nuevo color.
Ejemplo de colores intermedios
Color
RGB (Rojo, Verde, Azul)
Amarillo
(255, 255, 0)
Cian
(0, 255, 255)
Magenta
(255, 0, 255)
Naranja
(255, 165, 0)
Rosa
(255, 20, 147)
Púrpura
(128, 0, 128)
Blanco
(255, 255, 255)
Instructor: Ivan Vargas
ESP32-C6 - Sensores DHT11 y DHT22
•
Los sensores DHT11 y DHT22 se utilizan para medir la temperatura y la humedad relativa.
•
Estos sensores contienen un chip que hace conversión de analógico a digital y emite una
señal digital con la temperatura y la humedad. Esto los hace muy fáciles de usar con cualquier
microcontrolador.
El DHT11 y el DHT22 son muy similares, pero difieren en sus especificaciones
Instructor: Ivan Vargas
ESP32-C6 - Sensores DHT11 y DHT22
Pinout:
•
•
•
•
VCC: 5V – 3.3V
Data: Pin de datos (configurado en la programación)
NC: No conectado.
GND: GND del circuito
Instructor: Ivan Vargas
ESP32-C6 - Sensor
Sensor DHT22 en ESP32-C6
Instructor: Ivan Vargas
ESP32-C6 - Codigo
Instalar las siguientes librerías: “DHT sensor library” y “Adafruit
Unified Sensor”
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
}
Instructor: Ivan Vargas
Datos del Instructor
Instructor: Ivan Vargas
Correo1: [email protected]
Cell : +51 910 536 807
Aula Virtual: https://smartelectronics.com.pe/aula/
Instructor: Ivan Vargas
ESP32 - WiFi & Bluetooth & Zigbee
Instructor: Ivan Vargas