Table des matières:

Distributeur de jetons Coin-O-Matic : 11 étapes
Distributeur de jetons Coin-O-Matic : 11 étapes

Vidéo: Distributeur de jetons Coin-O-Matic : 11 étapes

Vidéo: Distributeur de jetons Coin-O-Matic : 11 étapes
Vidéo: La stratégie ultime pour devenir millionnaire avec MATIC 👀 2024, Novembre
Anonim
Image
Image

Dans notre bureau, nous avons un distributeur automatique qui peut accepter de l'argent réel ou des jetons. La direction a décidé que nous pouvions obtenir des bonbons gratuits (dans certaines limites) pour nous garder heureux et satisfaits des bas salaires que nous gagnons. Le problème était, comment contrôleriez-vous cela? Le distributeur automatique appartient à une entreprise extérieure, il était donc hors de question de modifier le distributeur automatique.

Entrez dans le Frankenstein Coin-O-Matic, une création de mon esprit malade. Décidant comment faire cela, j'ai pensé que les étiquettes RFID seraient les meilleures, donner à chaque employé une étiquette RFID et garder une trace du nombre de fois où l'étiquette RFID est glissée. Lorsque l'étiquette est glissée, un jeton est distribué pour être utilisé avec le distributeur automatique (un évent gratuit). Chaque fois que le TAG est glissé, enregistrez les informations sur une carte SD. Le numéro TAG est également téléchargé sur le "cloud" à l'aide de LoraWAN. J'ai déjà joué avec LoRaWAN et thethingsnetwork (TTN) avec des capteurs de température et d'humidité, nous avons donc une passerelle TTN. La passerelle TTN est un Raspberry PI 3 avec un concentrateur IMST connecté au TTN.

Étape 1: Nomenclature

  1. Quelques Perspex 3mm
  2. Quelques Perspex de 1 mm
  3. Arduino méga
  4. Arduino Pro Mini
  5. Radio Lora RFM95
  6. Module I2C d'horloge en temps réel minuscule RTC DS1307
  7. LCD TFT graphique couleur 2,2" 240x320 ILI9341
  8. Convertisseurs de niveau bidirectionnels 2 x 4 canaux
  9. Anneau NeoPixel 24 - LED RVB WS2812
  10. Kit de démarrage RFID 13.56MHz
  11. Module WiFi de carte de test ESP8266 ESP12
  12. Module de carte SD
  13. 5 x boutons poussoirs
  14. 2 x LED tricolores
  15. Beaucoup, beaucoup de serre-câbles
  16. Beaucoup de cavaliers de planche à pain
  17. 40mm x 40mm bois
  18. Module de relais 2 canaux 5V 10 AMP
  19. Module de capteur photoélectrique à faisceau lumineux infrarouge 5VDC

Étape 2: Commencer à construire une base en bois et en Perpex

Commencé à construire une base en bois et Perpex
Commencé à construire une base en bois et Perpex

Commencé par la construction d'une boîte pour loger toute l'électronique à partir de Perspex 3 mm, le Perspex et le logo ont été découpés à l'aide d'une machine CNC. Le capot avant de la box abrite l'écran, des boutons et quelques LED clignotantes. Les LED sont des LED tricolores normales qui parcourent les couleurs, voir BOM

J'ai ensuite utilisé un bloc de bois de 40 mm x 40 mm pour construire un emplacement pour le distributeur de pièces et une goulotte dans laquelle le jeton pourrait tomber. Le distributeur de jetons se compose de 3 plaques rondes en Perspex, celles du haut et du bas sont en Perspex de 3 mm et celle du milieu qui porte le jeton est en Perspex de 1 mm. La façon dont cela fonctionne est que la plaque du milieu tourne et attrape un jeton de la pile et le traîne jusqu'au trou de la plaque inférieure et le jeton tombe dans la goulotte à jetons dans les mains crasseuses d'un employé affamé.

L'empileur de jetons est un vieux tube d'arrosage que j'avais autour et le diamètre était exactement le même que les jetons. J'ai percé des trous dans le tube d'arrosage afin que vous puissiez voir combien de jetons sont empilés pour le remplissage si nécessaire. Le tube d'arrosage a été super-collé à la plaque supérieure en Perspex.

Étape 3: Le distributeur de jetons

Le distributeur de jetons
Le distributeur de jetons
Le distributeur de jetons
Le distributeur de jetons
Le distributeur de jetons
Le distributeur de jetons

Le moteur pour entraîner la plaque médiane est un moteur synchrone 220V AC de …. Je n'en ai aucune idée, je l'ai trouvé dans ma boîte de rechange, tant qu'il est lent et fort. L'arbre a été collé à la plaque centrale avec de la colle époxy appelée Pratex. Le module de relais est déclenché et le fil sous tension est connecté pour faire fonctionner le moteur. J'ai percé des trous dans la plaque de fond pour contrer les frottements, si ça fait une différence, je ne sais pas. 2 trous ont été découpés de part et d'autre de la plaque médiane pour "saisir" les jetons. Le diamètre des trous est juste un peu plus grand que le diamètre des jetons, de sorte qu'il y a une certaine marge d'erreur lors de la saisie des jetons.

Étape 4: Détecter si un jeton a été distribué

Détecter si un jeton a été distribué
Détecter si un jeton a été distribué
Détecter si un jeton a été distribué
Détecter si un jeton a été distribué

J'ai utilisé un module de capteur photoélectrique pour cela, nous ne voulons pas ostraciser un employé s'il n'a pas reçu de jeton après avoir scanné une étiquette. maintenant le ferions-nous?. L'enregistrement n'est écrit que sur la carte SD, lorsque la détection du jeton est réussie, si aucun jeton n'a été détecté, l'affichage se met en colère, blâmant le service dans l'entreprise et que le service est nul. Aucun enregistrement n'est écrit dans le cas où il n'y a pas de jetons à distribuer. J'ai collé le phototransistor au fond de la goulotte pour que le jeton casse le faisceau lorsqu'il traverse le faisceau

Étape 5: Électronique

Électronique
Électronique

Arduino Mega - C'est le cerveau du Coin-o-Matic, tous les capteurs, etc. sont connectés au Mega

Arduino Pro Mini et RFM95 Lora Radio - L'Arduino Pro Mini et l'Arduino Mega sont connectés l'un à l'autre via le bus série, lorsqu'un tag est scanné, le numéro de tag est envoyé sur le bus série du Mega au Pro Mini. Le Pro Mini est en boucle tout le temps, dès que quelque chose est reçu sur le bus série du Pro Mini, le numéro d'étiquette est téléchargé sur thethingsnetwork (TTN) à l'aide de LoraWan. Je n'ai fait aucune intégration là-dessus, mais le plan serait d'avoir une instance AWS pour stocker et trier les informations. Voir l'étape suivante pour plus d'informations.

Tiny RTC DS1307 Real Time Clock I2C Module - Lorsque le Coin-O-Matic démarre, il se connecte au réseau WiFi et obtient l'heure d'un serveur NTP via le module WiFi ESP8266 ESP12 Test Board, puis règle l'heure RTC en conséquence

LCD TFT 2,2 couleur graphique 240x320 ILI93412 - L'écran principal, il affiche normalement une horloge et donnera quelques mots de réflexion à l'utilisateur

Convertisseurs de niveau bidirectionnels à 4 canaux - Comme les broches numériques du Mega sont de 5 V, j'avais besoin que les convertisseurs communiquent à un niveau sûr avec certains des modules

NeoPixel Ring 24 RGB LED WS2812 - Faites de la lumière pour étourdir et dérouter l'utilisateur

Kit de démarrage RFID 13.56MHz - Le lecteur RFID

Module de carte SD - Écrivez le numéro d'étiquette, la date et l'heure pour chaque balayage d'étiquette

Boutons poussoirs - L'administrateur qui a la balise principale chargera de nouvelles balises et j'utilise l'un des boutons pour suspendre l'affichage jusqu'à ce qu'il puisse copier le numéro de balise et enregistrer qui a la balise. Les 4 autres boutons sont câblés mais ne sont pas utilisés pour le moment

LED tricolore - Plus de lumière pour étourdir et dérouter les utilisateurs

Beaucoup, beaucoup d'attaches de câble - Essayez de mettre de l'ordre dans tous les fils

Beaucoup de cavaliers de planche à pain - Câblez le truc

Module de relais 2 canaux 5V 10 AMP 5VDC - L'un des relais est utilisé pour alimenter le moteur du distributeur de pièces et l'autre pour alimenter le module ESP8266, le programme du module ESP8266 est également en boucle, dès qu'il est alimenté, il connectez-vous au réseau WiFi et effectuez un appel d'heure NTP. Pour minimiser les appels de temps NTP, j'ai décidé de l'alimenter avec le relais, c'est-à-dire d'activer le relais, d'activer le module ESP, le module ESP obtient l'heure et le relais éteint à nouveau le module… Et cela fait aussi de jolis clics

Module de capteur photoélectrique à faisceau lumineux infrarouge - Pour détecter si un jeton a été distribué

Étape 6: Carte de capteur LoRaWAN

Carte de capteur LoRaWAN
Carte de capteur LoRaWAN

Les fichiers de conception Eagle sont joints, la planche est de ma fabrication, mais j'utilise une entreprise pour produire la planche elle-même. Cette carte peut également être utilisée comme carte de capteur LoRAWAN, elle est extrêmement petite, ~ 37 mm x 54 mm, elle prend en charge un capteur de température et d'humidité DHT 22 ou DHT 11 tel quel.

Étape 7: TTN - le réseau des objets

TTN - le réseau des objets
TTN - le réseau des objets

Il y a beaucoup d'informations à ce sujet sur

www.thethingsnetwork.org/

Fondamentalement, le Coin-O-Matic parle via LoraWAN (L'Arduino Pro Mini avec la radio RFM95) à une passerelle (Raspberry Pi avec concentrateur IMST) qui est connectée à TTN via Internet, à partir de TTN, vous pouvez faire beaucoup d'intégrations, IE Swagger, AWS, http etc, l'image ci-dessus montre quelques balayages de balises dans le bureau

Étape 8: Logiciel

Le logiciel est divisé en 3 parties

getNTPtime_instructables - Le programme ESP8266, vous devez modifier le ssid, le mot de passe et le ntpServerName avant de télécharger. J'utilise un programmeur de base FTDI, connecte la masse, TX et RX. N'oubliez pas de choisir le module ESP dans l'IDE Arduino et de trier les broches sur l'ESP pour le mettre en mode programmation

Coin-O-Matic_instructables - Le programme Coin-O-Matic. Cela se charge sur l'Arduino Mega, les modifications nécessaires ici sont le numéro de balise principale -

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

pro_mini_instructables - Le programme LoRaWAN. Cela se charge sur le Pro Mini, voir le schéma pour plus de détails sur la façon de câbler la radio et les codes PIN à utiliser. L'adresse de l'appareil, la clé de session réseau et la clé de session de l'application doivent être modifiées après l'enregistrement de l'appareil sur TTN, si vous utilisez ABP

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

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

statique const u4_t DEVADDR = 0x; // <-- Modifiez cette adresse pour chaque nœud !

Étape 9: Démarrez

La vidéo montre le relais en cours d'activation (relais 1), le module ESP8266 se connecte au réseau WiFi, envoie un signal horaire getNTP et obtient l'heure du serveur NTP, une fois l'heure mise à jour avec succès, le relais se désactive et coupe l'alimentation du ESP8266. Si quelque chose ne va pas et qu'il n'y a pas de mise à jour de l'heure réussie, l'Arduino Mega redémarre et réessaye. Le module ESP8266 et l'Arduino Mega sont connectés l'un à l'autre via les ports série (Serial2 sur le Mega), l'Arduino Mega écoute une réponse de l'ESP8266, le message ressemble à ceci "UNX [et l'horodatage de l'époque]", Je suis en GMT+2, donc dans le code Arduino Mega, j'ajoute GMT+2 comme suit

time_t gmtTimeVar = newTimeVar+7200;

rtc.adjust(DateTime(gmtTimeVar));

Étape 10: Ajouter/supprimer une balise

Image
Image

L'étiquette maîtresse est scannée et l'écran indique qu'il s'agit de l'étiquette maîtresse. La nouvelle étiquette est numérisée et le numéro de l'étiquette s'affiche à l'écran, ce qui donne à l'utilisateur le temps de noter le numéro et d'enregistrer qui possède la nouvelle étiquette. Le numéro de tag sera écrit dans la base de données dès que l'utilisateur appuie sur le bouton gauche. La même procédure est suivie pour supprimer une balise de la base de données

Étape 11: Quelques vidéos montrant le fonctionnement du Coin-O-Matic

J'ai utilisé node-red pour intégrer Telegram, node-red a un module d'intégration à TTN, alors que se passe-t-il lorsque vous scannez une balise ?

  • Le tag est scanné
  • txt sur la carte SD est lu pour voir s'il s'agit d'une balise valide
  • Si la balise est valide, un horodatage avec le numéro de balise est écrit dans un fichier txt sur la carte SD
  • Le numéro de tag est envoyé via LoRaWAN et la passerelle Raspberry PI vers le réseau TTN
  • Node-red s'abonne aux messages MQTT sur le réseau TTN
  • Node-Red envoie le numéro de balise HEX vers DEC décodé à un fichier de script bash exécuté sur un serveur localement
  • Le script bash scanne un fichier txt avec TAG NUMBERS et NAMES
  • Le fichier de script bash télécharge le message sur un Telegram BOT avec curl contenant le TAG NUMBER et le nom de la personne

Agréable et complexe, j'aime comment une tâche aussi simple devient tellement complexe

Dites-moi ce que vous en pensez dans les commentaires ci-dessous

Conseillé: