このプロジェクトの目的は、データベースとの簡単な統合を使用して、RFIDタグからユーザーを認証/承認することです。
このプロジェクトの目的は、問題のテーマを既に持っていた保留中の保留中に、またそのようなトピックを求めるコミュニティユーザーからの需要を満たすことを目指しています。 - 1日で、私は何かを探している約3人を見たと思います。
だからゲームを開始させてください - 私はあなたがそれを好きになることを願っています:)
上記の図では、開発されたアプリケーションの流れを観察できます。複雑に聞こえますが、ネットワーク通信を提供するかのように理解し始めると、そのようなアーキテクチャを採用します。
基本的に、このプロジェクトには2つのフローがあります - PingとPong 。両方を以下に説明します。
pingの流れは、通信の初期の流れです。すべてのコミュニケーションが始まったのはそれからです。以下を参照する画像を参照してください。
基本的に、以下の手順が作成されます。
...次のトピックに従います
Pongは返品の責任を負います。つまり、読み取りタグがアクティブ/ブロックされているか、単に存在しない場合。結果は、単純なブールリターン-0または1になります。以下の画像の流れがどのようになったかをご覧ください。
したがって、アプリケーションの流れを継続すると、上記のトピックで扱われている5番目のステップに従って連続性が与えられます。
リポジトリは、提供される責任のために編成されています。
記載されているファームウェアはESP8266フォルダー内にあるため、Arduino IDEで開きます。
注: 2つのライブラリをインストールする必要があることを忘れないでください。
ファームウェアをすでに開いている場合、いくつかの変数をスコープに変更する必要があります。 WiFiネットワーク、ブローカー、トピックのように。
したがって、次の変数に注意してください。
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
使用するブローカーへの補遺に注意してください。このブローカーは、PSに個人的な使用のために実装しました。使用できますが、何か新しいことをテストしている間、100%の安定性を保証するものではありません:p。ヒントは、自宅やいくつかのVPであなた自身のブローカーの蚊を蚊に置くことです。
ボードのすべての回路を準備しておくと、プレートをアップロードして、シリアルモニターに注意してください。すべてが大丈夫かどうかを確認してください。もしそうなら、RFIDタグをテストして、出荷されたものに関してすべてが本当にうまくいくかどうかを確認できます。それでは、次のトピックに行きましょう。
Webアプリケーション -クライアントフォルダにある、100%HTMLなので、実行するために特別なものは必要ありません。ブラウザで直接開くこともできます。
以下は、より快適なテスト/開発環境を持つためのいくつかのヒントです。
Webアプリケーションの部分では、2つの変更のみを行う必要があります。基本的にAPI URLとブローカーURLです。
すべてのURLはApp.jsファイルにあり、 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
};
データベースはMySQLになります(私はそれを選択することにしました、それは最も有名なものの1つであるため、ほとんどの人はそれを経験しました:P)。
問題なく別の名前を選択する場合は、データベースに割り当てる名前はRFIDです。銀行構造は、データベース/データベース.sqlファイル内にあります。
基本的に謎はありません。ファイルに従って構造を作成するだけです:)。
バックエンドに入ると、ご存知かもしれませんが、2つの選択肢があります。 Pythonまたはnodejsで。
これまで(2017年5月6日)、それはnodejsでのみ開発されてきましたが、私が与えるとすぐに、フラスコでPythonを使用して作成します。
まず第一に、nodejsをインストールすることほど公平なものはありませんか?これを行うには、公式Webサイトを入力して、オペレーティングシステムに従ってインストールしてください。
第二に、nodejs: server/nodejsフォルダーに移動します。
フォルダーにあるため、プロジェクト機能のインストールやデータベースへのアクセスのセットアップなど、最初の手順を実行する必要があります。
依存関係マネージャーとして、私は糸を使用しましたが、まだ持っていない場合、引用リンクには必要な手順があります。
インストールしたら、 Yarnコマンドを実行するだけです。
私たちの環境の変数をクールな方法で集中化するために、この目的のためにDotenvを使用しました。
プロジェクトのルートでは、 .env.exampleファイルがあり、 .envという名前のコピーを作成していることがわかります。この構造が表示されます。
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
構成されたら、すべてがWebサービスを登る準備ができています。
これを行うには、 YARN PRODコマンドを実行するだけです( Node Indexコマンドの1つのエイリアス)
すべてがうまくいった場合、URL 127.0.0.1:3000/APIで実行されているWebサービスにアクセスできます。エンドポイントのトピックでは、利用可能なアピールが扱われます。
アプリケーションの各テーブル(ユーザー、タグ、Access_log)に対して、使用可能な各機能のCRUD(作成、読み取り、更新、削除)を作成するAPIがあります。
したがって、各機能について、次の形式でリクエストを行うことができます。
MÉTODO - URL - RECURSO
GET http://127.0.0.1:3000/api/tags
Neste simples caso, irá retornar todas tags cadastradas no sistema :)
すべての環境が準備ができたら、テストを開始できます。このために、タグのIDを手で持ってください。
その後まもなく、システムに登録する必要があります。もし私と同じように、私が2つしか持っていない場合、アクティブなタグと1つの無効を残しました。したがって、タグが認証され、別の環境が拒否される環境をシミュレートします。
Bueno Guysは、今のところ、データベースを使用したRFIDタグ認証を実証することだけであるという目標を達成できたと思います。私はWebrserviceなどを作成するだけではありませんでしたが、それは非常にクールなエコシステムでした。
ご覧のとおり、このプロジェクトは基本の基本です。一般に、ユーザー認証、暗号化、すなわち安全性の層はありません。
すでに私に尋ねられたもう1つのポイントは、組み込み、LED、LCDなどを介したタグの自動登録に関するものでした。すぐに実際の目標に焦点を当てました。
コミュニティから特定の関心がある場合は、より完全なプロジェクトを作りたいと思います。すべての「シンプルさ」が関係していても、それが非常に素晴らしいプロジェクトであることを告白します。
私はここにとどまり、どんなフィードバックでも、疑いがあります - すでに私を見つける場所を知っています。したがって、プロジェクトを本当に楽しんだ場合は、必ずその星をリポジトリに残してください:)。それが引き起こした貢献度を評価することは非常に重要です。
ブログをフォローすることを忘れないでください:):https://douglaszuqueto.com
このプロジェクトや私が維持している他のプロジェクトを楽しんだ場合、2017年6月18日に、オープンソースプロジェクトへの充実した献身のために資金を集めるための繰り返しの資金調達キャンペーンを開始しました。
あなたが私を助けたいなら、ここに私のサポートのリンクがあります。事前に感謝:d。