.. note:: ¡Hola, bienvenido a la Comunidad de Aficionados a Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas. **¿Por qué unirse?** - **Soporte de expertos**: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo. - **Aprender y compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Vistas previas exclusivas**: Obtén acceso anticipado a anuncios de nuevos productos y avances. - **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más nuevos. - **Promociones festivas y sorteos**: Participa en sorteos y promociones de fiestas. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy! .. _iot_blink: 2. Obtener Datos de Blynk ================================= En este capítulo, aprenderás cómo controlar el circuito con Blynk. ¡Vamos a encender los LED a través de Internet! **Componentes Necesarios** Para este proyecto, necesitamos los siguientes componentes. Es definitivamente conveniente comprar un kit completo, aquí tienes el enlace: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nombre - ELEMENTOS DE ESTE KIT - ENLACE * - 3 in 1 Starter Kit - 380+ - |link_3IN1_kit| También puedes comprarlos por separado en los siguientes enlaces. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCCIÓN DEL COMPONENTE - ENLACE DE COMPRA * - :ref:`cpn_uno` - |link_Uno_R3_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_esp8266` - |link_esp8266_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_resistor` - |link_resistor_buy| * - :ref:`cpn_led` - |link_led_buy| **1. Construir el Circuito** .. note:: El módulo ESP8266 requiere una alta corriente para proporcionar un entorno operativo estable, así que asegúrate de que la batería de 9V esté conectada. .. image:: img/wiring_led.jpg **2. Editar el Tablero de Mandos** #. Ve al **Quickstart Device** que creaste anteriormente, haz clic en el ícono **edit dashboard**. .. image:: img/blynk_edit_dashboard.png #. Los flujos de datos permiten que los widgets en Blynk y el código en la placa R3 se reconozcan mutuamente. .. image:: img/blynk_edit_datastream.png #. Para experimentar el proceso de configuración completo, elimina todos los flujos de datos de la página de flujos de datos. .. image:: img/blynk_edit_datastream_delete.png #. Crea un flujo de datos de tipo **Virtual Pin**, que se utilizará para controlar el LED con el interruptor de Blynk. .. image:: img/blynk_edit_virtualpin.png #. Configura el **Virtual Pin**. Como el botón y el LED solo necesitan estar ENCENDIDO y APAGADO, establece el TIPO DE DATO a ``Integer`` y MIN y MAX a ``0`` y ``1``. .. image:: img/sp220609_115520.png #. Dirígete a la página **Web Dashboard**. .. image:: img/blynk_edit_web_dashboard.png #. Y elimina los widgets existentes. .. image:: img/blynk_edit_delete_dashboard.png #. Arrastra y suelta un widget **switch** desde la **Widget Box** a la izquierda. .. image:: img/blynk_edit_drag_switch_widget.png #. Ahora configúralo. .. image:: img/blynk_edit_edit_widget.png 9. Selecciona **Datastream** como el que configuraste anteriormente. .. image:: img/sp220609_133741.png 10. Después de seleccionar Datastream, verás algunas configuraciones personalizadas, luego presiona Guardar. .. image:: img/sp220609_133950.png 11. Finalmente, haz clic en **Save And Apply**. .. image:: img/sp220609_141733.png **3. Ejecutar el Código** 1. Abre el archivo ``2.get_data_from_blynk.ino`` en la ruta ``3in1-kit\iot_project\2.get_data_from_blynk``, o copia este código en el **Arduino IDE**. .. raw:: html 2. Reemplaza el ``Template ID``, ``Device Name`` y ``Auth Token`` con los tuyos. También necesitas introducir el ``ssid`` y ``password`` del WiFi que estás utilizando. Para tutoriales detallados, consulta :ref:`connect_blynk`. 3. Después de seleccionar la placa y puerto correctos, haz clic en el botón **Upoad**. .. image:: img/2_upload.png 4. Abre el monitor serial(configura la tasa de baudios a 115200) y espera a que aparezca un aviso como una conexión exitosa. .. image:: img/2_ready.png .. note:: Si aparece el mensaje ``ESP is not responding`` al conectar, sigue estos pasos. * Asegúrate de que la batería de 9V esté conectada. * Reinicia el módulo ESP8266 conectando el pin RST a GND durante 1 segundo, luego desconéctalo. * Presiona el botón de reinicio en la placa R3. A veces, puede ser necesario repetir la operación anterior 3-5 veces, por favor sé paciente. 5. De vuelta en Blynk, puedes ver que el estado ha cambiado a en línea y ahora puedes usar el widget de interruptor en Blynk para controlar el LED conectado a la placa R3. .. image:: img/blynk_button_on.png 6. Si quieres usar Blynk en dispositivos móviles, consulta :ref:`blynk_mobile`. **¿Cómo funciona?** La diferencia entre el código de este proyecto y el código del capítulo anterior :ref:`connect_blynk` son las siguientes líneas. .. code-block:: arduino const int ledPin=6; BLYNK_WRITE(V0) { int pinValue = param.asInt(); // assigning incoming value from pin V0 to a variable // You can also use: // String i = param.asStr(); // double d = param.asDouble(); digitalWrite(ledPin,pinValue); } void setup() { pinMode(ledPin,OUTPUT); } Respecto al ``pinMode`` y ``digitalWrite`` del ledPin, estoy seguro de que ya estás familiarizado con ellos, así que no los repasaré de nuevo. En lo que necesitas enfocarte es en la función ``BLYNK_WRITE(V0)``. Lo que hará es que cuando el valor de ``V0`` en Blynk cambie, Blynk.Cloud le dirá a tu dispositivo "Estoy escribiendo en el **Virtual Pin** V0", y tu dispositivo podrá realizar algo una vez que reciba esta información. Creamos el Datastream V0 en el paso anterior y lo aplicamos al Widget Switch. Esto significa que cada vez que operemos el Widget Switch, se activará ``BLYNK_WRITE(V0)``. Escribimos dos instrucciones en esta función. .. code-block:: arduino int pinValue = param.asInt(); Obtener el valor de V0 y asignarlo a la variable ``pinValue``. .. code-block:: arduino digitalWrite(ledPin,pinValue); Escribe el valor de V0 obtenido en el ledPin, para que el widget Switch en Blynk pueda controlar el LED.