A continuación se dan las soluciones a los proyectos propuestos.
Proyecto 1 – Estación meteorológica.
Enunciado
Estación meteorológica con una sonda de temperatura y pantalla LCD. Hacer que actualice continuamente la temperatura y la muestre por pantalla. Poner un botón que al pulsarlo la primera vez muestre por pantalla la máxima temperatura leída, al volver a pulsarlo muestre la temperatura mínima leída y al volver a pulsarlo muestre la temperatura actual. Para resetear los valores máximo y mínimo, pulsar durante 5 segundos el botón y muestre por pantalla “valores reseteados”.
Versión mejorada: Con el shield de ethernet conectarse a internet y mediante la API de http://openweathermap.org/ y obtener los datos de humedad y presion y mostrarlos por pantalla. Actualizar estos datos cada hora. También se pueden obtener los datos de la API de AEMET.
Información o referencias usadas
- Información sobre el uso de la sonda de temperatura: http://arduino.cc/documents/datasheets/TEMP-TMP35_36_37.pdf
- Pantalla LCD: http://arduino.cc/en/Tutorial/LiquidCrystal
- Información sobre uso de un cliente ethernet para conexión a internet: https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-arduino-2/ y https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio25-EthernetClient
- API: http://openweathermap.org/API
- WebClient: http://arduino.cc/en/Tutorial/WebClient
- Una librería: https://github.com/Benjamin3992/OpenWeatherDuino
- Datos para Logroño de http://openweathermap.org/:
Esquema de conexión
Diagrama de flujo
Solución
- https://github.com/jecrespo/Aprendiendo-Arduino-Proyectos/tree/master/Proyecto_1-Estacion_Meteorologica
- https://github.com/jecrespo/Aprendiendo-Arduino-Proyectos/tree/master/Proyecto_1-Estacion_Meteorologica_Mejorada
Proyecto 2 – Arranque y parada de motor DC controlado.
Enunciado
Basándose en los ejercicios 9 y 10 del libro del Arduino Starter Kit, añadir una rampa de arranque y otra de parada cuando se detecte el encendido y apagado. También añadir una rampa de parada y arranque cuando se detecte un cambio de sentido. Añadir un botón de parada de emergencia, que al pulsarlo, se pare el motor inmediatamente.
Información o referencias usadas
Ejemplo básico: http://diymakers.es/control-velocidad-y-sentido-de-motor-dc/
Esquema de conexión
Diagrama de flujo
Proyecto 3 – Juego de Sogatira
Enunciado
Hacer un juego con 7 leds y dos botones. El led central se ilumina y en función de quien más veces pulsa el botón el led encendido se va desplazando hacia él, hasta que gana cuando ha llegado al último led. En el inicio el led central parpadea y comienza el juego cuando se queda fijo, cada vez que se gana una posición el led parpadea y cuando gana el led final se queda parpadeando en un bucle infinito hasta que reseteo el Arduino para volver a jugar.
Información o referencias usadas
Ejemplo simulado: http://123d.circuits.io/circuits/463198-juego-sogatira
Esquema de conexión
Diagrama de flujo
Solución
Proyecto 4 – Simon
Enunciado
Hacer el juego de Simon con Arduino
Información o referencias usadas
Juego Simón: http://es.wikipedia.org/wiki/Simon_%28juego%29
Varios ejemplos:
- http://www.arduteka.com/2012/07/juego-simon-con-s4a-y-arduino/
- http://www.instructables.com/id/Arduino-Simon-Says/
Esquema de conexión
Diagrama de flujo
Solución
Proyecto 5 – Gráfica de datos de temperatura en plot.ly
Enunciado
Recoger datos de temperatura cada 5 segundos y mandarlos a la web de plot.ly para que nos los imprima en tiempo real. Será necesario conectarse a Internet y usar el Ethernet Shield.
Información o referencias usadas
API Arduino para Plot.ly: https://github.com/plotly/arduino-api
Información: http://makezine.com/2014/01/21/streaming-data-with-plotly/
Ejemplo: https://plot.ly/arduino/dht22-temperature-tutorial/
Otro ejemplo: https://plot.ly/arduino/tmp36-temperature-tutorial/
Esquema de conexión
Solución
Proyecto 6 – Gráfica de datos potenciómetro con Processing
Enunciado
Enviar los datos de voltaje leídos a través de un potenciómetro a nuestro ordenador mediante el puerto serie e imprimirlos en una gráfica mediante processing.
AVANZADO: Encender un Led al ejecutar una determinada acción sobre un programa en Processing.
En lugar de processing se puede hacer con otros lenguajes como Python o .Net para hacer los dos ejemplos anteriores.
Información o referencias usadas
Comunicar Arduino y Processing: http://playground.arduino.cc/interfacing/processing
Ejemplo: http://arduino.cc/en/Tutorial/Graph
Ejemplo Led: http://arduino.cc/en/Tutorial/PhysicalPixel
Esquema de conexión
Solución
Proyecto 8 – Comunicar dos Arduinos mediante I2C
Enunciado
Comunicar dos Arduinos para que se manden información vía I2C. Configurar uno como master para que todo lo que recoja por el puerto serie lo mande al bus I2C y el slave lo recoja y lo muestre por pantalla.
Información o referencias usadas
I2C: https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-arduino-4/
Ejemplo1: http://arduino.cc/en/Tutorial/MasterReader
Ejemplo2: http://arduino.cc/en/Tutorial/MasterWriter
Otro ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio33-I2C
Esquema de conexión
Solución
Proyecto 9 – Servidor Web embebido
Enunciado
Hacer una sencilla web embebida en Arduino usando el ethernet shield. La web estará en una tarjeta SD dentro de un fichero llamada index.html.
Información o referencias usadas
Librería Ethernet: https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-arduino-2/
Ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/blob/master/Ejercicio30-SD/Ejercicio30-SD.ino
Ejemplo: http://arduino.cc/en/pmwiki.php?n=Tutorial/WebServer
Tutorial: http://www.academia.edu/7510788/Embedded_Web_Server_using_Arduino_Ethernet_Shield
Otro tutorial: http://blog.startingelectronics.com/arduino-web-server-tutorial/
Diagrama de flujo
Solución
Proyecto 10 – Grabar datos de temperatura en una Raspberry Pi
Enunciado
Datalogger de los datos de temperatura leídos en una Raspberry Pi. Con una RPi que tenga un servidor LAMP instalado, grabar en una tabla de una BBDD MySQL los datos de temperatura que mande Arduino cada 5 segundos.
Información o referencias usadas
Ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio32-EnviaDatos
Solución
Y aquí no acaba el curso…
Recordad que el curso sigue en:
https://aprendiendoarduino.wordpress.com/
Y también en las redes sociales:
- Twitter: https://twitter.com/hashtag/aprendiendoarduino
- Comunidad google+: https://plus.google.com/communities/104107521992758374331
- Página google+: https://plus.google.com/u/0/113483615106580578460/posts
Y todas las novedades sobre Arduino, futuros eventos, cursos, etc… mediante correo electrónico.