Blog

Funciones en la nube para soluciones personalizadas de telemetría vehicular - con ejemplos

La integración de funciones basadas en la nube como Google Cloud Functions o Amazon Lambda ofrece un avance en eficiencia y personalización para los proveedores de soluciones de telemetría y gestión de flotas. Permiten crear soluciones de telemetría a la medida de manera fácil y rentable,  por eso más socios de Navixy las están utilizando. Esta publicación explora el uso de estas características en la nube para automatizar operaciones específicas, creando soluciones de telemetría a medida que se alinean con las tendencias tecnológicas modernas.

¿Qué son las funciones en la nube?

En esencia, las funciones en la nube son piezas modulares de código, ejecutadas en un entorno en la nube. Permiten a los desarrolladores crear aplicaciones altamente escalables y sin servidor. El atractivo para los integradores radica en su capacidad para manejar tareas de manera eficiente sin la complejidad de gestionar la infraestructura del servidor. Esto lleva a una reducción de los costos operativos y una mayor escalabilidad.

Funciones en la nube para soluciones personalizadas de telemetría vehicular - con ejemplos

¿Por qué las funciones en la nube son efectivas para los integradores?

  1. Flexibilidad: Las funciones en la nube se destacan por su compatibilidad con lenguajes de programación ampliamente utilizados, incluyendo Python por su excepcional facilidad de uso, Node.js por su eficacia en el manejo de operaciones asíncronas y Java por su capacidad para gestionar aplicaciones a gran escala. Este amplio soporte permite que su equipo de desarrollo trabaje en un entorno familiar, asegurando una integración perfecta con la plataforma Navixy.
  2. Eficiencia de costos: Una característica destacada de la funcionalidad del servidor en la nube es su modelo de facturación: solo se le cobra por el tiempo de cálculo que realmente utilizan sus funciones, no por el tiempo inactivo del servidor. Por ejemplo, si una función como la inmovilización remota de vehículos se usa esporádicamente, los costos podrían ser solo unos pocos dólares al mes. Este enfoque de pago por uso hace que las funciones en la nube sean increíblemente económicas, especialmente para operaciones que no requieren un uso continuo del servidor.
  3. Mantenimiento minimizado: Con las funciones en la nube, las tediosas tareas de mantenimiento y actualizaciones del servidor son cosa del pasado. Usted queda libre de acciones rutinarias como parchear software, actualizar hardware y garantizar la seguridad del servidor. Esto no solo ahorra tiempo, sino que también reduce el potencial de errores humanos, mejorando la confiabilidad general del sistema.
  4. Escalabilidad con facilidad: Las funciones en la nube destacan en escalabilidad con las necesidades comerciales. Un proyecto reciente en los Estados Unidos en el sector de alquiler de maquinaria de construcción es un ejemplo perfecto. Comenzó con alrededor de 30 activos y se expandió sin problemas a 1,700 sin esfuerzo adicional. Esta escalabilidad muestra la capacidad de adaptación de las funciones en la nube al crecimiento empresarial, haciéndolas ideales para industrias dinámicas.

Ampliando la telemetría con funciones en la nube

La integración de la plataforma Navixy con funciones en la nube proporciona a los integradores de sistemas con un sólido conjunto de herramientas para desarrollar soluciones personalizadas de telemetría. Esta combinación mejora las capacidades del sistema, permitiendo:

ObjetivoEjemplos
Alertas y notificaciones personalizadas
  • Implementar notificaciones automáticas instantáneas basadas en una combinación altamente específica de datos de telemetría
  • Generar informes personalizados combinando datos de IoT y negocios de múltiples fuentes y/o bases de datos
Automatización de tareas rutinarias
  • Habilitar la funcionalidad de bloqueo remoto del encendido para restringir el uso del vehículo fuera de las geocercas designadas o durante horarios específicos
  • Automatizar la creación de registros en el Sistema de Gestión de Incidentes (IMS) para combinaciones específicas de eventos de IoT
Procesamiento de datos en tiempo real
  • Procesar datos de sensores especializados para mostrarlos en paneles de sistemas BI
  • Decodificar datos extraídos del bus CAN
Cumplimiento y compatibilidad de datos
  • Informar datos para cumplir con regulaciones gubernamentales en industrias como el transporte de mercancías peligrosas
  • Agrupe eficiente de datos de telemetría para su integración en bases de datos de análisis

En un caso reciente de la industria minera que involucraba maquinaria pesada, se calcularon métricas de eficiencia de combustible extrayendo datos de PID del bus CAN, como RPM del motor, velocidad del vehículo y tasa de combustible. Este proceso permitió la monitorización y el análisis en tiempo real del rendimiento del vehículo, identificando oportunidades para la

optimización del consumo de combustible. Las funciones en la nube facilitaron la decodificación y recopilación precisa de estos datos. Posteriormente, el sistema analizó estos patrones de datos para recomendar velocidades de conducción óptimas y RPM del motor para una mayor eficiencia de combustible. Además, emitió alertas cuando las lecturas anormales indicaban posibles problemas de mantenimiento, asegurando una intervención oportuna.

Aunque el caso mencionado demuestra capacidades avanzadas de procesamiento de datos, muchas aplicaciones prácticas son más sencillas. Para aquellos nuevos en funciones en la nube e integraciones, un ejemplo más simple ilustrará cómo utilizar efectivamente estas características con Navixy.

Uso de Cloud Functions para la gestión remota de rastreadores de GPS (Ejemplo en Python con Vonage SMS)

Con frecuencia existe la necesidad de gestionar vehículos de forma remota, especialmente para evitar el uso no autorizado fuera del horario de trabajo o fuera de las zonas geográficas designadas. Un supuesto típico implica enviar comandos SMS a los Rastreadores de GPS para desactivar el motor. Exploremos un ejemplo sencillo en el que una función en la nube responde a un detonante externo de Navixy, como MQTT o Webhook, enviando un comando SMS predefinido al vehículo.

Lo guiaremos en la configuración de una simple Google Cloud Function usando Python, con el objetivo de enviar un comando SMS a un rastreador GPS. Utilizaremos Vonage, un servicio de mensajería, para la funcionalidad de SMS.

Acceso a la interfaz de Cloud Functions

Para acceder a la Google Cloud Console, abra su navegador web y vaya a console.cloud.google.com. Una vez allí, inicie sesión con su cuenta de Google. Si aún no tiene una cuenta de Google Cloud, deberá crear una registrándose.

Una vez que haya iniciado sesión, para navegar a Cloud Functions, ubique el menú de navegación en el lado izquierdo de la consola:

  • Haga clic en "Cloud Functions" bajo la sección "Compute". Si no es visible de inmediato, puede encontrarlo en la sección "More products" o usar la barra de búsqueda en la parte superior.
  • Esto abrirá la interfaz de Cloud Functions, donde puede crear y gestionar sus funciones en la nube.

En esta interfaz, escribirá y desplegará el código descrito anteriormente, gestionando las funciones que cree para varios propósitos, como enviar comandos SMS a los Rastreadores de GPS.

Configuración del entorno

Comience instalando los paquetes necesarios en su archivo requirements.txt. Esto incluye functions-framework para crear funciones de Google Cloud Functions y vonage para enviar SMS.

requirements.txt:

functions-framework==3.*
requests
vonage

Escritura de la función

Para crear la función de comando SMS, deberá escribir el siguiente código en main.py:

  • En main.py, importe las bibliotecas necesarias.
  • Configure una función send_sms_command que se activará mediante una solicitud HTTP.
  • Utilice variables de entorno para información sensible como las claves API de Vonage y los números de teléfono. Esto asegura seguridad y flexibilidad.
  • La función construye un mensaje SMS y lo envía utilizando los servicios de Vonage
  • Gestione las respuestas y errores para confirmar el estado del mensaje.

main.py:

import functions_framework
import vonage
import os

@functions_framework.http
def send_sms_command(request):
   # Use environment variables for sensitive information
   client = vonage.Client(key=os.environ.get("VONAGE_API_KEY"), secret=os.environ.get("VONAGE_API_SECRET"))
   sms = vonage.Sms(client)

   # Environment variables for phone numbers and text
   vonage_number = os.environ.get("VONAGE_NUMBER")  # Your Vonage number
   recipient_number = os.environ.get("RECIPIENT_NUMBER")  # Recipient's phone number
   text_message = os.environ.get("TEXT_MESSAGE", "Default command")  # Text message, with a default

   try:
       responseData = sms.send_message({
           "from": vonage_number,
           "to": recipient_number,
           "text": text_message,
       })

       if responseData["messages"][0]["status"] == "0":
           print("Message sent successfully.")
           return 'Message sent successfully.', 200
       else:
           error_text = responseData['messages'][0].get('error-text', 'Unknown error')
           print(f"Message failed with error: {error_text}")
           return f"Message failed with error: {error_text}", 500
   except Exception as e:
       print(f"An error occurred: {e}")
       return f"An error occurred: {e}", 500

Para verificar la funcionalidad de su Google Cloud Function con dos números de teléfono diferentes, use el siguiente comando curl:

curl -X POST https://us-central1-dn-sandbox-376818.cloudfunctions.net/send-sms-command \
-H "Content-Type: application/json" \
-d '{"recipients": ["Number1", "Number2"]}'

En este comando, reemplace la url con la url que apunta a su función, Number1 and Number2 con los números de teléfono reales de las tarjetas SIM instaladas en los dispositivos GPS (por ejemplo, 18189399214). Esta prueba asegurará que la función esté enviando correctamente comandos SMS a los números especificados.

El camino a seguir con Cloud Functions y Navixy

Como hemos explorado en esta publicación, la integración de funciones basadas en la nube como Google Cloud Functions con la plataforma Navixy abre un mundo de eficiencia y personalización. Desde el procesamiento de datos complejos en maquinaria pesada hasta comandos SMS simples para la inmovilización remota de vehículos, la versatilidad de estas soluciones es evidente. No solo satisfacen requisitos avanzados, sino que también ofrecen un punto de partida accesible para aquellos nuevos en las integraciones en la nube.

Navixy se compromete a apoyar a los desarrolladores en el campo de la telemetría con un conjunto de herramientas flexibles que van más allá de proporcionar solo datos de IoT. Nuestro enfoque se centra en permitirle construir soluciones innovadoras y personalizadas que aborden necesidades comerciales específicas. Le animamos a comenzar a construir sus soluciones e invitamos a que se comunique con nuestros ingenieros de soluciones para obtener ayuda con sus proyectos. Estamos listos para ayudarlo a aprovechar todo el potencial de las funciones en la nube en conjunto con nuestra sólida plataforma de telemetría, asegurando su éxito en este dinámico panorama tecnológico.

← Artículo anteriorArtículo siguiente →
¿Está listo para el software más innovador?
REGISTRARSE
Publicaciones recientes