LED Controlado Por IoT Con ESP32 Con La Aplicación Blynk

LED controlado por IoT con ESP32 con la aplicación Blynk Anteriormente cubrimos un tutorial para usar ThingSpeak IoT Cl

Views 162 Downloads 56 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

LED controlado por IoT con ESP32 con la aplicación Blynk

Anteriormente cubrimos un tutorial para usar ThingSpeak IoT Cloud con ESP32 , hoy en este tutorial usaremos otra aplicación popular de IoT "Blynk" para controlar el LED usando el módulo Wi-Fi ESP32 . Blynk es una plataforma IoT para controlar Arduino, Raspberry Pi, NodeMCU y otros microcontroladores a través de Internet. La aplicación Blynk se puede descargar desde Google Play Store o Apple Store. La aplicación Blynk proporciona un tablero digital donde puede construir una interfaz gráfica para cualquier proyecto basado en IoT simplemente arrastrando y soltando widgets. Es simple y fácil de usar la plataforma IoT para crear aplicaciones complejas. Blynk no está limitado a una placa o plataforma específica, pero puede usarse con cualquier microcontrolador, siempre que el microcontrolador esté conectado a Internet. Raspberry Pi tiene Wi-Fi incorporado y otros microcontroladores como Arduino se pueden conectar a Internet utilizando algún módulo de Wi-Fi como ESP8266, etc. Anteriormente utilizamos la aplicación Blynk con Raspberry Pi para controlar su pin GPIO.

Componente requerido 1. 2. 3. 4. 5. 6. 7. 8.

Módulo ESP32 Cable USB IDE Arduino Blynk App CONDUCIDO, LIDERADO Tablero de circuitos Cables de puente Resistencia 1K

Diagrama de circuito

1

Configuración de la aplicación Blynk para ESP32 Los siguientes son los pasos para configurar la aplicación Blynk en su teléfono y usarla para un proyecto: 1. En primer lugar, descargue la aplicación Blynk en su teléfono desde Google Play Store e instálela. 2. Después de la instalación, debe crear una cuenta en esta aplicación; puede usar su cuenta actual de Gmail. 3. Después de crear una cuenta, se abrirá una ventana, en este clic en Nuevo proyecto.

4. Ahora asigne un nombre al proyecto de acuerdo con su elección y en el dispositivo, elija ESP32 Dev Board y, en Tipo de conexión, elija Wi-Fi y luego haga clic en Crear. 5. Ahora aparecerá una ventana que muestra que su token de autenticación que necesitará luego se enviará a su ID de correo correspondiente. Puede abrir su correo electrónico para verificar la clave de autenticación.

2

6. Después de hacer clic en Aceptar, encontrará la ventana del lienzo. 7. Ahora, toque cualquier parte del lienzo para abrir el cuadro del widget. Todos los widgets disponibles se encuentran aquí. Ahora elige un botón.

8. Haga clic en el widget Botón para cambiar la configuración. 9. Establezca el pin de salida en gp2 ya que estoy tomando la salida aquí desde el pin GPIO2, puede cambiar de acuerdo con usted. En modo, seleccione para cambiar. 10. Cuando haya terminado con esta configuración, estará listo para trabajar con esta aplicación. Al presionar el botón Reproducir, pasará del modo EDITAR al modo PLAY donde podrá interactuar con el hardware. En el modo PLAY, no podrá arrastrar o configurar nuevos widgets, presione STOP para volver al modo STOP.

Programación de ESP32 para la aplicación Blynk En primer lugar, debe descargar la biblioteca Blynk desde el enlace dado. https://github.com/blynkkk/blynk-library

Es un archivo zip, descárguelo y extráigalo y luego copie este archivo de biblioteca en los archivos de la Biblioteca Arduino. Puede encontrar su archivo de biblioteca Arduino en Documentos -> Arduino -> bibliotecas . Copie este archivo de biblioteca aquí. Ahora en la programación, lo primero que debe hacer es incluir las bibliotecas necesarias. #include #include #include

Now define your output pin, here I am taking my output from GPIO 2 so I will include pin 2.

3

int pin = 2;

Now enter your Authentication token and your network credentials inside double inverted commas. char auth[] = " char ssid[] = "

"; ";

char pass[] = "

";

In void setup() function, we will initialize the baud rate, LED output and will connect the module with the Wi-Fi using WiFi.begin(ssid,password); function. This function begins the Wi-Fi connection. void setup() { pinMode(pin, OUTPUT); pinMode(pin, HIGH); Serial.begin(115200); delay(10); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, pass); int wifi_ctr = 0; while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected"); Blynk.begin("66d1e7b99b92458295f8257b80fd2b03", ssid, pass); }

In the loop function include Blynk.run() command. void loop(){ Blynk.run();

4

} Programación de ESP32 con Arduino IDE y la aplicación Blynk Ahora está en una etapa para cargar el código en su ESP32 y realizar el proyecto, para lo cual se deben realizar los siguientes pasos: 1. Conecte ESP32 a su PC a través del cable USB y realice el circuito como se indicó anteriormente, aquí estoy usando GPIO2 que puede usar de acuerdo con usted. 2. Abra su IDE Arduino y copie este código en su ventana IDE, pero asegúrese de proporcionar las credenciales WiFi correctas de su red. 3. Ahora vaya a Herramientas -> Placa -> Módulo ESP32 Dev. 4. Luego Herramientas -> Puerto y seleccione el puerto al que está conectado su ESP32. 5. Ahora haga clic en cargar para cargar el código. 6. Después de completar la carga, encontrará un mensaje como este en su consola de salida. 7. Ahora abra su monitor en serie y presione el botón de reinicio de ESP32 y ahora ESP comienza a conectarse a su red, una vez conectado, le dará la IP de su ESP y un mensaje como este:

Ahora abra la aplicación Blynk, vaya al proyecto que creó anteriormente y toque PLAY. Ahora puede ver que al hacer clic en el botón, su LED cambiará su estado. Así es como puede controlar con éxito el LED utilizando ESP32 con la aplicación Blynk . Code #define BLYNK_PRINT Serial #include #include #include int pin = 2; char auth[] = " "; // You should get Auth Token in the Blynk App. char ssid[] = " "; // Your Wi-Fi Credentials 5

char pass[] = " "; void setup() { pinMode(pin, OUTPUT); pinMode(pin, HIGH); Serial.begin(115200); delay(10); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, pass); int wifi_ctr = 0; while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected"); Blynk.begin("Your auth. Token", ssid, pass); } void loop(){ Blynk.run(); } TAREA REALIZAR EL PROYECTO PARA ENCENDER 1 FOCOS DE 220 V UTILIZANDO EL RELEE DE ESTADO SOLIDO O OPTOACOPLADORES

6

QUE ES UN MODULO ESP 32

Placa de desarrollo para ESP32 NodeMcu-32 Modelo ESP32-NODEMCU-32 Esta placa de desarollo te permite hacer proyectos rápidamente con la plataforma ESP32. Tiene capacidades de Wifi y bluetooth gracias al poderoso procesador de doble nucleo Tensilica Xtensa LX6. DESCRIPCIÓN INFO La plataforma ESP32 ofrece a bajo costo capacidades wifi, bluetooth y BLE. Es la evolución del chip ESP8266 mejorando sus capacidades de comunicación y procesamiento computacional. Tiene un CPU de dos núcleos de hasta 240Mhz que se pueden controlar independientemente. Además integra internamente una gran cantidad de periféricos incluyendo: sensores táctiles capacitivos, sensor de efecto Hall, amplificadores de bajo ruido, interfaz para tarjeta SD, Ethernet, SPI de alta velocidad, UART, I2S e I2C. El punto fuerte de esta plataforma es su gran comunidad en internet que le brinda soporte y desarolla constantemente nuevas herramientas para su uso. Para su desarrollo cuenta con gran variedad de software, lenguajes de programación, frameworks, librerías, código/ejemplos y otros recursos. Los más comunes a elegir son: Esp-idf (Espressif IoT Development Framework) desarrollado por el fabricante del chip, Arduino (en lenguaje C++), Simba Embedded Programming Platform (en lenguaje Python), RTOS's (como Zephyr Project, Mongoose OS, NuttX RTOS), MicroPython, LUA, Javascript (Espruino, Duktape, Mongoose JS), Basic. La tarjeta NodeMCU-32 está diseñada especialmente para trabajar en protoboard. Posee un regulador de voltaje en placa que le permite alimentarse directamente del puerto USB. Los pines de entradas/salidas trabajan a 3.3V. El chip CP2102 se encarga de la comunicación USB-Serial. Aplicado en Mini Servidores Web, Procesamiento digital, Webcams, Domótica y más. 7

ESPECIFICACIONES TÉCNICAS 

Voltaje de Alimentación (USB): 5V DC



Voltaje de Entradas/Salidas: 3.3V DC



SoC: ESP32



CPU principal: Tensilica Xtensa 32-bit LX6



Frecuencia de Reloj: hasta 240Mhz



Desempeño: Hasta 600 DMIPS



Procesador secundario: Permite hacer operaciones básica en modo de ultra bajo consumo



Wifi: 802.11 b/g/n/e/i (802.11n @ 2.4 GHz hasta 150 Mbit/s)



Bluetooth:v4.2 BR/EDR and Bluetooth Low Energy (BLE)



Xtensa® Dual-Core 32-bit LX6 microprocessors, up to 600 DMIPS



Memoria: 448 KByte ROM 520 KByte SRAM 16 KByte SRAM in RTC QSPI Flash/SRAM, 4 MBytes



Pines Digitales GPIO: 24 (Algunos pines solo como entrada)



Convesor Analogolico Digital: Dos ADC de 12bits tipo SAR, soporta mediciones en hasta 18 canales, algunos pines soporta un amplificador con ganancia programable



UART: 2



Chip USB-Serial: CP2102



Antena en PCB



Seguridad: 

Estandares IEEE 802.11 incluyendo WFA, WPA/WPA2 and WAPI



1024-bit OTP, up to 768-bit for customers



Aceleración criptográfica por hardware: AES, HASH (SHA-2), RSA, ECC, RNG

Este módulo de desarrollo Integra un chip de 32 bits el cual se caracteriza por integrar comunicación WIFI y Bluetooth low energy (BLE), permitiendo una gran cantidad de aplicaciones. Compatible con Arduino y otros entornos de programación como ESplorer ESP32, Cloud IDE ESP32, ESP flash download tool. Conectividad:    

802.11 b/g/n/e/i/n Wi-Fi Direct (P2P), P2P Discovery, P2P Group Owner mode and P2P Power Management Bluetooth v4.2 BR/EDR y BLE BLE Beacon

8



Además, soporta los protocolos SPI, I2C, UART, MAC Ethernet, Host SD Especificaciones:

  

Chip doble núcleo de 32 bits a 160MHz Memoria ROM de 448 kBytes Memoria SRAM de 520kBytes 48 Pines disponibles:

    

18 ADC de 12 bits 2 DAC de 8 bits 10 pines para sensores de contacto 16 PWM 20 Entradas/salidas digitales

Este chip hace ya unos años que se encuentra entre nosotros y siempre ha sido una de las formas mas sencillas y baratas de proporcionar WIFI a nuestros Arduinos. Lo curioso es que la comunidad ha desarrollado un pluggin que lo convierte ademas en un procesador compatible arduino que incluye WIFI siendo ademas compatible con las librerías oficiales No vamos a insistir mas con este asunto sobre todo cuando podéis encontrar abundantes tutoriales al respecto en nuestra sección de comunicaciones. Pero ya hace un año que salió un nuevo chip de espressif llamado ESP32 que es el sucesor del Esp8266 (Que no sustituto) con una serie de especificaciones impresionantes, y hemos estado esperando a que se estabilizase un poco el software necesario para que lo pudiésemos usar.

Aun esta un poco verde el asunto pero no puedo resistirme a presentaros el módulo porque es una autentica bomba y algo que solito puede soportar la IOT sin despeinarse. Vereis que aun hay cosas que aun estan en fase de desarrollo como iremos viendo, pero creo que ya es el moemento de que en esta caso hagamos la presentacion del ESP32 porque creo que os va a gustar.

9

ESPECIFICACIONES DEL ESP32

El ESP32 es un procesador del fabricante chino Espressif que viene con unas especificaciones espectaculares:



Procesador dual core Xtensa® LX6 de 32 bits



Es compatible Arduino con el pluggin adecuado (Enseguida vamos)



Velocidad de reloj : Entre 160 Mhz y 240 Mhz



520 Kb de RAM



Wifi integrado: Acces point & Station



Bluetooth 4.2 2.4 Ghz; BT 2.0 y 4.0 BLE



36 GPIO pins.



16 x Analog-to-Digital Converter (ADC) de 12 bits de resolución y se pueden programar con límite de entrada a 1V, 2 V y 4V



2 x Digital to Analog converter DAC de 8 bits.



Pueden definirse hasta 16 canales de PWM.



2 x UART o puertas serie



2 x I2C channels y 4 x SPI channels.



La cosa sigue pero mejor lo dejamos aquí para no asustar.

Como podéis ver, es difícil no sentirse impresionado por la potencia de esta pequeña bestia. Aquó os dejo el patillaje (PinOut)

Aunque desde el interface Arduino no podremos sacar ventaja al doble procesador, disponer de un Arduino con WIFI y Bluetooth incluidos y velocidad de 160 MHz es una ventaja que no podíamos dejar pasar.

10



Parece que uno de los procesadores se dedica a gestionar la pila WIFI o Bluetooth por lo que tampoco aparecerá en el futuro la posibilidad de ver este chip como un doble Arduino.



Pero si que se puede acceder al doble nucle desde RTOS (Si no te suena , ignóralo directamente)



Existe un modelo que aún no he recibido que además dispone de modem LORA (Del que ya hablaremos) con lo que tenemos un monstruo para la IOT por un precio ridículo.



También existe una versión de micro Python para este módulo, que espero instalar y pasaros el parte en cuanto tenga ocasión.

Pero es que además disponemos de múltiples convertidores Andalogio a digital de 12 bits de resolución y dos convertidores de digital a analógico (Para temas de audio supongo) No hay en el mercado nada similar y menos por ese precio. Así que no hay que ser un genio para augurar un futuro muy brillante a este chip y al su fabricante chino.

INSTALANDO EL ESP32 EN EL IDE ARDUINO

Cuando instalábamos el pluggin del ESP8266 en Arduino bastaba con usar el gestor de tarjetas y especificar una dirección web para descargar los controladores. Lamentablemente el desarrollo del entorno Esp32 aún no ha alcanzado el grado de madurez preciso, y tenemos que hacer alguna gestiones un tanto raras para los no acostumbrados a los tool chains de desarrollo, pero que os aseguro que es más sencillo de lo que inicialmente parece y si seguís esta guía os encontrareis enseguida jugando con el ESP32 Para empezar necesitamos tener instalado el Python 2.7; Para ello ya escribimos una pequeña guía cuando hablamos del micro Python en el Esp8266 que sigue siendo válida: Instalar Python 2.7 en Windows Necesitamos también descargar las ultimas versiones del código del emulador Arduino para el ESP32 y para ello tenemos que descargar e instalar el entorno gráfico de GIT.



GIT es un repositorio organizado de código en desarrollo que contiene copias de casi cualquier cosa que se te ocurra y de prácticamente 11

cualquier cosa que tenga un mínimo de interés y sea de interés general, donde los programadores voluntarios van creando y depurando sus cosas. 

El interface Arduino para ESP8266 y ESP32 son un par de magníficos ejemplos de las cosas que podemos encontrar

Vamos a descargar el gestor de GIT desde aquí. Ejecuta el programa una vez descargado y veras algo así:

Pincha en la segunda opción: Clone existing repository. Tienes que decirle ahora que te baje el código del esp32 a tu pc, y para ello debes indicarle que el repositorio de origen es: https://github.com/espressif/arduino-esp32.git Y el destino va a ser la dirección de tu directorio Arduino, que normalmente será mis documentos\Arduino mas la dirección donde queremos que lo ponga que debe ser /Arduino/hardware/expressif/esp32. En mi caso va a quedar así: C:\Users\charl\Documents\Arduino\hardware\espressif\esp32 Pero en tu caso tienes que asegurarte de ponerle el path correcto de tu directorio Arduino:

12

Ahora basta con que pulses el botón Clone y empezara a descargar el código a tu PC. Cuando finalice el clonado (O sea, que se descargue todo lo que hay en GIThub sobre el tema que has elegido) tienes que ejecutar un programita llamado get que encontraras en el directorio tools: Muestra la estructura de directorios del repositorio ESP32 en GIThub

13

Hazle un click click y tardara un ratito en descargar y lanzar varias cosas al cabo de las cuales ya estarás listo para jugar con tu flamante esp32

COMPROBANDO LA INSTALACIÓN

Vamos a comprobar que todo ha ido bien y que podemos seleccionar nuestro módulo ESP32. Arranca tu IDE Arduino y empieza por conectar tu Node32. Vamos a seleccionar el procesador. Si todo ha ido bien veras que hay una nueva sección de placas con múltiples modelos basados en el chip ESP32:

14

En mi caso el modelo “ESP32 dev module” me ha ido bien con el típico Nodemcu32 de nuestra tienda, Selecciona el puerto serie y ya estamos listos para probar nuestro primer programa. Vete a ejemplos y encontraras un buen montón de programas de prueba para tu esp32. Carga: \\Ejemplos\ESP32\ChipID\GetChipID Compílalo, pero pon a 115200 baudios la consola de Arduino. EL programa te devolverá un identificador interno del chip que solo sirve para comprobar que todo funciona. Si quieres hacer un Blinking Led (Que asombrosa originalidad) tienes que saber que en nuestro modulo, el LED está en el GPIO 1: int ledPin = 1;

15

void setup() {

pinMode (ledPin, OUTPUT); Serial.begin(115200); Serial.println(LED_BUILTIN);

}

void loop() { digitalWrite (ledPin, HIGH); delay(1000); digitalWrite (ledPin, LOW); delay(1000); } En las proximas sesiones procuraremos hacer algun programa mas interesante, lo prometemos. El Esp32 tiene mucho que ofrecer pero creo que ya basta por Hoy

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha. Prerrequisitos: Arduino IDE instalado Antes de comenzar este procedimiento de instalación, asegúrese de tener instalada la última versión del Arduino IDE en su computadora. Si no lo hace, desinstálelo e instálelo nuevamente. De lo contrario, puede que no funcione. Con el último software Arduino IDE instalado desde arduino.cc/en/Main/Software , continúe con este tutorial. ¿Necesitas una placa ESP32? Puedes comprarlo aquí . Instalación del complemento ESP32 en Arduino IDE Para instalar la placa ESP32 en su IDE Arduino, siga estas instrucciones siguientes: 1. En su IDE de Arduino, vaya a Archivo > Preferencias

16

2. Ingrese https://dl.espressif.com/dl/package_esp32_index.json en el campo "URL de administrador de placa adicionales" como se muestra en la figura a continuación. Luego, haga clic en el botón "Aceptar":

17

Nota: si ya tiene la URL de las placas ESP8266, puede separar las URL con una coma de la siguiente manera: https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json 3. Abra el administrador de juntas. Vaya a Herramientas > Tablero > Administrador de tableros ...

18

4. Busque ESP32 y presione el botón de instalación para “ ESP32 by Espressif Systems “:

19

5. Eso es. Debe instalarse después de unos segundos.

20

Probar la instalación Conecte la placa ESP32 a su computadora. Con su IDE de Arduino abierto, siga estos pasos: 1. Seleccione su Tablero en Herramientas > Menú del tablero (en mi caso es el DOIT ESP32 DEVKIT V1 )

2. Seleccione el puerto (si no ve el puerto COM en su Arduino IDE, debe instalar los controladores CP210x USB a UART Bridge VCP ):

21

Denunciar este anuncio 3. Abra el siguiente ejemplo en Archivo > Ejemplos > WiFi (ESP32) > WiFiScan

22

4. Se abre un nuevo boceto en su Arduino IDE:

23

5. Presione el botón Cargar en el IDE de Arduino. Espere unos segundos mientras el código se compila y carga en su tablero.

6. Si todo salió como se esperaba, debería ver un mensaje " Terminado la carga. "Mensaje.

24

7. Abra el monitor serie Arduino IDE a una velocidad en baudios de 115200:

8. Presione el botón Habilitar a bordo ESP32 y debería ver las redes disponibles cerca de su ESP32: Denunciar este anuncio

25

Solución de problemas Si intenta cargar un nuevo boceto en su ESP32 y recibe este mensaje de error " Se produjo un error fatal: no se pudo conectar a ESP32: Se agotó el tiempo de espera ... Conectando ... ". Significa que su ESP32 no está en modo intermitente / cargando. Con el nombre correcto de la placa y COM por seleccionado, siga estos pasos: 

Mantenga presionado el botón " BOOT " en su placa ESP32

26



Presione el botón " Cargar " en el IDE de Arduino para cargar su boceto:



Después de ver el " Conectando ... "En su Arduino IDE, suelte el dedo del botón " BOOT ":



Después de eso, debería ver el mensaje " Carga finalizada " 27

Eso es. Su ESP32 debe tener el nuevo boceto en ejecución. Presione el botón " ENABLE " para reiniciar el ESP32 y ejecutar el nuevo boceto cargado. También tendrá que repetir esa secuencia de botones cada vez que quiera cargar un nuevo boceto. Pero si desea resolver este problema de una vez por todas sin la necesidad de presionar el botón BOOT , siga las sugerencias en la siguiente guía: 

[SOLUCIONADO] Error al conectarse a ESP32: Se agotó el tiempo de espera esperando el encabezado del paquete

Si tiene algún problema con su ESP32, eche un vistazo a nuestra Guía de resolución de problemas ESP32 .

28