Existen varios escenarios en los que utilizar SMS para enviar datos desde dispositivos celulares tiene más sentido que informar datos directamente desde el dispositivo IoT a internet. Algunos ejemplos incluyen:
Ubicaciones remotas con conectividad a internet limitada o inestable: En áreas remotas o rurales donde la conectividad a internet celular es poco confiable o inexistente.
Aplicaciones IoT sensibles al costo: Cuando el costo de los planes de datos celulares puede ser prohibitivo, el SMS puede ser una alternativa rentable.
Aplicaciones de bajo volumen de datos: Cuando la cantidad de datos es mínima, como actualizaciones de estado simples desde un medidor inteligente o notificaciones de alarmas, el SMS puede ser más eficiente que adquirir un plan de datos celulares.
Canal de comunicación de respaldo: Para sistemas críticos que requieren alta confiabilidad, el SMS puede servir como un canal de comunicación de respaldo. Si la conexión principal a internet falla, los dispositivos pueden recurrir al SMS para asegurarse de que los mensajes importantes lleguen.
Dispositivos de bajo consumo: Si gestionar una conexión 3G/4G o incluso LTE-M/NB-IoT agota la batería de su dispositivo demasiado rápido, utilizar SMS puede ayudar a optimizar la vida útil de la batería.
Integración de sistemas heredados: En escenarios donde los sistemas heredados no pueden ser modificados, enviar SMS puede ser más sencillo que intentar configurar una conexión HTTP o MQTT.
Con esta guía, podrá combinar el poder de la función SMS a HTTP de Teltonika con la flexibilidad de UbiFunctions para crear su propio gateway privado de SMS entrantes.
Requisitos
Un gateway Teltonika con la función SMS a HTTP. En esta guía, utilizaremos un TRB140.
Una cuenta activa de Ubidots en el plan Industrial.
1. Configure su gateway y asegúrese de que esté conectada a internet
Siga la guía de Teltonika para configurar su dispositivo, incluyendo una tarjeta SIM con un número de teléfono válido. Una vez configurado, asegúrese de poder acceder a la interfaz web del dispositivo, que se ve así:
2. Cree una UbiFunction
En su cuenta de Ubidots, vaya a la pestaña "Dispositivos", luego haga clic en "Funciones", luego cree una nueva función. En la opción de tiempo de ejecución, seleccione "Python 3.11 Lite":
Inserte el siguiente código en la función:
Tenga en cuenta que el siguiente código asume una estructura de SMS conocida, que contiene variables de muestra. Se proporciona como un ejemplo, pero se le recomienda modificarlo para decodificar el formato utilizado por sus dispositivos. |
import requests
def main(args):
# Extraer el contenido del SMS sms_content = args.get('sms', '')
# Dividir el contenido del SMS para obtener la etiqueta del dispositivo y los valores de los sensores
try:
device_label, temperature, humidity, battery = sms_content.split(',')
except ValueError:
return {"status": "error", "message": "Formato de SMS inválido"}
# Preparar datos para Ubidots
ubidots_token = args.get('_auth_token', '')
ubidots_url = f"https://industrial.api.ubidots.com/api/v1.6/devices/{device_label}"
headers = {"X-Auth-Token": ubidots_token, "Content-Type": "application/json"}
payload = {
"temperature": float(temperature),
"humidity": float(humidity),
"battery": float(battery)
}
# Enviar datos a Ubidots
response = requests.post(ubidots_url, headers=headers, data=json.dumps(payload))
if response.status_code == 200:
return {"status": "success", "message": "Datos enviados a Ubidots"}
else:
return {"status": "error", "message": f"Error al enviar datos a Ubidots: {response.text}"}
Finalmente, copie la URL de la función, que se utilizará en el siguiente paso:
3. Configure el reenvío de SMS a HTTP en el gateway de Teltonika
En la interfaz web de Teltonika, vaya a "Servicios" → "Utilidades móviles" → "Gateway SMS", luego haga clic en la pestaña "Reenvío de SMS". Complete estos valores:
Habilitar: Asegúrese de que el interruptor de habilitación esté activado.
Método: POST.
URL: Pegue la URL de su función.
Nombre del valor del mensaje: Simplemente lo nombraremos "sms". Esta es la clave JSON que se enviará a la función.
Finalmente, haga clic en "GUARDAR Y APLICAR".
4. Enviar un mensaje de prueba por SMS
Para probar el gateway SMS, envíe un SMS con la siguiente estructura al número de teléfono de su tarjeta SIM instalada en el dispositivo Teltonika:
device-abc,22,53,89
Una vez que gateway Teltonika reenvíe el cuerpo del SMS a la UbiFunction, aparecerá un nuevo dispositivo en su cuenta de Ubidots:
5. Conclusión
En esta guía aprovechamos la función de SMS a HTTP de Teltonika para crear nuestro propio gateway SMS, permitiendo aplicaciones IoT celulares sin la necesidad de planes de datos. El uso de UbiFunctions proporciona toda la flexibilidad necesaria para adaptar la decodificación al formato de datos deseado.