يهدف هذا المشروع إلى مصادقة/تفويض المستخدمين من علامات RFID باستخدام تكامل بسيط مع قاعدة البيانات.
يهدف المشروع إلى تلبية معلقة مع المعلقة التي كان لدي بالفعل مع الموضوع المعني وأيضًا لتلبية الطلب من مستخدمي المجتمع الذين يبحثون عن مثل هذه الموضوعات. - في يوم واحد ، أعتقد أنني رأيت حوالي 3 أشخاص يبحثون عن شيء ما.
لذا دع الألعاب تبدأ - أتمنى أن تنال إعجابك :)
في الرسم البياني أعلاه ، يمكن للمرء مراقبة تدفق التطبيق الذي تم تطويره. هذا يبدو معقدًا ، ولكن عندما تبدأ في الفهم كما لو كنت تعطي اتصالًا بالشبكة ، فإنك تأخذ مثل هذه الهندسة المعمارية.
في الأساس لدينا تدفقان في هذا المشروع - Ping و Pong . كلاهما سيتم معالجته أدناه.
التدفق لبينج هو التدفق الأولي للاتصال. ومنه بدأ كل التواصل. انظر الصورة التي تشير أدناه:
في الأساس سيتم اتخاذ الخطوات أدناه:
... يتبع في الموضوع التالي
ستكون Pong مسؤولة عن العائد ، أي إذا كانت علامة القراءة نشطة/محظورة أو ببساطة غير موجودة. ستكون النتيجة عودة منطقية بسيطة - 0 أو 1 . انظر كيف كان التدفق في الصورة أدناه:
لذلك ، الاستمرار في تدفق التطبيق ، سيتم إعطاء الاستمرارية وفقًا للخطوة الخامسة التي تم تناولها في الموضوع أعلاه.
يتم تنظيم المستودع بسبب المسؤوليات التي يقدمها.
يقع البرنامج الثابت كما هو مذكور داخل مجلد ESP8266 ، لذا افتحه مع Arduino IDE.
ملاحظة: تذكر أنك بحاجة إلى تثبيت مكتبتين
بعد فتح البرامج الثابتة بالفعل ، سيتعين عليك تغيير بعض المتغيرات إلى نطاقك. مثل شبكة 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 ٪ منذ كل وقت أختبر شيئًا جديدًا: ص. النصيحة هي أن يكون لها البعوض الخاص بك في المنزل أو في بعض VPs.
مع كل دائرة من اللوحة جاهزة ، الآن فقط قم بتحميل اللوحة وتراقب الشاشة التسلسلية. معرفة ما إذا كان كل شيء على ما يرام. إذا كنت كذلك ، يمكنك اختبار علامات RFID لمعرفة ما إذا كان كل شيء على ما يرام فيما يتعلق بالشحن. الآن دعنا نذهب إلى الموضوع التالي.
تطبيق الويب - الموجود في مجلد العميل ، هو 100 ٪ HTML ، لذلك لا تحتاج إلى أي شيء غير عادي لتشغيله. يمكنك حتى فتح مباشرة مع المتصفح.
فيما يلي بعض النصائح للحصول على بيئة اختبار/تطوير أكثر متعة.
في جزء تطبيق الويب ، يتعين علينا إجراء تغييرين فقط. إنه في الأساس عنوان URL API وأيضًا عنوان URL الوسيط.
جميع عناوين URL موجودة في ملف App.js ، الموجود في الأصول/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 (قررت أن أختارها ، لأنها واحدة من أشهرها ، لذلك مرت معظم الناس: P).
الاسم الذي تقوم بتعيينه إلى قاعدة البيانات هو RFID ، إذا كنت ترغب في اختيار اسم آخر بدون مشاكل. يقع الهيكل المصرفي ضمن ملف قاعدة البيانات/قاعدة البيانات .
في الأساس لا يوجد لغز ، فقط قم بإنشاء الهيكل وفقًا للملف :).
عند دخول النهاية الخلفية ، كما قد تكون قد أدركت ، سيكون لديك بديلان. في بيثون أو nodejs.
حتى الآن (05/06/2017) ، تم تطويره فقط في Nodejs ، بمجرد أن أعطي ، سأقوم بإنشاء واحدة باستخدام Python مع Flask.
بالنسبة للمبتدئين ، لا شيء أكثر عدلاً من تثبيت NodeJS ، هل توافق؟ للقيام بذلك ، أدخل الموقع الرسمي وتثبيت وفقًا لنظام التشغيل الخاص بك.
ثانياً ، انتقل إلى مجلد Nodejs: Server/NodeJS .
كونك في المجلد ، يجب عليك تنفيذ بعض الإجراءات الأولية ، مثل تثبيت مرافق المشروع وكذلك إعداد الوصول إلى قاعدة البيانات ، من بين إعدادات أخرى.
بصفتي مديرًا للاعتماد ، استخدمت الغزل ، إذا لم يكن لديك حتى الآن ، فسيحتوي رابط الاقتباس على الخطوات اللازمة.
بمجرد التثبيت ، ما عليك سوى تشغيل أمر الغزل .
لتركيز بطريقة باردة متغيرات بيئتنا ، استخدمت 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
بمجرد تكوينه ، يكون كل شيء جاهزًا لتسلق خدمة الويب الخاصة بنا.
للقيام بذلك ، ما عليك سوى تشغيل أمر Prod Yarn (اسم مستعار واحد من أمر فهرس العقدة )
إذا سارت الأمور على ما يرام ، فستتمكن من الوصول إلى خدمة الويب التي تعمل على عنوان URL 127.0.0.1:3000/API . في موضوع النهاية ، سيتم التعامل مع الاستئناف المتاح.
لكل جدول من تطبيقاتنا - المستخدمين ، العلامات ، Access_Log - سيكون لدينا واجهة برمجة تطبيقات لجعل Crud (إنشاء ، قراءة ، تحديث ، حذف) لكل ميزة متوفرة.
لذلك ، لكل ميزة ، يمكنك تقديم طلب بالتنسيق التالي:
MÉTODO - URL - RECURSO
GET http://127.0.0.1:3000/api/tags
Neste simples caso, irá retornar todas tags cadastradas no sistema :)
مع كل بيئة جاهزة ، يمكنك بدء الاختبارات. لهذا ، لديك معرف العلامات الخاصة بك باليد.
بعد ذلك بوقت قصير ، يجب عليك التسجيل في النظام ، وإذا ، تمامًا مثلي ، لا أملك سوى اثنين ، تركت علامة نشطة وذات معطل واحد. وبالتالي محاكاة البيئة التي سيتم فيها المصادقة على العلامة وسيتم رفض شيء آخر.
يا شباب بوينسو ، في الوقت الحالي ، أعتقد أنني تمكنت من تحقيق هدفي حيث كان مجرد إظهار مصادقة علامة RFID مع قاعدة البيانات. لقد تجاوزت قليلاً إنشاء WebRservice وغيرها ، لكنه كان نظامًا بيئيًا رائعًا للغاية.
كما ترون ، هذا المشروع هو أساسيات الأساسيات. ليس له طبقة من مصادقة المستخدم ، والتشفير ، أي السلامة بشكل عام.
نقطة أخرى سألني بالفعل كانت حول التسجيل التلقائي للعلامة من خلال المدمجة ، LEDS ، LCD وما إلى ذلك - سرعان ما ركزت بالفعل على الهدف الحقيقي.
أرغب في إنشاء مشروع أكثر اكتمالا إذا كان هناك اهتمام معين من المجتمع ، وأعترف أنه كان مشروعًا رائعًا للغاية ، حتى مع كل "البساطة" المعنية.
أقيم هنا ، أي ردود فعل ، شك - أعرف بالفعل أين أجدني. لذلك إذا استمتعت حقًا بالمشروع ، فتأكد من ترك هذا النجم في المستودع :). من المهم للغاية تقييم درجة المساهمة التي تسببت بها.
لا تنسى متابعة المدونة :): https://douglaszuqueto.com
إذا كنت قد استمتعت بهذا والمشاريع الأخرى التي أحتفظ بها ، في 06/18/2017 ، فتحت حملة تمويل متكررة لجمع الأموال من أجل التفاني في مشاريع المصادر المفتوحة.
لذلك إذا كنت تريد مساعدتي ، فإليك رابط دعمي. شكرا مقدما: د.