Ce projet vise à authentifier / autoriser les utilisateurs à partir de balises RFID en utilisant une intégration simple avec la base de données.
Le projet vise à répondre à une en attente que j'avais déjà avec le thème en question et à répondre à une demande des utilisateurs de la communauté qui recherchent de tels sujets. - En 1 jour, je pense avoir vu environ 3 personnes à la recherche de quelque chose.
Alors laissez les jeux commencer - j'espère que vous l'aimez :)
Dans le diagramme ci-dessus, on peut observer le flux de l'application qui a été développé. Cela semble compliqué, mais lorsque vous commencez à comprendre comme si vous donnez une communication réseau, vous prenez une telle architecture.
Fondamentalement, nous avons 2 flux dans ce projet - le ping et le pong . Les deux seront traités ci-dessous.
Le flux de ping est le flux initial de communication. C'est de cela que toute communication avait commencé. Voir l'image faisant référence ci-dessous:
Fondamentalement, les étapes ci-dessous seront faites:
... suit dans le sujet suivant
Le pong sera responsable du retour, c'est-à-dire si la balise de lecture est active / bloquée ou n'existe tout simplement pas. Le résultat sera un simple retour booléen - 0 ou 1 . Voyez comment se trouvait le flux dans l'image ci-dessous:
Par conséquent, en continuant avec le flux d'application, la continuité sera donnée en fonction de la 5e étape abordée dans le sujet ci-dessus.
Le référentiel est organisé en raison des responsabilités qu'il offre.
Le firmware comme indiqué est situé à l'intérieur du dossier ESP8266 , alors ouvrez-le avec l'ide Arduino.
Remarque: N'oubliez pas que vous devez installer 2 bibliothèques, les deux ont été cités dans le sujet utilisé des technologies
Le firmware déjà ouvert, vous devrez modifier certaines variables dans votre portée. Comme le réseau WiFi, le courtier, les sujets.
Soyez donc conscient des variables suivantes:
SSID - nome de sua rede wifi
PASSWORD - senha de sua rede wifi
BROKER_MQTT - url do broker mqtt
BROKER_PORT - porta do broker mqtt
TOPIC_PING - topico utilizado para publicar o valor tag rfid
TOPIC_PONG - topico responsavel por receber o status da autenticação rfid
Notez un addendum au courtier utilisé. Ce courtier que j'ai mis en œuvre sur mon PS pour un usage personnel. Vous pouvez l'utiliser, mais je ne garantis pas la stabilité à 100% car tout le temps je teste quelque chose de nouveau: p. Le conseil est d'avoir votre propre courtier mousquitto à la maison ou dans certains VP.
Avec chaque circuit de la planche prêt, téléchargez maintenant la plaque et gardez un œil sur le moniteur en série. Voyez si tout va bien. Si vous l'êtes, vous pouvez tester vos balises RFID pour voir si tout va vraiment bien en ce qui concerne les expédiés. Passons maintenant au sujet suivant.
Application Web - située dans le dossier client , est 100% HTML, vous n'avez donc rien à exécuter d'extraordinaire pour que vous puissiez exécuter. Vous pouvez même ouvrir directement avec le navigateur.
Voici quelques conseils pour avoir un environnement de test / développement plus agréable.
Dans la pièce d'application Web, nous ne devons apporter que 2 modifications. Il s'agit essentiellement de l'URL de l'API et de l'URL du courtier.
Toutes les URL se trouvent dans le fichier app.js , située dans Assets / JS / App.js.
const apiPath = 'http://127.0.0.1:3000/api'; // caso esteja em localhost, pode deixar assim mesmo.
const mqttConfig = {
broker: 'broker.iot-br.com', // url do broker
topic: '/empresas/douglaszuqueto/catraca/entrada/ping', // topico ouvinte
port: 8083 // porta referente ao WebSockets do Broker
};
La base de données sera MySQL (j'ai décidé de le choisir, car elle est l'une des plus connues, donc la plupart des gens l'ont vécu: P).
Le nom que vous attribuez à la base de données est RFID , si vous souhaitez choisir un autre nom sans problèmes. La structure bancaire se situe dans le fichier de base de données / base de données.sql .
Fondamentalement, il n'y a pas de mystère, créez simplement la structure en fonction du fichier :).
En entrant dans le dos, comme vous l'avez peut-être réalisé, vous aurez 2 alternatives. Dans Python ou Nodejs.
Jusqu'à présent (05/06/2017), il n'a été développé que dans NodeJS, dès que je donnerai, j'en créerai un en utilisant Python avec Flask.
Pour commencer, rien de plus juste que l'installation des Nodejs, êtes-vous d'accord? Pour ce faire, entrez le site officiel et installez-vous en fonction de votre système d'exploitation.
Deuxièmement, accédez au dossier NodeJS: Server / NodeJS .
Étant dans le dossier, vous devez effectuer certaines procédures initiales, telles que l'installation des installations de projet ainsi que la configuration de l'accès à la base de données, entre autres paramètres.
En tant que gestionnaire de dépendance, j'ai utilisé du fil, si vous ne l'avez pas encore, le lien de devis aura les étapes nécessaires.
Une fois installé, exécutez simplement la commande du fil .
Pour centraliser d'une manière cool les variables de notre environnement, j'ai utilisé Dotenv à cette fin.
Vous vous rendrez compte qu'à la racine du projet, il a un fichier .env.example , faites une copie nommée .env . Vous verrez cette structure:
APP_URL=http://127.0.0.1:3000/ // url base do webservice
DB_HOST=127.0.0.1 // ip/host do Mysql
DB_DATABASE=rfid // nome dado ao banco de dados
DB_USER=rfid // usuário do banco de dados
DB_PASS=rfid // senha do banco de dados
BROKER_HOST=broker.iot-br.com // ip/host do broker
BROKER_PORT=1883 // porta do broker mqtt
Une fois configuré, tout est prêt à gravir notre service Web.
Pour ce faire, il suffit d'exécuter la commande Yarn Prod (un alias de la commande nœud index )
Si tout s'est bien passé, vous aurez accès au service Web fonctionnant sur URL 127.0.0.1:3000/API . Dans le sujet des points de terminaison , l'appel disponible sera traité.
Pour chaque tableau de notre application - utilisateurs, balises, Access_log - nous aurons une API pour faire CUD (créer, lire, mettre à jour, supprimer) de chaque fonctionnalité disponible.
Par conséquent, pour chaque fonctionnalité, vous pouvez faire une demande dans le format suivant:
MÉTODO - URL - RECURSO
GET http://127.0.0.1:3000/api/tags
Neste simples caso, irá retornar todas tags cadastradas no sistema :)
Avec chaque environnement prêt, vous pouvez commencer les tests. Pour cela, ayez l'ID de vos balises à la main.
Peu de temps après, vous devriez vous inscrire dans le système, et si, tout comme moi, je n'en ai que deux, j'ai laissé une balise active et une handicapée. Simulant ainsi un environnement où une étiquette sera authentifiée et une autre sera refusée.
Bueno Guys, pour l'instant que, je pense que j'ai pu atteindre mon objectif où il s'agissait simplement de démontrer ce que serait une authentification de balise RFID avec la base de données. Je suis allé un peu au-delà de la création de webrService et etc., mais c'était un écosystème très cool.
Comme vous pouvez le voir, ce projet est les bases des bases. Il n'a pas de couche d'authentification des utilisateurs, de chiffrement, c'est-à-dire de la sécurité en général.
Un autre point qui m'a déjà posé des questions sur l'enregistrement automatique de l'étiquette à travers les LED, LCD, etc.
Je veux faire un projet plus complet s'il y a un certain intérêt de la communauté, j'avoue que c'était un très beau projet à développer, même avec toute la «simplicité» impliquée.
Je reste ici, tout commentaire, doute - je sais déjà où me trouver. Donc, si vous avez vraiment apprécié le projet, assurez-vous de laisser cette étoile dans le référentiel :). Il est très important d'évaluer le degré de contribution qu'il a causé.
N'oubliez pas de suivre le blog :): https://douglaszuqueto.com
Si vous avez apprécié cela et d'autres projets, je maintiens, le 18/06/2017, j'ai ouvert une campagne de financement récurrente pour collecter des fonds pour un dévouement de réalisation aux projets open source.
Donc, si vous voulez m'aider, voici le lien de mon soutien. Merci d'avance: d.