3. Enviar Datos a Blynk

Este capítulo te mostrará cómo enviar datos a Blynk.

Aquí creamos un dispositivo de detección de puertas y ventanas. El circuito con el interruptor de lengüeta se coloca al lado de la puerta y la ventana, y el imán se monta en el borde de la puerta y la ventana. Cuando la puerta o ventana está cerrada, el Interruptor de Lengüeta se activará por la fuerza magnética y el valor del pin correspondiente en la placa R3 cambiará. Blynk.cloud recibirá este valor para que puedas ver si las puertas y ventanas de tu casa están cerradas incluso cuando estés lejos de casa.

Ahora usaremos un widget LED en Blynk para indicar si tus ventanas y puertas están cerradas (es decir, si el Interruptor de Lengüeta está encendido o apagado).

Componentes Necesarios

Para este proyecto, necesitamos los siguientes componentes.

Es definitivamente conveniente comprar un kit completo, aquí tienes el enlace:

Nombre

ELEMENTOS DE ESTE KIT

ENLACE

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

También puedes comprarlos por separado en los siguientes enlaces.

INTRODUCCIÓN DEL COMPONENTE

ENLACE DE COMPRA

Placa SunFounder R3

BUY

Protoboard

BUY

Módulo ESP8266

BUY

Cables Puente

BUY

Resistencia

BUY

Interruptor de lengüeta (Reed Switch)

-

1. Construir el Circuito

Nota

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.

../_images/wiring_reed.jpg

2. Editar el Tablero de Mandos

  1. Crea un Datastream de tipo Virtual Pin en la página Datastream para obtener el valor del Interruptor de Lengüeta. Establece el TIPO DE DATOS en Integer y MIN y MAX en 0 y 1.

    ../_images/sp220609_162548.png
  2. Arrastra y suelta un widget LED widget en la página Web Dashboard, con un valor de 1, se iluminará (con color), de lo contrario será blanco.

    ../_images/sp220609_163350.png
  3. En la página de configuración del widget LED widget, selecciona Datastream como Reed(V1), y guárdalo.

    ../_images/sp220609_163502.png

3. Ejecutar el Código

  1. Abre el archivo 3.push_data_to_blynk.ino en la ruta 3in1-kit\iot_project\3.push_data_to_blynk, o copia este código en el Arduino IDE.

  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 1.4 Conectando la placa R3 a Blynk.

  3. Después de seleccionar la placa y puerto correctos, haz clic en el botón Upload.

  4. Abre el monitor serial(configura la tasa de baudios a 115200) y espera a que aparezca un aviso como una conexión exitosa.

    ../_images/2_ready.png

    Nota

    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. Ahora, Blynk mostrará el estado de tus puertas y ventanas. Si tus puertas y ventanas están cerradas, el widget LED será verde, de lo contrario, será gris.

  6. Si quieres usar Blynk en dispositivos móviles, consulta ¿Cómo usar Blynk en dispositivos móviles?.

¿Cómo funciona?

Para este ejemplo, debes enfocarte en las siguientes líneas. «Escribir datos cada segundo al Datastream V1 de Blynk Cloud» se define con estas líneas.

BlynkTimer timer;

void myTimerEvent()
{
    Blynk.virtualWrite(V1, pinValue);
}

void setup()
{
    timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
    timer.run(); // Initiates BlynkTimer
}

La biblioteca Blynk proporciona un temporizador integrado, primero creamos un objeto temporizador.

BlynkTimer timer;

Establece el intervalo del temporizador en setup(), aquí configuramos para ejecutar la función myTimerEvent() cada 1000ms.

timer.setInterval(1000L, myTimerEvent);

Ejecuta BlynkTimer en loop().

timer.run();

Edita la función personalizada myTimerEvent(), el código Blynk.virtualWrite(V1, pinValue) se utiliza para escribir el valor de los datos pinValue para V1.

void myTimerEvent()
{
    Blynk.virtualWrite(V1, pinValue);
}