Viết chương trình đọc thẻ RFID cho vi điều khiển Arduino mega2560 và truyền

Một phần của tài liệu NGHIÊN cứu, CHẾ tạo và lập TRÌNH điều KHIỂN mô HÌNH bãi đỗ XE tự ĐỘNG (Trang 78 - 154)

thông với PLC S7-1200

Để hoạt động của hệ thống diễn ra một cách hoàn toàn tự động, nhanh chóng chỉ bằng một thao tác quét thẻ, thì việc sử dụng một vi điều khiển, cụ thể là Arduino Mega 2560 để xử lý tín hiệu quét thẻ là một điều cần thiết. Đồng thời việc giao tiếp giữa Arduino Mega 2560 và PLC S7–1200 cũng dễ dàng thông qua một chiếc Module Ethernet Shield đi kèm với đó là bộ thư viện hỗ trợ việc giao tiếp qua chuẩn truyền thông Modbus từ cộng đồng Arduino. Đồng thời việc sử dụng Arduino Mega 2560 để lập trình đã đáp ứng tốt được tiêu chí đơn giản, dễ dàng thay đổi chương trình điều khiển khi cần thiết. Dưới đây là chương trình lập trình xử lý việc quét thẻ từ RFID của Arduino Mega 2560 cộng với truyền thông gửi dữ liệu đã xử lý cho PLC S7–1200:

#include <SPI.h> #include <MFRC522.h> #include <Ethernet.h> #include <Modbus.h> #include <ModbusIP.h> #define RST 49 #define SS 53 #define loa 40 MFRC522 rc522(SS, RST); ModbusIP mb;

const int thanhghi_0 = 0; const int thanhghi_1 = 1;

String mathe[] = {"", "12 B9 9B 34", "D9 B9 E7 5A",

"B6 BE 34 2B", "19 6D B4 59",

"EA 88 88 03"}; String mathequet;

int KTmathe, TTmathe; void setup() { Serial.begin(9600); pinMode(loa,OUTPUT); SPI.begin(); rc522.PCD_Init();

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xED}; byte ip[] = {192,168,1,120};

mb.config(mac,ip);

mb.addHreg(thanhghi_0); mb.addHreg(thanhghi_1);

Serial.println("sẵn sàng, xin mời quét thẻ"); } //... void loop() { mb.task(); if(KTmathe != 0) { delay(100); KTmathe = 0; mb.Hreg(thanhghi_0, 0); mb.Hreg(thanhghi_1, 0); } if(rc522.PICC_IsNewCardPresent()) {

if(rc522.PICC_ReadCardSerial()) {

for(byte i = 0; i < rc522.uid.size; i++) { mathequet.concat(String(rc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); mathequet.concat(String(rc522.uid.uidByte[i], HEX)); Serial.print(rc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rc522.uid.uidByte[i], HEX); } rc522.PICC_HaltA(); Serial.println(); digitalWrite(loa, HIGH); delay(100); digitalWrite(loa, LOW); mathequet.toUpperCase(); sosanhmathe(); } } mathequet = ""; } //... void sosanhmathe() { if(mathequet.substring(1) == mathe[1]) { TTmathe = 1; } if(mathequet.substring(1) == mathe[2]) { TTmathe = 2;

if(mathequet.substring(1) == mathe[3]) { TTmathe = 3; } if(mathequet.substring(1) == mathe[4]) { TTmathe = 4; } if(mathequet.substring(1) == mathe[5]) { TTmathe = 5; } if(mathequet.substring(1) == mathe[6]) { TTmathe = 6; } ghidulieu(); } //... void ghidulieu() { KTmathe++; mb.Hreg(thanhghi_0, TTmathe); mb.Hreg(thanhghi_1, 1);

Serial.print("Đã ghi vào thanh ghi 0 giá trị là: "); Serial.println(TTmathe);

}

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

−Trải qua một kỳ học với biết bao sự cố gắng, nổ lực không ngừng nghỉ của cả nhóm bằng việc tìm hiểu, học hỏi, nghiên cứu và thực hiện “Đồ án tốt nghiệp”. Cùng với sự hướng dẫn tận tình của giảng viên hướng dẫn, nhóm đã hoàn thành được đề tài “Nghiên cứu, chế tạo và lập trình điều khiển mô hình bãi đỗ xe tự động” với các kết quả đã đạt được như sau:

+Đề tài được hoàn thành đúng thời hạn và đáp ứng các mục tiêu ban đầu.

+Kích thước mô hình (Cao × rộng × sâu): 566×720×460 (mm) ; với tổng cộng 8 vị trí đỗ, trong đó 2 vị trí dùng để nhận và trả xe.

+Thiết kế thành công giao diện WinCC để điều khiển và giám sát ở cả 2 chế độ tự động và bằng tay

+Qua đề tài, nhóm đã học hỏi thêm được nhiều kiến thức mới cũng như áp dụng được những kiến thức mới này vào điều khiển, lập trình và vận hành mô hình thực tế. Đồng thời củng cố lại các kiến thức đã học.

+Ứng dụng được thành công công nghệ RFID, đồng thời ứng dụng được truyền thông Arduino với PLC S7 – 1200 qua giao thức Modbus TCP/IP vào trong đề tài.

+Hiểu hơn về cách lập trình các thiết bị phần cứng sử dụng trong đề tài, cũng như cách mà chúng hoạt động.

+Rèn luyện và nâng cao các kỹ năng cần có của sinh viên ngành tự động hóa như thiết kế thuật toán, lập trình, mô phỏng, kỹ năng làm việc nhóm cũng như kỹ năng tìm kiếm và chắt lọc thông tin qua sách, báo, internet.

−Qua quá trình thực hiện đề tài trên thực tế, nhóm đã rút ra được một số ưu, nhược điểm của mô hình như sau:

+Ưu điểm:

•Bằng việc sử dụng động cơ bước, hệ thống vận hành với độ chính xác tương đối cao, đáp ứng mục tiêu của đề tài.

•Hệ thống có tính tự động hoá cao, tối ưu hoá được thời gian đỗ/trả xe cho khách. Người đỗ xe không cần phải mất nhiều thời gian để tìm kiếm vị trí để đỗ xe hay tìm kiếm xe của mình trong bãi đỗ như các bãi đỗ thông thường

•Có chế độ điều khiển bằng tay với tính năng điều khiển an toàn. Giúp khách hàng an tâm hơn về sự an toàn của xe khi đỗ xe trong bãi

•Giao diện điều khiển và giám sát trên WinCC được thiết kế đơn giản, có tính thẫm mỹ, dễ sử dụng, dễ làm chủ và đầy đủ các chức năng cần thiết cho người điều khiển cũng như người giám sát.

+Nhược điểm:

•Mô hình chạy chưa êm, còn hơi rung lắc trong quá trình hoạt động.

•Khi hệ thống hoạt động về lâu dài có sai số về vị trí nên còn bị va chạm vào các giá đỡ xe trong quá trình đỗ/lấy xe tại các ô đỗ.

•Phần lớn các thiết bị được sử dụng là dùng trong học tập, nghiên cứu, giá rẻ, chưa phải là các thiết bị dùng trong công nghiệp nên có đôi lúc tín hiệu còn chập chờn, độ ổn định chỉ dừng lại ở mức tương đối

−Hướng phát triển:

+Có thể mở rộng quy mô bãi đỗ xe.

+Giải quyết các vấn đề còn tồn đọng của đề tài, đặc biệt là vấn đề sai số vị trí khi hệ thống hoạt động về lâu về dài

+Bổ sung các cảm biến ở các ô đỗ và trên tay nâng để tăng khả năng phát hiện xe trong các ô đỗ và xe trên tay nâng một cách chính xác hơn.

+Mở rộng thêm các khả năng cho hệ thống như khả năng cảnh báo có cháy và khả năng tự chữa cháy nếu có sự cố cháy xảy ra trong bãi đỗ.

+Nâng cấp hệ thống có thể điều khiển trên wed hay điện thoại.

+Phát triển từ mô hình bãi đỗ xe thành bãi giữ xe. Áp dụng thêm nhiều công nghệ mới như công nghệ nhận diện khuôn mặt và biển số xe để tăng thêm tính bảo mật, nâng cao sự yên tâm cho khách hàng.

TÀI LIỆU THAM KHẢO

[1] Trương Ngọc Sơn, Lê Minh, Trương Ngọc Hà, Lê Minh Thành (2020). Giáo trình

Ngôn ngữ lập trình C, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh

[2] Nguyễn Văn Hiệp (2014). Giáo trình công nghệ nhận dạng bằng sóng vô tuyến, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh

[3] SONG HY (2019). Việt Nam đứng ở đâu về mức độ nguy hiểm tham gia giao

thông ở Đông Nam Á?, https://kenh14.vn/viet-nam-dung-o-dau-ve-muc-do-nguy-hiem-

tham-gia-giao-thong-o-dong-nam-a-

20190104191357184.chn#:~:text=Vi%E1%BB%87t%20Nam%20%C4%91%E1%BB %A9ng%20th%E1%BB%A9%202%20trong%20khu%20v%E1%BB%B1c,sau%20Vi %E1%BB%87t%20Nam%20v%E1%BB%9Bi%20t%E1%BB%B7%20l%E1%BB%8

7%2023%2C3%2F100.000%20ng%C6%B0%E1%BB%9Di.

[4] Nguyễn Vân (2022). Năm 2022: Thị trường ô tô trong nước nhiều khả năng tăng

trưởng mạnh, https://thoibaotaichinhvietnam.vn/nam-2022-thi-truong-o-to-trong-nuoc-

nhieu-kha-nang-tang-truong-manh-101952.html.

[5] Bil-parking (2020). Giá Vé Gửi Xe Tại Bãi Đỗ Xe Thông Minh Đà Nẵng,

https://bilparking.com.vn/article/gia-ve-gui-xe-tai-bai-do-xe-thong-minh-thanh-pho- da-nang

[6] T&T Automation (2021). Động cơ bước (Step motor) cấu tạo, nguyên lý hoạt động, cách đấu nối và lập trình điều khiển,

https://www.youtube.com/watch?v=gXQqdTrM30Y&list=LL&index=25&t=2713s

[7] SMARTLOG (2022). Ứng dụng RFID trong sản xuất và chuỗi cung ứng,

https://gosmartlog.com/ung-dung-rfid-trong-san-xuat-va-chuoi-cung-ung/

[8] PAT_ADMIN (2022). Modbus là gì ?, https://pat-tech.com.vn/modbus-la-gi/

[9] Bilparking - Hệ thống bãi đỗ xe thông minh (2020). Quy trình lấy xe/gửi xe trong hệ

PHỤ LỤC

Một phần của tài liệu NGHIÊN cứu, CHẾ tạo và lập TRÌNH điều KHIỂN mô HÌNH bãi đỗ XE tự ĐỘNG (Trang 78 - 154)