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:
Nombre |
ELEMENTOS DE ESTE KIT |
ENLACE |
---|---|---|
3 in 1 Starter Kit |
380+ |
También puedes comprarlos por separado en los siguientes enlaces.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
---|---|
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.
2. Editar el Tablero de Mandos
Ve al Quickstart Device que creaste anteriormente, haz clic en el icono del menú en la esquina superior derecha y selecciona edit dashboard.
Los Datastreams permiten que los widgets en Blynk y el código en la placa R3 se reconozcan entre sí. Para experimentar el proceso de configuración completo, elimina todos los Datastreams de la página de Datastreams.
Por favor, lee la advertencia cuidadosamente y confirma que es correcta antes de eliminar los Datastreams.
Crea un Datastream de tipo Virtual Pin, que se usará para controlar el LED usando el interruptor de Blynk.
Configura el Virtual Pin. Como el botón y el LED solo necesitan estar ENCENDIDO y APAGADO, establece TIPO DE DATOS en
Integer
y MIN y MAX en0
y1
.Ve a la página Web Dashboard y elimina los widgets existentes.
Arrastra y suelta un widget switch desde el Widget Box a la izquierda.
Ahora para configurarlo.
Selecciona Datastream como el que configuraste anteriormente.
Después de seleccionar Datastream, verás algunas configuraciones personalizadas, luego presiona Guardar.
Finalmente, haz clic en Save And Apply.
3. Ejecutar el Código
Abre el archivo
2.get_data_from_blynk.ino
en la ruta3in1-kit\iot_project\2.get_data_from_blynk
, o copia este código en el Arduino IDE.Reemplaza el
Template ID
,Device Name
yAuth Token
con los tuyos. También necesitas introducir elssid
ypassword
del WiFi que estás utilizando. Para tutoriales detallados, consulta 1.4 Conectando la placa R3 a Blynk.Después de seleccionar la placa y puerto correctos, haz clic en el botón Upoad.
Abre el monitor serial(configura la tasa de baudios a 115200) y espera a que aparezca un aviso como una conexión exitosa.
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.
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.
Si quieres usar Blynk en dispositivos móviles, consulta ¿Cómo usar Blynk en dispositivos móviles?.
¿Cómo funciona?
La diferencia entre el código de este proyecto y el código del capítulo anterior 1.4 Conectando la placa R3 a Blynk son las siguientes líneas.
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.
int pinValue = param.asInt();
Obtener el valor de V0 y asignarlo a la variable pinValue
.
digitalWrite(ledPin,pinValue);
Escribe el valor de V0 obtenido en el ledPin, para que el widget Switch en Blynk pueda controlar el LED.