Skip to content
Jesús Martínez edited this page Jun 12, 2021 · 4 revisions

Welcome to the automations_iot wiki!

Historia

El proyecto automatitions iot nacio del interes de la administración de dispositivos de manera remota atraves de internet (IOT things). Con el paso de los años el conocimiento y posibilidades de realizar un proyecto que te permita administrar tus dispositivos utilizando internet se a facilitado, el proyecto main se basa de 3 sub proyectos.

Submodules

IOT Administration

Es el core de todo proyecto, es el backed desarrollado con ruby on rails que administra usuarios, dispositivos, opciones entre otras tablas. Este proyecto requiere el uso de redis para realizar la comunicación.

IOT Frontend

Es el frontend que se desarrollo para administrar el core y los dispositivos junto con su comunicación. Si tu tienes otras necesidades no estas forzado a ocupar este front, puedes realizar tu propio proyecto para consumir el core utilizando el protocolo http.

IOT rasberry go

Este proyecto esta pensado para recibir las instrucciones que envia el core a redis, cuando se levanta el proyecto se debe establecer cierta configuración para conectarse a la instancia de redis del core y leer el channel que te corresponda. Cuando envia la información el proyecto leera el payload y debera ejecutar lo que se reciba. La idea es hacer un proyecto con GO generico para prender/apagar los puertos del device. Como tal no se requiere este proyecto para consumir el core desde las rapsberry, solo leer el puerto de redis. Se puede utilizar nodejs, python, go entre otras opciones y pueda administrar los puertos del device.

Database

El proyecto consiste en crear un sitio administrador que se encargue de guardar los siguientes recursos:

  • Users
  • Organizations
  • Devices
  • DevicePorts
  • PortValues
  • Tokens

Diagrama de entidad - relación

Digrama E-R

El core del proyecto esta hecho en ruby on rails. Para empezar a ocupar el proyecto se debe registrar un usuario owner que tendra una organización para empezar a crear el grupo de trabajo.

Cada organización tendra una N cantidad de devices que son los dispositivos como rapsberry, estos se almacenan en la tabla llamada "devices". Cada una tiene N cantidad de puertos que se almacenan en la tabla "device ports" donde cada que se ejecute un update se enviada la data a un channel de redis.

La idea es que cada puerto tenga un listado de opciones, cada que se elija una opción enviar el payload al endpoint que corresponda para que rails envie la data al channel de redis. Estas opciones se guardar en la tabla de "port values".

Cuando se cree una organización, devices, user se asociara de manera interna un token al registro. Dependiendo del namespaces que se desee acceder se espera el token que según corresponda. Para detalles tecnicos se cuenta con la documentación de swagger en el proyecto de 'IOT administration'

Clone this wiki locally