El SenseCAP S2100 Data Logger es un dispositivo potente que cuenta con un transceptor LoRa, lo que permite enviar datos a su servidor de red preferido que soporte planes de frecuencia como 863MHz ~928MHz. El S2100 puede comunicarse con cualquier sensor a través de Modbus RTU RS485, así como analógico 4~20mA/0~10V, y también sensores GPIO de nivel/pulso.
Una de sus características más destacadas es su capacidad para trabajar en entornos difíciles, ya que tiene una carcasa con clasificación IP66, adecuada para uso en exteriores, alta exposición a rayos UV, lluvia intensa, condiciones polvorientas y más.
Requisitos
Una cuenta activa en Ubidots.
Una cuenta activa en The Things Network LNS.
Un SenseCap S2100 con al menos un sensor ya configurado. Por favor, visite los siguientes enlaces para hacerlo:
Un teléfono móvil con Android o iOS con Bluetooth.
1. Configurar el SenseCap S2100
Instale la aplicación móvil SenseCAP buscando “SenseCAP Mate” en la tienda de aplicaciones de su dispositivo o escaneando el siguiente código QR:
Encienda el Bluetooth de su teléfono móvil y luego configure el SenseCap en modo de emparejamiento Bluetooth presionando y manteniendo presionado el botón de configuración durante 3 segundos:
Inicie la aplicación SenseCap en su dispositivo móvil.
Seleccione S2100 Data Logger, luego toque en "Setup".
Las siguientes configuraciones se adoptaron según la frecuencia permitida para la región en la que se configuró el dispositivo. Visite el siguiente enlace para conocer las regulaciones en su región.
Toque en la pestaña “settings” y edite los siguientes parámetros según sus necesidades:
Plataforma: The Things Network
Plan de Frecuencia: US915
Intervalo de envío (opcional): 5
Copie los siguientes valores para ser usados más tarde (no modifique ninguno de ellos):
Device EUI
APP EUI
APP Key
Haga clic en “send”.
2. Registrar el SenseCap S2100 en TTN LNS
Inicie sesión en su consola de TTN.
Seleccione “go to applications”.
Cree una aplicación.
Haga clic en “+ add end device”.
Haga clic en “from The LoRaWAN device repository” y edite las siguientes configuraciones:
Marca: SenseCap
Modelo: Elija el correspondiente al dispositivo que está utilizando, en este caso, S2100.
Versión de hardware: Deje la opción predeterminada.
Versión de firmware: Deje la opción predeterminada.
Perfil (región): US_902_928.
Desplácese hacia abajo hasta “enter registration data” y, allí, edite las siguientes configuraciones:
Plan de frecuencia: Estados Unidos 902-928 MHz, FSB 2 (usado por TTN)
ID del dispositivo final: Ingrese un nombre significativo, como “sensor-humedad-sensecap”.
Pegue el DEV EUI, APP EUI y APP Key guardados previamente en los campos correspondientes.
Desplácese hacia abajo y haga clic en “register end device”.
Pro TIP: Si su dispositivo no comienza a enviar datos inmediatamente, presione y suelte el botón de configuración en su SenseCap.
3. Crear el plugin y el decodificador en Ubidots
Vaya a su cuenta de Ubidots en la pestaña “devices” y haga clic en “plugins”
Cree un nuevo plugin “The Things Stack”.
Deje la opción “Ubidots device type” en su configuración predeterminada si lo desea. Sin embargo, puede establecer cualquier nombre para su tipo de dispositivo.
En “Ubidots token” seleccione "default token" o el token que desea usar para este plugin.
Haga clic en el botón de flecha para ir al siguiente paso.
Haga clic en el plugin recién creado para navegar a sus opciones.
Busque la pestaña “decoder” y copie la “HTTPs endpoint URL”. Esto será necesario más adelante.
Desplácese hacia abajo hasta la sección “decoding function” y pegue el siguiente código en el campo de texto:
async function formatPayload(args){
var messages = args["uplink_message"]["decoded_payload"]["messages"];
var ubidotsPayload = {};
var varLabelMap =
{
1:"measurement1",
2:"measurement2",
3:"measurement3",
4:"measurement4",
5:"measurement5",
6:"measurement6",
7:"measurement7",
8:"measurement8",
9:"measurement9",
10:"measurement10",
};
messages.forEach(msg => {
msg.forEach(innerList=>{
if (innerList.hasOwnProperty("measurementId")) {
ubidotsPayload[varLabelMap[innerList.measurementId]] = innerList["measurementValue"];
} else if (innerList.hasOwnProperty("Battery(%)")) {
let value = innerList["Battery(%)"];
let label = "Battery";
ubidotsPayload[label] = value;
}
})
});
return ubidotsPayload;
}
module.exports = { formatPayload };
El siguiente GIF sirve como guía:
4. Conectar el plugin de Ubidots a TTN
Vaya a su consola de TTN.
Vaya a la aplicación creada en el paso 2 de esta guía.
En el lado izquierdo de la pantalla, busque “integrations” y haga clic en él.
Haga clic en “webhooks”.
Haga clic en “+ add webhook”.
Busque el webhook de Ubidots entre los diferentes socios:
Edite las siguientes configuraciones:
Webhook ID: Dé un nombre significativo, debe estar en minúsculas.
Plugin ID: Es la última parte de la “HTTPs endpoint URL” de su plugin de Ubidots después del “/”. Por ejemplo, si la URL de su endpoint es:
https://dataplugin.ubidots.com/api/web-hook/lN4s2dlb4IgPgpp4Xeoq02stXcE=
, entonces su Plugin ID es “lN4s2dlb4IgPgpp4Xeoq02stXcE=”.Ubidots token: Su token de Ubidots.
Desplácese hacia abajo hasta el botón “create Ubidots webhook” y haga clic en él.
5. Configurar el formateador de Payload
Vaya al panel izquierdo y haga clic en “payload formatters”.
Haga clic en “uplink”.
Establezca el “formatter type” en “custom JavaScript formatter”.
Elimine todo el código allí y pegue el decodificador oficial de Seeed Studio para este dispositivo desde su repositorio de GitHub.
Nota: El siguiente decodificador es oficialmente soportado y mantenido por Seeed Studio. Debe copiar el decodificador desde allí para obtener la versión más reciente.
Haga clic en “save changes”.
6. Visualizar los datos en Ubidots
Diríjase a su cuenta de Ubidots y vaya a la sección “devices”. Allí podrá ver un dispositivo recién creado con el mismo nombre que utilizó anteriormente para el “end device ID” en el paso #2 de esta guía.