Table des matières:
- Étape 1: Nomenclature
- Étape 2: Commencer à construire une base en bois et en Perpex
- Étape 3: Le distributeur de jetons
- Étape 4: Détecter si un jeton a été distribué
- Étape 5: Électronique
- Étape 6: Carte de capteur LoRaWAN
- Étape 7: TTN - le réseau des objets
- Étape 8: Logiciel
- Étape 9: Démarrez
- Étape 10: Ajouter/supprimer une balise
- Étape 11: Quelques vidéos montrant le fonctionnement du Coin-O-Matic
Vidéo: Distributeur de jetons Coin-O-Matic : 11 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
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
- Quelques Perspex 3mm
- Quelques Perspex de 1 mm
- Arduino méga
- Arduino Pro Mini
- Radio Lora RFM95
- Module I2C d'horloge en temps réel minuscule RTC DS1307
- LCD TFT graphique couleur 2,2" 240x320 ILI9341
- Convertisseurs de niveau bidirectionnels 2 x 4 canaux
- Anneau NeoPixel 24 - LED RVB WS2812
- Kit de démarrage RFID 13.56MHz
- Module WiFi de carte de test ESP8266 ESP12
- Module de carte SD
- 5 x boutons poussoirs
- 2 x LED tricolores
- Beaucoup, beaucoup de serre-câbles
- Beaucoup de cavaliers de planche à pain
- 40mm x 40mm bois
- Module de relais 2 canaux 5V 10 AMP
-
Module de capteur photoélectrique à faisceau lumineux infrarouge 5VDC
Étape 2: Commencer à construire une base en bois et en 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 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é
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
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
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
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
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é:
Distributeur automatique de désinfectant pour les mains DIY : 6 étapes
Distributeur automatique de désinfectant pour les mains : Dans ce projet, nous allons construire un distributeur automatique de désinfectant pour les mains. Ce projet utilisera Arduino, un capteur à ultrasons, une pompe à eau et un désinfectant pour les mains. Un capteur à ultrasons permet de vérifier la présence de mains sous la sortie de la machine de désinfection
Jetons mains libres : 15 étapes (avec photos)
Jetons mains libres : Hé les geeks, maintenant j'étudie en +2, ce qui équivaut à la 12e année. Je m'intéresse beaucoup à l'informatique et c'est aussi mon sujet principal. J'ai passé beaucoup de temps à développer des projets Embedded. J'ai environ 3 ans d'expérience dans l'embedde
Système d'annonce de jetons : 5 étapes
Système d'annonce de jetons : dans le précédent instructable, nous avons vu comment faire parler votre Arduino. Aujourd'hui, nous allons explorer un peu plus sur le même sujet. Nous devons tous être tombés sur un système d'annonce à un moment donné de notre vie, peut-être dans une banque ou une gare. Avez-vous déjà gagné
Jetons de chariot d'achat : 8 étapes
Jetons de chariot de magasinage : - Ce tutoriel vous montrera comment créer un jeton de chariot de magasinage simple mais efficace découpé au laser ou imprimé en 3D- Ce produit est pratique à avoir sur vos clés ou comme cadeau aux membres de la famille et aux amis. sur Tinker CAD en particulier
Distributeur automatique--Distributeur de bonbons-- Arduino Bluetooth contrôlé--DIY : 11 étapes (avec photos)
Distributeur automatique||Distributeur de bonbons|| Arduino Bluetooth Controlled||DIY: Dans ce instructable, je montre comment construire un distributeur automatique à l'aide d'un Arduino.FAIRE COMMENTER CE QUE VOUS PENSEZ À CE POINT D'INSTRUCTION, AFIN QUE JE PUISSE AMÉLIORER DANS MON AUTRE INSTRUCTABLEVoir le didacticiel vidéo pour une meilleure compréhension de l'ent