Archivo de la etiqueta: Servicios IoT

Itinerario Formación IoT/Industria 4.0

En un acercamiento a esta disciplina, se busca conocer las tecnologías necesarias para el desarrollo de soluciones IoT/Industria Conectada y valiéndonos para ello de herramientas, tecnologías, protocolos y software libre/open source que hay a nuestra disposición, de forma que cualquier empresa por pequeña que sea pueda hacer un proyecto sencillo de IoT/Industria 4.0 con una inversión mínima, sea cual sea el sector al que pertenezca.

No solo las grandes empresas pueden dar el salto a IoT, la tecnologías libres permiten que sea factible la digitalización de las pymes con una inversión económica mínima y que surja la innovación desde las propias empresas con una formación adecuada a sus trabajadores.

Fundamentos IoT (Nivel 1)20 h
Dispositivos HW IoT (Nivel 2)20 h
Infraestructuras IoT (Nivel 3)20 h
Conectividad IoT (Nivel 3)20 h
Plataformas IoT (Nivel 4)20 h
Desarrollo Soluciones IoT con Herramientas Libres (Nivel 5)20 h

Ver Anexo I con el material necesario para impartir los cursos de este itinerario.

Fundamentos IoT (Nivel 1)

Objetivo

Describir los fundamentos de Internet de las Cosas e identificar los distintos mercados a los que el alumno puede orientar su actividad profesional.

Dado que las comunicaciones, la conexión a Internet y los dispositivos conectados es un aspecto importante actualmente y los conceptos de computación y comunicaciones van unidos de la mano cuando hablamos de las TIC (Tecnologías de la Información y de la Comunicación), vamos a tratar también en este curso las comunicaciones y la programación de los dispositivos conectados.

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer qué es IoT
  • Reconocer las tecnologías y arquitecturas de IoT
  • Capas en IoT
  • Saber los retos de IoT
  • Importancia de la seguridad den IoT
  • Empresas en IoT
  • Conocer los mercados verticales de IoT
  • Saber los servicios que ofrece IoT

Requisitos Alumnos

No son necesarios requisitos previos de los alumnos para asistir a este curso

Contenido del Curso

  • Qué es el IoT. Visión Holística
  • Ecosistema IoT
  • Retos de IoT
  • Industria 4.0. IIoT
  • Empresas en IoT
  • Mercados Verticales IoT
  • Campos Profesionales IoT
  • Aplicaciones IoT

Dispositivos HW IoT (Nivel 2)

Objetivo

Visión general del HW en el ecosistema IoT y puesta en práctica. Identificar la solución Hardware y Firmware más correcta para un proyecto IoT.

Analizar el hardware y el firmware utilizado dentro el ecosistema IoT y programar algunas las plataformas de prototipado más populares del mercado

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer las plataformas HW IoT 
  • Conocer el firmware usado en las plataformas HW
  • Identificar la solución Hardware y Firmware más correcta para un proyecto IoT
  • Utilizar plataformas de prototipado IoT

Requisitos Alumnos

Haber cursado el módulo de Fundamentos IoT o tener experiencia en HW y Firmware IoT.

Contenido del Curso

  • Dispositivos IoT
  • HW IoT Industrial
  • Firmware: SW de los dispositivos
  • Plataforma de Prototipado
  • Prácticas Firmware
  • HW IoT Comercial

Infraestructuras de Comunicaciones IoT (Nivel 3)

Objetivo

Visión detallada de las infraestructuras y conectividad en IoT con ejemplos prácticos en algunas tecnologías. El alumno será capaz de analizar las necesidades de una solución IoT, ofrecer la mejor solución e implementarla. 

Utilizar las Infraestructuras de comunicación que se usan hoy en día para IoT

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer las diferentes infraestructuras de comunicaciones IoT disponibles en el mercado
  • Comparar las tecnologías inalámbricas y saber elegir la más adecuada dependiendo del proyecto.
  • Ofrecer e implantar soluciones IoT a nivel de conectividad e infraestructuras IoT a partir del análisis de necesidades del proyecto
  • Utilizar algunas de las comunicaciones con placas de prototipado como Arduino y ESP8266

Requisitos Alumnos

Haber cursado el módulo de Fundamentos IoT o tener experiencia en infraestructuras y conectividad IoT.

Contenido del Curso

  • Conectividad IoT
  • Redes Inalámbricas IoT
  • Infraestructura de Comunicación IoT
  • Prácticas de Comunicaciones IoT

Conectividad IoT (Nivel 3)

Objetivo

Visión detallada de las infraestructuras y conectividad en IoT con ejemplos prácticos en algunas tecnologías. El alumno será capaz de analizar las necesidades de una solución IoT, ofrecer la mejor solución e implementarla. 

Analizar los protocolos más populares para dotar de conectividad a los dispositivos IoT y configurar el software

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer los protocolos más populares usados en IoT
  • Profundizar en el protocolo HTTP y el uso de API REST
  • Profundizar en el protocolo MQTT y su uso en aplicaciones IoT
  • Instalar, configurar y usar un broker MQTT
  • Ofrecer e implantar soluciones IoT a nivel de conectividad e infraestructuras IoT a partir del análisis de necesidades del proyecto

Requisitos Alumnos

Haber cursado el módulo de Fundamentos IoT o tener experiencia en infraestructuras y conectividad IoT.

Contenido del Curso

  • Protocolos IoT
  • Protocolo HTTP
  • Uso de API REST
  • Protocolo MQTT
  • Práctica MQTT

Plataformas IoT (Nivel 4)

Objetivo

Visión general de las plataformas IoT y trabajo detallado en algunas de ellas. Proponer, instalar y configurar la plataforma más adecuada para el desarrollo de soluciones IoT.

Analizar las  las plataformas existentes en IoT e instalar y configurar alguna de las más utilizadas.

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Conocer las plataformas IoT Generalistas y especializadas más usadas
  • Conocer plataformas open source, instalar y configurar en un servidor
  • Encontrar la plataforma adecuada para una solución IoT, instalación y configuración
  • Programar servicios usando Node-Red
  • Uso de Bases de Datos para almacenamiento de datos
  • Configuración y uso de Dashboards
  • Analizar datos de forma visual

Requisitos Alumnos

Haber cursado el módulo de Fundamentos IoT o tener experiencia en plataformas IoT.

Contenido del Curso

  • Plataformas Cloud Generalistas
  • Plataformas Cloud Especializadas
  • Práctica de Plataformas Cloud
  • Plataformas Privadas/Libres
  • Práctica Plataformas Privadas/Libres
  • Servicios IoT
  • Node-Red
  • Bases de Datos
  • Dashboards
  • Ejemplos prácticos IoT

Desarrollo Soluciones IoT con Herramientas Libres (Nivel 5)

Objetivo

Este curso pretende unificar todos los conocimiento adquiridos en los anteriores cursos del itinerario IoT para hacer un proyecto “full stack” de IoT.

Unificar los conocimientos adquiridos en los otros cursos, identificar necesidades reales con respuestas desde el IoT y desarrollar una solución específica para una necesidad.

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/.

Al finalizar el curso el alumno será capaz de:

  • Proponer e implementar soluciones IoT como respuesta a necesidades específicas
  • Desarrollar un proyecto IoT  estructurado según las fases relacionadas en cada módulo  que de respuesta a una necesidad real del entorno del alumno

Requisitos Alumnos

Los alumnos deberán haber cursado todos los cursos del itinerario IoT o tener experiencia en el desarrollo de soluciones IoT

Contenido del Curso

  • Repaso de conceptos
  • Ejemplo de soluciones IoT Completas
  • Identificación de necesidades
  • Presentación preliminar
  • Desarrollo del Proyecto
  • Presentación del Proyecto

Grafana y Arduino

Grafana es un software libre basado en licencia de Apache 2.0, que permite la visualización y el formato de datos métricos. Permite crear cuadros de mando y gráficos a partir de múltiples fuentes, incluidas bases de datos de series de tiempo como Graphite, InfluxDB y OpenTSDB. Originalmente comenzó como un componente de Kibana y que luego le fue realizado una bifurcación.

Grafana es multiplataforma sin ninguna dependencia y también se puede implementar con Docker. Está escrito en lenguaje Go y tiene un HTTP API completo.

Además de administrar cuadros de mando clásicos (adiciones, eliminaciones, favoritos), Grafana ofrece compartir un cuadro de mando actual mediante la creación de un enlace o una instantánea estática del mismo.

Todos los paneles de control y las fuentes de datos están vinculados a una organización, y los usuarios de la aplicación están vinculados a organizaciones a través de roles.

Web: https://grafana.com/

Grafana API: https://grafana.com/docs/http_api/

Como obtener grafana: https://grafana.com/get

Wikipedia: https://es.wikipedia.org/wiki/Grafana

Introducing grafana 6: https://www.hostedgraphite.com/blog/introducing-grafana-6

Instalar Grafana

Download: https://grafana.com/grafana/download

Instalación en sistemas linux: https://grafana.com/docs/installation/rpm/

Para iniciar el servicio: sudo service grafana-server start

Esto iniciará el proceso grafana-server como el usuario grafana, que se crea durante la instalación del paquete. El puerto HTTP predeterminado es 3000, y el usuario y el grupo predeterminados son admin. Nombre de usuario y contraseña por defecto admin/admin

Guia de instalación en Debian/Ubuntu: https://grafana.com/docs/installation/debian/

Guia de instalación CentOS: https://grafana.com/docs/installation/rpm/

Instalar y configurar en CentOS: https://www.fosslinux.com/8328/how-to-install-and-configure-grafana-on-centos-7.htm

Actualizar grafana: https://grafana.com/docs/installation/upgrading/

Tutoriales para CentOS:

Instalar Grafana en Raspberry Pi

Download para Raspberry Pi: https://grafana.com/grafana/download?platform=arm

Comandos:

Para actualizar: sudo apt-get install grafana

Iniciar el servicio: sudo service grafana-server start

Para configurar grafana en el arranque: sudo systemctl enable grafana-server.service

Más información: https://grafana.com/docs/installation/rpm/

Ahora podemos acceder a Grafana desde el navegador en http://127.0.0.1:3000 con admin/admin y nos pedirá que cambiemos la contraseña.

Adicionalmente si queremos instalar influxDB: sudo apt-get install influxdb

Getting started InfluxDB: https://docs.influxdata.com/influxdb/v1.7/introduction/getting-started/

Configuring InfluxDB: https://docs.influxdata.com/influxdb/v1.7/administration/config/

Instalar Telegraf (opcional):

Herramientas:

  • Grafana: Una herramienta que te permite visualizar series de datos temporales de una forma visualmente muy atractiva. Además de la parte visual, dispone de un potente motor y editor de consultas, que te permite seleccionar y tratar los datos que necesitas mostrar en las gráficas y Dashboards que puedes crear en su interfaz web. Además, los datos que muestra se pueden incluir desde diversas fuentes de datos, entre las que se encuentran Graphite, InfluxDB, Prometheus, ElasticSearch, AWS CloudWatch, StackDriver, MySQL y muchos otros mediante los plugins que tiene disponibles.
  • InfluxDB: Es una base de datos diseñada para almacenar series de datos temporales, esto quiere decir, que se almacenan una serie de datos en registros asociados a un valor principal o índice, que es la marca de tiempo (fecha y hora). La monitorización es un caso típico de este almacenamiento de datos, donde se guarda la marca de tiempo, el nombre del host y los valores de métricas que se pretenden almacenar (CPU, memoria, IO, red, …). InfluxDB es software libre, y el rendimiento que definen para este tipo de entornos es muy competitivo.
  • Telegraf: Es un agente que se encarga de recopilar datos/métricas de un determinado sistema y almacenarlos donde le indiquemos. Por ejemplo, Telegraf recopilará datos de sistema tradicionales (uso de memoria, uso de MySQL/Apache, …) y los enviará a la URL con la API de InfluxDB, que se encargará de almacenarlo. Telegraf, al igual que InfluxDB, pertenecen a Influxdata, por lo que la integración entre ambos es perfecta.
  • Chronograf es la aplicación web de código abierto de InfluxData. Utilice Chronograf con los otros componentes de la pila TICK para visualizar sus datos de monitorización y crear fácilmente reglas de alerta y automatización.
  • Kapacitor es un motor de procesamiento de datos nativo. Puede procesar stream de datos de InfluxDB. Kapacitor le permite conectar su propia lógica personalizada o funciones definidas por el usuario para procesar alertas con umbrales dinámicos, hacer coincidir las métricas de los patrones, calcular anomalías estadísticas y realizar acciones específicas basadas en estas alertas, como el reequilibrio de carga dinámico.

TICK Stack: https://www.influxdata.com/time-series-platform/

Otros tutoriales:

Configurar Grafana

El archivo de configuración se encuentra en /etc/grafana/grafana.ini.

Para obtener detalles sobre todas esas opciones de configuración consultar: https://grafana.com/docs/installation/configuration/

Seguridad: https://grafana.com/docs/installation/security/

Autenticación: https://grafana.com/docs/auth/overview/

Añadir fuentes de datos a Grafana

Getting started: https://grafana.com/docs/guides/getting_started/

Conceptos básicos: https://grafana.com/docs/guides/basic_concepts/

Añadir la BBDD de MySQL donde hemos guardado nuestros datos de Arduino:

Adding data sources:

Primera Gráfica

Guia de novatos para hacer Dashboards: https://www.youtube.com/watch?v=sKNZMtoSHN4&index=7&list=PLDGkOdUX1Ujo3wHw9-z5Vo12YLqXRjzg2

Getting started: https://grafana.com/docs/guides/getting_started/

Pasos:

  • Crear un nuevo Dashboard
  • Añadir una Visualización
  • Elegir “Graph”
  • Poner en Column: IntensidadLuminosa
  • Crear otra visualización como tabla.

Resultado:

Métricas fáciles: https://www.ochobitshacenunbyte.com/2018/03/01/metricas-faciles-con-influxdb-telegraf-y-grafana/

Paneles https://grafana.com/docs/features/panels/graph/

  • Graph
  • Logs
  • Singlestat
  • Table
  • Heatmap
  • Alert List
  • Dasboard list
  • Text

Visualizar los datos de la raspberry Pi en un dashboard:

Plugins Grafana

Plugings grafana: https://grafana.com/plugins 

Instalar plugin grafana: https://grafana.com/grafana/plugins/grafana-piechart-panel/installation

Hosted Grafana

Web: https://grafana.com/products/cloud/

Si no queremos instalarlo tenemos disponible un grafana en la nube gratuito para un usuario y hasta 5 dashboards. Pricing: https://grafana.com/products/cloud/#pricing

Mi grafana cloud: https://aprendiendoarduino.grafana.net/