Requisitos
1. Crear una cuenta de Azure IoT Hub
Inicia sesión en tu cuenta de Microsoft Azure.
Haz clic en IoT Hub. Si no se muestra, puedes buscarlo en la barra de búsqueda en la parte superior de la pantalla.
Haz clic en “Crear”.
Completa los detalles del proyecto IoT Hub de la siguiente manera:
Suscripción: Selecciona tu suscripción de Azure.
Grupo de recursos: Haz clic en el botón “Crear nuevo”. Se mostrará una pequeña ventana, ingresa un nombre significativo y haz clic en el botón “OK”. Este es el grupo de recursos en el que colocarás todos los demás recursos, así que tenlo en cuenta. Lo nombramos como “UbidotsIoTHubResources”.
Nombre del IoT Hub: establece cualquier nombre que consideres apropiado. Lo nombramos "UbidotsIotHub".
Región: Elige cualquier región que se ajuste a tus necesidades. Lo único que debes tener en cuenta es que tendrás que crear todos los recursos posteriores en esta misma región. En este artículo, se seleccionó “Central US”.
Haz clic en “Revisar + crear”.
Haz clic en “Crear”.
Serás llevado a una nueva página, como la siguiente. Espera hasta que la implementación finalice y haz clic en el botón “Ir al recurso”, esto te llevará a tu IoT Hub recién creado.
2. Crear un dispositivo en Azure IoT Hub
Una vez en tu Azure IoT Hub recién creado, haz clic en “Dispositivos” en el lado izquierdo de la pantalla.
Haz clic en “+ Agregar dispositivo”.
Establece un nombre para tu dispositivo. Lo nombramos “raspberry-simulator”. Sin embargo, puedes elegir cualquier nombre.
Haz clic en el botón “Guardar”.
Se cargará una nueva página donde podrás ver todos tus dispositivos creados. Haz clic en el dispositivo que acabas de crear.
Copia la “Cadena de conexión primaria” en un bloc de notas o en cualquier lugar de fácil acceso.
3. Crear Azure Service Bus
Agrega el recurso “Service Bus” buscando en la barra de búsqueda en la parte superior de la pantalla o utilizando el botón “+ Crear un recurso”, tal como en el primer paso cuando creaste el IoT Hub.
Haz clic en “+Crear”.
Completa los siguientes campos de la siguiente manera:
Suscripción: Elige tu suscripción activa de Azure.
Grupo de recursos: Elige el mismo grupo de recursos que utilizaste para el recurso IoT Hub. Si has estado siguiendo la misma nomenclatura, entonces debería ser “UbidotsIoTHubResources”.
Nombre del espacio de nombres: establece cualquier nombre que consideres apropiado. En este artículo, se estableció como “UbiNameSpace”.
Ubicación: Elige la misma ubicación en la que colocaste tu primer recurso. En este caso, es “Central US”.
Nivel de precios: Elige cualquier plan que se ajuste a tus necesidades.
Haz clic en “Revisar + crear”.
Haz clic en “Crear”.
Espera a que la implementación finalice.
Haz clic en “Ir al recurso”.
Haz clic en “+ Cola”.
Establece un nombre apropiado para tu Cola. En este artículo se estableció como “ubiqueue”, sin embargo, puedes elegir cualquier nombre que desees.
Establece “Máximo número de entregas” de acuerdo a tus necesidades de tráfico.
Deja todos los demás parámetros como sus opciones predeterminadas.
Haz clic en el botón “crear”.
Espera a que la Cola sea creada.
Desplázate hacia abajo hasta que encuentres tu Cola recién creada y haz clic en ella.
Haz clic en "Políticas de acceso compartido".
Haz clic en “+ Agregar”.
Establece un nombre para tu política.
Marca la opción “Administrar”.
Haz clic en “Crear”.
4. Crear un Endpoint y Regla de Enrutamiento
Ve a tu cuenta de Ubidots y crea una UbiFunction. Su método debe ser “POST” y el tiempo de ejecución “Python”. Puedes nombrarla como desees. Visita este enlace para saber más sobre esto.
Copia la “URL del endpoint HTTP de la función”. Esta información se utilizará en pasos posteriores.
Regresa a tu IoT Hub.
Busca “Enrutamiento de mensajes” en el menú del lado izquierdo de la pantalla.
Haz clic en la pestaña “Endpoints personalizados”.
Haz clic en “Agregar”.
Haz clic en “Cola de Service Bus”.
Establece un nombre para tu endpoint de acuerdo a tus necesidades.
Elige el “espacio de nombres de Service Bus” creado en los pasos anteriores.
Elige la “cola de Service Bus” creada en los pasos anteriores.
Deja todas las demás configuraciones como están y haz clic en “Crear”.
Regresa nuevamente a Azure IoT Hub.
Haz clic en “Enrutamiento de mensajes”.
Haz clic en la pestaña “Rutas”.
Haz clic en “Agregar”.
Establece un nombre para la ruta.
En la sección “Endpoint”, elige el endpoint creado anteriormente.
Como “Fuente de datos” elige “Mensajes de telemetría del dispositivo”.
Asegúrate de que “Consulta de enrutamiento” esté configurado como “true”.
Haz clic en el botón “Guardar”.
5. Crear Azure Logic App
Ve a la barra de búsqueda en la parte superior de la pantalla y busca “Logic apps”.
Haz clic en “Agregar”.
Completa la siguiente información de acuerdo a:
Suscripción: Selecciona tu suscripción previamente utilizada.
Grupo de recursos: Elige el mismo grupo de recursos que en los pasos anteriores.
Nombre de la Logic App: Establece cualquier nombre que consideres apropiado.
Región: Selecciona la misma región que has estado eligiendo para todos los recursos anteriores.
Habilitar análisis de registros: Marca esta opción de acuerdo a tus necesidades.
Tipo de plan: Selecciona esta opción de acuerdo a tus necesidades.
Haz clic en “Revisar + crear”.
Haz clic en “Crear”.
Para “Nombre de la cola”, selecciona la cola creada en los pasos anteriores. Si has estado siguiendo la nomenclatura de este artículo, debería ser “ubiqueue”.
Para “Número máximo de mensajes”, selecciónalo de acuerdo a tus necesidades.
Para “Con qué frecuencia deseas verificar elementos”, selecciona la frecuencia que se ajuste a tus necesidades.
Haz clic en “+ Nuevo paso”.
Usa la barra de búsqueda para buscar “HTTP" y haz clic en él.
Selecciona el método HTTP como “POST”.
En el campo de URL, completa con la “URL del endpoint HTTP de la función”, como se obtuvo en el primer paso de esta sección.
Agrega tanto el encabezado “x-auth-token” como tu token de Ubidots en la sección correspondiente.
Haz clic en la sección “Cuerpo” y arrastra el bloque “Contenido” hacia ella.
Haz clic en “Guardar”.
6. Configurar el Decodificador de Ubidots
Ve a la UbiFunction creada en el paso 4, específicamente a su sección Decodificador.
Elimina todo el código allí y pega lo siguiente:
import requestsimport timeimport base64 import jsonBASE_URL = "https://industrial.api.ubidots.com"device = "Raspberry-pi-4-Azure"token = "BBFF-WEplLU79KGBNVrLUt3lGEFIuOviAOg"def main(args): print(args) base64_payload = args["body"] decoded_payload = base64.b64decode(base64_payload) decoded_payload = decoded_payload.decode('utf-8') decoded_payload = json.loads(decoded_payload) ubidots_payload = {} ubidots_payload["temperature"] = decoded_payload["temperature"] ubidots_payload["humidity"] = decoded_payload["humidity"] timestamp = decoded_payload["timestamp"] res = send_data(device, ubidots_payload, token, **{"timestamp":timestamp}) ##return {"status": res.status_code, "text": res.text} return buildResponse(200,"successfull request") return buildResponse(res.status_code, res.text) def buildResponse(status_code, output_text): return { "status_code": status_code, "headers": {"Content-Type": "plain/text"}, "body": f"{output_text}", } def 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,): """ Function to make a request with timeout and retries """ 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
Haz clic en el botón “Hacerlo en vivo”.
7. Configurar el Simulador de Raspberry Pi
Ve al siguiente enlace.
Edita la línea 15 y, allí, establece la “Cadena de conexión primaria” de tu dispositivo como se obtuvo en la sección 2.
Agrega lo siguiente debajo de la línea 31: timestamp:
timestamp: Date.now(),
Haz clic en “Ejecutar” para comenzar a enviar datos a Azure y, en última instancia, a Ubidots.
8. Verificar la ingestión de datos tanto en Azure como en Ubidots
Ve a Azure.
Ve a la Logic App creada en el paso 5.
Haz clic en la pestaña “Historial de ejecuciones”.
Verifica que la aplicación haya sido activada.
Regresa a Ubidots → Dispositivos y podrás ver un dispositivo llamado “raspberry-pi-4-azure” (si seguiste la nomenclatura).
9. Comentarios, Sugerencias y Artículos Relacionados
No dudes en publicar preguntas o sugerencias en nuestro portal de la comunidad, o contáctanos a través de support@ubidots.com.
Otros usuarios también encontraron útil...