Tabla de contenido:

Dispensador de fichas Coin-O-Matic: 11 pasos
Dispensador de fichas Coin-O-Matic: 11 pasos

Video: Dispensador de fichas Coin-O-Matic: 11 pasos

Video: Dispensador de fichas Coin-O-Matic: 11 pasos
Video: Ice-O-Matic (ICE0400HA CD40230) 505 Lb Half Size Cube Ice Machine with Hotel Dispenser 2024, Mes de julio
Anonim
Image
Image

En nuestra oficina tenemos una máquina expendedora que puede aceptar dinero real o fichas. La gerencia decidió que podíamos obtener algunos dulces gratis (dentro de los límites) para mantenernos felices y contentos con los bajos salarios que ganamos. El problema era, ¿cómo controlarías eso? La máquina expendedora pertenece a una empresa externa, por lo que las modificaciones a la máquina expendedora estaban fuera de discusión.

Ingrese al Frankenstein Coin-O-Matic, una creación de mi mente enferma. Al decidir cómo hacer esto, pensé que las etiquetas RFID serían las mejores, dar a cada empleado una etiqueta RFID y llevar un registro de cuántas veces se pasa la etiqueta RFID. Cuando se pasa la etiqueta, se dispensa una ficha para usar con la máquina expendedora (una ventilación libre). Cada vez que se pase el TAG, registre la información en una tarjeta SD. El número TAG también se carga en la "nube" usando LoraWAN. Ya he estado jugando con LoRaWAN y thethingsnetwork (TTN) con algunos sensores de temperatura y humedad, así que tenemos un Gateway TTN. El TTN Gateway es un Raspberry PI 3 con un concentrador IMST conectado a TTN.

Paso 1: Lista de materiales

  1. Algunos metacrilato de 3 mm
  2. Algunos plexiglás de 1 mm
  3. Arduino Mega
  4. Arduino Pro Mini
  5. Radio Lora RFM95
  6. Tiny RTC DS1307 Módulo I2C de reloj en tiempo real
  7. Gráfica LCD TFT en color de 2,2 "240x320 ILI9341
  8. Convertidores de nivel bidireccional de 2 x 4 canales
  9. Anillo NeoPixel 24 - LED RGB WS2812
  10. Kit de inicio RFID 13,56 MHz
  11. Módulo WiFi de la placa de prueba ESP8266 ESP12
  12. Módulo de tarjeta SD
  13. 5 x pulsadores
  14. 2 x LED tricolor
  15. Montones, montones de bridas para cables
  16. Muchos puentes de tablero
  17. Madera de 40 mm x 40 mm
  18. Módulo de relé de 2 canales 5V 10 AMP
  19. Módulo de sensor fotoeléctrico de haz de luz infrarroja de 5VDC

Paso 2: Comencé a construir una base de madera y perpex

Comenzó a construir una base de madera y perpex
Comenzó a construir una base de madera y perpex

Comenzó con la construcción de una caja para albergar todos los componentes electrónicos de Perspex de 3 mm, el Perspex y el logotipo se cortaron con una máquina CNC. La tapa frontal de la caja alberga la pantalla, los botones y algunos LED parpadeantes. Los LED son LED tricolores normales que alternan entre los colores, consulte la lista de materiales

Luego utilicé un bloque de madera de 40 mm x 40 mm para construir un lugar para el dispensador de monedas y una rampa para que cayera la ficha. El dispensador de fichas consta de 3 placas redondas Perspex, la superior e inferior son Perspex de 3 mm y la del medio que lleva la ficha es Perspex de 1 mm. La forma en que funciona es que la placa del medio gira y toma una ficha de la pila y la arrastra hasta el agujero en la placa inferior y la ficha cae en el conducto de fichas hasta las manos sucias de algún empleado hambriento que espera.

El apilador de fichas es un viejo tubo de riego que tenía por ahí y el diámetro era exactamente el mismo que el de las fichas. Perforé algunos agujeros en el tubo del rociador para que pudieras ver cuántas fichas se apilan para rellenar si es necesario. El tubo del aspersor estaba superpegado a la placa superior de Perspex.

Paso 3: el dispensador de fichas

El dispensador de fichas
El dispensador de fichas
El dispensador de fichas
El dispensador de fichas
El dispensador de fichas
El dispensador de fichas

El motor para accionar la placa intermedia es un motor síncrono de 220 V CA de…. No tengo ni idea, lo encontré en mi caja de repuestos, siempre que sea lento y fuerte. El eje se pegó a la placa central con un poco de pegamento epoxi llamado Pratex. El módulo de relé se activa y el cable vivo se conecta para hacer que el motor funcione. Perforé algunos agujeros en la placa inferior para contrarrestar la fricción, si hay alguna diferencia, no lo sé. Se cortaron 2 agujeros a ambos lados de la placa del medio para "agarrar" las fichas. El diámetro de los agujeros es un poco más grande que el diámetro de las fichas, por lo que hay cierto margen de error al agarrar las fichas.

Paso 4: Detectar si se dispensó un token

Detectar si se dispensó una ficha
Detectar si se dispensó una ficha
Detectar si se dispensó una ficha
Detectar si se dispensó una ficha

Usé un módulo de sensor fotoeléctrico para esto, no queremos excluir a un empleado, si no recibió un token después de escanear una etiqueta. ahora lo haríamos ?. El registro solo se escribe en la tarjeta SD, cuando la detección del token es exitosa, si no se detectó ningún token, la pantalla se enfurece, culpando al servicio en la empresa y que el servicio apesta.. No se escribe ningún registro en el caso en el que no hay fichas para dispensar. Pegué el fototransistor en la parte inferior de la rampa para que la ficha rompa el rayo cuando pase a través del rayo.

Paso 5: Electrónica

Electrónica
Electrónica

Arduino Mega: este es el cerebro de Coin-o-Matic, todos los sensores, etc.están conectados al Mega

Arduino Pro Mini y RFM95 Lora Radio: el Arduino Pro Mini y el Arduino Mega están conectados entre sí a través del bus serial, cuando se escanea una etiqueta, el número de etiqueta se envía en el bus serial desde Mega al Pro Mini. El Pro Mini está en un bucle todo el tiempo, tan pronto como se recibe algo en el bus serie del Pro Mini, el número de etiqueta se carga en la red de cosas (TTN) usando LoraWan. No he realizado ninguna integración sobre eso, pero el plan sería tener una instancia de AWS para almacenar y ordenar la información. Consulte el siguiente paso para obtener más información.

Tiny RTC DS1307 Módulo I2C de reloj en tiempo real: cuando el Coin-O-Matic se inicia, iniciará sesión en la red WiFi y obtendrá la hora de un servidor NTP a través del módulo WiFi de la placa de prueba ESP8266 ESP12 y luego establecerá la hora RTC en consecuencia.

Gráfica Color 2.2 TFT LCD 240x320 ILI93412 - La pantalla principal, normalmente muestra un reloj y le dará algunas palabras al usuario.

Convertidores de nivel bidireccional de 4 canales: como los pines digitales de Mega son de 5 V, necesitaba que los convertidores se comunicaran a un nivel seguro con algunos de los módulos

NeoPixel Ring 24 RGB LED WS2812 - Haz un poco de luz para aturdir y confundir al usuario

Kit de inicio RFID 13.56MHz - El lector RFID

Módulo de tarjeta SD: escriba el número de etiqueta, la fecha y la hora para cada etiqueta deslizada

Botones pulsadores: el administrador que tiene la etiqueta maestra cargará etiquetas nuevas y yo uso uno de los botones para pausar la visualización hasta que puedan copiar el número de etiqueta y registrar quién tiene la etiqueta. Los otros 4 botones están conectados pero no se utilizan en este momento

LED tricolor: más luz para aturdir y confundir a los usuarios

Montones, montones de bridas: intente ordenar todos los cables

Un montón de puentes de tablero: conecte las cosas

Módulo de relé de 2 canales 5V 10 AMP 5VDC: un relé se usa para alimentar el motor del dispensador de monedas y el otro para encender el módulo ESP8266, el programa del módulo ESP8266 también está en un bucle, tan pronto como reciba energía, lo hará inicie sesión en la red WiFi y realice una llamada de tiempo NTP. Para minimizar las llamadas de tiempo NTP, decidí encenderlo con el relé, IE activar el relé, activar el módulo ESP, el módulo ESP obtiene el tiempo y el relé apaga el módulo nuevamente … Y también hace buenos sonidos de clic

Módulo de sensor fotoeléctrico de haz de luz infrarroja: para detectar si se dispensó una ficha

Paso 6: Tablero de sensores LoRaWAN

Tablero de sensores LoRaWAN
Tablero de sensores LoRaWAN

Los archivos de diseño de Eagle están adjuntos, la placa es de mi creación, pero utilizo una empresa para producir la placa en sí. Esta placa también se puede utilizar como placa de sensor LoRAWAN, es extremadamente pequeña, ~ 37 mm x 54 mm, admite un sensor de temperatura y humedad DHT 22 o DHT 11 tal como está.

Paso 7: TTN - The Things Network

TTN - la red de cosas
TTN - la red de cosas

Hay mucha información sobre esto en

www.thethingsnetwork.org/

Básicamente, el Coin-O-Matic habla vía LoraWAN (El Arduino Pro Mini con la radio RFM95) a una pasarela (Raspberry Pi con concentrador IMST) que está conectada a TTN vía internet, desde TTN puedes hacer muchas integraciones, IE Swagger, AWS, http, etc., la imagen de arriba muestra algunos deslizamientos de etiquetas en la oficina

Paso 8: software

El software se divide en 3 partes

getNTPtime_instructables: el programa ESP8266, debe cambiar el ssid, la contraseña y ntpServerName antes de cargar. Utilizo un programador básico FTDI, conecto tierra, TX y RX. Recuerde elegir el módulo ESP en el IDE de Arduino y ordenar los pines en el ESP para ponerlo en modo de programación

Coin-O-Matic_instructables - El programa Coin-O-Matic. Esto se carga en el Arduino Mega, los cambios necesarios aquí es el número de etiqueta maestra:

byte masterCard [cardSize] = {121, 178, 151, 26};

pro_mini_instructables - El programa LoRaWAN. Esto se carga en el Pro Mini, consulte el esquema para obtener más detalles sobre cómo conectar la radio y qué PIN utilizar. La dirección del dispositivo, la clave de sesión de red y la clave de sesión de la aplicación deben cambiarse después de que se realiza el registro del dispositivo en TTN, si va a utilizar ABP

PROGMEM const estática u1_t NWKSKEY [16] = {}; s]

estática const u1_t PROGMEM APPSKEY [16] = {};

estática const u4_t DEVADDR = 0x; // <- ¡Cambie esta dirección para cada nodo!

Paso 9: Arranque

El video muestra que el relé se activa (relé 1), el módulo ESP8266 se conecta a la red WiFi, envía una señal de tiempo getNTP y obtiene la hora del servidor NTP, después de que la hora se haya actualizado correctamente, el relé se desactiva y desconecta la alimentación del ESP8266. Si algo sale mal y no se actualiza correctamente la hora, Arduino Mega se reinicia y vuelve a intentarlo. El módulo ESP8266 y el Arduino Mega están conectados entre sí a través de los puertos serie (Serial2 en el Mega), el Arduino Mega escucha una respuesta del ESP8266, el mensaje se ve así "UNX [y la marca de tiempo de la época]", Estoy en GMT + 2, así que en el código Arduino Mega, agrego GMT + 2 de la siguiente manera

time_t gmtTimeVar = newTimeVar + 7200;

rtc.adjust (DateTime (gmtTimeVar));

Paso 10: agregar / eliminar una etiqueta

Image
Image

La etiqueta maestra se escanea y la pantalla indica que esta es la etiqueta maestra. La nueva etiqueta se escanea y el número de etiqueta se muestra en la pantalla y le da al usuario tiempo para anotar el número y registrar quién tiene la nueva etiqueta. El número de etiqueta se escribirá en la base de datos tan pronto como el usuario presione el botón izquierdo. Se sigue el mismo procedimiento para eliminar una etiqueta de la base de datos.

Paso 11: Algunos videos que muestran el funcionamiento de Coin-O-Matic

Usé node-red para integrarme con Telegram, node-red tiene un módulo de integración a TTN, entonces, ¿qué sucede cuando escanea una etiqueta?

  • La etiqueta se escanea
  • txt en la tarjeta SD se lee para ver si es una etiqueta válida
  • Si la etiqueta es válida, se escribe una marca de tiempo con el número de etiqueta en un archivo txt en la tarjeta SD
  • El número de etiqueta se envía a través de LoRaWAN y Raspberry PI Gateway a la red TTN
  • Node-red se suscribe a los mensajes MQTT en la red TTN
  • Node-Red envía el número de etiqueta HEX a DEC decodificado a un archivo de script bash que se ejecuta en un servidor localmente
  • El script bash escanea un archivo txt con NÚMEROS DE ETIQUETA y NOMBRES
  • El archivo de script bash carga el mensaje en un Telegram BOT con curl que contiene el NÚMERO DE ETIQUETA y el nombre de la persona

Agradable y complejo, me encanta cómo una tarea tan simple se vuelve tan compleja

Déjame saber lo que piensas en los comentarios a continuación.

Recomendado: