Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UPC
P á g i n a 1 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
Guía de Laboratorio N°1
SoC ESP32 con conexión a Wi-Fi
1. Objetivos
2. Fundamento Teórico
2.1. ESP32. Es una tarjeta electrónica basada en el microcontrolador ESP32 de la empresa Espressif.
Está diseñada para ser programada con el lenguaje Lua, no obstante, ha sido adaptada para trabajar
también con la interfaz de desarrollo de Arduino IDE, así como con micropython. Forma parte del
ecosistema de hardware libre, al igual que las tarjetas de la familia Arduino. Tiene la ventaja de incluir
un módulo de comunicación inalámbrica basado en protocolo Wifi.
3. Equipos y materiales
• Tarjetas de desarrollo:
o Tarjeta ESP32 DEV Module (Ver Figura1)
o Protoboard pequeño.
o Sensor DHT22
o Sensor DS18B20
P á g i n a 2 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
4.- Descripción de sensores
4.1 Sensor DHT22
El DHT22 (AM2302) es un sensor digital de temperatura y humedad relativa de buen rendimiento y bajo costo.
Integra un sensor capacitivo de humedad y un termistor NTC para medir el aire circundante, y muestra los datos
mediante una señal digital en el pin de datos (no posee salida analógica). Utilizado en aplicaciones de control
automático de temperatura, aire acondicionado, monitoreo ambiental en agricultura y más. En la figura 2, se
muestra la descripción de pines del sensor DHT22.
VCC GND
DATA
P á g i n a 3 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
4.2 Sensor DS18B20
o El DS18B20 es un sensor digital de alta precisión de temperatura usado para medir temperatura en agua
o líquidos en general no corrosivos dado que la versión principal tiene un encapsulado de acero.
o La resolución del sensor es configurable por el usuario a 9, 10, 11 o 12 bits. Sin embargo, la resolución
predeterminada en el encendido es de 12 bits (es decir, precisión de 0.0625 ° C). En la figura 3, se muestra
la descripción de pines del sensor DS18B20.
P á g i n a 4 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
5.- Instalación de librerías en el IDE de ARDUINO
5.1 Paso 1: Instalación del Core ESP8266 en el IDE de Arduino.
o Copiar los links:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
https://dl.espressif.com/dl/package_esp32_index.json
https://github.com/espressif/arduino-esp32
o En: Archivo> Preferencias>
o Dar clic en <Ok>, tal como se muestra en la figura 4.
o Instalar el Core ESP32, descargándolo del link de repositorio copiado anteriormente. Para ello ir a:
Herramientas> Placa: NodeMCU >Gestor de Tarjetas…
Dar clic en <Gestor de Tarjetas>, Tal como se muestra en la figura 5.
Figura 5.
P á g i n a 5 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
o Escribir el nombre del Core, ESP32 y luego dar clic en el botón <Instalar>, tal como se muestra en la
figura 6.
Figura 6
o Una vez instalado el Core ESP32, seleccionar la plataforma ESP32 Dev Module, para ello debe de ir a:
o Herramientas > Placa > NodeMCU > ESP32 Arduino > ESP32 Dev Module
Figura 7.
o Verificar que se ha seleccionado correctamente la plataforma, tal como se muestra en la figura 8.
Figura 8.
P á g i n a 6 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
5.2 Paso 2: Instalación las librerías del sensor temperatura y humedad de ambiente DHT22
o Ir a la pestaña Programa > Incluir Librería > Administrar Bibliotecas.
o Clic en <Administrar Bibliotecas>, tal como se muestra en la figura, 9
Figura 9.
Figura 10
Figura 11.
P á g i n a 7 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
5.- Esquema electrónico
En la figura 12, se muestra el esquema de conexión electrónica del sensor DHT22 con el ESP32.
Figura 13.
Figura 14.
P á g i n a 8 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
7.- Código de lectura del sensor DHT22 sin Wi-Fi
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22
//#define DHTTYPE DHT11
DHT dht (DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F ("Probando el DHT"));
dht.begin();
}
void loop () {
delay (2000); //Sampling rate
float h= dht.readHumidity();
float t = dht.readTemperature(); //Temp en Celsius
if (isnan(h) ||isnan (t)){
Serial.println(F("Fallo de lectura"));
return;
}
Serial.print(F("Humedad:"));
Serial.print(h);
Serial.print(F(" % \t Temperatura:"));
Serial.print(t);
Serial.println(F("°C"));
}
Figura 15
P á g i n a 9 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
8.- Código de lectura del sensor DHT22 con Wi-Fi usando plataforma Blynk
Para realizar la lectura del sensor DHT22 con el ESP32 usando Wi-Fi, debemos de seguir los siguientes pasos:
8.1 Paso1: Debemos instalar las librerías de Blynk en el IDE de ARDUINO de forma manual.
o Ir al link: https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1
o Descargar el archivo Blynk_Release_v0.6.1.zip y luego descomprimir la carpeta.
o Dentro de la carpeta Blynk_release_v0.6.1 encontrará dos carpetas: libraries y tools.
Figura 16.
o Si damos un clic en la carpeta libraries, se encontrarán 4 carpetas librerías de Blynk.
Figura 17.
o Ir a Este equipo > Documentos y dar clic en la carpeta <ARDUINO>, tal como se muestra en la figura 16.
Figura 18
P á g i n a 10 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
o Al dar clic en la carpeta <Arduino>, encontrará sólo carpeta libraries. Dentro de esta carpeta libraries, se
deben de copiar las carpetas librerías de Blynk de la figura 17. En la figura 19, se muestra la ubicación
de la carpeta libraries dentro de la carpeta de Arduino
Figura 19
o Luego copiar la carpeta tools de la figura 14, dentro de la carpeta de Arduino. De esta manera, la
carpeta Arduino incluye 2 carpetas tal como se muestra en la figura 20.
Figura 20.
o Una vez cumplido los pasos anteriores se terminó con la instalación de la librería Blynk en el IDE de
Arduino.
P á g i n a 11 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
8.2 Paso2: Instalar y configurar la aplicación cliente de Blynk.
o Buscar la aplicación Blynk en Play Store de su smartphone con Android y dar clic en <Instalar>, en caso
es la primera vez, en la figura 21, se muestra la imagen con la aplicación ya descargada.
Figura 21.
o Abrir la aplicación, si es por primera vez, crear su cuenta <Create New Account> de lo contrario dar clic
en <Log In>
Figura 22.
o Una vez ingresado, usted puede crear un nuevo proyecto o usar uno ya creado.
P á g i n a 12 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
8.3 Paso3: Crear y configurar el proyecto de lectura del sensor DHT22 usando Wi-Fi y Blynk.
o Ingresar a la aplicación, colocando su usuario y contraseña y dar clic en <Log In>., tal como se muestra
en la figura 23.
Figura 23.
o En la siguiente pantalla, dar clic en < New Project >. Luego crear un nuevo proyecto escribiendo lo
siguiente, tal como se muestra en la figura 24:
▪ Nombre del proyecto será “ESP32-DHT22”.
▪ Choose Device: ESP32 Dev Board
▪ Dar clic en < Create >
Figura 24.
P á g i n a 13 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
o Una vez creado el proyecto, el servidor BLYNK le indicará a usted que habilite el envío de un Token de
autenticación del proyecto. Dar clic en el botón <OK>. Tal como se muestra en la figura 25.
Figura 25.
o El servidor Blynk le enviará a su correo electrónico que usted configuro inicialmente, un código de
autenticación, tal como se muestra en la figura 26.
o Auth Token: RpnYr6QSwi6gaQVclTJxKKtVBKUMzt-Y
Figura 26.
8.4 Paso4: Configurar el Dashboard
o Una vez creado el proyecto, se ingresa al Dashboard o panel de trabajo, tal como se muestra en la
figura 27.
Figura 27.
▪ Símbolo <Tuerca>: Es “Project Settings”, usado para borrar el proyecto creado.
▪ Símbolo < + >: Es “Widget Box”, es usado para incluir los widgets a la aplicación, cada widget
tiene un costo, donde el costo gratuito máximo es de $1400.
▪ Símbolo <Play >: Para ejecutar la aplicación.
▪ Símbolo < Chip>: Para salir de la aplicación.
P á g i n a 14 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
o Ingresar a la caja de widgets y seleccionar el símbolo GAUGE y este aparecerá en el Dashboard de
fondo negro, tal como se muestra en la figura 28
Figura 28.
o Para configurar el GAUGE de temperatura, dar clic en el mismo símbolo, Luego escribir los siguientes
parámetros tal como se muestra en la figura 29.
▪ Escribir el nombre del gauge: TEMP
▪ Input [PIN]: Select pin: Virtual PIN V0
▪ Rango: de 0 a 50°C
▪ Design: Font Size: T
▪ Refresh rate: 5 Sec
Figura 29.
P á g i n a 15 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
o Incluir otro GAUGE al Dashboard.
o Para configurar el GAUGE de humedad, dar clic en el mismo símbolo, Luego escribir los siguientes
parámetros tal como se muestra en la figura 30.
▪ Escribir el nombre del gauge: HUME
▪ Input [PIN]: Select pin: Virtual PIN V1
▪ Rango: de 0 a 100%
▪ Design: Font Size: T
▪ Refresh rate: 5 Sec
Figura 30.
o El Dashboard de la aplicación final quedará tal como se muestra en la figura 31.
Figura 31.
8.5 Paso5: Codificar el programa en Arduino UNO que incluya la librería Wi-Fi
o Para realizar la codificación de la aplicación en el ESP32 considerar lo siguiente:
▪ Incluir librería Wi-Fi, El SSID de su red Wi-Fi, La clave de su red Wi-Fi
▪ El código creado de Autenticación del proyecto (Figura 26)
▪ Se deben de crear 2 pines virtuales en el Blynk del Smartphone, dependiendo de la cantidad de
parámetros a sensar.
P á g i n a 16 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
▪ Se incluye dos funciones BLYNK_READ relacionados con los pines virtuales en el código del
IDE de Arduino como receptores de los valores de temperatura y humedad.
o Ejemplo de código:
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHT.h"
BLYNK_READ(Pin_TEMP){
float Valor_t = dht.readTemperature();
if (isnan(Valor_t)) { Serial.println("Error en la lectura"); return;}
Blynk.virtualWrite(Pin_TEMP, Valor_t); }
BLYNK_READ(Pin_HUME){
float Valor_h = dht.readHumidity();
if (isnan(Valor_h)) {Serial.println("Error en la lectura"); return;}
Blynk.virtualWrite(Pin_HUME, Valor_h); }
void setup() {
Serial.begin(9600);
dht.begin();
delay(10);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("."); }
Serial.println("WiFi connected");
Blynk.begin(auth, ssid, pass); }
void loop() {
Blynk.run();
}
P á g i n a 17 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
8.6 Paso6: Ejecutando la aplicación en la red Wi-Fi (SSID del router: "RCOSTA 2.4Ghz")
o Una vez grabado el programa en el ESP32
o Dar clic en el botón <Play> de la aplicación cliente Blynk, tal como se muestra en la figura 32.
Figura 32.
NOTA: Para el caso de los alumnos que no puedan realizar su laboratorio de forma local, deberán realizar lo
siguiente:
o Deberán ingresar a la aplicación Blynk del profesor:
o Usuario: embeddedsystems69@gmail.com
o Clave de Blynk: 12345678
o Clave del correo electrónico de prueba embeddedsystems69@gmail.com es: Sienna2015
o Usted podrá ingresar al correo electrónico de prueba para poder copiar el código de autenticación en el
programa del ESP32.
Figura 33.
P á g i n a 18 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
9.- Ejercicio propuesto
En la figura 34, se muestra el circuito electrónico del sensor DS18B20 conectado al NodeMCU a través del pin
D6. Realizar el Monitoreo de la temperatura de dicho sensor usando una Dashboard de una aplicación cliente
Blynk.
Referencias
[1] Mozilla and individual contributors, «An overview of HTTP» 2019. [En línea]. Available:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview.
[2] KaaIoT Technologies, «What is an IoT platform?,» 2016. [En línea]. Available:
https://www.kaaproject.org/what-is-iot-platform. [Último acceso: 09 2019].
[3] MathWorks, «ThingSpeak, The IoT Platform with MATLAB Analytics,» 2019. [En línea]. Available:
https://www.mathworks.com/help/thingspeak/. [Último acceso: 09 2019].
[4] Espressif Systems, «ESP8266_Pin_List,» 2018. [En línea]. Available:
https://www.espressif.com/sites/default/files/documentation/ESP8266_Pin_List_0.xls.
[5] Espressif Systems, «ESP8266EX Datasheet,» 2019.
[6] Al-thinker, «ESP-12E WiFi Module,» 2015.
P á g i n a 19 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos
P á g i n a 20 | 20
© Derechos reservados. Profesor Rubén Acosta Jacinto. Curso: Sistemas Embebidos