Dieses Projekt zielt darauf ab, Benutzer von RFID -Tags mithilfe einer einfachen Integration in die Datenbank zu authentifizieren/zu autorisieren.
Das Projekt zielt darauf ab, eine ausstehende Ausnahme zu erfüllen, die ich bereits mit dem fraglichen Thema hatte, und auch eine Nachfrage von Community -Nutzern zu befriedigen, die solche Themen suchen. - In 1 Tag glaube ich, dass ich ungefähr 3 Leute gesehen habe, die nach etwas suchen.
Also lass die Spiele beginnen - ich hoffe es gefällt dir :) :)
Im obigen Diagramm kann man den entwickelten Anwendungsfluss beobachten. Es klingt kompliziert, aber wenn Sie verstehen, als ob Sie Netzwerkkommunikation geben, nehmen Sie eine solche Architektur ein.
Grundsätzlich haben wir 2 Flüsse in diesem Projekt - den Ping und die Pong . Beide werden unten angesprochen.
Der Fluss für das Ping ist der anfängliche Kommunikationsfluss. Aus diesem Grund hatte alle Kommunikation begonnen. Siehe das Bild unten:
Grundsätzlich werden die folgenden Schritte durchgeführt:
... folgt im nächsten Thema
Die Pong ist für die Rückgabe verantwortlich, dh wenn das Lesedicht aktiv/blockiert ist oder einfach nicht existiert. Das Ergebnis ist eine einfache Boolesche Rückgabe - 0 oder 1 . Sehen Sie, wie der Fluss im Bild unten war:
Daher wird die Kontinuität nach dem 5. Schritt, der im obigen Thema angesprochen wird, mit dem Anwendungsfluss fortgesetzt.
Das Repository ist aufgrund der angebotenen Verantwortlichkeiten organisiert.
Die angegebene Firmware befindet sich im ESP8266 -Ordner. Öffnen Sie sie also mit der Arduino -IDE.
Hinweis: Denken Sie daran, dass Sie 2 Bibliotheken installieren müssen. Beide wurden in dem Thema verwendete Technologien zitiert
Wenn Sie die Firmware bereits geöffnet haben, müssen Sie einige Variablen in Ihren Bereich ändern. Wie WiFi Network, Broker, Themen.
Achten Sie also auf die folgenden Variablen:
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
Beachten Sie einen Addendum zum verwendeten Broker. Dieser Broker habe ich auf meinem PS für den persönlichen Gebrauch implementiert. Sie können es verwenden, aber ich garantiere keine 100% ige Stabilität, da ich immer etwas Neues teste: p. Der Tipp ist, dass Ihre eigene Broker -Mücke zu Hause oder in einigen VPs eine eigene Broker -Mosquitto hat.
Laden Sie mit jeder Schaltung der Platine jetzt die Platte hoch und behalten Sie den seriellen Monitor im Auge. Sehen Sie, ob alles in Ordnung ist. Wenn Sie dies sind, können Sie Ihre RFID -Tags testen, um zu sehen, ob in Bezug auf die Versand wirklich alles in Ordnung ist. Gehen wir nun zum nächsten Thema.
Webanwendung - Im Client -Ordner befindet sich 100% HTML, sodass Sie nichts Außergewöhnliches benötigen, um auszuführen. Sie können sich sogar direkt mit dem Browser öffnen.
Im Folgenden finden Sie einige Tipps für eine angenehmere Test-/Entwicklungsumgebung.
Im Web -Anwendungsteil müssen wir nur 2 Änderungen vornehmen. Es ist im Grunde die API -URL und auch die Broker -URL.
Alle URLs befinden sich in der App.js -Datei in 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
};
Die Datenbank wird MySQL sein (ich habe beschlossen, sie zu wählen, da sie eines der bekanntesten ist, also haben die meisten Menschen sie durchgemacht: P).
Der Name, den Sie der Datenbank zuweisen, lautet RFID , wenn Sie ohne Probleme einen anderen Namen auswählen möchten. Die Bankstruktur befindet sich innerhalb der Datei Datenbank/Datenbank.sql .
Grundsätzlich gibt es kein Rätsel. Erstellen Sie einfach die Struktur gemäß der Datei :).
Wie Sie vielleicht erkannt haben, haben Sie 2 Alternativen. In Python oder Nodejs.
Bisher (05.05.2017) wurde es nur in NodeJs entwickelt. Sobald ich gebe, werde ich eine mit Python mit Flask erstellen.
Stimmen Sie für den Anfang, nichts Faireres als die Nodejs installiert zu haben? Geben Sie dazu die offizielle Website ein und installieren Sie dies gemäß Ihrem Betriebssystem.
Zweitens navigieren Sie zum Ordner nodejs: server/nodejs .
Wenn Sie sich im Ordner befinden, sollten Sie einige erste Prozeduren durchführen, z. B. die Installation von Projekteinrichtungen sowie die Einrichtung von Zugriff auf die Datenbank unter anderem.
Als Abhängigkeitsmanager habe ich Garn verwendet. Wenn Sie es noch nicht haben, hat der Zitatlink die erforderlichen Schritte.
Nach der Installation führen Sie einfach den Garnbefehl aus.
Um die Variablen unserer Umgebung cool zu zentralisieren, habe ich Dotenv für diesen Zweck verwendet.
Sie werden erkennen, dass es am Stamm des Projekts eine .Env.example -Datei enthält, erstellen Sie eine Kopie mit dem Namen .env . Sie werden diese Struktur sehen:
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
Nach der Konfiguration ist alles bereit, unseren Webservice zu besteigen.
Führen Sie dazu einfach den Befehl marnprod aus (ein Alias aus dem Befehl node Index ).
Wenn alles gut läuft, haben Sie Zugriff auf den Webservice, der bei der URL 127.0.0.1:3000/api ausgeführt wird. Im Endpunkt -Thema wird die verfügbare Berufung behandelt.
Für jede Tabelle unserer Anwendung - Benutzer, Tags, Access_log - verfügen wir über eine API, um CRUD (Erstellen, Lesen, Aktualisieren, Löschen) jeder verfügbaren Funktion zu erstellen.
Daher können Sie für jede Funktion im folgenden Format eine Anfrage stellen:
MÉTODO - URL - RECURSO
GET http://127.0.0.1:3000/api/tags
Neste simples caso, irá retornar todas tags cadastradas no sistema :)
Mit jeder Umgebung können Sie mit Tests beginnen. Halten Sie dafür die ID Ihrer Tags von Hand.
Kurz darauf sollten Sie sich im System registrieren, und wenn ich wie ich nur zwei habe, habe ich ein aktives Tag und einen deaktiviert. Somit eine Umgebung simulieren, in der ein Tag authentifiziert wird und eine andere verweigert wird.
Bueno Guys, im Moment, ich glaube, ich konnte mein Ziel erreichen, wo es lediglich zu demonstrieren war, was eine RFID -Tag -Authentifizierung mit Datenbank sein würde. Ich ging ein wenig über Webserservice und usw., aber es war ein sehr cooles Ökosystem.
Wie Sie sehen können, sind dieses Projekt die Grundlagen der Grundlagen. Es hat keine Ebene der Benutzerauthentifizierung, Verschlüsselung, dh Sicherheit im Allgemeinen.
Ein weiterer Punkt, der mich bereits gefragt hat, war die automatische Registrierung des Tags durch die eingebetteten, LEDs, LCD usw. - bald konzentrierten sich tatsächlich auf das eigentliche Ziel.
Ich möchte ein vollständigeres Projekt machen, wenn die Community ein gewisses Interesse gibt. Ich gebe zu, dass es ein sehr schönes Projekt war, selbst mit all der „Einfachheit“ zu entwickeln.
Ich bleibe hier, Feedback, Zweifel - wissen bereits, wo ich mich finden soll. Wenn Sie das Projekt also wirklich genossen haben, lassen Sie diesen Stern unbedingt im Repository :). Es ist sehr wichtig zu beurteilen, was der Grad des Beitrags war, den es verursacht hat.
Vergessen Sie nicht, dem Blog zu folgen :): https://douglaszuqueto.com
Wenn Sie dieses und andere Projekte genossen haben, die ich unterhielt, habe ich am 18.08.2017 eine wiederkehrende Finanzierungskampagne eröffnet, um Spenden für ein erfüllendes Engagement für Open -Source -Projekte zu sammeln.
Wenn Sie mir also helfen möchten, ist hier der Link meiner Unterstützung. Danke im Voraus: d.