Archivo de la categoría: Arduino Day

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:

Reunión Makers Logroño en makerspace UR-Maker

El jueves 2 de febrero de 2017 nos juntamos de una forma casi espontánea un grupo de aficionados a la impresión 3D, Arduino y Hardware Libre en general, lo que puede considerarse como el primer encuentro de makers de Logroño.

Fue un encuentro donde se dio a conocer el primer makerspace de La Rioja: el Área UR-maker de la Universidad de La Rioja y compartimos un rato de conversación sobre makers, makerspaces, impresión 3D, máquinas CNC, cortadoras laser, Arduino, ESP8266, Raspberry Pi y en general del HW libre.

En esta reunión hablamos sobre la comunidad maker de Logroño y surgieron varias iniciativas que paso a enumerar:

  • Alpha nos presentó el área UR-maker y ofreció el espacio para futuras acciones con las limitaciones que explicó en la reunión.
  • Ernesto Rodríguez habló del Think TIC donde ya se han impartido cursos y jornadas sobre impresoras 3D, Arduino y otros temas relacionados. Es otro punto de encuentro que tenemos los makers.
  • José María Labarquilla del COITIR también nos hablo del colegio de ingenieros como espacio para futuros eventos maker.
  • Juan Nieto ha creado el blog https://makerslarioja.wordpress.com/ donde ha publicado un post sobre el primer encuentro de makers.
  • José Ignacio Casis nos enseñó su trabajo con la papelera loca http://www.larioja.com/logrono/201612/18/papelera-loca-logrono-20161218180525.html y el BB-8 impreso en 3D controlado con Arduino.
  • José Ignacio Casis también nos propone sacar a la calle a los makers con una carrera de coches en la calle.
  • Para comunicar próximos eventos, novedades y acciones maker, usaremos la lista de correo de noticias de www.aprendiendoarduino.com que ya usamos como medio para reunirnos. Para darte de alta en la lista de correo ir a: http://list.aprendiendoarduino.com/mailman/listinfo/aprendiendoarduino.com.noticias
  • También podéis usar el correo de Enrique Crespo aprendiendoarduino@gmail.com para comunicar cualquier iniciativa, dudas o simplemente suscribiros a la lista de correo.

El próximo evento que haremos es el Arduino Day que aún no hay fecha para este año pero se espera que sea para principios de abril. Lo tomamos como fecha para hacer talleres, concursos y eventos en Logroño.

Espero no haberme dejado nada y sino un correo a aprendiendoarduino@gmail.com para añadir al post.

Enlaces:

Fotos:

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 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.

Proyectos de IoT con Arduino

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

Cliente Web Arduino

Arduino puede navegar y obtener datos de Internet.

Explicación: https://www.arduino.cc/en/Tutorial/WebClient

Instrucciones usadas:

Código: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio25-EthernetClient

NOTA: poner cada una una MAC y una IP diferente para que funcione. Para usar DHCP simplemente usar Ethernet.begin(mac).

También puedo obtener la fecha y hora de Internet mediante NTP: http://www.arduino.cc/en/Tutorial/UdpNtpClient

También puedo leer los datos de temperatura y humedad de aemet.es y mostrarlo por pantalla: https://github.com/jecrespo/Aprendiendo-Arduino-Proyectos/tree/master/Proyecto_1-Estacion_Meteorologica_Mejorada

Web Server embebido en Arduino

Instalar un servidor web embebido en Arduino y conectarse a Arduino a través de un navegador. El servidor muestra los valores leídos en las entradas analógicas y refresca el valor cada 5 segundos.

Explicación: http://www.arduino.cc/en/Tutorial/WebServer

Instrucciones usadas:

Código: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio26-EthernetServer

También puedo encender el built-in led desde una web embebida: https://github.com/jecrespo/Aprendiendo-Arduino/blob/master/Ejercicio27-Boton/Ejercicio27-Boton.ino

También se puede controlar los leds de un neopixel mediante una web en un Arduino Yun: https://github.com/jecrespo/NeoPixel

En este caso la web está en un servidor web del sistema operativo openWRT basado en linux y al interactuar con él la librería bridge se encarga de comunicar internamente linux con el microcontrolador del Arduino Yun.

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

NOTA: modificar el sketch de Proyecto_10-Grabar_Raspberry.ino para que grabe solo el valor de la entrada analógica y el nº de Arduino con el de vuestro puesto. Probar a grabar tanto en la Raspberry Pi como en el servidor público www.aprendiendoarduino.com en la ruta que se indique.

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

NOTA: el código de Arduino Proyecto_10-Grabar_Mensajes.ino tiene doserrores al compilar y no error al ejecutar, detectarlos y corregirlos. Veamos quién es el primero en mandar un mensaje.

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:

Más proyectos con Arduino en: https://aprendiendoarduino.wordpress.com/2015/04/16/tema-5-taller-de-proyectos-con-arduino/

Y para finalizar…

Recordad que para aprender más sobre Arduino hay muchos cursos y documentación en Internet y los cursos de http://www.aprendiendoarduino.com/.

Y también en las redes sociales:

Y todas las novedades sobre Arduino, futuros eventos, cursos, etc… mediante correo electrónico en la lista: http://list.aprendiendoarduino.com/mailman/listinfo/aprendiendoarduino.com.noticias

Proyectos

ArduinoCommunityLogo_EPS

Vamos a experimentar con Arduino y comprobar su funcionamiento. El procedimiento a seguir en cada práctica es:

  • Entender que vamos a hacer y leer la documentación de las instrucciones que se van a usar.
  • Leer el código del sketch y tratar de entender lo que hace. No es necesario entender todo al 100% pero tenemos que intentar comprender lo que hace el programa según el enunciado.
  • Copiar el sketch y cargarlo en Arduino
  • Ejecutar el sketch y abrir el monitor serie. Comprobar cómo funciona.
  • Hacer pequeños cambios en el sketch para cambiar el comportamiento y comprobar si cambia el comportamiento según lo esperado.

Leer una entrada digital

Leer el estado de la entrada digital 2 (pin 2) y mandar por el puerto serie su estado.

Explicación: http://www.arduino.cc/en/Tutorial/DigitalReadSerial

Instrucciones usadas:

Código: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio04-DigitalReadSerial

Tabla ASCII

Escribir por el puerto serie la tabla ASCII con el carácter y su valor en decimal, hexadecimal, octal y binario.

Explicación: http://www.arduino.cc/en/Tutorial/ASCIITable y tabla ascii: http://www.asciitable.com/

Instrucciones usadas:

Código: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio06-ASCII

Regular la intensidad del built-in led

Regular la intensidad del led en función del valor que escribamos desde el monitor serie. Arduino va a leer los datos que recibe del puerto serie. A mayor valor más intensidad.

Instrucciones usadas:

Código ejemplo sencillo: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio07-dimmer

Instrucciones usadas:

Código mejorado: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio07b-dimmer_mejorado

Leer una entrada analógica

Leer de una entrada analógica y sacar por el puerto serie el valor leído y también el voltaje que está leyendo. Luego escribir en el built-in led el valor correspondiente a lo leído.

Explicación: http://www.arduino.cc/en/Tutorial/AnalogReadSerial

Instrucciones usadas:

Código: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio11-Analog

Blink sin delay

Hacer el programa blink pero sin usar la instrucción delay() ya que su uso supone que no es posible hacer otra cosa durante el tiempo que dura el delay.

Explicación y código: http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

Instrucciones usadas:

Otra opción usando librerías: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio19-BlinkSinDelay

Análisis de caracteres

Otro ejemplo más de lectura puerto serie: http://www.arduino.cc/en/Tutorial/CharacterAnalysis

Memoria Arduino

Medir el tiempo en milisegundos que tarda Arduino en leer de la memoria RAM un texto grande y luego escribirlo por el puerto serie y luego hacer lo mismo pero el texto está guardado en la memoria flash.

Al compilar fijarse en lo que ocupa la memoria dinámica.

Ver la macro F: https://www.arduino.cc/en/Reference/PROGMEM

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

Más información sobre la memoria de Arduino en: https://aprendiendoarduino.wordpress.com/2015/03/29/memoria-flash-sram-y-eeprom/

EEPROM

Leer y borrar la EEPROM de nuestro Arduino.

Leer: https://www.arduino.cc/en/Reference/EEPROM

Código:

Más ejemplos de Arduino en los built-examples que están en el IDE y están documentados en: http://www.arduino.cc/en/Tutorial/BuiltInExamples

Uso de Arduino en I+D

Veamos un ejemplo de uso de Arduino en una empresa riojana para desarrollo de nuevos productos. Artículos aparecidos en prensa:

Si analizamos los dispositivos que se ven en la imagen:

Presentación Taller Arduino Day 2016

GENUINODAY_banner_720x300

Toda la documentación está liberada con licencia Creative Commons: Reconocimiento – No Comercial – Compartir Igual (by-nc-sa): No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.

Aprendiendo Arduino by Enrique Crespo is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.