Reto 1 - Alumbrado Público Municipal con IoT

Requerimientos

  1. Enviar a Blynk.Cloud las variables de temperatura/humedad cada minuto

  2. Obtener el modo de funcionamiento desde Blynk.Cloud En modo manual: * Obtener el estado desde Blynk.Cloud, encender y apagar la lampara desde la aplicación móvil. En modo automático: * Medir la luminosidad ambiental, si la luminosidad es menor a 500 lx encender la lampara de alumbrado público.

  3. Si el usuario presiona el botón de configuración, entonces se deberá obtener la posición actual usando las funciones GNSS, la posición debe enviarse a Blynk.Cloud.

  4. Si el usuario presiona el botón de pánico se activará la alerta sonora, deberá actualizar el estado de la alerta en la nube de Blynk.Cloud, la alarma debe mantenerse encendida durante 15 segundos, después deberá apagarse automáticamente y actualizar el estado en la nube de Blynk.Cloud.

Materiales

Maqueta "Alumbrado Público"
LED de potencia (1W)

LED de 1W de potencia, requiere una resistencia limitadora de corriente.

Para el reto se te entregará un LED con una resistencia apropiada para funcionar a 5V, con las terminales 5V y GND soldadas.

Módulo "Buzzer" activo

Un zumbador (buzzer) de tipo activo, por lo que no requiere modulación, funciona con solo dos terminales (-) para GND y (S) para 5V.

Para el reto se entregará junto con un cable extensión.

Botón pulsador

Botón pulsador de tipo normalmente abierto, modo de uso recomendado:

  • Conectar una terminal a GND.

  • Conectar una terminal a una de las terminales del XN01.

Condiciones

  • Contarás con un máximo de 30 MB de datos para conexión a internet.

2 datastreams para configurar el modo de funcionamiento
VPIN
Tipo
Min
Max
Descripción

V0

int

0

1

Modo de funcionamiento manual (0) / automático (1)

V1

Int

0

1

Encender (1) / Apagar (0)

2 datastreams para enviar las variables de temperatura / humedad
VPIN
Tipo
Min
Max
Descripción

V2

float

0

85

Temperatura en °C

V3

float

0

100

Humedad en %

2 datastreams para posición
VPIN
Tipo
Min
Max
Descripción

V4

double

-180

180

Longitud

V5

double

-90

90

Latitud

1 datastream para notificar el estado de la alerta
VPIN
Tipo
Min
Max
Descripción

V6

int

0

1

Para notificar de una alerta se debe escribir el valor 1, cuando se apague la alerta se debe escribir el valor 0.

Consejos

Conexión a la nube + GNSS

El XC03 - Red celular LTE y GSS solo puede utilizar la antena LTE o la antena GNSS, pero no puede utilizar ambas al mismo tiempo. Por lo que deberás escribir el código considerando esta limitante. Apóyate de las funciones de TinyGSM y Blynk para interrumpir la conexión con la nube mientras se obtiene la posición GNSS y reanúdala una vez sea obtenida.

A continuación, se muestran las funciones que podrían serte útiles

Revisa el siguiente código de ejemplo sobre una posible implementación GNSS + LTE, recuerda que deberás modificarlo para cumplir con el reto:

Reducir el tiempo para obtener la posición

En los dispositivos GNSS el tiempo para obtener la posición la primera vez (TTFF) demora significativamente más tiempo. Esto se debe a las condiciones de inicio:

  • Cold start: Ocurre cuando el dispositivo se apaga y enciende, en este estado es necesario obtener información de los satélites para estimar la posición. Este proceso es el más largo, puede demorar de 10 segundos hasta 10 minutos, dependiendo de la posición de la antena.

  • Warm start: Ocurre cuando el dispositivo deshabilita y habilita la antena GNSS, requiere descargar algunos datos de los satélites, pero conserva alguno. Este proceso demora algo de tiempo, pero es significativamente más corto que el "Cold start", aproximadamente de 10 a 30 segundos.

  • Hot start: Ocurre siempre y cuando la antena GNSS se mantenga habilitada. Este proceso es casi inmediato.

Para obtener una posición coloca la antena GNSS a cielo abierto durante el proceso de "Cold start", una vez se obtenga la primera posición el dispositivo deberá mantenerse encendido incluso aunque se deshabilite la antena GNSS y se use las funciones LTE.

Evitar el uso de la función delay mientras se encuentra una conexión activa con la nube

En Arduino delay es una función que bloquea la CPU, lo que impide que TinyGSM pueda mantener la conexión con la nube, lo que causará desconexiones frecuentes y pérdida de información enviada desde la nube hacia el dispositivo. En su lugar utiliza el objeto de BlynkTimer y sus funciones.

Recuerda que esto solo aplica si se encuentra una conexión activa con la nube, si se deshabilitó la conexión con el servidor entonces puedes usar delay.

Recibir información de Blynk mientras se utiliza el GNSS

Las funciones GNSS y LTE no se pueden utilizar al mismo tiempo, por lo que no se puede recibir información mientras se obtiene la posición. Sin embargo, el dispositivo puede consultar los valores de los datastream al volver a conectarse a la red con el siguiente fragmento de código.

Vigila el consumo de datos

Durante el desarrollo de la aplicación estructura la solución en módulos, escribe funciones que solucionen los requerimientos de manera modular. Evita desperdiciar datos celulares durante pruebas que no requieran conexión a internet. Escribe código eficiente, solo envía mensajes a la nube cuando sea necesario, recuerda que al inicio del reto contarás con un máximo de 30MB de datos.

El dispositivo no se conecta a la nube; Verificar que la SIM aún cuente con datos

El equipo de soporte puede ayudarte a verificar que la tarjeta SIM aún cuente con datos disponibles y que se encuentre correctamente configurada para utilizar una operadora.

Última actualización

¿Te fue útil?