Tutorial ESP32 48/55 - Monitoreo Remoto de Temperatura y control de LED MQTT | Kit IoT ESP32 de SunFounder
En este tutorial, exploraremos cómo utilizar el módulo ESP32 en conjunto con la placa de expansión ESP32 de SunFounder para monitorear la temperatura y la humedad de forma remota utilizando la plataforma Adafruit IO. Además, implementaremos la funcionalidad para controlar un LED a través de una interfaz web. Al final de este proyecto, podrás ver datos de temperatura y humedad en tiempo real y encender y apagar un LED desde tu navegador.
Este proyecto aprovecha el protocolo MQTT para una comunicación eficiente entre el ESP32 y el servicio Adafruit IO. MQTT es ligero y está bien adaptado para aplicaciones de IoT, lo que nos permite publicar fácilmente datos de sensores y suscribirnos a comandos para el control del LED. Para más aclaraciones sobre el código y el cableado, asegúrate de ver el video que acompaña este tutorial (en el video a las 00:00).
Hardware Explicado
Los componentes principales de este proyecto incluyen el microcontrolador ESP32, un sensor de temperatura y humedad DHT11, y un LED. El ESP32 es un microcontrolador potente que cuenta con capacidades de Wi-Fi y Bluetooth integradas, lo que lo convierte en una elección ideal para proyectos de IoT. Puede manejar múltiples tareas y conectarse a internet sin problemas.
El sensor DHT11 es responsable de medir la temperatura y la humedad. Emite señales digitales que pueden ser leídas por el ESP32. El LED sirve como un indicador y puede ser controlado de forma remota para demostrar la efectividad del protocolo MQTT en la gestión de dispositivos a través de internet.
Detalles de la hoja de datos
| Fabricante | Adafruit |
|---|---|
| Número de pieza | DHT11 |
| Voltaje de lógica/entrada/salida | 3.3 V |
| Tensión de alimentación | 3.3 V |
| Corriente de salida (por canal) | 20 mA |
| Corriente de pico (por canal) | 50 mA |
| Orientación sobre la frecuencia PWM | N/A |
| Umbrales de lógica de entrada | 0.3 V (bajo), 0.7 V (alto) |
| Caída de tensión / RDS(on)saturación | N/A |
| Límites térmicos | 0 a 50 °C |
| Paquete | 3 pines |
| Notas / variantes | Utiliza DHT22 para mayor precisión. |
- Asegúrese de una conexión eléctrica correcta para prevenir daños.
- Utilice una resistencia de 220 ohmios con el LED para limitar la corriente.
- Utiliza resistencias pull-up para el pin de datos DHT11 si es necesario.
- Verifica las credenciales de Wi-Fi para la sensibilidad a mayúsculas y minúsculas.
- Monitorea la salida serial para depurar problemas de conexión.
- Mantén los temas MQTT únicos para evitar conflictos.
- Pruebe las lecturas de los sensores para asegurarse de que son válidas.
- Ten cuidado con el tiempo de respuesta del DHT11; puede tardar en estabilizar las lecturas.
LED= controlar LED;temperature= publicar datos de temperatura;humiditypublicar datos de humedad.
Instrucciones de cableado
Para cablear los componentes, comienza conectando el sensor DHT11. Conecta el pin izquierdo del DHT11 al riel de alimentación de 3.3V en la placa de pruebas utilizando un cable rojo. El pin del medio del DHT11 debe conectarse al pin 13 en el ESP32 utilizando un cable amarillo. Finalmente, conecta el pin derecho del DHT11 al riel de tierra utilizando un cable azul.
A continuación, para el LED, conecta el ánodo (pierna más larga) al pin 15 del ESP32 a través de una resistencia de 220 Ohmios. Conecta el cátodo (pierna más corta) directamente a la barra de tierra en la placa de pruebas. Asegúrate de que todas las conexiones estén seguras y verifica dos veces si hay cables sueltos.
Configurando el panel de control
-
VisitarAdafruit IO, luego haz clic enComienza gratiscrear una cuenta gratuita.

-
Completa el formulario para crear una cuenta.

-
Después de crear una cuenta de Adafruit, necesitarás reabrir Adafruit io. Haz clic en elTableros de control, luego haz clic enNuevo Panel de Controles.

-
Crea unNuevo Tablero.

-
Ingresa el recién creadoTableroy crear un nuevo bloque.

-
Crea 1Alternarbloque.

-
A continuación, necesitarás crear un nuevo feed aquí. Este interruptor se utilizará para controlar el LED, y nombraremos este feed "LED".

-
Verifique elLEDalimentar, luego pasar al siguiente paso.

-
Completa la configuración del bloque (principalmente Título del Bloque, Texto de Encendido y Texto de Apagado), luego haz clic en elCrear bloquebotón en la esquina inferior derecha para terminar.

-
También necesitamos crear dos.Bloques de textosiguiente. Se usarán para mostrar la temperatura y la humedad. Así que, crea dos feeds llamadostemperaturayhumedad.

-
Después de la creación, tu Panel debería verse algo así:

-
Puedes ajustar el diseño utilizando elEditar diseñoopción en el Tablero.

-
Haz clic enCLAVE API, y verás tu nombre de usuario yCLAVE APIAnótalos, ya que los necesitarás para tu código.

Ejemplos de código y guía paso a paso
El código comienza incluyendo las bibliotecas necesarias, configurando las credenciales de Wi-Fi y definiendo los parámetros MQTT. Identificadores clave comoAIO_USERNAMEyAIO_KEYse utilizan para autenticar con el servicio Adafruit IO.
#define AIO_USERNAME "YourUsername"
#define AIO_KEY "YourKey"Estas líneas definen tu nombre de usuario y clave de Adafruit IO, que son esenciales para conectarse al broker MQTT. Asegúrate de que estos valores sean precisos para establecer una conexión exitosa.
En elsetup()función, se inicializa la conexión Wi-Fi y se configura el cliente MQTT con el certificado CA raíz para una comunicación segura.
WiFi.begin(WLAN_SSID, WLAN_PASS);
client.setCACert(adafruitio_root_ca);Este código conecta el ESP32 a la red Wi-Fi especificada y establece la CA raíz para conexiones MQTT seguras. Manejar adecuadamente estas conexiones es fundamental para una transmisión de datos confiable.
Finalmente, elloop()La función gestiona la conexión MQTT y publica lecturas de temperatura y humedad a intervalos regulares.
mqtt.processPackets(5000);Esta línea permite que el ESP32 procese los mensajes entrantes para los temas suscritos, asegurando que el dispositivo permanezca receptivo a los comandos enviados desde la interfaz web.
Para el código completo, por favor consulta el programa completo cargado debajo del artículo.
Demostración / Qué Esperar
Una vez completada la configuración con éxito, deberías ver actualizaciones en tiempo real de la temperatura y la humedad en tu panel de control de Adafruit IO. También puedes encender y apagar el LED a través de la interfaz web. Si el LED no responde como se esperaba, revisa tu cableado y asegúrate de que los nombres de los temas MQTT coincidan con los definidos en el código.
Tenga en cuenta que pueden ocurrir ciertos errores de conexión MQTT debido a certificados caducados. Asegúrese de tener el último certificado raíz de CA en su código para evitar estos problemas (en el video a las 15:30).
Marcas de tiempo del video
- 00:00 Inicio
- 1:50 Introducción al proyecto
- 3:16 ¿Qué es MQTT?
- 6:36 Configuración de Adafruit IO
- 11:13 cableado
- 13:38 Explicación del código de Arduino
- 22:03 Seleccionando la placa ESP32 y el puerto COM
- 23:44 Demostración del proyecto
- 27:05 Actualizando el tablero
Common Course Links
Common Course Files
Recursos y referencias
-
Documentación
Archivos📁
No hay archivos disponibles.