โครงการนี้มีวัตถุประสงค์เพื่อตรวจสอบสิทธิ์/อนุญาตให้ผู้ใช้จากแท็ก RFID โดยใช้การรวมเข้ากับฐานข้อมูล อย่างง่าย
โครงการนี้มีจุดมุ่งหมายเพื่อตอบสนองที่ค้างอยู่ที่ฉันมีอยู่แล้วเกี่ยวกับธีมที่เป็นปัญหาและเพื่อตอบสนองความต้องการจากผู้ใช้ชุมชนที่ค้นหาหัวข้อดังกล่าว - ใน 1 วันฉันคิดว่าฉันเห็นประมาณ 3 คนที่กำลังมองหาอะไรบางอย่าง
ดังนั้นให้เกมเริ่มต้น - ฉันหวังว่าคุณจะชอบ :)
ในแผนภาพข้างต้นเราสามารถสังเกตการไหลของแอปพลิเคชันที่พัฒนาขึ้น ฟังดูซับซ้อน แต่เมื่อคุณเริ่มเข้าใจราวกับว่าคุณให้การสื่อสารเครือข่ายคุณจะใช้สถาปัตยกรรมดังกล่าว
โดยพื้นฐานแล้วเรามี 2 กระแสในโครงการนี้ - Ping และ Pong ทั้งสองจะได้รับการแก้ไขด้านล่าง
การไหลของ Ping คือการไหลเริ่มต้นของการสื่อสาร มันมาจากการสื่อสารทั้งหมดได้เริ่มขึ้น ดูภาพที่อ้างถึงด้านล่าง:
โดยทั่วไปขั้นตอนด้านล่างจะทำ:
... ติดตามในหัวข้อถัดไป
พงษ์ จะรับผิดชอบการส่งคืนเช่นหากแท็กอ่านใช้งาน/ถูกบล็อกหรือไม่มีอยู่จริง ผลลัพธ์จะเป็นบูลีนแบบง่าย ๆ - 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 เคล็ดลับคือการมี Mosquitto นายหน้าของคุณเองที่บ้านหรือใน VPS บางตัว
ด้วยทุกวงจรของบอร์ดพร้อมตอนนี้เพียงอัปโหลดจานและจับตาดูหน้าจออนุกรม ดูว่าทุกอย่างโอเคหรือไม่ หากคุณเป็นคุณสามารถทดสอบแท็ก RFID ของคุณเพื่อดูว่าทุกอย่างดีจริง ๆ เกี่ยวกับการจัดส่งหรือไม่ ตอนนี้ไปที่หัวข้อถัดไป
เว็บแอปพลิเคชัน - อยู่ในโฟลเดอร์ ไคลเอนต์ คือ HTML 100% ดังนั้นคุณไม่จำเป็นต้องมีอะไรพิเศษสำหรับคุณที่จะเรียกใช้ คุณสามารถเปิดเบราว์เซอร์ได้โดยตรง
ด้านล่างนี้เป็นเคล็ดลับสำหรับการทดสอบ/การพัฒนาที่น่าพอใจมากขึ้น
ในส่วนของเว็บแอปพลิเคชันเราต้องทำการเปลี่ยนแปลงเพียง 2 ครั้ง มันเป็น 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 หากคุณต้องการเลือกชื่ออื่นโดยไม่มีปัญหา โครงสร้างธนาคารอยู่ในไฟล์ ฐานข้อมูล/database.sql
โดยพื้นฐานแล้วไม่มีความลึกลับเพียงสร้างโครงสร้างตามไฟล์ :)
การเข้าสู่ด้านหลังอย่างที่คุณอาจตระหนักว่าคุณจะมี 2 ทางเลือก ใน Python หรือ 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 (นามแฝงหนึ่งอันจากคำสั่ง ดัชนีโหนด )
หากทุกอย่างเป็นไปด้วยดีคุณจะสามารถเข้าถึงเว็บเซอร์ที่ทำงานได้ที่ URL 127.0.0.1:3000/API ในหัวข้อ จุดสิ้นสุด การอุทธรณ์ที่มีอยู่จะได้รับการปฏิบัติ
สำหรับแต่ละตารางของแอปพลิเคชันของเรา - ผู้ใช้, แท็ก, access_log - เราจะมี API เพื่อสร้าง crud (สร้าง, อ่าน, อัปเดต, ลบ) ของแต่ละคุณสมบัติที่มีอยู่
ดังนั้นสำหรับแต่ละคุณสมบัติคุณสามารถทำการร้องขอในรูปแบบต่อไปนี้:
MÉTODO - URL - RECURSO
GET http://127.0.0.1:3000/api/tags
Neste simples caso, irá retornar todas tags cadastradas no sistema :)
ทุกสภาพแวดล้อมพร้อมคุณสามารถเริ่มการทดสอบได้ สำหรับสิ่งนี้มี ID ของแท็กของคุณด้วยมือ
หลังจากนั้นไม่นานคุณควรลงทะเบียนในระบบและถ้าเช่นเดียวกับฉันที่ฉันมีเพียงสองฉันก็ออกจากแท็กที่ใช้งานอยู่และปิดการใช้งานหนึ่ง ดังนั้นการจำลองสภาพแวดล้อมที่แท็กจะได้รับการรับรองความถูกต้องและอีกอันจะถูกปฏิเสธ
พวกบัวโน่ตอนนี้ฉันคิดว่าฉันสามารถบรรลุเป้าหมายของฉันได้ซึ่งเป็นเพียงการแสดงให้เห็นว่าการตรวจสอบแท็ก RFID กับฐานข้อมูลจะเป็นอย่างไร ฉันไปไกลกว่าการสร้าง WebRService และ ฯลฯ แต่มันเป็นระบบนิเวศที่ยอดเยี่ยมมาก
อย่างที่คุณเห็นโครงการนี้เป็นพื้นฐานของพื้นฐาน ไม่มีเลเยอร์ของการตรวจสอบผู้ใช้การเข้ารหัสเช่น - ความปลอดภัยโดยทั่วไป
อีกจุดหนึ่งที่ถามฉันแล้วเกี่ยวกับการลงทะเบียนโดยอัตโนมัติของแท็กผ่านทางที่ฝังตัว, LED, LCD และ ฯลฯ - ในไม่ช้าก็มุ่งเน้นไปที่เป้าหมายจริง
ฉันต้องการสร้างโครงการที่สมบูรณ์ยิ่งขึ้นหากมีความสนใจบางอย่างจากชุมชนฉันสารภาพว่ามันเป็นโครงการที่ดีมากในการพัฒนาแม้จะมี 'ความเรียบง่าย' ทั้งหมดที่เกี่ยวข้อง
ฉันอยู่ที่นี่ข้อเสนอแนะใด ๆ สงสัย - รู้แล้วว่าจะหาฉันได้ที่ไหน ดังนั้นหากคุณสนุกกับโครงการจริงๆอย่าลืมทิ้งดาวนั้นไว้ในที่เก็บ :) มันสำคัญมากที่จะประเมินว่าระดับของการมีส่วนร่วมที่เกิดขึ้นคืออะไร
อย่าลืมติดตามบล็อก :): https://douglaszuqueto.com
หากคุณสนุกกับโครงการนี้และโครงการอื่น ๆ ที่ฉันเก็บไว้ในวันที่ 06/18/2560 ฉันเปิดแคมเปญการระดมทุนที่เกิดขึ้นซ้ำเพื่อระดมทุนเพื่อการอุทิศตนให้กับโครงการโอเพนซอร์ส
ดังนั้นหากคุณต้องการช่วยฉันนี่คือลิงค์ของการสนับสนุนของฉัน ขอบคุณล่วงหน้า: d.