Sei sulla pagina 1di 7

Universidad Politécnica Salesiana

Ingeniería de Sistemas

Redes Inalámbricas I

Ing. Rafael Jaya

Nombre: Tarapués Boris Fecha: 2020 – 06 – 05 Tema:


Aplicaciones y proyecto con ESP32

Aplicaciones:

Con ESP32 se pueden realizar varias aplicaciones como son:

• Control de diferentes sensores (temperatura, humedad, presión, entre otras).


• Servicio web con protocolo MQTT (Message Queue Telemetry Transport).
• Servicios de IoT (Internet de las cosas).
• Bluetooth.
• Wi-Fi.
• Control de máquinas CNC, entre otras aplicaciones.

Proyecto con ESP32 – Cómo enviar los valores de un sensor por MQTT con ESP32.

Descripción:

En el presente proyecto se va a realiza un control de un sensor de temperatura usando ESP32,


también se integra el protocolo MQTT (Transporte de Telemetría MQ), es un protocolo de
mensajería ligera para IoT, es una forma sencilla de distribuir información de telemetría de
diferentes sensores, este protocolo es vasado en TCP/IP.

MQTT es usado en la comunicación máquina a máquina (M2M), este protocolo como se


describe anteriormente es orientado a la comunicación entre sensores, debido a que consume
un ancho de banda muy bajo y puede se usado en la mayoría de los dispositivos embebidos
con pocos recursos como placas Arduino, NodeMCU, entre otras.
Una placa ESP32 envía a un servidor central MQTT (llamado "Broker") los datos. Luego
otro dispositivo como un móvil por ejemplo (puede ser cualquier otro) se conecta a ese
servidor también por MQTT y muestra los datos.

Materiales:

• Placa ESP32.
• Protoboard
• Sensor de temperatura DHT22.
• Conectores.
• Dispositivo móvil.
• Entorno de desarrollo ArduinoIDE o VSCode.

Los materiales que se muestran a continuación en las ilustraciones son lo que se van a
usar en el presente proyecto entre los más relevantes.

Ilustración 1.- Protoboard y ESP32.

Ilustración 2.- Sensor DHT22


Conexión y funcionamiento:

Funcionamiento:

Ilustración 3.- Funcionamiento del presente proyecto.

Conexión:

Conectar el sensor DHT22 a ESP32 es bastante simple. Empiece colocando el ESP32 en su


placa de prueba (Protoboard), asegurándose de que cada lado de la placa esté en un lado
separado de la placa de prueba.

Ahora coloque el sensor en su placa de prueba además de ESP32. Conecte el pin VCC en el
sensor al pin 3.3V en el ESP32 y tierra a tierra. Conecte también el pin de datos del sensor al
pin D4 en el ESP32. Finalmente, necesitamos colocar una resistencia pull-up de 10KΩ entre
VCC y la línea de datos para mantenerla ALTA, para una comunicación adecuada entre el
sensor y el MCU. Si tiene una placa de conexión del sensor, no necesita agregar ningún pull-
up externo. Viene con una resistencia pull-up incorporada.
Ilustración 4.- Conexión 1 DHT22 - ESP32.

Luego de tener nuestros elementos físicos conectados, se procede a crear una cuenta en
cloudMQTT para ser el servidor de nuestro proyecto, para esto se ingresa a
www.cloudmqtt.com y se puede crear la respectiva cuenta.

Ilustración 5.- Cloud MQTT.

Luego de crear la cuenta y de ingresar a este, se procede a crear una instancia con un nombre,
plan gratuito (free plan), y una etiqueta (tag) para que se organice de manera adecuada.

Nota: Esta es solo una sugerencia de servidor, se puede usar otro que se encuentran en la
web.
Luego se procede a descargar el dispositivo móvil una aplicación MQTT en la tienda de
aplicaciones de los smartphones.

Usando VSCode para realizar la respectiva programación del ESP32, se busca la extensión
PIO HOME, usa la misma técnica que con ArduinoIDE para instalar las respectivas librerías
que se van a usar.

Librerías:
https://github.com/beegee-tokyo/DHTesp
https://github.com/knolleary/pubsubclient

Código:

//Ejemplo MQTT & ESP32 con sensor de temperatura DHT22 by Biblioman


#include <WiFi.h>
#include <PubSubClient.h>
#include "DHTesp.h"
#include <stdlib.h>

const char* ssid = "WLAN34";


const char* password = "you_Password";
const char* mqttServer = "m21.cloudmqtt.com";
const int mqttPort = 11393;
const char* mqttUser = "dqyoxjgo";
const char* mqttPassword = "bDFPyIOx5Mln";

WiFiClient espClient;
PubSubClient client(espClient);
DHTesp dht;

void setup() {

Serial.begin(9600);
WiFi.begin(ssid, password);
dht.setup(14);

Serial.print("Periodo minimo de muestreo: ");


Serial.println(dht.getMinimumSamplingPeriod());

while (WiFi.status() != WL_CONNECTED) {


delay(500);
Serial.println("Conectando a red WiFi...");
}

Serial.println("Conectado a la red WiFi");

client.setServer(mqttServer, mqttPort);

while (!client.connected()) {
Serial.println("Conectando a Broquer MQTT...");

if (client.connect("IOT-ESP32", mqttUser, mqttPassword )) {

Serial.println("conectado");

} else {

Serial.print("conexion fallida ");


Serial.print(client.state());
delay(2000);

}
}
}

void loop() {
delay(dht.getMinimumSamplingPeriod());
float temperature = dht.getTemperature();
char tempstring[3];
dtostrf(temperature,3,1,tempstring);
client.publish("SENSOR1/TEMPERATURA", tempstring);

client.loop();
}

Bibliografía:

BricoGeek, proyectos ESP32, 2005 – 2020, https://blog.bricogeek.com/tag/esp32

Aquí Hay apuntes, MQTT & ESP32: Ejemplo con sensor de temperatura DHT22, 2018,
http://aquihayapuntes.com/foro/viewtopic.php?f=24&t=1039

Interfaz DHT11 DHT22 con ESP32 usando un servidor web,


https://saber.patagoniatec.com/esp32-dht-con-servidor-web/

Potrebbero piacerti anche