Revolution Pi es un PC industrial abierto, modular y duradero basado en el establecido Raspberry Pi, cumpliendo con la norma EN61131-2. Equipado con el Módulo de Cálculo Raspberry Pi, la RevPi Core base se puede expandir sin problemas utilizando módulos de E/S apropiados y gateways de bus de campo para la gestión de energía, monitoreo de procesos, aplicaciones de salud de máquinas y más.
El Rev Pi Core es la base para cualquier aplicación IoT impulsada por hardware Kunbus y, dependiendo de sus requisitos de E/S, se pueden adjuntar módulos de expansión como RevPi DIO, RevPi AIO, RevPi Gates como módulos digitales, analógicos o de gateway.
La serie Revolution Pi comienza con el dispositivo base, el RevPi Core y RevPi Core 3, la unidad central de procesamiento del sistema modular. Equipado con un procesador de cuatro núcleos a 1.2 GHz y 1 GByte de RAM, el procesador multi-core de Broadcom tiene suficiente potencia para tareas complejas como el procesamiento de imágenes o la computación en el borde. Instalado en una carcasa de riel DIN y alimentado por 24 VDC, el RevPi Core está diseñado para durar y requiere una entrada de energía estándar.
En la siguiente guía aprenderás cómo integrar tu RevPi Core y RevPi Core 3 con la plataforma de desarrollo de aplicaciones IoT Ubidots. Esta guía simulará lecturas de presión, temperatura y humedad a través de un script de firmware en Python, y enviará estos datos a tu cuenta de Ubidots, proporcionándote el código de ejemplo necesario para llevar tus datos en línea y hacerlos valiosos.
Este tutorial está diseñado solo para la configuración de RevPi Core, si ya tienes tu core compilado y deseas trabajar ahora con algunos módulos de expansión, consulta el artículo de configuración a continuación para integraciones adicionales y desarrollo de aplicaciones:
Configuración de Revolution Pi Core
Requisitos
Cable Ethernet
Fuente de alimentación de 24V
Paso a Paso
Configuración de Hardware
Envío (POST) de Datos a Ubidots
Visualización de datos
Resumen
1. Configuración de Hardware
Para comenzar la configuración de tu RevPi Core o RevPi Core 3, consulta la Guía de Inicio Rápido de Revolution Pi para configurar y conectar tu dispositivo. :)
Una vez que tu RevPi Core esté configurado con la última versión de imagen (Jessie) y correctamente conectado a tu PC, ejecuta los siguientes comandos en el terminal de RevPi:
NOTA: Para poder ejecutar los comandos a continuación, debes acceder al RevPi. Si aún no sabes cómo acceder al terminal del RevPi, consulta esta guía.
sudo apt-get update
entonces:
sudo apt-get upgrade
NOTA: Los comandos anteriores tardarán varios minutos en actualizarse. Todo el sistema se está actualizando, así que por favor ten paciencia.
2. Envío (POST) de Datos a Ubidots
Decidimos usar el lenguaje de programación Python debido a su facilidad de uso con el RevPi Core. Si deseas programar en otro lenguaje, consulta el foro de Revolution Pi para obtener detalles adicionales en soporte de firmware.
Si esta es tu primera vez trabajando con Python en tu RevPi Core, echa un vistazo a este video para familiarizarte un poco más:
1. Para comenzar a escribir tu firmware, crea un script de Python en el terminal de RevPi. Vamos a usar el editor nano para hacerlo. Para crear el nuevo script, ingresa y ejecuta el siguiente comando:
nano ubidots_revpi.py
Como verás, el terminal del editor nano se llenará automáticamente y podrás comenzar a escribir tu código.
Por favor, copia y pega el código de muestra a continuación en el editor nano. Una vez pegado, asigna tu Token de Ubidots donde se indica en el script. Consulta aquí para obtener ayuda localizando tu token de Ubidots si no puedes encontrarlo
En este código de muestra hemos escrito el retraso para la comunicación de datos con Ubidots para que sea cada 1 segundo. Si deseas extender este retraso para ahorrar en el consumo de datos de tu aplicación, puedes hacerlo simplemente ajustando la línea "Delay = 1".
NOTA: Para guardar el script en el editor nano - presiona Ctrl+O, confirma el nombre del archivo a escribir (ubidots_revpi.py) y presiona enter. Para cerrar el editor nano presiona Ctrl+X.
################################################################################# Este script simula diferentes valores de sensores utilizando el módulo random y realiza# una solicitud HTTP a Ubidots Cloud (https://ubidots.com/)## Autor: M. Hernandez################################################################################import requestsimport timeimport randomfrom uuid import getnode as get_mac# Asigna tu TOKEN de UbidotsTOKEN = "{Assign_your_Ubidots_token}"# Establece el retraso deseado para publicar los datos DELAY = 1''' Este método construye el JSON que se enviará a Ubidots Cloud'''def build_json(variable_1, value_1, variable_2, value_2, variable_3, value_3): try: data = {variable_1: value_1, variable_2: value_2, variable_3: value_3} return data except: return None''' Este método realiza la solicitud HTTP a Ubidots Cloud'''def post_variable(device, value_1, value_2, value_3): try: url = "https://industrial.api.ubidots.com/api/v1.6/devices/" + device headers = {"X-Auth-Token": TOKEN, "Content-Type": "application/json"} data = build_json("temperature", value_1, "humidity", value_2, "pressure", value_3) response = requests.post(url=url, headers=headers, json=data) return response.json() except: passif __name__ == "__main__": while True: mac = get_mac() # obtener la dirección mac de tu dispositivo device_mac = ':'.join(("%012X" % mac)[i:i+2] for i in range(0, 12, 2)) temp_value = random.randint(0,15)*2 hum_value = random.randint(20,50) press_value = random.randint(2,50)*2 print post_variable(device_mac, temp_value, hum_value, press_value) time.sleep(DELAY)
2. Ahora probemos el script. Ejecuta el script previamente creado en el terminal de RevPi:
python ubidots_revpi.py
Una vez que el script comience a ejecutarse, verás el código de estado de respuesta exitoso del servidor de Ubidots 201
:
3. Visualización de datos
Ve a tu cuenta de Ubidots y verifica que los datos han sido recibidos. Verás un nuevo dispositivo creado automáticamente en la sección de Dispositivos con el nombre del dispositivo siendo la dirección MAC de tu RevPi Core.
La ventaja de asignar la dirección MAC de RevPi Core como etiqueta del dispositivo es que el mismo script servirá para todos tus RevPi Cores enviando datos a Ubidots, pero solo necesitarás ajustar la dirección MAC en el código. Esto asegura que desde la primera vez hasta la última vez que envíes datos a Ubidots, los datos siempre se mantengan almacenados en su dispositivo digital correspondiente que tienes en Ubidots.
¿No te gusta la dirección MAC como el nombre de tu dispositivo en la visualización de Ubidots? ¡No te preocupes! Puedes cambiar el nombre a uno más amigable, pero la etiqueta del dispositivo permanecerá como la dirección MAC para que la plataforma de Ubidots nunca se confunda sobre qué hardware está actualizando qué dispositivo digital en Ubidots. Consulta este artículo del centro de ayuda para entender mejor Etiquetas de Dispositivos y Nombres de Dispositivos en Ubidots.
Haz clic en cualquier dispositivo en tu sección de Dispositivos para visualizar las variables que se están registrando y enviando a Ubidots desde nuestro firmware de muestra. Como puedes ver, el código de muestra ha proporcionado tres variables: humedad, presión y temperatura. Estas se pueden ajustar fácilmente en tu código para adaptarse a la solución que estás desarrollando.
NOTA IMPORTANTE: Como se mencionó anteriormente, los datos publicados desde el código de muestra proporcionado son simulados. Para comenzar a detectar entornos del mundo real, necesitarás un módulo de expansión de Revolution Pi. Uno como el RevPi DIO. Para comenzar a trabajar con un módulo de expansión como el RevPi DIO, consulta este artículo de integración para comenzar a trabajar con datos de sensores y actuadores para tu solución IoT:
4. Resumen
En solo unos minutos has integrado el RevPi Core con Ubidots, enviado algunos datos de muestra utilizando un código Python simulado, y reportado tu trabajo a Ubidots para la retención, visualización y cálculo de datos. Para desplegar tus soluciones industriales para monitoreo o gestión, consulta la línea completa de módulos de expansión RevPi que se pueden conectar a Ubidots para enriquecer datos y tomar decisiones y mejorar procesos.
Ahora es el momento de crear Tableros de Ubidots para visualizar y entender tus datos para tomar las mejores decisiones, de manera simple y coherente.