Innholdsfortegnelse:
- Trinn 1: Materialregning
- Trinn 2: Begynte å bygge en base av tre og Perpex
- Trinn 3: Token dispenser
- Trinn 4: Oppdage om det ble utdelt et tegn
- Trinn 5: Elektronikk
- Trinn 6: LoRaWAN Sensor Board
- Trinn 7: TTN - Things Network
- Trinn 8: Programvare
- Trinn 9: Start opp
- Trinn 10: Legge til/fjerne en tag
- Trinn 11: Noen videoer som viser hvordan Coin-O-Matic fungerer
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
På kontoret vårt har vi en salgsautomat som enten kan ta ekte penger eller tokens. Ledelsen bestemte at vi kunne få noen gratis søtsaker (innenfor grenser) for å holde oss fornøyd og fornøyd med de lave lønnene vi tjener. Problemet var, hvordan ville du kontrollere det? Salgsautomaten tilhører et eksternt selskap, så modifikasjoner av automaten var uaktuelt.
Skriv inn Frankenstein Coin-O-Matic, en skapelse av mitt syke sinn. Da jeg bestemte meg for hvordan jeg skulle gjøre dette, tenkte jeg at RFID -tagger ville være de beste, gi hver ansatt en RFID -tag og holde oversikt over hvor mange ganger RFID -taggen blir feid. Når taggen er sveipet, får du utlevert et symbol for bruk i salgsautomaten (én ledig ventilasjon). Hver gang TAG blir sveipet, registrerer du informasjonen på et SD -kort. TAG -nummeret lastes også opp til "skyen" ved hjelp av LoraWAN. Jeg har allerede lekt med LoRaWAN og nettverket (TTN) med noen temperatur- og fuktighetssensorer, så vi har en TTN Gateway. TTN Gateway er en Raspberry PI 3 med en IMST -konsentrator koblet til TTN.
Trinn 1: Materialregning
- Noen 3 mm Perspex
- Noen 1 mm Perspex
- Arduino Mega
- Arduino Pro Mini
- RFM95 Lora Radio
- Liten RTC DS1307 I2C -modul i sanntid
- Grafisk farge 2,2 "TFT LCD 240x320 ILI9341
- 2 x 4 kanals toveis nivåomformere
- NeoPixel Ring 24 - RGB LED WS2812
- RFID -startsett 13,56MHz
- ESP8266 ESP12 testkort WiFi -modul
- SD -kortmodul
- 5 x trykknapper
- 2 x trefarget LED
- Mange og mange kabelbindere
- Mange breadboard -hoppere
- 40mm x 40mm tre
- 2 -kanals 5V relemodul 10 AMP
-
5VDC fotoelektrisk sensormodul for infrarød lysstråle
Trinn 2: Begynte å bygge en base av tre og Perpex
Startet med å bygge en boks for å huse all elektronikken fra 3 mm Perspex, Perspex og logoen ble kuttet ved hjelp av en CNC -maskin. Boksen på forsiden inneholder skjermen, knapper og noen blinkende lysdioder. Lysdiodene er normale trefargede lysdioder som går gjennom fargene, se BOM
Deretter brukte jeg en 40 mm x 40 mm treblokk for å bygge et sted for myntdispenser og en rute for token å falle i. Token dispenser består av 3 Perspex runde plater, den øverste og nederste er 3 mm Perspex og den midterste som bærer token er 1 mm Perspex. Måten det fungerer på er at midtplaten snur og tar et brikke fra bunken og drar det til hullet i bunnplaten og brikken faller ned i tokenrennen i de skitten ventende hendene til en sulten ansatt.
Tokenstabler er et gammelt sprinklerrør som jeg hadde lagt rundt og diameteren var nøyaktig den samme som tokens. Jeg boret noen hull i sprinklerrøret slik at du kunne se hvor mange tokens som er stablet for påfylling om nødvendig. Sprinklerrøret ble limt til den øverste Perspex -platen.
Trinn 3: Token dispenser
Motoren for å drive midtplaten er en 220V AC synkron motor fra …. Jeg aner ikke, fant den i boksen min, så lenge den er treg og sterk. Skaftet ble limt til midtplaten med litt epoksylim kalt Pratex. Relemodulen utløses og strømførende ledning er koblet til for å få motoren til å gå. Jeg boret noen hull i bunnplaten for å motvirke friksjon, hvis det gjør en forskjell, vet jeg ikke. 2 hull ble kuttet på hver side av midtplaten for å "gripe" tokens. Diameteren på hullene er bare litt større enn diameteren på tokens, slik at det er en viss feilmargin når man tar tak i tokens.
Trinn 4: Oppdage om det ble utdelt et tegn
Jeg brukte en fotoelektrisk sensormodul for dette, vi ønsker ikke å utsette en ansatt hvis han/hun ikke mottok et tegn etter å ha skannet en kode. nå ville vi ?. Rekorden skrives bare til SD -kortet, når detekteringen av tokenet er vellykket, hvis det ikke ble oppdaget noe token, blir displayet rasende og gir skylden for tjenesten i selskapet og at tjenesten suger. Ingen post er skrevet inn tilfellet der det ikke er noen symboler å dispensere. Jeg limte fototransistoren til bunnen av rennen slik at symbolet vil bryte strålen når den passerer gjennom strålen
Trinn 5: Elektronikk
Arduino Mega-Dette er hjernen til Coin-o-Matic, alle sensorene osv. Er koblet til Mega
Arduino Pro Mini og RFM95 Lora Radio - Arduino Pro Mini og Arduino Mega er koblet til hverandre via seriebussen, når en tag skannes, sendes tagnummeret på seriebussen fra Mega til Pro Mini. Pro Mini er i en løkke hele tiden, så snart noe er mottatt på Pro Minis serielle buss, lastes tagnummeret opp til thethingsnetwork (TTN) ved hjelp av LoraWan. Jeg har ikke gjort noen integrasjon på det, men planen ville være å ha en AWS -forekomst for å lagre og sortere informasjonen. Se neste trinn for mer informasjon.
Tiny RTC DS1307 I2C-modul i sanntidsklokke-Når Coin-O-Matic starter opp, vil den logge seg på WiFi-nettverket og hente tiden fra en NTP-server via ESP8266 ESP12 Test Board WiFi-modulen og deretter stille RTC-tiden deretter
Grafisk farge 2,2 TFT LCD 240x320 ILI93412 - Hovedskjermen, den viser normalt en klokke og vil gi noen tankeord til brukeren
4 -kanals toveis nivåomformere - Siden megas digitale pinner er 5V, trengte jeg at omformerne kommuniserte på et sikkert nivå til noen av modulene
NeoPixel Ring 24 RGB LED WS2812 - Få litt lys til å bli forvirret og forvirre brukeren
RFID Starter Kit 13,56MHz - RFID -leseren
SD -kortmodul - Skriv tagnummer, dato og klokkeslett for hver tagksveip
Trykknapper - Administrator som har hovedkoden, vil laste inn nye koder, og jeg bruker en av knappene til å stoppe visningen midlertidig til de kan kopiere kodenummeret og registrerer hvem som har koden. De fire andre knappene er kablet, men blir ikke brukt for øyeblikket
Trefarget LED - Mer lys for å bli forvirret og forvirre brukerne
Mange og mange kabelbindere - Prøv å få orden på alle ledningene
Mange breadboard -hoppere - Koble tingene sammen
2 -kanals 5V relemodul 10 AMP 5VDC - Det ene reléet brukes til å drive myntdispenser -motoren og den andre til å slå på ESP8266 -modulen, ESP8266 -modulprogrammet er også i en sløyfe, så snart det får strøm, vil det logg deg på WiFi -nettverket og ring NTP -tid. For å minimere NTP -tidssamtalene bestemte jeg meg for å slå den på med reléet, IE aktivere reléet, aktivere ESP -modulen, ESP -modulen få tiden og reléet slå av modulen igjen … Og det gir fine klikkelyder også
Infrarød lysstråle fotoelektrisk sensormodul - For å oppdage om et token ble utlevert
Trinn 6: LoRaWAN Sensor Board
Eagle -designfilene er vedlagt, brettet er i ferd med å lage meg, men jeg bruker et selskap til å produsere selve brettet. Dette brettet kan også brukes som et LoRAWAN -sensorbord, det er ekstremt lite, ~ 37 mm x 54 mm, det passer for en DHT 22 eller DHT 11 temperatur- og fuktighetssensor som den er.
Trinn 7: TTN - Things Network
Det er mye informasjon om dette på
www.thethingsnetwork.org/
I utgangspunktet snakker Coin-O-Matic via LoraWAN (Arduino Pro Mini med RFM95-radioen) til en gateway (Raspberry Pi med IMST-konsentrator) som er koblet til TTN via internett, fra TTN kan du gjøre mange integrasjoner, IE Swagger, AWS, http etc, bildet over viser noen tagger på kontoret
Trinn 8: Programvare
Programvaren er delt inn i 3 deler
getNTPtime_instructables - ESP8266 -programmet, du må endre ssid, passord og ntpServerName før du laster opp. Jeg bruker en FTDI grunnleggende programmerer, kobler bakken, TX og RX. Husk å velge ESP -modulen i Arduino IDE og sorter ut pinnene på ESP for å sette den i programmeringsmodus
Coin-O-Matic_instructables-Coin-O-Matic-programmet. Dette blir lastet på Arduino Mega, endringer som trengs her er Master Tag -nummeret -
byte masterCard [cardSize] = {121, 178, 151, 26};
pro_mini_instructables - LoRaWAN -programmet. Dette lastes på Pro Mini, se skjematisk for mer informasjon om hvordan du kobler radioen og hvilke PIN -koder du skal bruke. Enhetsadressen, nettverksøksnøkkelen og appøktnøkkelen må endres etter at enhetsregistreringen er utført på TTN, hvis du skal bruke ABP
statisk const PROGMEM u1_t NWKSKEY [16] = {}; s]
statisk const u1_t PROGMEM APPSKEY [16] = {};
statisk const u4_t DEVADDR = 0x; // <- Endre denne adressen for hver node!
Trinn 9: Start opp
Videoen viser at reléet blir aktivert (relé 1), ESP8266 -modulen logger seg på WiFi -nettverket, sender et getNTP -tidssignal og får tiden fra NTP -serveren, etter at tiden ble oppdatert, deaktiverer reléet og fjerner strøm til ESP8266. Hvis noe går galt og det ikke er noen vellykket tidsoppdatering, starter Arduino Mega på nytt og prøver igjen. ESP8266 -modulen og Arduino Mega er koblet til hverandre via serielle porter (Serial2 på Mega), Arduino Mega lytter etter svar fra ESP8266, meldingen ser slik ut "UNX [og epoken tidsstempel]", Jeg er i GMT+2, så i Arduino Mega -koden legger jeg til GMT+2 som følger
time_t gmtTimeVar = newTimeVar+7200;
rtc.adjust (DateTime (gmtTimeVar));
Trinn 10: Legge til/fjerne en tag
Master -taggen blir skannet og displayet indikerer at dette er master -taggen. Den nye koden blir skannet og kodenummeret vises på skjermen, og det gir brukeren tid til å ta ned nummeret og registrere hvem som har den nye koden. Kodenummeret skrives til databasen så snart brukeren trykker på venstre knapp. Den samme prosedyren følges for å fjerne en tagg fra databasen
Trinn 11: Noen videoer som viser hvordan Coin-O-Matic fungerer
Jeg brukte node-rød til å integrere med Telegram, node-red har en integreringsmodul til TTN, så hva skjer når du skanner en tag?
- Taggen er skannet
- txt -filen på SD -kortet leses for å se om det er en gyldig tag
- Hvis koden er gyldig, skrives et tidsstempel med kodenummeret til en txt -fil på SD -kortet
- Kodenummeret sendes via LoRaWAN og Raspberry PI Gateway til TTN -nettverket
- Noderød abonnerer på MQTT-meldingene på TTN-nettverket
- Node-Red sender det avkodede HEX til DEC-kodenummeret til en bash-skriptfil som kjører på en server lokalt
- Bash -skriptet skanner en txt -fil med TAG NUMBERS og NAMES
- Bash script -filen laster opp meldingen til en Telegram BOT med krøll som inneholder TAG NUMBER og personens navn
Fint og komplekst, jeg elsker hvordan en så enkel oppgave blir så kompleks
Gi meg beskjed om hva du synes i kommentarene nedenfor