¿Cómo hacer un sistema de automatización del hogar inteligente usando el módulo ESP32?

En esta era moderna, el concepto de domótica está creciendo a gran velocidad. Se están instalando sistemas inteligentes en casi todos los lugares. Smart Home Systems es un concepto en el que todos los electrodomésticos o dispositivos se controlan mediante un único mando a distancia. En estos sistemas, la mayoría de las veces, el control remoto es una aplicación móvil. Como un móvil Android es el más común entre las personas, una aplicación Android es la mejor opción para controlar todos estos dispositivos.



Automatización del hogar

Entonces, en este proyecto, vamos a conectar algunos de los electrodomésticos de la casa al módulo de relé y controlarlo a través del microcontrolador ESP32. Crearemos una base de datos en tiempo real de base de fuego y la conectaremos desde la aplicación de Android. Esta aplicación de Android enviará los datos a la nube y luego se enviará al microcontrolador para encender o apagar el aparato eléctrico. La mejor parte es que puede tener un control total sobre la conmutación de sus electrodomésticos desde cualquier parte del mundo. Solo necesita una conexión a Internet para operar la aplicación de Android.



¿Cómo controlar los electrodomésticos a través de WiFi?

Los sistemas de domótica que ya están disponibles en el mercado son muy costosos. Podemos utilizar una placa ESP32 para conectar diferentes electrodomésticos y controlarlos mediante una aplicación de Android. Esto tendrá un costo muy bajo y una forma eficiente de automatizar la casa. Ahora demos un paso adelante y comencemos a recopilar información para iniciar el proyecto.



Paso 1: recopilación de los componentes

El mejor enfoque para iniciar cualquier proyecto es hacer una lista de componentes y hacer un breve estudio de estos componentes porque nadie querrá quedarse en medio de un proyecto solo porque falta un componente. A continuación se muestra una lista de componentes que vamos a utilizar en este proyecto:



  • ESP32
  • Tablero de circuitos
  • Conexión de cables

Paso 2: estudiar los componentes

Ahora que conocemos el resumen de este proyecto, avancemos un paso y revisemos un breve estudio del funcionamiento de los principales componentes que vamos a utilizar.

ESP32 es una placa de microcontrolador de bajo consumo y bajo costo que tiene un WiFi incorporado y un módulo Bluetooth de modo dual. Esta placa de microcontrolador es creada y desarrollada por Sistemas Espressif . Esta placa tiene amplificadores de potencia incorporados, amplificadores de baja recepción, filtros e interruptores de antena. Está alimentado por un cable de datos Android y puede proporcionar hasta 3.3V en la salida. ESP32 ejecuta TCP / IP, la convención completa de WLAN MAC 802.11 b / g / n / e / I y Wi-Fi Direct en particular. Esto implica que el ESP 32 puede direccionar una gran parte de los enrutadores WiFi cuando se utiliza en modo de estación (cliente). Asimismo, puede hacer un punto de acceso con 802.11 b / g / n / e / I completo. ESP32 no solo respalda el BLE Bluetooth 4.2 más reciente, sino que también refuerza el excelente Bluetooth. Básicamente implica que puede abordar teléfonos / mesas Bluetooth antiguos y nuevos. Si no tiene un módulo ESP32, también puede usar ESP8266 o una MCU de nodo. Estas placas se pueden utilizar para realizar la misma tarea si están conectadas a WiFi.

ESP32



Un módulo de relé es un dispositivo de conmutación. Funciona en dos modos, Normalmente abierto (NO) y Normalmente Cerrado (NC) . En el modo NO, el circuito siempre está roto a menos que envíe una señal ALTA al relé a través de Arduino. El modo NC empeora al revés. El circuito siempre está completo a menos que encienda el módulo de relé. Asegúrese de conectar el cable positivo de su aparato eléctrico al módulo de relé de la forma que se muestra a continuación.

Montaje del circuito del módulo de relés

Paso 3: diagrama de bloques

Diagrama de bloques

En el diagrama de bloques anterior, se muestra el flujo de este proyecto. Los relés están conectados a los aparatos o dispositivos eléctricos de la casa. Una aplicación móvil enviará un En o APAGADO comando a la base de datos. Esta nube está conectada a la placa del microcontrolador ESP32 a través de WiFi. Para encender el dispositivo electrónico enviaremos un “1” en la base de datos y para apagarlo enviaremos un “0” en la base de datos. El microcontrolador buscará este comando porque también está conectado a la base de datos. En base a este 0 o 1, el microcontrolador encenderá o apagará el módulo de relé, lo que finalmente dará como resultado la conmutación de los aparatos eléctricos.

Entonces, aquí, en este artículo, usaré dos módulos de relé para mostrarle todo el procedimiento. Pero puede aumentar la cantidad de relés y agregar el mismo fragmento de código en su programa si desea controlar una mayor cantidad de electrodomésticos.

Paso 4: Montaje de los componentes

Ahora que tenemos una visión clara de lo que queremos hacer en este proyecto, no perdamos más tiempo y comencemos a ensamblar los componentes.

  1. Tome una placa de prueba y fije el microcontrolador ESP32 en ella. Ahora tome los dos módulos de relé y conecte el Vcc y la tierra de los módulos al Vin y la tierra de la placa del microcontrolador ESP32 en paralelo. Conecta el en pin de los módulos de relé al pin34 y pin35 de la placa ESP32. Verá que los relés ahora están encendidos.
  2. Conecte los electrodomésticos al módulo de relés. Asegúrese de que sus conexiones coincidan con las conexiones que se muestran en la figura del Paso 2.

Ahora que conectamos la parte de hardware de nuestro sistema. Desarrollaremos una aplicación para Android que se conectará a la base de datos de firebase. Crearemos la base de datos y la aplicación de Android en la Parte 2 de este artículo.

Paso 5: Introducción a ESP32

Si no ha trabajado en Arduino IDE antes, no se preocupe porque a continuación se muestra un paso a paso para configurar Arduino IDE.

  1. Descargue la última versión de Arduino IDE de Arduino.
  2. Conecte su placa Arduino a la PC y abra el Panel de control. Haga clic en Hardware y sonido. Ahora abierto Dispositivos e impresora y busque el puerto al que está conectada su placa. En mi caso es COM14 pero es diferente en diferentes computadoras.

    Encontrar puerto

  3. Haga clic en Archivo y luego haga clic en Preferencias. Copia el siguiente enlace en el URL adicional del administrador de la junta. ' https://dl.espressif.com/dl/package_esp32_index.json”

    Preferencias

  4. Ahora, para usar ESP32 con Arduino IDE, necesitamos importar bibliotecas especiales que nos permitirán grabar código en ESP32 y usarlo. estas dos bibliotecas se adjuntan en el enlace que figura a continuación. Para incluir la biblioteca, vaya a Bosquejo> Incluir biblioteca> Agregar biblioteca ZIP . Aparecerá un cuadro. Busque la carpeta ZIP en su computadora y haga clic en Aceptar para incluir las carpetas.

    Incluir biblioteca

  5. Ahora ve Croquis> Incluir biblioteca> Administrar bibliotecas.

    Administrar bibliotecas

  6. Se abrirá un menú. En la barra de búsqueda, escriba Arduino JSON. Aparecerá una lista. Instalar en pc Arduino JSON de Benoit Blanchon.

    Arduino JSON

  7. Ahora haga clic en el Herramientas. Aparecerá un menú desplegable. Ponga el tablero en Módulo de desarrollo ESP.

    Tablero de ajuste 

  8. Haga clic en el menú Herramientas nuevamente y configure el puerto que observó en el panel de control antes.

    Puerto de configuración

  9. Ahora cargue el código que se adjunta en el enlace a continuación y haga clic en el botón de carga para grabar el código en el microcontrolador ESP32.

    Subir

Entonces, cuando cargue el código, puede ocurrir un error. Este es el error más común que puede ocurrir si está utilizando una nueva versión de Arduino IDE y Arduino JSON. Los siguientes son los errores que puede ver en la pantalla.

En el archivo incluido de C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, de C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer es una clase de ArduinoJson 5. Consulte arduinojson.org/upgrade para aprender cómo actualizar su programa a ArduinoJson versión 6 StaticJsonBuffer jsonBuffer; ^ En el archivo incluido desde C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, desde C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer es una clase de ArduinoJson 5. Consulte arduinojson.org/upgrade para saber cómo actualizar su programa a ArduinoJson versión 6 return StaticJsonBuffer (). ParseObject (_data); ^ Se encontraron varias bibliotecas para 'WiFi.h' Usado: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi No usado: C:  Archivos de programa ( x86)  Arduino  libraries  WiFi Usando la biblioteca WiFi en la versión 1.0 en la carpeta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Usando la biblioteca IOXhop_FirebaseESP32-master en la carpeta: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Usando la biblioteca HTTPClient en la versión 1.2 en la carpeta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Usando la biblioteca WiFiClientSecure en la versión 1.0 en la carpeta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Usando la biblioteca ArduinoJson en versión 6.12.0 en la carpeta: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson estado de salida 1 Error al compilar el módulo de desarrollo ESP32 de la placa.

No hay nada de qué preocuparse porque podemos eliminar estos errores siguiendo unos sencillos pasos. Estos errores surgen porque la nueva versión de Arduino JSON tiene otra clase en lugar de StaticJsonBuffer. Esta es la clase de JSON 5. Así que podemos simplemente eliminar este error degradando la versión de Arduino JSON de nuestro Arduino IDE. Simplemente ve a Croquis> Incluir biblioteca> Administrar bibliotecas. Buscar Arduino JSON de Benoit Blanchon que ha instalado antes. Desinstálelo primero y luego configure su versión en 5.13.5.  Ahora que hemos configurado una versión antigua de Arduino JSON, instálela nuevamente y recompile el código. Esta vez, su código se compilará correctamente.

Para descargar el código, hacer clic aquí.

Paso 6: Comprensión del código

El código de este proyecto es muy sencillo y bien comentado. Pero aún así, el código se explica brevemente a continuación.

1. Al principio, se incluyen bibliotecas para que la placa ESP32 se pueda conectar a la conexión WiFi local en el hogar o la oficina. Después de esto, se define un enlace a su proyecto de base de fuego y la autenticación de su proyecto de base de fuego. Luego se definen el nombre y la contraseña de su conexión wifi local para que el ESP32 se pueda conectar al wifi. Algunos pines de ESP32 están definidos para conectarse a los módulos de relé. y por fin se declara una variable que almacenará algunos datos temporales que vendrán de la nube de base de fuego.

#include // incluir la biblioteca para conectarse a la conexión wifi local #include // Incluir la biblioteca para conectarse a la base de datos de Firebase #define FIREBASE_HOST 'coma-patient.firebaseio.com' // incluir el enlace de su proyecto de base de fuego #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuwl8 '// Incluya la autenticación de su proyecto de base de fuego #define WIFI_SSID' abcd '// el nombre de la conexión WiFi de su casa u oficina #define WIFI_PASSWORD' abcd '// contraseña de la conexión WiFi de su casa u oficina int r1 = 34; // pin para conectar el relé 1 int r2 = 35; // pin para conectar el relé 2 int temp; // variabe para transportar datos

2. configuración vacía () es una función en la que inicializamos los pines INPUT o OUTPUT. Esta función también establece la velocidad en baudios usando Serial.begin () mando. La tasa de baudios es la velocidad de comunicación del microcontrolador. Aquí se agregan algunas líneas de código para conectar el ESP32 a la conexión wifi local. La placa intentará conectarse a la conexión wifi local e imprimirá 'conexión'. en el monitor de serie. Se imprimirá 'Conectado' cuando se establezca la conexión. Entonces, para monitorear esto, es mejor abrir el monitor serial y verificar su estado allí.

configuración vacía () {Serial.begin (115200); // establecer la velocidad en baudios // conectarse a wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('conectando'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); retraso (500); } Serial.println (); Serial.print ('conectado:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. bucle vacío () es una función que se ejecuta repetidamente en un bucle. En este bucle, escribimos un código que le dice a la placa del microcontrolador qué tareas realizar y cómo. Hemos obtenido los datos contra ligero y C.A. de la base de datos y almacenada en las dos variables temporales. Luego, se aplican cuatro condiciones para cambiar los dos dispositivos de acuerdo con el 0 o 1 obtenido de la base de datos.

void loop () {// obtener valor temp1 = Serial.println (Firebase.getFloat ('light')); // obtener el valor para el cambio de la luz temp2 = Serial.println (Firebase.getFloat ('AC')); // obtiene el valor para el cambio de Fan delay (1000); if (temp1 == 1 && temp2 == 1) {// Para encender la luz y el ventilador digitalWrite (r1, HIGH); digitalWrite (r2, ALTO); } if (temp1 == 0 && temp2 == 1) {// Para encender el ventilador y apagar la luz digitalWrite (r1, LOW); digitalWrite (r2, ALTO); } if (temp1 == 1 && temp2 == 0) {// Para apagar el ventilador y encender la luz digitalWrite (r1, HIGH); digitalWrite (r2, BAJO); } if (temp1 == 0 && temp2 == 0) {// Para apagar el ventilador y apagar la luz digitalWrite (r1, LOW); digitalWrite (r2, BAJO); }}

Esta fue la primera parte del '¿Cómo hacer un sistema de hogar inteligente usando ESP32?'. Puede agregar más módulos de relé si desea controlar más electrodomésticos, lo único que deberá hacer es leer los datos de la base de fuego y agregar algunas condiciones más para el cambio. En el próximo artículo, explicaré cómo desarrollar una aplicación de Android y una base de datos de Firebase. Explicaré el procedimiento paso a paso para conectar la aplicación de Android a la base de fuego y enviarle datos.

Para ir al siguiente tutorial Haga clic aquí