El Sparrow, de Blues Wireless, es un kit compuesto por un gateway y un par de nodos que, cada uno, puede comunicarse con el gateway a través de LoRa. Su característica más notable es la facilidad con la que el usuario puede configurar rápidamente un proyecto sin necesidad de codificación.
Requisitos
Una cuenta de NoteHub de Blues Wireless.
Un Sparrow Kit de Blues Wireless.
Una cuenta de Ubidots.
Tabla de Contenidos
Configuración del Hardware
Configurar Notehub
Emparejar la Notecard con los Nodos de Referencia
Visualizando los Eventos en Notehub
Crear la Función para recibir los datos de Notehub
Rutar datos de Notehub a Ubidots
Visualizar los datos en Ubidots
Comentarios, sugerencias y artículos relacionados
1. Configuración del Hardware
Retire los tornillos de la parte posterior de cada nodo que desee configurar.
Inserte dos baterías AAA. Por el momento, deje los nodos sin la carcasa.
Conecte su Essentials Board a su Notecarrier-A utilizando el cable Qwiic incluido.
Asegúrese de que el interruptor DIP en el Notecarrier-A esté configurado a 3V3.
Asegúrese de que los interruptores DIP en la Essentials Board estén todos apuntando hacia 1,2,3,4.
Conecte la placa Notecarrier-A a la PC utilizando el cable de datos micro USB a USB-A proporcionado. Después de hacerlo, debería ver que el LED verde está encendido tanto en el Notecarrier-A como en la Essentials Board.
2. Configurar Notehub
Inicie sesión en su cuenta de Notehub.
Una vez en su panel de Notehub, haga clic en el botón Crear Proyecto .
Complete los siguientes campos de acuerdo a:
Cuenta de facturación: Seleccione o cree una cuenta para su facturación.
Nombre del proyecto: Establezca cualquier nombre que desee para su proyecto.
Prefijo ProductUID: Esto se establecerá por defecto con el nombre de usuario y la organización proporcionados cuando se creó su cuenta de Notehub.
ProductUID: Este es el sufijo para su proyecto actual. Puede establecer cualquier nombre que desee, sin embargo, se aconseja que sea el mismo que el nombre de su proyecto.
Haga clic en el botón Crear Proyecto para crear el proyecto.
Copie el ProductUID del proyecto.
Dirígete a dev.Blues.
Haga clic donde se muestra el mensaje Desconectado .
Haga clic en el botón USB Notecard debajo del mensaje Conectar una Notecard.
Seleccione el puerto al que está conectado su dispositivo.
Haga clic en el botón Conectar .
Una vez hecho esto, se abrirá un terminal serial en su navegador.
Ejecute el siguiente comando asegurándose de reemplazar com.your-company.your-name:your_product por su ProductUID obtenido en los pasos anteriores.
{"req":"hub.set", "product":"com.your-company.your-name:your_product","mode":"continuous"}
El dispositivo debe responder con un objeto JSON vacío:
Conecte la Notecard a su Wi-Fi ejecutando el siguiente comando, asegurándose de reemplazar “ssid name” y “password” con sus credenciales correspondientes:
{"req":"card.wifi","ssid":"<ssid name>","password":"<password>"}
3. Emparejar la Notecard con los Nodos de Referencia
Presione y suelte el botón Emparejar en la Essentials Board y luego presione el mismo botón en el Nodo de Referencia.
Mientras se emparejan, tanto la Essentials Board como los Nodos de Referencia deben mostrar una luz LED azul sólida, lo que indica que los dispositivos están en modo de emparejamiento.
Cuando se complete el proceso de emparejamiento, verá luces LED rojas, verdes y azules parpadeando en la Essentials Board.
Consejo Profesional: El emparejamiento de dispositivos LoRa funciona mejor si están separados entre sí, como en lados opuestos de la mesa.
4. Visualizando los Eventos
Regrese a Notehub.
Haga clic en la opción Eventos .
En la página de Eventos podrá ver todos los eventos relacionados con cada Nodo de Referencia.
5. Crear la Función para recibir los datos de Notehub
Vaya a su cuenta de Ubidots.
Haga clic en Dispositivos → Funciones.
Cree una nueva Función con los siguientes parámetros:
Nombre: establezca cualquier nombre que desee
Método: POST
Runtime: Para este ejemplo, se eligió Python 3.7, sin embargo, puede seleccionar el que le resulte más cómodo
Token: Seleccione el token de Ubidots que desea usar para esta aplicación en particular
Edite el código de la Función. Elimine todo y pegue lo siguiente:
import requestsBASE_URL = "https://industrial.api.ubidots.com"TOKEN = 'BBFF-WEplLU79KGBNVrLUt3lGEFIuOviAOg'def main(args): print(args) device_label_map = { "203733583236500300360033":"reference-node-1", "203733583236500300260033":"reference-node-2", } functions_map = { "air.qo": air, "motion.qo": motion, "sensors.db": sensors, "_health.qo":health } file_data = args["file"] payload_type = "" if(file_data == "_health.qo"): device_label = args["body"]["text"].split(" ")[0] device_label = device_label_map[device_label] payload_type = file_data elif(file_data == "sensors.db"): device_label = device_label_map[args["note"]] payload_type = file_data elif(file_data == "_session.qo"): return {"status":200, "text":"session.qo report cotinuous connectio mode report"} else: file_number_index = 0 payload_type_index = 1 file_data = args["file"].split("#") device_label = device_label_map[file_data[file_number_index]] payload_type = file_data[payload_type_index] # Get the timestamp timestamp = args.get("when", None) timestamp = timestamp * 1000 if timestamp is not None else None payload = functions_map[payload_type](args) res = send_data(device_label, payload, TOKEN, **{"timestamp":timestamp}) return {"status": res.status_code, "text": res.text} def health(args): args = args["body"] ret = {"button-status": { "value":1, "context":"pressed" } } return retdef air(args): args = args["body"] ret = { "humidity": args["humidity"], "pressure": args["pressure"], "temperature": args["temperature"], "voltage": args["voltage"] } return ret def motion(args): args = args["body"] ret = { "motion-count": args["count"], "motion-total": args["total"] } return ret def sensors(args): args = args["body"] ret = { "voltage": { "value":args["voltage"], "context": { "gateway_rssi": args["gateway_rssi"], "gateway_snr": args["gateway_snr"], "lost": args["lost"], "received": args["received"], "sensor_ltp": args["sensor_ltp"], "sensor_rssi": args["sensor_rssi"], "sensor_snr": args["sensor_snr"], "sensor_txp": args["sensor_txp"], } } } return retdef send_data(device, payload, token, **params): url = f"{BASE_URL}/api/v1.6/devices/{device}/" headers = {"X-Auth-Token": token, "Content-Type": "application/json"} res = make_request("post", url, headers=headers, params=params, body_json=payload, attempts=5) return res def make_request( method, url, params=None, headers=None, body=None, body_json=None, attempts=1, timeout=10,): """ Función para hacer una solicitud con tiempo de espera y reintentos """ req_session = requests.Session() req_adapter = requests.adapters.HTTPAdapter(max_retries=attempts) req_session.mount("https://", req_adapter) response = req_session.request( method=method.upper(), url=url, params=params, headers=headers, data=body, json=body_json, timeout=timeout, ) req_session.close() response.raise_for_status() return response
Copie la URL del Endpoint HTTPs de la Función en su portapapeles. Esto será necesario más adelante.
6. Rutar datos de Notehub a Ubidots
Vaya a Notehub.
Haga clic en la opción Rutas .
Haga clic en Crear Ruta.
Haga clic en el botón Seleccionar para la opción Solicitud/Respuesta HTTP/HTTPS General .
Complete el siguiente campo de acuerdo a:
Nombre de la ruta: cualquier nombre que desee usar para esta ruta
URL: la URL del Endpoint HTTPs de su Función obtenida en la sección anterior
Encabezados HTTP: seleccione Encabezados Adicionales. Luego:
Establezca el Nombre del encabezado en “X-Auth-Token”
Establezca el Valor del encabezado en su token de Ubidots que desea usar para esta aplicación. Debe ser el mismo que el que seleccionó para la Función en la sección anterior.
Otras configuraciones como Límite de tasa, Tiempo de espera, y Filtros se dejaron en sus valores predeterminados, sin embargo, puede cambiar estas configuraciones de acuerdo a sus requisitos.
Haga clic en el botón Crear Ruta para guardar estas configuraciones y crear la ruta.
7. Visualizar los datos en Ubidots
Regrese a su cuenta de Ubidots → Dispositivos.
Si ha estado siguiendo la nomenclatura de este artículo, debería poder ver dos nuevos dispositivos, “reference-node-1” y “reference-node-2”.
8. Comentarios, sugerencias y artículos relacionados
No dude en publicar preguntas o sugerencias en nuestro portal comunitario, o contáctenos a través de support@ubidots.com.
Otros usuarios también encontraron útil...