1.17 Ưu điểm
- Hệ thống hoạt động hiệu quả và mô phỏng được hệ thống thực tế. - Có thể quản lý và giám sát tốt trong quá trình hoạt động.
- Phần mềm có thể áp dụng tốt trong nhiều lính vực khác trong đời sống. - Trực quan, thân thiện với người dùng.
- Mô hình phần cứng gọn nhẹ, ít linh kiện và có giá thành phù hợp. - Có thể áp dụng vào thực tế.
1.18 Nhược điểm
- Cần có nhiều chức năng hơn để phục vụ nhu cầu người dùng. - Cần bảo mật thông tin tốt hơn.
- Chưa tối ưu triệt để code.
- Module đọc dữ liệu RFID còn nhiễu và phản hồi chậm. 1.19 Hướng phát triển
- Có thể phát triển phần mềm vừa có thể giám sát nhập và xuất hàng hóa. - Lưu trữ nhiều dữ liệu thông tin của sản phẩm đó hơn như khối lượng, kích
thước, giá cả, vị trí chính xác… của từng sản phẩm. Tính giá trị của từng đợt nhập hàng.
- Có thể tích hợp hệ thống quản lý nhân viên.
- Có thể phát triển thiết kế mạch phần cứng dạng tay cầm để thuận tiện di chuyển trong nhiều trường hợp cần tính linh động.
TÀI LIỆU THAM KHẢO Tiếng Việt http://tueminh.tech/vn/giai-phap-RFID/gioi-thieu-cau-tao-phuong-thuc-lam-viec- RFID.html https://bizflycloud.vn/tin-tuc/tong-quan-ve-sql-server-management-studio-ssms- 2020092515234411.htm http://visualcpp.net/visual-studio-la-gi-gioi-thieu-phan-mem-visual-studio/ https://vn.got-it.ai/blog/phan-mem-arduino-ide-la-gi-chi-tiet-nhat#:~:text=Arduino %20IDE%20l%C3%A0%20m%E1%BB%99t%20ph%E1%BA%A7n,c%C3%A1c %20c%E1%BA%A3m%20bi%E1%BA%BFn%2C%20linh%20ki%E1%BB%87n.
PHỤ LỤC 1: CHƯƠNG TRÌNH ARDUINO#include <SPI.h> #include <SPI.h> #include <MFRC522.h> #define SS_PIN 10 #define RST_PIN 9 #define NR_KNOWN_KEYS 8
MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class MFRC522::MIFARE_Key key;
// Init array that will store new NUID
byte knownKeys[NR_KNOWN_KEYS][MFRC522::MF_KEY_SIZE]={(0x23, 0xBE, 0xAC, 0x18, 0x29, 0x08)};// FF FF FF FF FF FF FF = factory default
void setup() {
//put your setup code here, to run once: Serial.begin(9600);
SPI.begin(); // Init SPI bus
Serial.println(F("Scan tag RFID to see number")); rfid.PCD_Init(); // Init MFRC522
delay(2000); }
void loop() {
// Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
if ( ! rfid.PICC_IsNewCardPresent()|| ! rfid.PICC_ReadCardSerial()) return;
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); // Check is the PICC of Classic MIFARE type
if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && piccType != MFRC522::PICC_TYPE_MIFARE_1K && piccType != MFRC522::PICC_TYPE_MIFARE_4K) { Serial.println(F("Your tag is not of type MIFARE Classic.")); return;
}
String strID = "";
for (byte i = 0; i < 4; i++) {
strID += (rfid.uid.uidByte[i] < 0x10 ? "0" : "") + String(rfid.uid.uidByte[i],HEX) + (i!=3 ? ":" : ""); } strID.toUpperCase(); Serial.println(strID); rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); }