Spisu treści:

Dozownik żetonów Coin-O-Matic: 11 kroków
Dozownik żetonów Coin-O-Matic: 11 kroków

Wideo: Dozownik żetonów Coin-O-Matic: 11 kroków

Wideo: Dozownik żetonów Coin-O-Matic: 11 kroków
Wideo: +50 świetnych sztuczek, które warto zapamiętać 2024, Listopad
Anonim
Image
Image

W naszym biurze posiadamy automat, który może przyjmować prawdziwe pieniądze lub tokeny. Zarząd zdecydował, że możemy dostać trochę darmowych słodyczy (w pewnych limitach), abyśmy byli szczęśliwi i zadowoleni z niskich zarobków, które zarabiamy. Problem polegał na tym, jak byś to kontrolował? Automat należy do firmy zewnętrznej, więc modyfikacje automatu nie wchodziły w rachubę.

Wejdź do Frankenstein Coin-O-Matic, dzieła mojego chorego umysłu. Decydując się, jak to zrobić, pomyślałem, że tagi RFID będą najlepsze, daj każdemu pracownikowi tag RFID i rejestruj, ile razy tag RFID zostanie przeciągnięty. Po przeciągnięciu tagu wydawany jest token do użytku z automatem (jeden wolny odpowietrznik). Za każdym razem, gdy TAG zostanie przeciągnięty, zapisz informacje na karcie SD. Numer TAG jest również przesyłany do „chmury” za pomocą LoraWAN. Bawiłem się już LoRaWAN i thethingsnetwork (TTN) z kilkoma czujnikami temperatury i wilgotności, więc mamy bramkę TTN. Brama TTN to Raspberry PI 3 z koncentratorem IMST podłączonym do TTN.

Krok 1: Zestawienie materiałów

  1. Niektóre pleksi 3mm
  2. Niektóre pleksi 1mm
  3. Arduino Mega
  4. Arduino Pro Mini
  5. Radio RFM95 Lora
  6. Mały moduł zegara czasu rzeczywistego RTC DS1307 I2C
  7. Graficzny kolorowy wyświetlacz TFT LCD 2,2" 240x320 ILI9341
  8. 2 x 4-kanałowe dwukierunkowe konwertery poziomów
  9. Pierścień NeoPixel 24 - LED RGB WS2812
  10. Zestaw startowy RFID 13.56 MHz
  11. Moduł WiFi ESP8266 ESP12 Test Board
  12. Moduł karty SD
  13. 5 x przyciski
  14. 2 x trójkolorowa dioda LED
  15. Wiele, wiele opasek kablowych
  16. Mnóstwo zworek na płytce stykowej
  17. Drewno 40mm x 40mm
  18. 2-kanałowy moduł przekaźnikowy 5 V 10 AMP
  19. 5VDC Moduł czujnika fotoelektrycznego wiązki światła podczerwonego

Krok 2: Zacząłem budować bazę z drewna i perpexu

Rozpoczął budowę bazy z drewna i perpexu
Rozpoczął budowę bazy z drewna i perpexu

Zaczęło się od zbudowania pudełka mieszczącego całą elektronikę z 3mm Perspexu, Perspex i logo zostały wycięte przy użyciu maszyny CNC. Na przedniej pokrywie pudełka znajduje się ekran, przyciski i kilka migających diod LED. Diody LED to normalne trójkolorowe diody LED, które zmieniają kolory, patrz BOM

Następnie użyłem drewnianego klocka o wymiarach 40 mm x 40 mm, aby zbudować miejsce na dyspenser monet i zsyp, do którego wpadał token. Dozownik żetonów składa się z 3 okrągłych płyt Perspex, górny i dolny są wykonane z Perspexu 3mm, a środkowy, na którym znajduje się żeton, to Perspex 1mm. Sposób działania polega na tym, że środkowa płyta obraca się, chwyta żeton ze stosu i przeciąga go do otworu w dolnej płycie, a żeton wpada do zsypu żetonów w brudne, czekające ręce jakiegoś głodnego pracownika.

Układarka żetonów to stara rura zraszacza, którą ułożyłem, a średnica była dokładnie taka sama jak żetony. Wywierciłem kilka otworów w rurce zraszacza, aby można było zobaczyć, ile żetonów jest ułożonych w stos do uzupełnienia w razie potrzeby. Rurka spryskiwacza została superklejona z górną płytą z pleksiglasu.

Krok 3: Dozownik tokenów

Dozownik żetonów
Dozownik żetonów
Dozownik żetonów
Dozownik żetonów
Dozownik żetonów
Dozownik żetonów

Silnik do napędzania środkowej płyty to silnik synchroniczny 220 V AC od …. Nie mam pojęcia, znalazłem go w pudełku z częściami zapasowymi, o ile jest powolny i mocny. Wał został przyklejony do płyty środkowej za pomocą kleju epoksydowego Pratex. Moduł przekaźnika jest wyzwalany i przewód pod napięciem jest podłączony, aby uruchomić silnik. Wywierciłem kilka otworów w dolnej płycie, aby przeciwdziałać tarciu, czy to robi różnicę, nie wiem. Po obu stronach środkowej płyty wycięto 2 otwory, aby „chwycić” żetony. Średnica otworów jest nieco większa niż średnica żetonów, więc istnieje pewien margines błędu podczas chwytania żetonów.

Krok 4: Wykrywanie, czy token został wydany

Wykrywanie, czy token został wydany
Wykrywanie, czy token został wydany
Wykrywanie, czy token został wydany
Wykrywanie, czy token został wydany

Użyłem do tego modułu czujnika fotoelektrycznego, nie chcemy ostracyzmować pracownika, który nie otrzymał tokena po zeskanowaniu tagu. teraz moglibyśmy?. Rekord zapisywany jest tylko na kartę SD, gdy wykrycie tokena się powiedzie, jeśli token nie zostanie wykryty, wyświetlacz wpada w szał, obwiniając serwis w firmie i serwis jest do bani. przypadek, w którym nie ma żetonów do wydania. Do dna zsypu przykleiłem fototranzystor aby token złamał wiązkę gdy przechodzi przez wiązkę

Krok 5: Elektronika

Elektronika
Elektronika

Arduino Mega - To jest mózg Coin-o-Matic, wszystkie czujniki itp. są podłączone do Mega

Arduino Pro Mini i RFM95 Lora Radio - Arduino Pro Mini i Arduino Mega są połączone ze sobą za pomocą magistrali szeregowej, gdy tag jest skanowany, numer tagu jest wysyłany na magistrali szeregowej z Mega do Pro Mini. Pro Mini jest cały czas w pętli, gdy tylko coś zostanie odebrane przez magistralę szeregową Pro Mini, numer tagu jest przesyłany do sieci thethingsnetwork (TTN) za pomocą LoraWan. Nie zrobiłem żadnej integracji w tym zakresie, ale plan byłby taki, aby mieć instancję AWS do przechowywania i sortowania informacji. Zobacz następny krok, aby uzyskać więcej informacji.

Mały moduł I2C zegara czasu rzeczywistego RTC DS1307 - Po uruchomieniu Coin-O-Matic zaloguje się do sieci Wi-Fi i pobierze czas z serwera NTP za pośrednictwem modułu Wi-Fi płyty testowej ESP8266 ESP12, a następnie odpowiednio ustawi czas RTC

Graficzny kolorowy 2,2 TFT LCD 240x320 ILI93412 - Główny wyświetlacz, zwykle pokazuje zegar i daje kilka słów do przemyślenia użytkownikowi

4-kanałowe dwukierunkowe konwertery poziomu - Ponieważ cyfrowe piny Mega mają napięcie 5V, potrzebowałem konwerterów do komunikacji na bezpiecznym poziomie z niektórymi modułami

NeoPixel Ring 24 RGB LED WS2812 - Dodaj trochę światła, aby oszołomić i zmylić użytkownika

RFID Starter Kit 13.56MHz - Czytnik RFID

Moduł karty SD - Wpisz numer tagu, datę i godzinę dla każdego przesunięcia tagu

Przyciski - Administrator, który ma tag główny, załaduje nowe tagi, a ja używam jednego z przycisków, aby wstrzymać wyświetlanie, aż będzie mógł skopiować numer tagu i zarejestruje, kto ma tag. Pozostałe 4 przyciski są okablowane, ale w tej chwili nie są używane

Trójkolorowa dioda LED - Więcej światła, aby oszołomić i zmylić użytkowników

Mnóstwo opasek kablowych - Spróbuj uporządkować wszystkie przewody

Mnóstwo zworek do krojenia chleba - Podłącz wszystko

2-kanałowy moduł przekaźnikowy 5V 10 AMP 5VDC - Jeden przekaźnik służy do zasilania silnika dyspensera monet, a drugi do zasilania modułu ESP8266, program modułu ESP8266 jest również w pętli, gdy tylko zostanie zasilony, będzie zaloguj się do sieci Wi-Fi i wykonaj połączenie czasowe NTP. Aby zminimalizować czas NTP, zdecydowałem się zasilić go przekaźnikiem, tj. aktywować przekaźnik, aktywować moduł ESP, moduł ESP pobrać czas i ponownie wyłączyć moduł… I sprawia to też ładne odgłosy klikania

Moduł czujnika fotoelektrycznego wiązki światła podczerwonego - do wykrywania, czy token został wydany

Krok 6: Płytka czujnika LoRaWAN

Płytka czujnika LoRaWAN
Płytka czujnika LoRaWAN

Załączam pliki projektu Eagle, tablica jest mojego autorstwa, ale sama tablica jest produkowana przez firmę. Ta płytka może być również używana jako płytka czujnika LoRAWAN, jest bardzo mała, ~37mm x 54mm, może obsługiwać czujnik temperatury i wilgotności DHT 22 lub DHT 11, tak jak jest.

Krok 7: TTN - sieć rzeczy

TTN - Sieć Rzeczy
TTN - Sieć Rzeczy

Dużo informacji na ten temat znajduje się na

www.thethingsnetwork.org/

Zasadniczo, Coin-O-Matic rozmawia przez LoraWAN (Arduino Pro Mini z radiem RFM95) do bramy (Raspberry Pi z koncentratorem IMST), która jest podłączona do TTN przez Internet, z TTN można wykonać wiele integracji, IE Swagger, AWS, http itp., obrazek powyżej pokazuje kilka przeciągnięć tagów w biurze

Krok 8: Oprogramowanie

Oprogramowanie podzielone jest na 3 części

getNTPtime_instructables - Program ESP8266, przed przesłaniem należy zmienić ssid, hasło i ntpServerName. Używam podstawowego programatora FTDI, podłączam masę, TX i RX. Pamiętaj, aby wybrać moduł ESP w Arduino IDE i posortować piny na ESP, aby przełączyć go w tryb programowania

Coin-O-Matic_instructables - Program Coin-O-Matic. To jest ładowane na Arduino Mega, potrzebne zmiany to numer znacznika głównego -

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

pro_mini_instructables - Program LoRaWAN. To jest ładowane do Pro Mini, zobacz schemat, aby uzyskać więcej informacji na temat podłączania radia i których PINów użyć. Adres urządzenia, klucz sesji sieciowej i klucz sesji aplikacji muszą zostać zmienione po rejestracji urządzenia w TTN, jeśli będziesz korzystać z ABP

statyczna stała PROGMEM u1_t NWKSKEY[16] = { };s]

statyczna stała u1_t PROGMEM APPSKEY[16] = { };

statyczna stała u4_t DEVADDR = 0x; // <-- Zmień ten adres dla każdego węzła!

Krok 9: Uruchom

Film pokazuje aktywację przekaźnika (przekaźnik 1), moduł ESP8266 loguje się do sieci WiFi, wysyła sygnał czasu getNTP i pobiera czas z serwera NTP, po pomyślnej aktualizacji czasu przekaźnik dezaktywuje się i odłącza zasilanie ESP8266. Jeśli coś pójdzie nie tak i nie uda się zaktualizować czasu, Arduino Mega uruchomi się ponownie i spróbuje ponownie. Moduł ESP8266 i Arduino Mega są połączone ze sobą przez porty szeregowe (Serial2 na Mega), Arduino Mega nasłuchuje odpowiedzi z ESP8266, komunikat wygląda tak "UNX [i sygnatura czasowa epoki]", Jestem w GMT+2, więc w kodzie Arduino Mega dodaję GMT+2 w następujący sposób

time_t gmtTimeVar = nowaTimeVar+7200;

rtc.adjust(DataGodzina(gmtTimeVar));

Krok 10: Dodawanie/usuwanie tagu

Image
Image

Zmienna główna jest skanowana, a wyświetlacz wskazuje, że jest to zmienna główna. Nowy tag jest skanowany, a numer tagu jest wyświetlany na ekranie, co daje użytkownikowi czas na usunięcie numeru i zapisanie, kto ma nowy tag. Numer tagu zostanie zapisany do bazy danych, gdy tylko użytkownik naciśnie lewy przycisk. Ta sama procedura jest stosowana w celu usunięcia tagu z bazy danych

Krok 11: Niektóre filmy pokazujące działanie Coin-O-Matic

Użyłem node-red do integracji z Telegramem, node-red ma moduł integracji z TTN, więc co się stanie, gdy zeskanujesz tag?

  • Tag jest skanowany
  • Plik txt na karcie SD jest odczytywany, aby sprawdzić, czy jest to prawidłowy tag
  • Jeśli tag jest prawidłowy, znacznik czasu z numerem tagu jest zapisywany w pliku txt na karcie SD
  • Numer tagu jest wysyłany przez LoRaWAN i bramę Raspberry PI do sieci TTN
  • Node-red subskrybuje wiadomości MQTT w sieci TTN
  • Węzeł-czerwony wysyła zdekodowany numer znacznika HEX do DEC do pliku skryptu bash działającego lokalnie na serwerze
  • Skrypt bash skanuje plik txt z NUMERAMI TAGÓW i NAZWAMI
  • Plik skryptu bash przesyła wiadomość do BOT Telegrama z curl zawierającym TAG NUMER i imię i nazwisko osoby

Ładne i złożone, uwielbiam jak takie proste zadanie staje się baaaardzo skomplikowane

Daj mi znać, co myślisz w komentarzach poniżej

Zalecana: