Inhoudsopgave:
- Stap 1: Stuklijst
- Stap 2: Begonnen met het bouwen van een basis van hout en perpex
- Stap 3: De tokendispenser
- Stap 4: Detecteren of een token is uitgegeven
- Stap 5: Elektronica
- Stap 6: LoRaWAN-sensorkaart
- Stap 7: TTN - het Things Network
- Stap 8: Software
- Stap 9: opstarten
- Stap 10: Een tag toevoegen/verwijderen
- Stap 11: Enkele video's die de werking van de Coin-O-Matic tonen
Video: Coin-O-Matic Token Dispenser - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Op ons kantoor hebben we een automaat die zowel echt geld als penningen kan aannemen. Het management besloot dat we wat gratis snoepjes konden krijgen (binnen limieten) om ons blij en tevreden te houden met de lage salarissen die we verdienen. Het probleem was: hoe zou je dat onder controle krijgen? De automaat is van een extern bedrijf, dus aanpassingen aan de automaat waren niet aan de orde.
Betreed de Frankenstein Coin-O-Matic, een creatie van mijn zieke geest. Toen ik besloot hoe ik dit moest doen, dacht ik dat RFID-tags het beste zouden zijn, elke medewerker een RFID-tag geven en bijhouden hoe vaak de RFID-tag wordt geveegd. Wanneer de tag wordt geveegd, wordt een token uitgegeven voor gebruik met de automaat (één gratis ontluchting). Telkens wanneer de TAG wordt geveegd, noteert u de informatie op een SD-kaart. Het TAG-nummer wordt ook geüpload naar de "cloud" met behulp van LoraWAN. Ik heb al gespeeld met LoRaWAN en thethingsnetwork (TTN) met enkele temperatuur- en vochtigheidssensoren, dus we hebben wel een TTN-gateway. De TTN Gateway is een Raspberry PI 3 met een IMST-concentrator aangesloten op TTN.
Stap 1: Stuklijst
- Sommige 3 mm plexiglas
- Sommige 1 mm perspex
- Arduino Mega
- Arduino Pro Mini
- RFM95 Lora Radio
- Tiny RTC DS1307 Real-time klok I2C-module
- Grafische kleuren 2,2" TFT LCD 240x320 ILI9341
- 2 x 4-kanaals bidirectionele niveauconverters
- NeoPixel Ring 24 - RGB LED WS2812
- RFID-startpakket 13,56 MHz
- ESP8266 ESP12 Testkaart WiFi-module
- SD-kaartmodule
- 5 x drukknoppen
- 2 x driekleurige LED
- Heel veel kabelbinders
- Veel breadboard-jumpers
- 40 mm x 40 mm hout
- 2-kanaals 5V-relaismodule 10 AMP
-
5VDC infrarood lichtstraal foto-elektrische sensormodule
Stap 2: Begonnen met het bouwen van een basis van hout en perpex
Begonnen met het bouwen van een doos om alle elektronica van 3 mm perspex te huisvesten, werd het perspex en het logo gesneden met behulp van een CNC-machine. De voorkant van de doos bevat het scherm, knoppen en enkele knipperende LED's. De LED's zijn normale driekleurige LED's die door de kleuren lopen, zie stuklijst
Vervolgens heb ik een houten blok van 40 mm x 40 mm gebruikt om een plaats te bouwen voor de muntautomaat en een goot waar de token in kan vallen. De token dispenser bestaat uit 3 ronde platen van plexiglas, de bovenste en onderste zijn 3 mm plexiglas en de middelste die de token draagt, is 1 mm plexiglas. De manier waarop het werkt is dat de middelste plaat draait en een fiche van de stapel pakt en naar het gat in de bodemplaat sleept en de loper valt in de loper in de groezelige wachtende handen van een hongerige werknemer.
De tokenstapelaar is een oude sprinklerbuis die ik had liggen en de diameter was precies hetzelfde als de tokens. Ik heb wat gaten in de sprinklerbuis geboord, zodat je kon zien hoeveel tokens er zijn gestapeld om indien nodig bij te vullen. De sprinklerbuis was superlijm aan de bovenste perspexplaat.
Stap 3: De tokendispenser
De motor om de middenplaat aan te drijven is een 220V AC synchroonmotor van …. Ik heb geen idee, vond het in mijn doos met reserveonderdelen, zolang het maar langzaam en sterk is. De as werd op de middenplaat gelijmd met wat epoxylijm genaamd Pratex. De relaismodule wordt geactiveerd en de stroomdraad wordt aangesloten om de motor te laten draaien. Ik heb wat gaten in de bodemplaat geboord om wrijving tegen te gaan, of het verschil maakt weet ik niet. Aan weerszijden van de middelste plaat werden 2 gaten gesneden om de lopers te "grijpen". De diameter van de gaten is net iets groter dan de diameter van de lopers, zodat er enige foutmarge is bij het pakken van de lopers.
Stap 4: Detecteren of een token is uitgegeven
Ik heb hiervoor een foto-elektrische sensormodule gebruikt, we willen een medewerker niet uitsluiten als hij/zij geen token heeft ontvangen na het scannen van een tag. zouden we nu?. Het record wordt alleen naar de SD-kaart geschreven, wanneer de detectie van het token succesvol is, als er geen token is gedetecteerd, wordt het scherm woedend, geeft de service in het bedrijf de schuld en dat de service zuigt.. Er wordt geen record in geschreven het geval dat er geen tokens zijn om uit te geven. Ik heb de fototransistor aan de onderkant van de parachute gelijmd, zodat het token de straal zal breken wanneer deze door de straal gaat
Stap 5: Elektronica
Arduino Mega - Dit is het brein van de Coin-o-Matic, alle sensoren etc zijn verbonden met de Mega
Arduino Pro Mini en RFM95 Lora Radio - De Arduino Pro Mini en de Arduino Mega zijn met elkaar verbonden via de seriële bus, wanneer een tag wordt gescand, wordt het tagnummer op de seriële bus van de Mega naar de Pro Mini gestuurd. De Pro Mini zit de hele tijd in een lus, zodra er iets wordt ontvangen op de seriële bus van de Pro Mini, wordt het tagnummer geüpload naar hetthingsnetwork (TTN) met behulp van LoraWan. Ik heb daar geen integratie op gedaan, maar het plan zou zijn om een AWS-instantie te hebben om de informatie op te slaan en te sorteren. Zie volgende stap voor meer informatie.
Tiny RTC DS1307 Real Time Clock I2C-module - Wanneer de Coin-O-Matic opstart, logt deze in op het WiFi-netwerk en krijgt de tijd van een NTP-server via de ESP8266 ESP12 Test Board WiFi-module en stelt vervolgens de RTC-tijd dienovereenkomstig in
Grafische kleuren 2.2 TFT LCD 240x320 ILI93412 - Het hoofddisplay, het toont normaal gesproken een klok en zal de gebruiker enkele gedachten geven
4-kanaals bidirectionele niveauconverters - Aangezien de digitale pinnen van de Mega 5V zijn, had ik de converters nodig om op een veilig niveau met sommige modules te communiceren
NeoPixel Ring 24 RGB LED WS2812 - Maak wat licht om de gebruiker te duizelen en in verwarring te brengen
RFID Starter Kit 13,56 MHz - De RFID-lezer
SD-kaartmodule - Schrijf het tagnummer, de datum en tijd voor elke tag-swipe
Drukknoppen - Beheerder die de hoofdtag heeft, zal nieuwe tags laden en ik gebruik een van de knoppen om de weergave te pauzeren totdat ze het tagnummer kunnen kopiëren en registreren wie de tag heeft. De andere 4 knoppen zijn bedraad maar worden op dit moment niet gebruikt
Driekleurige LED - Meer licht om de gebruikers te verdoven en in verwarring te brengen
Heel veel kabelbinders - Probeer orde te scheppen in alle draden
Veel breadboard-jumpers - Sluit de boel aan
2-kanaals 5V-relaismodule 10 AMP 5VDC - Het ene relais wordt gebruikt om de motor van de muntautomaat van stroom te voorzien en het andere om de ESP8266-module van stroom te voorzien, het ESP8266-moduleprogramma bevindt zich ook in een lus, zodra het stroom krijgt, zal het log in op het wifi-netwerk en voer een NTP-tijdoproep uit. Om de NTP-tijdoproepen te minimaliseren, besloot ik om het met het relais te voeden, IE activeer het relais, activeer de ESP-module, ESP-module krijgt de tijd en relais schakelt de module weer uit … En het maakt ook mooie klikgeluiden
Infraroodlichtstraal foto-elektrische sensormodule - om te detecteren of een token is uitgegeven
Stap 6: LoRaWAN-sensorkaart
De Eagle-ontwerpbestanden zijn bijgevoegd, het bord is van mijn hand, maar ik gebruik een bedrijf om het bord zelf te produceren. Dit bord kan ook worden gebruikt als een LoRAWAN-sensorbord, het is extreem klein, ~ 37 mm x 54 mm, het is geschikt voor een DHT 22 of DHT 11 temperatuur- en vochtigheidssensor zoals het is.
Stap 7: TTN - het Things Network
Er is veel informatie hierover op
www.thethingsnetwork.org/
Kortom, de Coin-O-Matic praat via LoraWAN (De Arduino Pro Mini met de RFM95 radio) naar een gateway (Raspberry Pi met IMST concentrator) die via internet met TTN is verbonden, vanuit TTN kun je veel integraties doen, IE Swagger, AWS, http etc, de afbeelding hierboven toont enkele veegbewegingen van tags op kantoor
Stap 8: Software
De software is verdeeld in 3 delen:
getNTPtime_instructables - Het ESP8266-programma, je moet de ssid, het wachtwoord en de ntpServerName wijzigen voordat je het uploadt. Ik gebruik een FTDI-basisprogrammeur, sluit aarde, TX en RX aan. Vergeet niet om de ESP-module in de Arduino IDE te kiezen en de pinnen op de ESP te sorteren om deze in de programmeermodus te zetten
Coin-O-Matic_instructables - Het Coin-O-Matic-programma. Dit wordt geladen op de Arduino Mega, wijzigingen die hier nodig zijn, zijn het Master Tag-nummer -
byte masterCard[cardSize] = {121, 178, 151, 26};
pro_mini_instructables - Het LoRaWAN-programma. Dit wordt geladen op de Pro Mini, zie het schema voor meer details over hoe de radio moet worden aangesloten en welke pincodes moeten worden gebruikt. Het apparaatadres, de netwerksessiesleutel en de app-sessiesleutel moeten worden gewijzigd nadat de apparaatregistratie is voltooid op TTN, als u ABP gaat gebruiken
statische const PROGMEM u1_t NWKSKEY[16] = { };s]
statische const u1_t PROGMEM APPSKEY[16] = { };
statische const u4_t DEVADDR = 0x; // <-- Wijzig dit adres voor elk knooppunt!
Stap 9: opstarten
De video laat zien dat het relais wordt geactiveerd (relais 1), de ESP8266-module logt in op het WiFi-netwerk, verzendt een getNTP-tijdsignaal en krijgt de tijd van de NTP-server, nadat de tijd met succes is bijgewerkt, deactiveert het relais en verwijdert de stroom naar de ESP8266. Als er iets misgaat en er is geen succesvolle tijdupdate, start de Arduino Mega opnieuw op en probeert het opnieuw. De ESP8266 module en de Arduino Mega zijn met elkaar verbonden via de seriële poorten (Serial2 op de Mega), De Arduino Mega luistert naar een antwoord van de ESP8266, het bericht ziet er zo uit "UNX[and the epoch time stamp]", Ik ben in GMT+2, dus in de Arduino Mega-code voeg ik GMT+2 als volgt toe:
time_t gmtTimeVar = newTimeVar+7200;
rtc.adjust(DateTime(gmtTimeVar));
Stap 10: Een tag toevoegen/verwijderen
De mastertag wordt gescand en het display geeft aan dat dit de mastertag is. De nieuwe tag wordt gescand en het tagnummer wordt op het scherm weergegeven en het geeft de gebruiker de tijd om het nummer te noteren en vast te leggen wie de nieuwe tag heeft. Het tagnummer wordt naar de database geschreven zodra de gebruiker op de linkerknop drukt. Dezelfde procedure wordt gevolgd om een tag uit de database te verwijderen
Stap 11: Enkele video's die de werking van de Coin-O-Matic tonen
Ik heb node-red gebruikt om te integreren met Telegram, node-red heeft een integratiemodule voor TTN, dus wat gebeurt er als je een tag scant?
- Tag is gescand
- txt-bestand op SD-kaart wordt gelezen om te zien of het een geldige tag is
- Als de tag geldig is, wordt een tijdstempel met het tagnummer naar een txt-bestand op de SD-kaart geschreven
- Het tagnummer wordt via LoRaWAN en de Raspberry PI Gateway naar het TTN-netwerk gestuurd
- Node-red abonneert zich op de MQTT-berichten op het TTN-netwerk
- Node-Red stuurt het gedecodeerde HEX naar DEC-tagnummer naar een bash-scriptbestand dat lokaal op een server wordt uitgevoerd
- Het bash-script scant een txt-bestand met TAGNUMMERS en NAMEN
- Het bash-scriptbestand uploadt het bericht naar een Telegram BOT met krul die het TAG-NUMMER en de naam van de persoon bevat
Mooi en complex, ik hou ervan hoe zo'n eenvoudige taak zo ingewikkeld wordt
Laat me weten wat je ervan vindt in de reacties hieronder
Aanbevolen:
Coin in a Box-schakelaar: 9 stappen
Coin in a Box-schakelaar: ik zal je laten zien hoe je een oude horlogedoos die je hebt rondslingert, kunt hergebruiken in iets exclusievers door middel van een zeer eenvoudige en gemakkelijke muntschakelaar. Opmerking: dit is slechts een heel eenvoudige schakelaar die je kunt wijzigen of extra kunt toevoegen dingen om er iets unieks van te maken voo
Smart Shop Dispenser-Bot: 4 stappen
Smart Shop Dispenser-Bot: ik heb een Smart Shop Dispenser-Bot gemaakt die u zal begeleiden om uw handen minimaal 20 seconden te wassen
Token-aankondigingssysteem: 5 stappen
Token-aankondigingssysteem: in de vorige instructable zagen we hoe je je Arduino kunt laten spreken. Vandaag zullen we wat meer over hetzelfde onderwerp onderzoeken. We moeten allemaal op een bepaald moment in het leven een aankondigingssysteem zijn tegengekomen, misschien in een bank of een treinstation. Heb jij ooit gewonnen