Está en la página 1de 20

Universidad Peruana de Ciencias Aplicadas

UPC

Lab1: SoC ESP32 con


Conexión a Wi-Fi

Curso: Sistemas Embebidos


Profesor: Rubén Acosta

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

• Comprender el uso del sistema Embebido SoC ESP32.


• Implementar una aplicación de monitoreo de valores de sensores conectados al Sistema Embebido SoC
ESP32

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

Figura 1. Tarjeta de Desarrollo ESP32 DEV Module (Fritzing)

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.

4.1.1 Especificaciones técnicas:


o Voltaje de Operación: 3V - 6V DC
o Consumo de corriente: 2.5mA
o Rango de medición de temperatura: -40°C a 80 °C
o Precisión de medición de temperatura: +/- 0.5 °C
o Resolución Temperatura: 0.1°C
o Rango de medición de humedad: De 0 a 100% RH
o Precisión de medición de humedad: 2% RH
o Resolución Humedad: 0.1%RH
o Tiempo de sensado o muestreo: 2s
o Distancia máxima de cable de datos: 20 m
o Interface digital: Single-bus (bidireccional)

VCC GND

DATA

Figura 2. Descripción de pines del Sensor DHT22

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.

4.2.1 Especificaciones técnicas:


o Voltaje de Operación: 3.0V – 5.5V
o Consumo de corriente: 1mA
o Rango de Trabajo: -55℃ hasta +125℃ (-67°F a +257°F)
o Precisión en el rango de -10°C hasta +85°C: +/- 0.5°C.
o Resolución seleccionable de 9-12 bits
o Tiempo de sensado < 750ms
o Longitud de cable: 1m
o Cables: Rojo (+VCC), Blanco o amarillo (DATA), Negro (GND)
o Interface digital: Protocolo 1-Wire
o Identificación única de 64 bits.

Figura 3. Descripción de pines del sensor DS18B20 de MAXIM.

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.

Figura 4. Copiando los links de repositorio del Core ESP8266 y ESP32.

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.

o Escribir: DHT Sensor library


o Clic en <Instalar>, tal como se muestra en la figura 10.

Figura 10

o Clic en: <Install all>, tal como se muestra en la figura 11.


o Al dar clic en Install all, se instala también la librería: Adafruit Unified Sensor.

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 12. Esquema de conexión del sensor DHT22 con el ESP32

6.- Conexión y carga del programa


o Dar clic el botón ( → ) para subir el programa.
o Cuando se presente la siguiente imagen en pantalla, “Subiendo”, presionar el botón BOOT, de la tarjeta
ESP32, tal como se muestra en la figura 13.

Figura 13.

o Dejar de presionar el botón BOOT de la tarjeta ESP32, cuando se presenta un % de escritura en


memoria (Writing at 0x0…………………….(100%) ), como la imagen de la figura 14.

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"));
}

En la figura 15, se muestra la lectura de datos por el monitor serial a 9600bps.

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"

#define BLYNK_PRINT Serial


#define DHTPIN 4
#define DHTTYPE DHT22
#define Pin_TEMP V0
#define Pin_HUME V1

DHT dht (DHTPIN, DHTTYPE);


char auth[] = "RpnYr6QSwi6gaQVclTJxKKtVBKUMzt-Y";
char ssid[] = "RCOSTA 2.4Ghz";
char pass[] = "Brunella2011";

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.

8.7 Paso7: Implementación del circuito electrónico usando ESP32 y DHT22


En la figura 33, se muestra la implementación del circuito lector de temperatura y humedad de ambiente

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.

Figura 34. Esquema electrónico del sensor DS18B20 conectado al ESP32.

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

También podría gustarte