Archivo de la categoría: IoT

Segunda Reunión Makers Logroño. Preparando el Arduino Day

El jueves 16 febrero nos volvimos a reunir los makers en el UR-Maker, el makerspace de la Universidad de La Rioja con el objetivo de hacer propuestas para el próximo Arduino Day que se celebrará el 1 de Abril.

Estas fueron las propuestas provisionales:

  • Alpha: Charla “Makerspaces. Experiencia Montando un Makerspace” en UR-Maker
  • José Ignacio: Taller de robots sigue-líneas (Lugar por definir)
  • Julio: Charla “Experiencia desde cero con Arduino” en COITIR
  • Vicente: Charla “Experiencia montando una impresora 3D“en COITIR
  • Juan: Taller para niños de Impresión 3D y makey-makey (Lugar por definir)
  • Enrique: Charla de aprox. 1 hora “IoT. Conectando Dispositivos con Arduino” en Think TIC
  • Enrique: Taller de aprox. 3 horas “Taller IoT. Conectando Dispositivos con Arduino” en Think TIC
  • Web de la charla y taller IoT Arduino de Enrique: http://www.aprendiendoarduino.com/arduino-day-2017/
  • Juan: Experiencia piloto 🙂 de las Primeras Jornadas del Arduino y el Chuletón en la sociedad gastronómica la trastienda. Será una comida junto con otras acciones por definir.

A media que se vayan cerrando los eventos iremos informando a través de las redes sociales y de la lista de correo. El medio de comunicación que seguiremos usando es la lista de correo de noticias de www.aprendiendoarduino.com

Lista de correo, apuntarse en http://list.aprendiendoarduino.com/mailman/listinfo/aprendiendoarduino.com.noticias o mandar un correo a aprendiendoarduino@gmail.com

Email contacto de Enrique Crespo: aprendiendoarduino@gmail.com

Twitter Enrique Crespo: @jecrespom

Juan también ha publicado en el blog un resumen de la reunión: https://makerslarioja.wordpress.com/2017/02/18/resumen-2-encuentro-maker-en-la-universidad-de-la-rioja/

Fotos:

Ejemplos Prácticos

Cronómetro para Charlas

Cronómetro que indica mediante leds los minutos transcurridos y señala mediante colores el tiempo de cada parte programada según sea programada.

Código: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Otros/Neopixel_contador

Hardware usado:

Monitorización de Temperatura

Visualización en tiempo real de datos de temperatura en diversos lugares:

Hardware usado:

Envío de mensajes y SMSs en Tiempo Real

Enviar desde Arduino mensajes a una plataforma de visualización de mensajes en tiempo real. Arduino comunica alertas, estados, etc… que sea programado.

Enviar esos mismos mensajes por SMS a un móvil de forma que arduino deja un mensaje pendiente de enviar en la plataforma y otro Arduino remoto se encarga de revisar mensajes pendientes y los envía por SMS.

Hardware usado:

Obtención de datos agroclimáticos (Open Data)

En este ejemplo se van a obtener los datos agroclimáticos ofrecidos por el Servicio de Información Agroclimática de La Rioja (SIAR) para la toma de decisiones locales con un Arduino en función de esos datos. De esta forma podría, por ejemplo, podría programar riegos en un cultivo mediante la apertura de válvulas o puesta en marcha de bombas de regadío sin necesidad de instalar mis propios sensores. Estos además del ahorro económico, supone poder crear un sistema más sencillo y que consuma menos energía al no tener que alimentar los sensores, algo importante en sistemas instalados en el campo donde no hay acceso a la red eléctrica. Por otra se trata de datos de calidad ya validados.

Estos datos también se pueden combinar con los datos locales obtenidos por los sensores de Arduino, ya sea localmente o una una base de datos propia.

Más información sobre los datos publicados: https://seminariomirianandres.unirioja.es//wp-content/uploads/2016/12/si_ma_20161220.pdf

Web del servicio http://apisiar.larioja.org/help. Este servicio se encuentra aún en pruebas y para usarlo es necesario estar registrado.

Características de los datos:

  • Datos cada media hora. 21 parámetros
  • Parámetros climáticos: Tª; HR; Viento; Radiación; Lluvia; Tª suelo; Humectación
  • Datos en tiempo real. Comunicación remota vía GPRS
  • Datos diarios, mensuales

Código: https://github.com/jecrespo/apisiar_arduino

Hardware usado:

De la misma forma podrían obtenerse datos meteorológicos de AEMET (Agencia Estatal de Meteorología).

Datos abiertos AEMET: http://www.aemet.es/es/datos_abiertos

Instrucciones: https://opendata.aemet.es/centrodedescargas/inicio, es necesario solicitar una API KEY y esta tiene una caducidad de 90 días.

Ejemplo en HTTP:

GET /opendata/api/valores/climatologicos/inventarioestaciones/estaciones/?api_key=jyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqbW9udGVyb2dAYWVtZXQuZXMiLCJqdGkiOiI3NDRiYmVhMy02NDEyLTQxYWMtYmYzOC01MjhlZWJlM2FhMWEiLCJleHAiOjE0NzUwNTg3ODcsImlzcyI6IkFFTUVUIiwiaWF0IjoxNDc0NjI2Nzg3LCJ1c2VySWQiOiI3NDRiYmVhMy02NDEyLTQxYWMtYmYzOC01MjhlZWJlM2FhMWEiLCJyb2xlIjoiIn0.xh3LstTlsP9h5cxz3TLmYF4uJwhOKzA0B6-vH8lPGGw HTTP/1.1
Host: opendata.aemet.es
Cache-Control: no-cache

Códigos de municipio: http://www.ine.es/daco/daco42/codmun/codmunmapa.htm

Documentación: https://opendata.aemet.es/dist/index.html

De Arduino al Procesado de Datos Masivo

Arduino es una herramienta perfecta para la recogida de todo tipo de datos en cualquier lugar y condición, comprobación, pre-procesado y normalización de los datos y finalmente transporte de esos datos de una forma rápida y segura al lugar donde se van a almacenar para posteriormente ser procesados y analizados.

Arduino es capaz de recoger datos, tratarlos en tiempo real (limitado por su capacidad de procesamiento) y comunicarse con el sistema de almacenamiento de datos.

Al ser Arduino un elemento barato y con muchas capacidades de comunicación es posible usarlo en la captura de datos distribuidos y desplegar tantos sensores como sea necesario creando una red de sensores fácilmente escalable.

Y obtener datos distribuidos para visualizarlos y analizarlos:

La adquisición de datos (DAQ) es el proceso de medir un fenómeno eléctrico o físico como voltaje, corriente, temperatura, presión o sonido. Un sistema DAQ consiste de sensores, hardware de medidas DAQ y un PC donde almacenar y tratar los datos. Comparados con los sistemas de medidas tradicionales, los sistemas DAQ basados en PC aprovechan la potencia del procesamiento, la productividad, la visualización y las habilidades de conectividad de los PCs estándares en la industria proporcionando una solución de medidas más potente, flexible y rentable.

Un sistema DAQ básico sería un Arduino que recoge los datos, los procesa y los guarda en una tarjeta SD o un PC conectado, pero con Arduino podemos ir más allá y crear una red de sistemas DAQ interconectados que procesan los datos que capturan y los mandan a una base de datos o repositorio único o distribuido.

Elementos que intervienen

A la hora de recoger datos para su procesamiento debemos responder estas preguntas:

  • ¿Qué quieres medir? – Sensores
  • ¿Cómo lo quieres conectar? – Comunicaciones /Protocolos
  • ¿Donde vas a almacenar los datos? – Plataformas
  • ¿Qué quieres hacer con los datos? – Herramientas de procesado

Todo esto está relacionado con el denominado Internet de las Cosas (IoT).

Elementos que intervienen:

  • Protocolos de comunicación, lenguaje para comunicar el HW y el SW. HTTP, fiware, MQTT, API REST,…

  • Plataformas Software, almacenar y tratar los datos recogidos por nuestros sensores. Pueden ser plataformas de terceros o plataformas propias desarrolladas por nosotros o simplemente guardar en BBDD. Por ejemplo: Carriots, Thingspeak, Temboo, Thinger, etc…
    Además todas estas plataformas SW que están en la nube, deben estar soportadas por un HW de servidores, unas BBDD de gran capacidad y una infraestructura segura que los hospede.
  • Servicios, son los servicios que ofrecen las plataformas como la visualización de los datos recogidos, análisis de los datos, envío de avisos cuando se detecte un evento, interconexión con otras plataformas, etc…
    Servicios ofrecidos por la plataforma carriots: https://www.carriots.com/que-es-carriots

A modo de resumen, estos son los elementos:

Sensor — MCU — Comunicación — Protocolo — Plataforma — Servicios

Uno de los retos del IoT es mandar datos de cualquier sensor a través de cualquier protocolo a cualquier plataforma de forma inalámbrica y usando la menor energía posible (baterías) y todo esto mediante una comunicación segura (cifrada).

Plataformas

Podemos usar de forma gratuita diversas plataformas para conectar nuestro Arduino con ellas y usarlas para mostrar datos, analizar los datos, responder a ciertos eventos, realizar interacciones con Arduino, etc…

Algunas ejemplos de plataformas son:

IoT con Arduino

Internet de las cosas (en inglés Internet of things, abreviado IoT) es un concepto que se refiere a la interconexión digital de objetos cotidianos con Internet.

Definición de wikipedia: https://es.wikipedia.org/wiki/Internet_de_las_cosas

Arduino es un elemento que nos permite de forma sencilla y económica conectar cualquier cosa a Internet. Con un Arduino y un sencillo módulo ethernet o wifi podemos conectar a Internet sensores para informar, controlar motores o bombillas desde cualquier parte del mundo o mandar un SMS o email cada vez que se abra la puerta de casa.

Como afecta IoT a nuestro dia a dia: http://socialgeek.co/tecnologia/8-formas-que-the-internet-of-things-impactara-dia-dia

IoT en 5 minutos con Arduino: http://hackaday.com/2016/01/08/internet-of-things-in-five-minutes/

Aplicaciones de IoT: https://temboo.com/iot-applications

Temboo es una plataforma de IoT que nos permite conectar fácilmente mediante una API un Arduino con Internet, mostrar los datos recogidos e interactuar con ellos desde un navegador web.

Una visión del IoT aplicado a la industria es lo denominado como Industria 4.0 o Industria conectada o IIoT que deriva del concepto de M2M (machine to machine) que se refiere al intercambio de información o comunicación en formato de datos entre dos máquinas remotas sin necesidad de conexión a Internet sino que puede ser en una red privada y crear una industria inteligente donde todos los elementos están interconectados y comparten los datos.

Definiciones de wikipedia:

Diferencias entre IoT y M2M: https://www.pubnub.com/blog/2015-01-02-iot-vs-m2m-understanding-difference/

Telefónica y IoT: http://www.thinkingthings.telefonica.com/

El coche autónomo, en el que trabajan grupos como Google, BMW, Volvo o Tesla, es toda una proeza de la robótica.La conducción autónoma se basa en las comunicaciones máquina a máquina (M2M), por las que los vehículos pueden intercomunicarse con las señales, los semáforos y los otros automóviles. Todo esto también tiene mucho que ver con las smart cities.

Elementos que intervienen en el IoT

Explicación gráfica de los elementos necesarios en IoT: http://www.libelium.com/products/meshlium/wsn/

  • Qué quieres medir?
  • Cómo lo quieres conectar?
  • Qué quieres hacer con los datos?

Elementos en IoT:

  • Plataformas Software, para tratar los datos recogidos por nuestros sensores y almacenarlos. Pueden ser plataformas de terceros o plataformas propias desarrolladas por nosotros o simplemente guardar en BBDD propias. Por ejemplo: Carriots, Thingspeak, Temboo, Thinger, etc…
    Además todas estas plataformas SW que están en la nube, deben estar soportadas por un HW de servidores, unas BBDD de gran capacidad y una infraestructura segura que los hospede.
  • Servicios, son los servicios que ofrecen las plataformas como mostrar los datos recogidos, mandar avisos cuando se detecte un evento o la interconexión con otras plataformas o simplemente. Servicios ofrecidos por la plataforma carriots: https://www.carriots.com/que-es-carriots

A modo de resumen, estos son los elementos en el IoT

Sensor — MCU — Comunicación — Protocolo — Plataforma — Servicios

Uno de los retos del IoT es mandar datos de cualquier sensor a través de cualquier protocolo a cualquier plataforma de forma inalámbrica y usando la menor energía posible (baterías) y todo esto mediante una comunicación segura.

IoT con Arduino

Ahora vamos a conectar Arduino a Internet o a cualquier otro tipo de red, es este caso usaremos ethernet y WiFi.

Webserver con Ajax

Mediante Ajax podemos actualizar los datos de la web embebida en Arduino sin necesidad de cargar toda la web, sino solo mandando los datos actualizados, economizando los datos mandados a través de la red.

Ajax:

Ejemplo del webserver anterior que muestra los datos de las entradas analógicas pero con Ajax.

Código: https://github.com/jecrespo/Aprendiendo-Arduino-Proyectos/tree/master/Proyecto_9-Servidor_Web_%20Embebido/EthernetServer-Ajax

Ejemplo avanzado de regulador de encendido con ajax, ejercicio 42: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio42-Ajax

Grabar datos de Arduino en un Ordenador (datalogger)

Con Arduino conectado a una red, se pueden recoger los datos (datalogger) y mandarlos a un servidor (p.e. una Raspberry Pi) y guardarlos en una Base de Datos. Con estos datos almacenados podemos mostrarlos, analizarlos, etc…

Grabar Datos leídos por Arduino en la entrada analógica A0 y grabarlos en una BBDD dentro de una Raspberry Pi o de un servidor público.

Arduino llama a un servicio (p.e. en PHP) pasándole las variables que quiero almacenar y ese servicio se encarga de grabar en la BBDD que puede estar en el mismo servidor.

Métodos POST y GET de HTTP: http://www.w3schools.com/tags/ref_httpmethods.asp

Código: https://github.com/jecrespo/Aprendiendo-Arduino-Proyectos/tree/master/Proyecto_10-Grabar_Raspberry

BBDD: https://qvm602.aprendiendoarduino.com o IP Raspberry Pi

Mandar mensajes de Arduino y visualizarlos en tiempo real

Arduino solicita un nombre y un mensaje que escribimos en el puerto serie y lo manda a un servidor. Desde el servidor vemos los mensajes en tiempo real. Por ejemplo serviría para enviar alarmas a un sistema de monitorización cuando Arduino detecta un evento (pulsar un botón, abrir una puerta, etc…).

Visualizar los mensajes: http://www.aprendiendoarduino.com/servicios/ o IP Raspberry Pi

Código: https://github.com/jecrespo/Aprendiendo-Arduino-Proyectos/tree/master/Proyecto_10-Grabar_Mensajes

Uso de plataformas de IoT con Arduino

Podemos usar de forma gratuita diversas plataformas para conectar nuestro Arduino con ellas y usarlas para mostrar datos, responder a ciertos eventos, realizar acciones, etc…

Algunas plataformas existentes son:

Ejercicios IoT

Plataforma Aprendiendoarduino

Disponemos de una plataforma sencilla de IoT en http://www.aprendiendoarduino.com/servicios/

Desde ella podemos:

El código de arduino para usar cada uno de ellos es:

Todo el código de la plataforma y Arduino en: https://github.com/jecrespo/aprendiendoarduino-servicios

Conexión para enviar datos de temperatura:

Datasheet sonda temperatura: https://www.arduino.cc/en/uploads/Main/TemperatureSensor.pdf

Thingspeak

Mandar datos de temperatura a una plataforma pública como https://thingspeak.com/

Código: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio65-Thingspeak_DHCP

ESP8266

Hacer un sketch para ESP8266 que mande un mensaje de alarma o un SMS cuando se ponga a masa el GPIO2 a masa y mande la recuperación al volver a leer HIGH.

Arduino y IoT

Que es el IoT

Internet de las cosas (en inglés Internet of things, abreviado IoT) es un concepto que se refiere a la interconexión digital de objetos cotidianos con Internet.

Definición de wikipedia: https://es.wikipedia.org/wiki/Internet_de_las_cosas

Arduino es un elemento que nos permite de forma sencilla y económica conectar cualquier cosa a Internet. Con un Arduino y un sencillo módulo ethernet o wifi podemos conectar a Internet sensores para informar, controlar motores o bombillas desde cualquier parte del mundo o mandar un SMS o email cada vez que se abra la puerta de casa.

Como afecta IoT a nuestro dia a dia: http://socialgeek.co/tecnologia/8-formas-que-the-internet-of-things-impactara-dia-dia

IoT en 5 minutos con Arduino: http://hackaday.com/2016/01/08/internet-of-things-in-five-minutes/

Aplicaciones de IoT: https://temboo.com/iot-applications

Temboo es una plataforma de IoT que nos permite conectar fácilmente mediante una API un Arduino con Internet, mostrar los datos recogidos e interactuar con ellos desde un navegador web.

Una visión del IoT aplicado a la industria es lo denominado como Industria 4.0 o Industria conectada o IIoT que deriva del concepto de M2M (machine to machine) que se refiere al intercambio de información o comunicación en formato de datos entre dos máquinas remotas sin necesidad de conexión a Internet sino que puede ser en una red privada y crear una industria inteligente donde todos los elementos están interconectados y comparten los datos.

Definiciones de wikipedia:

Diferencias entre IoT y M2M: https://www.pubnub.com/blog/2015-01-02-iot-vs-m2m-understanding-difference/

Telefónica y IoT: http://www.thinkingthings.telefonica.com/

El coche autónomo, en el que trabajan grupos como Google, BMW, Volvo o Tesla, es toda una proeza de la robótica.La conducción autónoma se basa en las comunicaciones máquina a máquina (M2M), por las que los vehículos pueden intercomunicarse con las señales, los semáforos y los otros automóviles.

Todo esto también tiene mucho que ver con las smart cities.

Elementos que intervienen en el IoT

Explicación para conectar sensores a la nube que son los elementos necesarios en IoT: http://www.libelium.com/products/meshlium/wsn/

  • Qué quieres medir?
  • Cómo lo quieres conectar?
  • Qué quieres hacer con los datos?

Elementos en IoT:

  • Plataformas Software, para tratar los datos recogidos por nuestros sensores y almacenarlos. Pueden ser plataformas de terceros o plataformas propias desarrolladas por nosotros o simplemente guardar en BBDD propias. Por ejemplo: Carriots, Thingspeak, Temboo, Thinger, etc…
    Además todas estas plataformas SW que están en la nube, deben estar soportadas por un HW de servidores, unas BBDD de gran capacidad y una infraestructura segura que los hospede.
  • Servicios, son los servicios que ofrecen las plataformas como mostrar los datos recogidos, mandar avisos cuando se detecte un evento o la interconexión con otras plataformas o simplemente. Servicios ofrecidos por la plataforma carriots: https://www.carriots.com/que-es-carriots

A modo de resumen, estos son los elementos en el IoT

Sensor — MCU — Comunicación — Protocolo — Plataforma — Servicios

Uno de los retos del IoT es mandar datos de cualquier sensor a través de cualquier protocolo a cualquier plataforma de forma inalámbrica y usando la menor energía posible (baterías) y todo esto mediante una comunicación segura (cifrada).

Uso de plataformas de IoT con Arduino

Podemos usar de forma gratuita diversas plataformas para conectar nuestro Arduino con ellas y usarlas para mostrar datos, responder a ciertos eventos, realizar acciones, etc…

Algunas plataformas existentes son: