Sommario:

Distributore di gettoni Coin-O-Matic: 11 passaggi
Distributore di gettoni Coin-O-Matic: 11 passaggi

Video: Distributore di gettoni Coin-O-Matic: 11 passaggi

Video: Distributore di gettoni Coin-O-Matic: 11 passaggi
Video: MATRIX RENDERING: Il nostro NUOVO GIOCO DI RUOLO - "Roll & Movie"⎟ Slim Dogs LIVE 2024, Luglio
Anonim
Image
Image

Presso la nostra sede disponiamo di un distributore automatico che può accettare sia soldi veri che gettoni. La direzione ha deciso che avremmo potuto ottenere dei dolci gratuiti (entro limiti) per renderci felici e contenti dei bassi stipendi che guadagniamo. Il problema era, come lo avresti controllato? Il distributore automatico appartiene a un'azienda esterna, quindi le modifiche al distributore erano fuori discussione.

Entra nel Frankenstein Coin-O-Matic, una creazione della mia mente malata. Decidendo come farlo, ho pensato che i tag RFID sarebbero stati i migliori, dare a ogni dipendente un tag RFID e tenere traccia di quante volte il tag RFID viene strisciato. Quando il tag viene strisciato, viene erogato un gettone da utilizzare con il distributore automatico (uno sfogo libero). Ogni volta che il TAG viene strisciato, registra le informazioni su una scheda SD. Il numero di TAG viene anche caricato sul "cloud" utilizzando LoraWAN. Ho già giocato con LoRaWAN e thethingsnetwork (TTN) con alcuni sensori di temperatura e umidità, quindi abbiamo un gateway TTN. Il gateway TTN è un Raspberry PI 3 con un concentratore IMST connesso a TTN.

Passaggio 1: Distinta base

  1. Perspex da 3 mm
  2. Perspex da 1 mm
  3. Arduino Mega
  4. Arduino Pro Mini
  5. RFM95 Lora Radio
  6. Piccolo modulo I2C dell'orologio in tempo reale RTC DS1307
  7. LCD grafico a colori TFT da 2,2 pollici 240x320 ILI9341
  8. Convertitori di livello bidirezionali a 2 x 4 canali
  9. NeoPixel Ring 24 - LED RGB WS2812
  10. Kit di avvio RFID 13,56 MHz
  11. Modulo WiFi scheda di prova ESP8266 ESP12
  12. Modulo scheda SD
  13. 5 x pulsanti
  14. 2 x LED a tre colori
  15. Un sacco di fascette per cavi
  16. Un sacco di ponticelli breadboard
  17. legno 40mm x 40mm
  18. Modulo relè a 2 canali 5V 10 AMP
  19. Modulo sensore fotoelettrico a raggio di luce a infrarossi 5VDC

Passaggio 2: inizia a costruire una base in legno e perpex

Iniziato a costruire una base in legno e perpex
Iniziato a costruire una base in legno e perpex

Iniziato con la costruzione di una scatola per ospitare tutta l'elettronica in Perspex da 3 mm, il Perspex e il logo sono stati tagliati utilizzando una macchina CNC. Il coperchio anteriore della scatola ospita lo schermo, i pulsanti e alcuni LED lampeggianti. I LED sono normali LED tricolore che alternano i colori, vedere BOM

Ho quindi usato un blocco di legno da 40 mm x 40 mm per costruire uno spazio per il distributore di monete e uno scivolo in cui far cadere il gettone. Il distributore di gettoni è composto da 3 piastre rotonde in perspex, quella superiore e quella inferiore sono in perspex da 3 mm e quella centrale che porta il gettone è in perspex da 1 mm. Il modo in cui funziona è che il piatto centrale si gira e prende un gettone dalla pila e lo trascina nel foro nel piatto inferiore e il gettone cade nello scivolo dei gettoni nelle mani sporche di un impiegato affamato.

L'impilatore di gettoni è un vecchio tubo dell'irrigatore che avevo in giro e il diametro era esattamente lo stesso dei gettoni. Ho praticato alcuni fori nel tubo dell'irrigatore in modo da poter vedere quanti gettoni sono impilati per la ricarica, se necessario. Il tubo dell'irrigatore è stato super incollato alla piastra superiore in Perspex.

Passaggio 3: il distributore di gettoni

Il distributore di gettoni
Il distributore di gettoni
Il distributore di gettoni
Il distributore di gettoni
Il distributore di gettoni
Il distributore di gettoni

Il motore per azionare la piastra centrale è un motore sincrono a 220 V CA di …. Non ne ho idea, l'ho trovato nella mia scatola dei ricambi, purché sia lento e forte. L'asta è stata incollata alla piastra centrale con una colla epossidica chiamata Pratex. Il modulo relè è attivato e il filo sotto tensione è collegato per far funzionare il motore. Ho praticato dei fori nella piastra inferiore per contrastare l'attrito, se fa la differenza, non lo so. Sono stati praticati 2 fori su entrambi i lati della piastra centrale per "afferrare" i gettoni. Il diametro dei fori è appena un po' più grande del diametro dei gettoni, quindi c'è un margine di errore quando si afferrano i gettoni.

Passaggio 4: rilevare se è stato erogato un token

Rilevamento dell'erogazione di un token
Rilevamento dell'erogazione di un token
Rilevamento dell'erogazione di un token
Rilevamento dell'erogazione di un token

Ho usato un modulo sensore fotoelettrico per questo, non vogliamo ostracizzare un dipendente, se non ha ricevuto un token dopo aver scansionato un tag. ora dovremmo?. Il record viene scritto solo sulla scheda SD, quando il rilevamento del token ha esito positivo, se non è stato rilevato alcun token, il display va su tutte le furie, incolpando il servizio in azienda e che il servizio fa schifo.. Nessun record è scritto in il caso in cui non ci siano gettoni da erogare. Ho incollato il fototransistor sul fondo dello scivolo in modo che il gettone spezzi il raggio quando passa attraverso il raggio

Passaggio 5: elettronica

Elettronica
Elettronica

Arduino Mega - Questo è il cervello del Coin-o-Matic, tutti i sensori ecc. sono collegati al Mega

Arduino Pro Mini e RFM95 Lora Radio - L'Arduino Pro Mini e l'Arduino Mega sono collegati tra loro tramite il bus seriale, quando viene scansionato un tag, il numero del tag viene inviato sul bus seriale dal Mega al Pro Mini. Il Pro Mini è sempre in loop, non appena viene ricevuto qualcosa sul bus seriale del Pro Mini, il numero di tag viene caricato su thethingsnetwork (TTN) utilizzando LoraWan. Non ho fatto alcuna integrazione su questo, ma il piano sarebbe avere un'istanza AWS per archiviare e ordinare le informazioni. Vedere il passaggio successivo per ulteriori informazioni.

Piccolo modulo I2C dell'orologio in tempo reale RTC DS1307 - Quando il Coin-O-Matic si avvia, accederà alla rete WiFi e otterrà l'ora da un server NTP tramite il modulo WiFi della scheda di test ESP8266 ESP12 e quindi imposterà l'ora RTC di conseguenza

LCD grafico a colori TFT da 2,2 240x320 ILI93412 - Il display principale, normalmente mostra un orologio e darà alcune parole di pensiero all'utente

Convertitori di livello bidirezionale a 4 canali - Poiché i pin digitali del Mega sono 5V, avevo bisogno che i convertitori comunicassero a un livello sicuro con alcuni dei moduli

NeoPixel Ring 24 RGB LED WS2812 - Fai un po' di luce per stordire e confondere l'utente

RFID Starter Kit 13,56 MHz - Il lettore RFID

Modulo scheda SD: scrivi il numero del tag, la data e l'ora per ogni passaggio del tag

Pulsanti - L'amministratore che ha il tag master, caricherà nuovi tag e io uso uno dei pulsanti per mettere in pausa la visualizzazione finché non possono copiare il numero del tag e registrare chi ha il tag. Gli altri 4 pulsanti sono cablati ma non vengono utilizzati in questo momento

LED tricolore - Più luce per stordire e confondere gli utenti

Un sacco di fascette per cavi: cerca di mettere ordine in tutti i fili

Un sacco di ponticelli per breadboard - Collega il materiale

Modulo relè 5V a 2 canali 10 AMP 5VDC - Un relè viene utilizzato per alimentare il motore del distributore di monete e l'altro per alimentare il modulo ESP8266, anche il programma del modulo ESP8266 è in loop, non appena si accende, lo farà accedi alla rete WiFi ed esegui una chiamata a tempo NTP. Per ridurre al minimo le chiamate di tempo NTP, ho deciso di alimentarlo con il relè, IE attivare il relè, attivare il modulo ESP, il modulo ESP prendi l'ora e il relè riaccende il modulo … E fa anche dei bei clic

Modulo sensore fotoelettrico a raggio di luce a infrarossi - Per rilevare se è stato erogato un gettone

Passaggio 6: scheda sensore LoRaWAN

Scheda sensore LoRaWAN
Scheda sensore LoRaWAN

I file di progettazione Eagle sono allegati, la tavola è di mia fabbricazione, ma io uso un'azienda per produrre la tavola stessa. Questa scheda può essere utilizzata anche come scheda sensore LoRAWAN, è estremamente piccola, ~ 37 mm x 54 mm, si adatta a un sensore di temperatura e umidità DHT 22 o DHT 11 così com'è.

Passaggio 7: TTN: la rete delle cose

TTN - la rete delle cose
TTN - la rete delle cose

Ci sono molte informazioni su questo su

www.thethingsnetwork.org/

Fondamentalmente, il Coin-O-Matic parla tramite LoraWAN (l'Arduino Pro Mini con la radio RFM95) a un gateway (Raspberry Pi con concentratore IMST) che è connesso a TTN via Internet, da TTN puoi fare molte integrazioni, IE Swagger, AWS, http ecc., l'immagine sopra mostra alcuni passaggi di tag in ufficio

Passaggio 8: software

Il software è diviso in 3 parti

getNTPtime_instructables - Il programma ESP8266, devi cambiare ssid, password e ntpServerName prima del caricamento. Uso un programmatore di base FTDI, collego terra, TX e RX. Ricordati di scegliere il modulo ESP nell'IDE Arduino e di sistemare i pin sull'ESP per metterlo in modalità di programmazione

Coin-O-Matic_instructables - Il programma Coin-O-Matic. Questo viene caricato su Arduino Mega, le modifiche necessarie qui è il numero del tag principale -

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

pro_mini_instructables - Il programma LoRaWAN. Questo viene caricato sul Pro Mini, vedere lo schema per maggiori dettagli su come cablare la radio e quali PIN utilizzare. L'indirizzo del dispositivo, la chiave della sessione di rete e la chiave della sessione dell'app devono essere modificati dopo aver effettuato la registrazione del dispositivo su TTN, se si utilizza ABP

static const PROGMEM u1_t NWKSKEY[16] = { };s]

static const u1_t PROGMEM APPSKEY[16] = { };

statico const u4_t DEVADDR = 0x; // <-- Cambia questo indirizzo per ogni nodo!

Passaggio 9: avvio

Il video mostra l'attivazione del relè (relè 1), il modulo ESP8266 accede alla rete WiFi, invia un segnale orario getNTP e ottiene l'ora dal server NTP, dopo che l'ora è stata aggiornata con successo, il relè si disattiva e rimuove l'alimentazione al ESP8266. Se qualcosa va storto e l'aggiornamento dell'ora non è riuscito, Arduino Mega si riavvia e riprova. Il modulo ESP8266 e l'Arduino Mega sono collegati tra loro tramite le porte seriali (Serial2 sul Mega), l'Arduino Mega ascolta una risposta dall'ESP8266, il messaggio si presenta così "UNX [e il timestamp dell'epoca]", Sono in GMT+2, quindi nel codice Arduino Mega, aggiungo GMT+2 come segue

time_t gmtTimeVar = newTimeVar+7200;

rtc.adjust(DateTime(gmtTimeVar));

Passaggio 10: aggiunta/rimozione di un tag

Image
Image

Il tag master viene scansionato e il display indica che questo è il tag master. Il nuovo tag viene scansionato e il numero del tag viene visualizzato sullo schermo e dà all'utente il tempo di prendere nota del numero e registrare chi ha il nuovo tag. Il numero del tag verrà scritto nel database non appena l'utente preme il pulsante sinistro. La stessa procedura viene seguita per rimuovere un tag dal database

Passaggio 11: alcuni video che mostrano il funzionamento di Coin-O-Matic

Ho usato node-red per integrarmi con Telegram, node-red ha un modulo di integrazione per TTN, quindi cosa succede quando scansioni un tag?

  • Il tag viene scansionato
  • txt sulla scheda SD viene letto per vedere se è un tag valido
  • Se il tag è valido, viene scritto un timestamp con il numero del tag in un file txt sulla scheda SD
  • Il numero del tag viene inviato tramite LoRaWAN e il gateway Raspberry PI alla rete TTN
  • Node-red si iscrive ai messaggi MQTT sulla rete TTN
  • Node-Red invia il numero di tag da HEX a DEC decodificato a un file di script bash in esecuzione su un server localmente
  • Lo script bash scansiona un file txt con TAG NUMBERS e NAMES
  • Il file script bash carica il messaggio su un Telegram BOT con curl contenente il TAG NUMBER e il nome della persona

Bello e complesso, adoro come un compito così semplice diventi così complesso

Fatemi sapere cosa ne pensate nei commenti qui sotto

Consigliato: