Hucha con lector NFC
Autores
- Natalia Gómez García
- Álvaro Fernández López
- Andrea Luengo Zazo
Índice
- Introducción
- Materiales
- Funcionamiento
- Montaje
- Problemas con el proyecto
- Código
- Conclusión
Introducción
Este proyecto se trata de la creación de una hucha con lector NFC, la cual, cuenta las monedas e indica el valor total. Se colocan las monedas sobre un raíl por donde se deslizan hasta caer por un agujero concreto, el cual, depende del tipo de moneda que se eche. Estas monedas caerán y serán detectadas por un sensor, el cual sumará el valor de la moneda al valor total y se verá reflejado en la pantalla.
Además, si tienes una tarjeta adecuada, podrás abrir una puerta para sacar un cajón donde estarán todas las monedas que se han ido cayendo por los agujeros. Podrás retirar el dinero, cerrar la puerta con la misma tarjeta y resetear la cuenta de las monedas pulsando un botón.
Materiales
Sensor Infrarrojo TCRT5000 | 10,49 € |
Botón | 1,80 € |
Micro servo 99 | 6,99 € |
Lector de tarjetas NFC RFID RC522 | 6,59 € |
Display LCD con módulo I2C | 8,99 € |
Cableado | 9,98 € |
Placa arduino Mega 2560 | 20,79 € |
Filamento PLA de impresora 3D | 15 € /kg –> 0,30€ |
Cartón pluma A3 | 5,60 € |
Protoboard | 7,99 € |
La mayor parte del material usado no ha sido necesario comprarlo ya que, o bien venía en el kit que se nos proporcionaba para realizar este proyecto o algunos de los miembros del equipo tenían el material en su casa.
El material que sí hemos comprado esta marcado. El coste total del proyecto ha sido de 16,09 €.
Funcionamiento
En primer lugar, echamos una moneda por el carril:
Se puede observar como el valor de la moneda se añade y aparece en la pantalla LCD
Si deseamos retirar las monedas, debemos pasar una tarjeta que esté identificada para poder desbloquear la puerta y sacar el cajón con las monedas:
Si pasamos una tarjeta o token no identificado, tendremos un mensaje de información en la pantalla de que la puerta no se abre ya que no se reconoce al usuario.
Al sacar el dinero del cajón, podemos decidir si reiniciar la cuenta de dinero con un botón:
Para cerrar la puerta, debemos volver a pasar la tarjeta identificada para así volver a bloquearla:
Montaje
En primer lugar, diseñamos con el programa 3D (3D builder) un primer prototipo del carril por donde irían las monedas. Realizamos pruebas para verificar el prototipo, y como tenía algún fallo, lo repetimos corrigiendo dichos fallos. A continuación diseñamos e imprimimos la estructura donde iría colocada la pantalla y lo juntamos con la parte del carril donde se deslizan las monedas.
Tras tener el diseño hecho e impreso, se ha usado cartón pluma para hacer las paredes. Comenzamos a pegar todas las paredes para tener la estructura de la hucha usando una pistola de silicona caliente. Además, dejamos la parte trasera abierta para colocar todos los componentes necesarios, aunque para el resultado final, esta parte la taparemos usando otro trozo de cartón pluma.
También se recortó un rectángulo en la pared frontal para hacer una puerta. Se puso un trozo de cartón pluma más grande para tapar el agujero, simulando una puerta y, usando piezas de Lego, se creó un pomo para poder quitar la puerta. Además también se hizo un cajón el cual, al tirar de la puerta, este saliese y aquí se encontrarán todas las monedas que se han tirado por el carril.
En cuanto al montaje de los componentes, para hacer las pruebas se usó una protoboard, pero para realizar el trabajo final, se usó un soldador para poder soldar todos los cables y que todo estuviese más ordenado y no tener problemas con cables sueltos y falsos contactos.
Comenzamos conectando los 8 sensores infrarrojos, uno a cada pin, con su alimentación necesaria. Los sensores comienzan en el pin 24 hasta el 38 usando los pines pares por comodidad.
El lector NFC está conectado a los pines por defecto del Arduino, que son el 9, 50, 51, 52 y 53, además de la alimentación, que en este caso usa 3,3V en vez de 5V. Programamos la tarjeta para que funcionase y el token para que no funcionase y así poder mostrar que si pasas la tarjeta/token válido se podrá abrir la puerta y sacar el cajón con las monedas.
Para disminuir la cantidad de pines que se usan en la pantalla, se ha colocado un módulo I2C. Este módulo usa 2 líneas para enviar información y 2 para recibir información. Tras esto, conectamos la pantalla a los pines que vienen definidos en el Arduino Mega para la comunicación con un módulo I2C, que son los pines 20 y 21. Los otros dos, se usan para alimentación.
Para el servo se ha colocado el cable de control en el pin 49 y los otros dos cables son para la alimentación. Este servo se usa para bloquear el cajón ya que, si no has pasado una tarjeta válida, no podrás sacar el cajón con las monedas.
Por último, se ha añadido un botón en la parte superior, cerca del carril de las monedas que reinicia el contador de dinero. Se ha conectado en el pin 11 y se le ha puesto la alimentación necesaria, además de una resistencia de 1K.
Problemas con el proyecto
- Sensores: Al principio los sensores no funcionaban correctamente ya que no detectaban las monedas al caer. Lo que se hizo fue regular el potenciómetro que tienen cada uno de los sensores infrarrojos en la parte posterior para así aumentar la distancia de detección. Como no terminaba de funcionar bien, intentamos cambiar el código. Al principio teníamos muchos delays y muchas impresiones por pantalla para hacer las pruebas lo cual hacía que el código fuese un poco más lento de lo esperado. Lo que se hizo fue reducir dichas impresiones por pantalla para que fuese un poco más rápido.
- Botón de reset: Al principio el botón no funcionaba. Lo que hicimos fue cambiarlo y programarlo de diferentes formas hasta que comprobamos que si detectaba el botón pero no reseteaba el dinero. Cambiamos el código, la forma en la que estaba conectado al circuito y por último, le cambiamos la resistencia de 300 Ω a una mayor, de 1K Ω.
- Falta de pines: Al principio pensamos que los pines dados por la placa de Arduino Uno eran suficientes para todos los componentes que teníamos que utilizar. Al avanzar con el proyecto, nos dimos cuenta que nos faltaban unos cuantos pines por lo que, se optó por cambiar de placa de Arduino. Usamos finalmente un Arduino Mega 2560.
- Cambio de placa: Con el cambio de placa, el código que antes funcionaba ya no lo hacía. Nos dimos cuenta de que algunos pines que estaban definidos por defecto, como la comunicación con el bus I2C, no eran los mismos pines en una placa Arduino que en otra. Tuvimos que buscar por Internet cuales eran los pines por defecto para el lector NFC y para la pantalla con el módulo I2C y cambiarlas tanto en el código como en la conexión con los cables.
Código
Conclusión
En conclusión, creemos que este proyecto nos ha ayudado a entender mejor la forma de trabajar con Arduino y componentes electrónicos de una manera bastante incentiva al tener que pensar y crear nosotros un proyecto de Arduino. En cuanto a nuestra hucha, hemos conseguido nuestros objetivos principales que era crear la hucha, que detectara bien las monedas, que el mecanismo de seguridad que, es el lector NFC y la tarjeta programada, funcionaran correctamente y que se pudiera usar de una manera cotidiana.
Nos ha parecido un trabajo en grupo muy divertido para practicar tanto con componentes para crear el hardware del proyecto como la programación de estos mediante una placa Arduino.