Đầu tiên, nhóm em muốn gửi lời cảm ơn chân thành đến tất cả thầycô trong Trường Đại học Công Nghiệp Hà Nội nói chung, các thầycô trong Khoa Điện nói riêng đã tận tình dìu dắt, giúp đỡ em trong suốt quá trình học tập tại Trường Đại học Công Nghiệp Hà Nội. Xin cảm ơn các thầycô đã trực tiếp dạy bảo em cũng như thầycô đã gián tiếp giúp đỡ em trong quá trình tìm kiếm tài liệu cho việc thực hiện đề tài này. Đặc biệt em xin chân thành cảm ơn cô ThS. đã đã tận tình hướng dẫn, cung cấp tài liệu và truyền đạt nhiều ý kiến thiết thực trong suốt quá trình thực hiện đồ án. Những kinh nghiệm quý báu mà cô truyền đạt sẽ là hành trang vững chắc giúp em tự tin hơn trong nghề nghiệp sau này. Đồ án tốt nghiệp được thực hiện trong khoảng thời gian 2 tháng. Bước đầu đi vào thực tế, tìm hiểu, kiến thức của chúng em còn hạn chế và có nhiều bỡ ngỡ. Do vậy, không tránh khỏi những thiếu sót là điều chắc chắn. Em rất mong nhận được những ý kiến đóng góp quý báu của các thầycô để cho kiến thức trong đồ án này được hoàn chỉnh hơn. Một lần nữa em xin trân trọng cảm ơn Hà Nội, ngày tháng năm 2023
TỔNG QUAN
Đặt vấn đề
Đất nước ta đang trên con đường phát triển, thời đại công nghiệp hoá - hiện đại hoá, nhà nước khuyến khích đầu tư và xây đựng nhiều công trình, nhiều dự án lớn với mục đích thúc đẩy nhanh quá trình phát triển kinh tế sang đất nước phát triển, mở rộng các thành phố, xây dựng thành phố xanh - sạch - đẹp Nhưng khi đã phát triển thì lượng phương tiện xe ô tô cũng nhiều, hệ thống giao thông chưa đồng bộ do đó cát bụi do xe ô tô mang từ ngoại thành và các công trình đang xây dựng vào thành phố nhiều, làm ô nhiễm môi trường
Hình 1.1 Người dân tham gia giao thông trong biển bụi
Những chiếc xe bị bám bụi kể cả khi không hoạt động và nằm trong garage do môi trường bị ô nhiễm bụi.
Hình 1.2 Những chiếc xe bám bụi khi để ngoài trời
Chưa kể đất nước ta là nước có khí hậu nhiệt đới gió mùa Độ ẩm tương đối cao trung bình là 84% suốt năm Hằng năm, nước ta đón rất nhiều cơn mưa, lượng mưa từ 1.200 đến 3.000 mm, làm các con đường trở nên ngập úng, lầy lội, mà cơ sở hạ tầng giao thông nước ta vẫn còn nghèo nàn, cứ sau mỗi cơn mưa thì bùn đất từ các con đường bám vào xe là điều không tránh khỏi.
Hình 1.3 Xe bị bám bùn đất sau những cơn mưa
Do đó, nhu cầu rửa xe của người dân ngày một cao, trong khi đó việc rửa xe thủ công tốn rất nhiều công lao động, tốn thời gian để rửa một chiếc xe nên vẫn chưa thể đáp ứng được nhu cầu đó.
Hình 1.4 Người rửa xe khó khăn để rửa những chiếc xe
Chưa kể việc rửa xe tự phát của người dân vừa lộm nhộm, không đồng bộ, gây cản trở giao thông, mất mỹ quan đô thị, nước thải từ việc rửa xe không được thu gom xử lý gây ô nhiễm môi trường xung quanh.
Hình 1.5 Rửa xe tự phát chưa đồng bộ, luộm thuộm
Do đó, để giải quyết tất cả các vấn đề trên, nhóm chúng em đã quyết định chọn để tài “Nghiên cứu và ứng dụng PLC S7-1200 điều khiển và giám sát hệ thống rửa xe ô tô thông minh” làm đề tài tốt nghiệp và mong rằng nó có thể ứng dụng thực tế trong tương lai gần.
Tính cấp thiết của đề tài
Như vấn đề đặt ra thì nhu cầu sử dụng garage trên thị trường Việt Nam ngày càng cao Ở các hình thức rửa xe truyền thống như: rửa xe bằng tay, rửa xe bằng vòi máy bơm,… tuy rằng chi phí đầu tư, vận hành thấp nhưng lại gặp phải nhiều bất cập như không an toàn, mất nhiều thời gian vào giờ cao điểm cần nhiều nhân lực và khó khăn trong việc quản lý, kiểm soát vì không có báo cáo doanh thu, số lượt xe, tra cứu lịch sử xe vào/ ra… Để khắc phục vấn đề đó, đề tài nghiên cứu sẽ phần nào góp phần vào việc giải quyết nhu cầu về bãi rửa xe, cải thiện hiệu quả và tính linh hoạt,thông minh của các hệ thống hiện có.
Mục tiêu
Thông qua đề tài này, nhóm em muốn thiết kế một hệ thống rửa xe tự động điều khiển bằng PLC và được mô phỏng thông qua phần mềm WinCC,ứng dụng công nghệ RFID kết hợp thanh toán tự động.
Đối tượng nghiên cứu
Trong đề tài này, nhóm em muốn hướng đến tính tự động và hiệu quả của hệ thống Khả năng linh hoạt trong việc tự động rửa xe đồng thời tính giá tiền rửa xe, thanh toán thông qua quẹt thẻ sẽ nâng cao chất lượng rửa xe và giảm thời gian rửa xe cho khách hàng.
Phạm vi nghiên cứu
Trong đề tài này, nhóm sẽ tiến hành nghiên cứu các nội dung gồm có:nhu cầu về bãi rửa xe hiện nay, phân tích và chọn ra giải pháp thiết kế phù hợp, nghiên cứu xây dựng thuật toán điều khiển hệ thống.
Nội dung đề tài
Trình bày vấn đề và lý do chọn đề tài, mục tiêu và bố cục của đề tài.
Chương 2 Cơ sở lý thuyết
Trình bày các lý thuyết cần thiết được sử dụng trong đề tài
Chương 3 Tìm hiểu các thiết bị phần cứng
Tìm hiểu các thiết bị phần cứng sử dụng trong hệ thống
Chương 4 Thiết kế hệ thống
Trình bày sơ đồ hệ thống và giải thích nguyên lý hoạt động của hệ thống Nghiên cứu đưa ra giải thuật, thuật toán phần mềm
Chương 5 Kết quả so sánh, phân tích, tổng hợp
Trình bày những kết quả đạt được từ thực nghiệm, phân tích, đánh giá và so sánh với mục tiêu ban đầu đặt ra
Nêu ra những ưu điểm, những điều chưa đạt được của hệ thống và đưa ra các hướng phát triển cho đề tài trong tương lai.
CƠ SỞ LÝ THUYẾT
Xu hướng công nghệ
Trong kinh doanh, việc tích hợp nhiều mô hình kinh doanh có sự liên kết với nhau sẽ giúp các nhà đầu tư khai thác nguồn lực một cách hiệu quả và tối ưu được lợi nhuận và mô hình bãi rửa xe thông minh cũng nằm trong số đó.
Thực tế trong vài năm trở lại đây, việc mở tiệm rửa xe đơn thuần đã ngày càng ít đi, thay vào đó các nhà đầu tư bắt đầu tìm hiểu và nghiên cứu làm rửa xe kết hợp để tăng doanh thu và tạo sự phát triển bền vững Để giải quyết những nhu cầu cấp thiết đó mô hình bãi rửa xe thông minh ra đời Công nghệ đóng vai trò quan trọng trong việc vận hành hệ thống này là công nghệ RFID.
2.1.1 Giải pháp sử dụng công nghệ RFID
Công nghệ RFID là một trong những công nghệ nhận dạng dữ liệu tự động tiên tiến nhất hiện nay có tính khả thi cao và áp dụng trong thực tế rất hiệu quả RFID đang hiện diện trong rất nhiều lĩnh vực tự động hóa, rất nhiều ứng dụng quản lý và các mô hình tổ chức khác nhau nhằm đem lại những giải pháp nhận dạng dữ liệu tự động tối ưu và hiệu quả hơn.
Công nghệ RFID cho phép một thiết bị đọc thông tin chứa trong chip không tiếp xúc trực tiếp ở khoảng cách xa, không thực hiện bất kỳ giao tiếp vật lý nào hoặc giữa hai vật không nhìn thấy Công nghệ này cho ta phương pháp truyền, nhận dữ liệu từ một điểm đến điểm khác.
Kỹ thuật RFID sử dụng truyền thông không dây trong dải tần sóng vô tuyến để truyền dữ liệu từ các tag (thẻ) đến các reader (bộ đọc) Tag có thể được đính kèm hoặc gắn vào đối tượng được nhận dạng chẳng hạn sản phẩm, hộp hoặc giá kệ (pallet) Reader scan dữ liệu của tag và gửi thông tin đến cơ sở dữ liệu có lưu trữ dữ liệu của tag Chẳng hạn, các tag có thể được đặt trên kính chắn gió xe hơi để hệ thống thu phí đường có thể nhanh chóng nhận dạng và thu tiền trên các tuyến đường.
Dạng đơn giản nhất được sử dụng hiện nay là hệ thống RFID thụ động làm việc như sau: reader truyền một tín hiệu tần số vô tuyến điện từ qua anten của nó đến một con chip Reader nhận thông tin trở lại từ chip và gửi nó đến máy tính điều khiển đầu đọc và xử lý thông tin lấy được từ chip Các chip không tiếp xúc không tích điện, chúng hoạt động bằng cách sử dụng năng lượng nhận từ tín hiệu được gửi bởi reader.
Một hệ thống RFID gồm những thành phần cơ bản sau:
+ Thẻ RFID (RFID Tag, còn được gọi là transponder): là một thẻ gắn chíp cộngantena Gồm 2 loại: RFID passive tag và active tag:
+ Passive tags: Không cần nguồn ngoài và nhận năng lượng từ thiết bị đọc Khoảng cách đọc ngắn.
+ Active tags: Được nuôi bằng PIN, sử dụng với khoảng cách đọc lớn. + Reader hoặc sensor: để đọc thông tin từ các thẻ, có thể đặt cố định hoặc lưu động.Antenna: Là thiết bị liên kết giữa thẻ và thiết bị đọc Thiết bị đọc phát xạ tín hiệu sóng để kích họat và truyền nhận với thẻ.
+ Server: thu nhận, xử lý dữ liệu, phục vụ giám sát, thống kê, điều khiển
Nguyên lý hoạt động của hệ thống RFID: Thiết bị đọc thẻ RFID phát ra sóng điện từ ở một tần số nhất định, khi một thẻ RFID trong vùng hoạt động sẽ cảm nhận được sóng điện tử này và thu nhận năng lượng, từ đó phát lại cho thiết bị đọc thẻ RFID biết thông tin của mình Lúc này, thiết bị đọc thẻ RFID sẽ đọc và giải mã được thẻ RFID nào đang trong vùng hoạt động.
Khi lựa chọn một hệ thống RFID, yêu cầu đầu tiên là phải chọn được dải tần hoạt động của hệ thống:
- Tần số thấp – Low frenquency 125 KHz: dải đọc ngắn, tốc độ đọc thấp.
- Tần số cao – High frequency 13.56 MHz: Khoảng cách đọc ngắn, tốc độ đọc trung bình Phần lớn thẻ passive sử dụng dải tần số này.
- Dải tần số cao hơn – High frequency: Dải đọc từ ngắn đến trung bình, tốc độ đọc trung bình đến cao Phần lớn thẻ active sử dụng dải tần số này.
- Dải siêu cao tần – UHF frequency 868 – 928 MHz: dải đọc rộng, tốc độ đọc cao.
- Dải vi sóng – Microwave 2.45 – 5.8GHz: Dải đọc rộng, tốc độ đọc lớn Ứng dụng RFID cho hệ thống rửa xe thông minh: Hệ thống rửa xe thông minh ứng dụng công nghệ RFID cần có máy tính (CPU) có cài đặt phần mềm riêng để quản lý hệ thống rửa xe thông minh Phần mềm này có nhiệm vụ quản lý thông tin/dữ liệu của khách hàng đến rửa xe Một đầu đọc thẻ được kết nối với máy tính có vai trò là antenna thu phát tín hiệu từ thẻ Người dùng cần đăng ký thông tin biển số xe, thông tin chủ xe vào phần mềm quản lý, … Khi có khách tới rửa xe đi qua làn vào khu vực rửa xe, thẻ từ sẽ được đọc bởi đầu đọc thẻ Khi đã hoàn thành công việc rửa xe khách hàng sẽ quẹt thẻ một lần nữa khi tới làn đi ra Lúc này hệ thống sẽ thực hiện thu phí rửa xe của khách hàng
2.1.2 Giải pháp sử dụng công nghệ nhận dạng biển số xe tự động
Công nghệ nhận dạng biển số xe là công nghệ ứng dụng nhận dạng kí tự quang học (Optical Character Recognition - OCR) nhằm chuyển đổi hình ảnh biển số chụp được từ camera sang các kí tự dạng text trong hệ thống phần mềm để lưu trữ, phân tích so sánh,… Công nghệ nhận dạng biển số xe được ứng dụng trong các bãi rửa xe thông minh, sử dụng chuỗi kí tự là biển số xe nhận dạng để làm ID cho phương tiện vào bãi rửa xe thông minh Các thông tin được ghi lại bao gồm hình ảnh biển số, người lái xe, thời gian ra/vào, được lưu trữ và phân tích thành dữ liệu trong hệ thống phần mềm quản lý xe
Hình 2.6 Quy trình nhận diện ảnh
Quá trình nhận dạng biển số xe:
- Camera nhận lệnh chụp ảnh biển số xe và tiến hành chụp hình Hình ảnh sẽ được lưu trữ lại trong hệ thống
- Sau khi có được hình ảnh từ camera, biển số sẽ được tách từ ảnh chụp bằng các phương pháp xử lý ảnh Kết quả của khối là ảnh màu RBG (Red Green Blue) được cắt ra từ ảnh chụp
- Sau khi tách biển số, hệ thống sẽ bắt đầu phân đoạn kí tự Khối này thực hiện tách từng kí tự có trong biển số, tạo thành tập ảnh riêng biệt Các kí tự này sẽ phục vụ việc nhận dạng kí tự Ảnh của mỗi kí tự là ảnh trắng đen.
- Sau khi phân đoạn, tách được các kí tự trong biển số và tạo thành một chuỗi kí tự Chuỗi này sẽ được các thư viện nhận dạng kí tự chuyển từ dạng tương tự (hình ảnh) sang dạng số (mã ASCII).
- Sau khi nhận dạng được các kí tự, bước cuối cùng là sắp xếp chúng theo thứ tự dựa vào vị trí khi phân đoạn các kí tự Và ta sẽ có được kết quả là các chữ số và chữ cái chính xác, sắp xếp hợp lý như biển số đã chụp. Ứng dụng công nghệ nhận dạng biển số xe cho bãi rửa xe thông minh: Người dùng đăng ký thông tin biển số xe, thông tin chủ xe vào phần mềm quản lý,… Việc quản lý vào/ra và tính toán chi phí rửa xe sẽ được thực hiện hoàn toàn tự động trên phần mềm Khi có xe đi vào, hệ thống camera sẽ tự động chụp biển và nhận diện biển số để so sánh với cơ sở dữ liệu Nếu thông tin trùng khớp với thông tin đã được đăng kí thì hệ thống sẽ cho xe vào. Thông tin thời gian vào, thời gian ra, hình ảnh lúc xe vào/ ra sẽ được lưu lại để quản lý
Hình 2.7 Ứng dụng công nghệ nhận diện ảnh
Tổng quan về PLC S7 – 1200
2.2.1 Giới thiệu chung về PLC S7 – 1200
S7 – 1200 là một dòng của bộ điều khiển logic lập trình (PLC) có thể kiểm soát nhiều ứng dụng tự động hóa Thiết kế nhỏ gọn, chi phí thấp, và một tập lệnh mạnh làm cho chúng ta có những giải pháp hoàn hảo hơn cho ứng dụng sử dụng với S7-1200
S7-1200 bao gồm một microprocessor, một nguồn cung cấp được tích hợp sẵn, các đầu vào/ra (DI/DO)
Một số tính năng bảo mật giúp bảo về quyền truy cập cập vào cả CPU và chương trình điều khiển:
+ Tất cả các CPU đều cung cấp bảo vệ bằng password trống truy cập vào PLC.
+ Tính năng Know-How Protection để bảo vệ các block đặc biệt của mình.
+ S7-1200 cung cấp một cổng PROFINET hỗ trợ chuẩn Ethernet và TCP/IP Ngoài ra bạn có thể dùng các module truyền thông mở rộng kết nối RS485 và RS232.
+ Phần mềm dùng cho S7-1200 là Step 7 Basic hỗ trợ 3 ngôn ngữ lập trình SPD, LAD, SCL.
Phần mềm này được tính hợp trong phần mềm Tia Portal V15 của Siemens.
- Bộ điều khiển gọn nhẹ có dải hiệu suất từ thấp đến trung bình
- Tích hợp quy mô lớn, mạnh mẽ
- Với đường đặc tính thời gian thực đặc biệt và tùy chọn truyền thông lớn
- Bộ điều khiển với tích hợp giao diện điều khiển PROFINET IO để truyền thông giữa bộ điều khiển SIMATIC, HMI, thiết bị lập trình, và các thành phần tự động khác
- Các CPU có thể sử dụng chế độ độc lập trong mạng hoặc trong các cấu trúc được phân phối.
- Việc lắp đặt, lập trình và vận hành khá đơn giản
- Tích hợp thêm Web server với tiêu chuẩn, đặc thù người dùng trang web
- Có chức năng ghi dữ liệu để lưu trữ dữ liệu trong thời gian chạy từ khi sử dụng chương trình.
- Công suất lớn cùng các chức năng tích hợp công nghệ như đếm, đo lường, điều khiển vòng kín, điều khiển chuyển động.
- Tích hợp đầu ra và đầu vào số và tương tự.
- Có các phương tiện mở rộng linh hoạt PLC S7-1200 có thể mở rộng các module tín hiệu cũng như các module gắn ngoài để mở rộng thêm các chức năng của CPU S7-1200 có các module mở rộng: Communication module (CP), Signal board (SB), Signal Module (SM)
PLC có 3 loại bộ nhớ sử dùng là Load memory, Work memory và Retentive Memory.
- Load memory chứa bộ nhớ của chương trinh khi bạn tải xuống.
- Work memory là bộ nhớ lúc làm việc.
- System memory thì có thể setup vùng này trong Hardware config, chỉ cần chứa các dữ liệu cần lưu vào đây
Bảng 2.1 Bảng so sánh phân vùng bộ nhớ các dòng của PLC S7-1200
Bộ nhớ CPU 1211C CPU 1212C CPU 1214C
2.2.2 Ứng dụng và phương thức giao tiếp của PLC S7 -1200
Với thiết kế theo dạng module, tính năng cao, dòng sản phẩm
SIMATIC S7-1200 thích hợp với nhiều ứng dụng tự động hóa khác nhau, cấp độ từ nhỏ đến trung bình. Ứng dụng trong công nghiệp và dân dụng như:
- Hệ thống đèn giao thông
- Điều khiển cánh tay robot
- Điều khiển đèn chiếu sáng
- Điều khiển bơm cao áp
- Máy đóng gói, máy in, máy dệt, máy trộn…
PLC Siemens S7-1200 hỗ trợ kết nối Profibus và kết nối PTP
- Các thiết bị lập trình
- Các bộ điều khiển SIMATIC khác
Hỗ trợ các giao thức kết nối:
TIA portal
TIA portal viết tắt là Totally Integrated Automation Portal là một phần mềm tổng hợp của nhiều phần mềm quản lý và tự động hóa, vận hành điện của hệ thống Có thể hiểu, TIA Portal là phần mềm tự động hóa đầu tiên, có
Hình 2.9 Giao diện TIA Portal sử dụng chung một môi trường/ nền tảng để thực hiện các tác vụ, điều khiển hệ thống TIA Portal được phát triển vào năm 1966 bởi các kỹ sư của Siemens, nó cho phép người dùng phát triển và viết cá phần mềm quản lý riêng lẻ một cách nhanh chóng, trên một nền tảng thống nhất Giải pháp giảm thiểu thời gian tích cực các ứng dụng riêng biệt để thống nhất tạo hệ thống. Với phần mềm này người dùng có thể cấu hình, lập trình, thử nghiệm và chẩn đoán tất cả các bộ điều khiển PLC cũng như các module, HMI sẵn có của Siemens một cách dễ dàng Điều này cho phép các kỹ sư tạo ra các giải pháp tự động hóa, liền mạch cho hệ thống Ngoài ra, với các công cụ mô phỏng tiên tiến, TIA Portal cũng cho phép chúng ta phát triển và cung cấp các giải pháp tự động hóa nhanh hơn nữa.
TIA Portal – Tích hợp tự động toàn diện là phần mềm cơ sở cho tất cả các phần mềm khác phát triển: Lập trình, tích hợp cấu hình thiết bị trong sản phẩm Đặc điểm của TIA Portal cho phép các phần mềm chia sẻ cùng một cơ sở dứ liệu, tạo nên tính thống nhất, toàn vẹn cho hệ thống ứng dụng quản lý, vận hành.
TIA Portal tạo môi trường dễ dàng để lập trình thực hiện các thao tác:
Thiết kế giao diện kéo nhả thông tin dễ dàng, với ngôn ngữ hỗ trợ đa dạng.
Quản lý phân quyền User, Code, Project tổng quát.
Thực hiện go online và Diagnostic cho tất cả các thiết bị trong project để xác định bệnh, lỗi hệ thống.
Tích hợp mô phỏng hệ thống.
Dễ dàng thiết lập cấu hình và liên kết giữa các thiết bị Siemens.
Phần mềm WinCC của Siemens là một phần mềm chuyên dụng để xây dựng giao diện điều khiển HMI (Human Machine Interface) cũng như phục vụ việc xử lý và lưu trữ dữ liệu trong một hệ thống SCADA (Supervisory Control And Data Aquisition) thuộc chuyên ngành tự động hóa.
WinCC là chữ viết tắt của Windows Control Center (Trung tâm điều khiển chạy trên nền Windows), nói cách khác, nó cung cấp các công cụ phần mềm để thiết lập một giao diện điều khiển chạy trên các hệ điều hành của Microsoft như Windows NT hay Windows 2000, XP, Vista 32bit (Not SP1). Trong dòng các sản phẩm thiết kế giao diện phục vụ cho vận hành và giám sát, WinCC thuộc thứ hạng SCADA (SCADA class) với những chức năng hữu hiệu cho việc điều khiển.
2.3.3.2 Các module của sản phẩm
Tùy theo chức năng sử dụng mà người dùng có thể chọn các gói khác nhau của WinCC như là một trong các lựa chọn của sản phẩm Các gói cơ bản của WinCC chia làm hai loại như sau:
WinCC Runtime Package (Viết tắt là RT): chứa các chức năng ứng dụng dùng để chạy các ứng dụng của WinCC như hiển thị, điều khiển, thông báo các trạng thái, các giá trị điều khiển và làm các báo cáo.
WinCC Complete Package (Viết tắt là RC): bao gồm bản quyền để xây dựng cấu hình hệ thống (configuration licence) và bản quyền để chạy ứng dụng (Runtime).
Ngoài các gói phần mềm cơ bản trên, WinCC còn có các mô đun nâng cao dành cho những ứng dụng cấp cao hơn (WinCC Options) và các mô đun mở rộng đặc biệt (WinCC Add-on) Các WinCC Option là sản phẩm củaSiemens Automation and Drive (A&D) Các WinCC Add-on là các sản phẩm của các bộ phận khác của Siemens hay các đối tác của Siemens xây dựng lên nhằm mở rộng chức năng hay để phù hợp với từng loại ứng dụng.
Ngôn ngữ lập trình C
C là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX Từ đó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác và trở thành một những ngôn ngữ phổ dụng nhất C là ngôn ngữ rất có hiệu quả và được ưa chuộng nhất để viết các phần mềm hệ thống, mặc dù nó cũng được dùng cho việc viết các ứng dụng. Ngoài ra, C cũng thường được dùng làm phương tiện giảng dạy trong khoa học máy tính mặc dù ngôn ngữ này không được thiết kế dành cho người nhập môn.
2.4.2 Các đặc trưng cơ bản của ngôn ngữ lập trình C
C là một ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng và nó giống với ngôn ngữ Assembly hơn hầu hết các ngôn ngữ bậc cao.Hơn thế, C đôi khi được đánh giá như là "có khả năng di động", cho thấy sự khác nhau quan trọng giữa nó với ngôn ngữ bậc thấp như là Assembler, đó là việc mã C có thể được dịch và thi hành trong hầu hết các máy tính, hơn hẳn các ngôn ngữ hiện tại trong khi đó thì Assembler chỉ có thể chạy trong một số máy tính đặc biệt Vì lý do này C được xem là ngôn ngữ bậc trung.
C đã được tạo ra với một mục tiêu là làm cho nó thuận tiện để viết các chương trình lớn với số lỗi ít hơn trong mẫu hình lập trình thủ tục mà lại không đặt gánh nặng lên vai người viết ra trình dịch C, là những người bề bộn với các đặc tả phức tạp của ngôn ngữ Cuối cùng C có thêm những chức năng sau:
Một ngôn ngữ cốt lõi đơn giản, với các chức năng quan trọng chẳng hạn như là những hàm hay việc xử lý tập tin sẽ được cung cấp bởi các bộ thư viện các thủ tục.
Tập trung trên mẫu hình lập trình thủ tục, với các phương tiện lập trình theo kiểu cấu trúc.
Một hệ thống kiểu đơn giản nhằm loại bỏ nhiều phép toán không có ý nghĩa thực dụng.
Dùng ngôn ngữ tiền xử lý, tức là các câu lệnh tiền xử lý C, cho các nhiệm vụ như là định nghĩa các macro và hàm chứa nhiều tập tin mã nguồn (bằng cách dùng câu lệnh tiền xử lý dạng #include chẳng hạn).
Mức thấp của ngôn ngữ cho phép dùng tới bộ nhớ máy tính qua việc sử dụng kiểu dữ liệu pointer.
Số lượng từ khóa rất nhỏ gọn.
Các tham số được đưa vào các hàm bằng giá trị, không bằng địa chỉ.
Hàm các con trỏ cho phép hình thành một nền tảng ban đầu cho tính đóng và tính đa hình.
Hỗ trợ các bản ghi hay các kiểu dữ liệu kết hợp do người dùng từ khóa định nghĩa struct cho phép các dữ liệu liên hệ nhau có thể được tập hợp lại và được điều chỉnh như là toàn bộ.
Một số chức năng khác mà C không có (hay còn thiếu) nhưng có thể tìm thấy ở các ngôn ngữ khác bao gồm:
Tự động Thu dọn rác,
Các lớp hay các đối tượng cùng với các ứng xử của chúng,
Lập trình tiêu bản hay Lập trình phổ dụng,
Quá tải và Quá tải toán tử,
Các hỗ trợ cho đa luồng, đa nhiệm và mạng.
Mặc dù C còn thiếu nhiều chức năng hữu ích nhưng lý do quan trọng để
C được chấp nhận vì nó cho phép các trình dịch mới được tạo ra một cách nhanh chóng trên các nền tảng mới và vì nó cho phép người lập trình dễ kiểm soát được những gì mà chương trình (do họ viết) thực thi Đây là điểm thường làm cho mã C chạy hiệu quả hơn các ngôn ngữ khác Thường thì chỉ có ngôn ngữ ASM chỉnh bằng tay chạy nhanh hơn (ngôn ngữ C), bởi vì ASM kiểm soát được toàn bộ máy Mặc dù vậy, với sự phát triển các trình dịch C, và với sự phức tạp của các CPU hiện đại có tốc độ cao, C đã dần thu nhỏ khác biệt về tốc độ này.
Một lý do nữa cho việc C được sử dụng rộng rãi và hiệu quả là do các trình dịch, các thư viện và các phần mềm thông dịch của các ngôn ngữ bậc cao khác lại thường được tạo nên từ C.
C có một hệ thống kiểu tương tự như của Pascal, mặc dù chúng khác nhau trong một số khía cạnh Có nhiều kiểu cho các số nguyên với nhiều cỡ cho có đấu và không có dấu, có kiểu số floating point, kiểu các ký tự char, các kiểu thứ tự enum, kiểu bản ghi record và kiểu đơn vị union.
C tạo ra sự mở rộng mạnh mẽ việc sử dụng của kiểu các con trỏ pointer, một dạng đơn giản các tham chiếu mà chúng chứa địa chỉ các vùng nhớ Các con trỏ có thể được tham chiếu ngược (dereference) để lấy về giá trị của dữ liệu được chứa trong địa chỉ đó (địa chỉ mà con trỏ chỉ vào) Địa chỉ này có thể được điều chỉnh bằng các phép gán thông thường và các phép toán số học trên con trỏ Trong thời gian thực thi, một con trỏ đại diện cho một địa chỉ của bộ nhớ Trong thời gian chuyển dịch, nó là một kiểu phức tạp đại diện cho cả địa chỉ và kiểu của dữ liệu Điều này cho phép các biểu thức bao gồm các con trỏ được kiểm tra về kiểu Các con trỏ thì được dùng cho nhiều mục tiêu trong C Các dòng ký tự string thường được đại diện bởi một con trỏ chỉ tới một dãy của các ký tự Sự cấp phát bộ nhớ động, được miêu tả sau đây, thì được tiến hành thông qua các con trỏ.
Một con trỏ rỗng có nghĩa là nó không chỉ đến một chỗ nào hết Điều này có ích trong những trường hợp như là con trỏ next trong một nút cuối của một danh sách liên kết linked list Việc tham chiếu ngược một con trỏ trống gây ra các biểu hiện không dự đoán trước được Các con trỏ kiểu void thì lại có thể chỉ đến một đối tượng mà không cần biết kiểu của đối tượng đó Điều này đặc biệt hữu dụng trong lập trình tiêu bản bởi vì cỡ và kiểu của các đối tượng mà chúng chỉ tới thì không thể biết được và do đó không thể thực hiện tham chiếu ngược, nhưng chúng lại có thể được hoán chuyển thành các con trỏ của các kiểu khác.
Các kiểu mảng array trong C thì có cỡ cố định, độ lớn tĩnh của nó phải được biết trước trong thời gian chuyển dịch Điều này gây nhiều trở ngại trong thực tế bởi vì người ta có thể chỉ định các vùng nhớ ở thời gian thực thi dựa trên các thư viện chuẩn và hành xử chúng như là các mảng Không như các ngôn ngữ khác, C biểu thị các mảng giống như trường hợp các con trỏ: chúng đóng vai trò một địa chỉ của bộ nhớ và một kiểu dữ liệu Do đó, các giá trị chỉ số có thể vượt quá cỡ của một mảng.
C cũng cung cấp các kiểu mảng đa chiều Các giá trị chỉ số của các mảng đa chiều thì được gán theo thứ tự hàng chính Một cách có ý nghĩa thì các mảng này hoạt động như là mảng của các mảng nhưng thực chất chúng được phân bố như là mảng một chiều với việc tính và tạo các vị trí tương đối.
C thường được dùng trong việc lập trình các hệ thống bậc thấp, ở đó có thể cần thiết để xem số nguyên như là một địa chỉ của bộ nhớ, là một giá trị double precision, hay là một kiểu con trỏ Trong các trường hợp này, C cung cấp việc hoán chuyển, mà phép toán này sẽ bắt buộc chuyển đổi giá trị từ một kiểu sang một kiểu khác Dùng phép hoán chuyển sẽ làm mất đi phần nào tính an toàn mà thường được cung cấp bởi hệ thống kiểu.
Một trong những chức năng quan trọng nhất của một ngôn ngữ lập trình là việc cung cấp cơ sở cho việc quản lý bộ nhớ và các đối tượng được chứa trong bộ nhớ C cung ứng 3 phương cách để cấp phát bộ nhớ cho các đối tượng:
TÌM HIỂU CÁC THIẾT BỊ PHẦN CỨNG
Lựa chọn thiết bị
Với đề tài này, nhóm em đã nghiên cứu một số thiết bị phần cứng khi thiết kế mô hình hệ thống rửa xe thông minh:
Thiết bị xử lý trung tâm: PLC
Thiết bị đầu vào: thiết bị đọc thẻ RFID, camera, cảm biến, công tắc hành trình
Thiết bị đầu ra: Động cơ, role trung gian.
3.1.1 Thiết bị đọc thẻ RFID
Sử dụng Arduino Uno R3 và mạch đọc thẻ RFID RC522 để đọc mã thẻ từ các thẻ Tag, kết nối với máy tính qua cổng USB.
Arduino Uno R3 được sử dụng vi điều khiển ATmega328, tương thích với hầu hết các loại Arduino Shield trên thị trường, có thể gắn thêm các module mở rộng để thực hiện thêm các chức năng như điều khiển motor, kết nối wifi hay các chức năng khác
Sử dụng ngôn ngữ lập trình C, C++ hoặc Arudino, một ngôn ngữ bắt nguồn từ C, C++ trên phần mềm riêng cho lập trình Arduino IDE.
Aruino Uno R3 được sử dụng phổ biến trong việc tự thiết kế ra các mạch điện tử như điều khiển led, gửi dữ liệu lên lcd, điều khiển motor, hay được gắn thêm các Shield để kết nối nhiều module cảm biến khác để thực hiện thêm nhiều chức năng mở rộng như gửi dữ liệu qua wifi.
Ngoài ra, trên thị trường còn có nhiều biến thể của Arduino Uno để thực hiện thêm các tính năng chuyên dụng, ví dụ như mCore, Orion trên mBot được chuyên dụng với việc dễ dàng phân biệt các loại module nào có thể sử dụng cắm vào trên các cổng để trẻ dễ dàng sử dụng.
Bảng 3.2 Thông số kỹ thuật Arduino Uno R3
Vi điều khiển ATmega328 Điện áp hoạt động 5V(cấp qua cổng usb) Điện áp khuyến nghị 6-9V
Số chân digital I/O 14 chân( 6 chân PWM)
Dòng ra tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA Dòng ra tối đa(3.3V) 50 mA
32 KB (ATmega328) với 0.5 KB dùng bởi bootloader
Giao động của thạch anh 16 MHz
Mạch đọc thẻ RFID RC522
Mạch đọc thẻ RFID RC522 dùng để đọc các loại thẻ RFID, móc khóa RFID tần số 13,56 Mhz Giao tiếp dễ dàng với các Board Auduino và các vi điều khiển Mạch đọc thẻ RFID RC522 được ứng dụng rộng rãi trong các mô hình như bảo mật xe máy, đóng mở cửa bằng thẻ RFID, các hệ thống quản lý, chấm công dựa trên mã thẻ RFID, …
Thông số kỹ thuật Điện áp hoạt động: 3.3VDC.
Dòng: 13 - 26mA, dòng ở chế độ chờ: 10 - 13mA, dòng ở chế độ nghỉ:
Tần số sóng mang: 13.56MHz.
Khoảng cách hoạt động: 0 - 60mm.
Tốc độ truyền dữ liệu: tối đa 10Mbit/s.
Nhiệt độ hoạt động: - 20 C ~⁰C ~ 80 C.⁰C ~ Độ ẩm hoạt động: 5% ~ 95%.
Các loại card RFID hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire.
Cảm biến quang điện (Photoelectric Sensor) thực chất chúng là do các linh kiện quang điện tạo thành Khi có ánh sáng thích hợp chiếu vào bề mặt của cảm biến quang, chúng sẽ thay đổi tính chất Tín hiệu quang được biến đổi thành tín hiệu điện nhờ hiện tượng phát xạ điện tử ở cực catot (Cathode) khi có một lượng ánh sáng chiếu vào Từ đó cảm biến sẽ đưa ra đầu ra để tác động theo yêu cầu công nghệ.
Cảm biến quang điện có những ưu điểm sau:
Phát vật thể nhưng không cần tiếp xúc với vật thể đó (Phát hiện từ xa)
Phát hiện được từ khoảng cách xa
Ít bị hao mòn, có tuổi thọ và độ chính xác, tính ổn định cao
Phát hiện nhiều vật thể khác nhau
Thời gian đáp ứng nhanh, có thể điều chỉnh độ nhạy theo ứng
Hình 3.12 Module RFID MFRC522 NFC 13.56MHz dụng. Đối với hệ thống bãi rửa xe thông minh mà nhóm em nghiên cứu, để xác đinh vị trí xe đang ở vị trí nào thì hệ thống sẽ cần một cảm biến ở mỗi vị trí: xe vào, rửa xe, xe ra.
Công tắc hành trình là thiết bị dùng để giới hạn hành trình của các bộ phận chuyển động khác Có chức năng đóng mở, được đặt tại một vị trí nhất định trên đường hoạt động của một dòng điện hay một động cơ nào đó mà đến vị trí của công tắc sẽ có sự thay đổi xảy ra Có thể tắt, có thể chuyển hướng, có thể quay và có thể chuyển hóa được từ động cơ thành tín hiệu. Để giới hạn hành trình lên xuống của cửa vào ra thì hệ thống bãi rửa xe
Hình 3.13 Cảm biến hồng ngoại phát hiện vật cản E3F-DS10C4 thông minh cần sử dụng 2 công tắc hành trình để đặt ở đầu và cuối mỗi hành trình.
Hình 3.14 Công tắc hành trình 1A – 125 VAC
Thanh chắn barie tự động là một phần không thể thiếu trong cấu tạo kỹ thuật của barie tự động Thanh chắn barie tự động thường được làm bằng hợp kim nhôm Cần barie có nhiều cấu hình như: Barie cần rào, barie cần thẳng hay barie cần gấp. Động cơ barie truyền động không có bánh răng, không dây curoa Khi thiết kế đã tính toán loại trừ những tạp loạn, thể tích ruột máy nhỏ, sử dụng ổn định, độ bền cao Động cơ barie có cấu vận hành có tốc độ không đều Khiến cần chắn khởi động chậm, vận hành nhanh, dừng chậm, loại trừ được sự rung động của cần chắn khi nâng lên hoặc hạ xuống.
3.1.5 Động cơ servo Động cơ servo SG90 là loại động cơ được dùng phổ biến trong các mô hình điều khiển nhỏ và đơn giản như cánh tay robot Động cơ có tốc độ phản ứng nhanh, được tích hợp sẵn Driver điều khiển động cơ, dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM.
Hình 3.16 Động cơ servo SG90
Khối hiển thị có chức năng hiển thị thông tin điều khiển giúp cho con người điều khiển dễ dàng quan sát. Để thiết kế việc hiển thị trong các hệ thống điện tử nhỏ, người ta thường dùng LCD, Led 7 đoạn, Led ma trận Tuy nhiên Led 7 đoạn và Led ma trận thường chỉ thích hợp cho việc hiển thị số là chính Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều các ứng dụng của vi điều khiển.
LCD có rất nhiều ưu điểm so với các dạng hiển thị khác:
Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa).
Dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau.
Tốn rất ít tài nguyên hệ thống và giá thành rẻ.
Từ các ưu điểm đó LCD đã được chọn cho việc hiển thị thông tin điều khiển của hệ thống Trên thị trường có nhiều loại LCD khác nhau với kích thước và tính năng đa dạng, các LCD thường dùng trong điều khiển như LCD 16x2, 20x4, 128x64 Ở đây hệ thống ta chỉ cần hiển thị ít thông tin, cũng như để thiết kế hệ thống gọn gàng nhỏ đẹp ta chọn LCD 16x2 là đủ cho yêu cầu thiết kế. Ở đây ta chọn Arduino giao tiếp với LCD qua module I2C vì:
Hạn chế được số lượng dây
Giúp thiết kế phần cứng dễ dàng, gọn gàng.
Băng tải được sử dụng để đưa xe vào, ra trong hệ thống rửa xe thông minh Nó đóng vài trò vô cùng quan trọng để hoàn thiện hệ thống vì vậy cần
Nếu chọn motor thiếu công suất sẽ không thể kéo tải được hoặc chạy không đạt tốc độ gây nóng dẫn đến giảm tuổi thọ động cơ, thậm chí cháy hỏng ngay khi vừa sử dụng.
Nếu chọn động cơ thừa công suất sẽ gây lãng phí công suất và tiền bạc đầu tư cho 1 băng tải, dẫn đến báo giá băng tải cũng đội lên khá cao.
Nếu chọn động cơ không đúng nguyên lý hoạt động sẽ dẫn đến khi lắp đặt có thể không phù hợp, hoặc nhân viên lắp ráp hệ thống điện cho băng tải sẽ rất khó khăn để hoàn thành hay chọn mua sai thiết bị đi cùng như aptomat, contactor.
Sơ đồ kết nối tổng quan của hệ thống
Khối nguồn: cung cấp nguồn cho toàn bộ hệ thống.
Khối cảm biến: phát hiện vị trí của xe khi vào/ra khu vực rửa xe.
PLC: nhận tín hiệu từ máy tính và các cảm biến ở ngõ vào để điều khiển các cơ cấu chấp hành.
Khối cơ cấu chấp hành: gồm có các động cơ servo và các relay trung gian Khối này có tác dụng vận hành hệ thống hoạt động.
Module RFID: dùng để đọc mã thẻ RFID.
Arduino: nhận và xử lý mã thẻ đọc được từ module RFID.
Máy tính: Dùng để giao tiếp với PLC và Arduino.
Webcam: Dùng để chụp ảnh biển số xe.
Hình 3.20 Sơ đồ tổng quan của hệ thống
THIẾT KẾ HỆ THỐNG RỬA XE THÔNG MINH
Yêu cầu chung của hệ thống
- Quản lý xe vào/ ra
Giao diện chính của hệ thống
4.2.1 Giao diện hệ thống quản lý xe vào/ ra
Hình 4.21 Giao diện hệ thống quản lý xe vào/ ra
Nguyên lý hoạt động quản lý xe vào/ ra
- Khi có xe đến rửa xe, tại vị trí chờ, ta quẹt thẻ Hệ thống sẽ chụp ảnh biển số xe và hiển thị biển số xe lên trên màn hình giao diện và đồng thời ảnh sẽ được xử lý để đọc ra biển số xe Nếu số thẻ và biển số xe trùng với thông tin chủ xe được lưu trong hệ thống, barrie ngõ vào sẽ mở để xe vào khu vực rửa.
- Khi ra, ta quẹt thẻ lần nữa Hệ thống sẽ đọc số thẻ và biển số xe một lần nữa Nếu thông tin lúc ra đúng thông tin lúc vào sẽ tiến hành tính phí và mở barrie ngõ ra cho xe ra.
Hình 4.22 Sơ đồ thuật toán RFID
4.2.2 Giao diện hệ thống rửa xe tự động:
* Nguyên lý hoạt động của hệ thống rửa xe tự động:
- Khi có xe đi vào khu vực rửa xe, cảm biến “I_PS_Car_In” tác động thông báo có xe đang chờ vào rửa đồng thời đèn báo “Q_Lamp_Enable” sáng thông báo đang có xe vào Cửa sẽ được nâng lên cho xe vào, băng tải chạy đưa xe đến khu vực rửa.
Hình 4.23 Giao diện khi có xe vào
Khi xe ở khu vực rửa:
- Khi xe tiến tới khu vực rửa cảm biến “I_PS_Wash” tác động, băng tải dừng và chạy động cơ bơm nước để rửa nước lần 1 Sau khoảng thời gian t 10s, động cơ bơm nước dừng, động cơ bơm xà bông hoạt động tiến hành công việc rửa xà bông Sau khoảng thời gian t = 15s, động cơ bơm xà bông dừng, động cơ bơm nước hoạt động để rửa nước lần 2 Sau thời gian t = 15s, động cơ bơm nước dừng, động cơ quạt sấy hoạt động, sấy khô xe Sau thời gian t 20s, động cơ băng tải hoạt động, đồng thời cửa ra mở đưa xe ra ngoài.
Hình 4.24 Giao diện khi có xe ở khu vực rửa
- Khi có xe ra cảm biến “I_PS_Car_Out” được tác động, băng tải dừng hoạt động quá trình rửa xe kết thúc.
Hình 4.25 Giao diện khi có xe ra
Sơ đồ thuật toán điều khiển hệ thống rửa xe tự động:
Hình 4.26 Sơ đồ thuật toán điều khiển PLC
Sơ đồ thuật toán rửa xe tự động:
Hình 4.27 Sơ đồ thuật toán chế độ rửa xe tự động
Lập trình điều khiển
4.3.1 Bảng phân công địa chỉ vào/ ra hệ thống rửa xe tự động:
Bảng 4.3 Bảng phân công địa chỉ vào/ ra
STT Tên Địa chỉ Chức năng
1 I_PS_Car_In I0.0 Cảm biến có xe vào
2 I_PS_Car_Out I0.1 Cảm biến xe đã ra
3 I_LS_Door_In_Closed I0.2 Công tắc hành trình cửa vào đã đóng
4 I_LS_Door_In_Opened I0.3 Công tắc hành trình cửa vào đã mở
5 I_LS_Door_Out_Closed I0.4 Công tắc hành trình cửa ra đã đóng
6 I_LS_Door_Out_Opened I0.5 Công tắc hành trình cửa ra đã mở
7 I_PS_Wash I0.7 Cảm biến vị trí rửa
8 I_Conveyer I1.0 Chạy/Dừng Động cơ băng tải
9 I_Water I1.1 Chạy/Dừng Bơm nước
10 I_Soap I1.2 Chạy/Dừng Bơm xà bông
11 I_Dry I1.3 Chạy/Dừng Quạt gió làm khô
12 I_Door_In_Up I1.4 Cửa vào nâng (quay thuận)
13 I_Door_In_Down I1.5 Cửa vào hạ (quay nghịch)
14 I_Door_Out_Up I1.6 Cửa ra nâng (quay thuận)
15 I_Door_Out_Down I1.7 Cửa ra hạ (quay nghịch)
16 I_Mode I2.0 Chế độ vận hành
19 M_PS_Car_In M10.0 Cảm biến có xe vào
20 M_PS_Car_Out M10.1 Cảm biến xe đã ra
21 M_LS_Door_In_Closed M10.2 Công tắc hành trình cửa vào đã đóng
22 M_LS_Door_In_Opened M10.3 Công tắc hành trình cửa vào đã mở
23 M_LS_Door_Out_Closed M10.4 Công tắc hành trình cửa ra đã đóng
24 M_LS_Door_Out_Opene d M10.5 Công tắc hành trình cửa ra đã mở
25 M_PS_Wash M10.7 Cảm biến vị trí rửa
26 M_Conveyer M11.0 Chạy/Dừng Động cơ băng tải
27 M_Water M11.1 Chạy/Dừng Bơm nước
28 M_Soap M11.2 Chạy/Dừng Bơm xà bông
29 M_Dry M11.3 Chạy/Dừng Quạt gió làm khô
30 M_Door_In_Up M11.4 Cửa vào nâng (quay thuận)
31 M_Door_In_Down M11.5 Cửa vào hạ (quay nghịch)
32 M_Door_Out_Up M11.6 Cửa ra nâng (quay thuận)
33 M_Door_Out_Down M11.7 Cửa ra hạ (quay nghịch)
34 M_Mode M12.0 Chế độ vận hành
37 Q_Lamp_Manu Q0.0 Đèn chế độ bằng tay
38 Q_Lamp_Auto Q0.1 Đèn chế độ tự động
39 Q_Lamp_Washing Q0.2 Đèn đang rửa xe
40 Q_Lamp_Enable Q0.3 Đèn xanh (cho phép xe vào)
41 Q_Lamp_Disable Q0.4 Đèn đỏ (Không cho xe vào)
42 Q_Conveyer Q0.5 Chạy/Dừng Động cơ băng tải
43 Q_Water Q1.0 Chạy/Dừng Bơm nước
44 Q_Soap Q1.1 Chạy/Dừng Bơm xà bông
45 Q_Dry Q1.2 Chạy/Dừng Quạt gió làm khô
46 Q_Door_In_Up Q1.3 Cửa vào nâng (quay thuận)
47 Q_Door_In_Down Q1.4 Cửa vào hạ (quay nghịch)
48 Q_Door_Out_Up Q1.5 Cửa ra nâng (quay thuận)
49 Q_Door_Out_Down Q1.6 Cửa ra hạ (quay nghịch)
KẾT QUẢ SO SÁNH, PHÂN TÍCH VÀ TỔNG HỢP
Kết quả đạt được
Các công cụ sử dụng
Chuẩn bị các module có sẵn theo thiết kế.
Chuẩn bị các linh kiện như sơ đồ nguyên lý.
Chuẩn bị các phần mềm sử dụng.
Thi công mô hình Để thể hiện tính ứng dụng một cách trực quan của hệ thống vào thực tế nhóm đã tiến hành tiến hành thiết kế và thi công một bãi rửa xe thông minh.
Mô hình bãi rửa xe được lắp các barrier đóng, mở và được trang trí để hoạt động như một bãi rửa xe ngoài thực tế.
Hình 5.28 Mô hình tổng quan hệ thống
Theo yêu cầu và phương án thiết kế đã đề ra ta tiến hành viết phần mềm quản lý bãi xe trên PC sử dụng ngôn ngữ lập trình của arduino, Python và lập trình PLC.
Phần mềm lập trình có chức năng:
Nhận tín hiệu từ đầu đọc thẻ RFID và chụp ảnh biển số xe
Lưu hình ảnh vào PC, lưu dữ liệu vào thẻ
Mô phỏng quá trình rửa xe trên WinCC.
Hình ảnh giao diện thiết kế trên phần mềm Pycharm
Hình 5.29 Giao diện hệ thống quản lý xe vào/ ra khi có khách hàng mới
Hình 5.30 Giao diện hệ thống quản lý xe vào/ ra khi có xe vào
Hình 5.31 Giao diện hệ thống quản lý xe vào/ ra khi có xe ra
Hình ảnh giao diện trên phần mềm WinCC
Hình 5.32 Khi có xe vào khu vực rửa
Hình 5.33 Khi có xe đang rửa
Hình 5.34 Khi xe ra khỏi khu vực rửa
Phân tích
Về giải pháp tối ưu, nhóm em đã xây dựng được thuật toán rửa xe một cách tự động hoàn toàn, giúp tiết kiệm được sức lao động, tạo thuận lợi cho việc phát triển bền vững trong tương lai và giúp tăng doanh thu.
Tuy nhiên, hệ thống mô phỏng của nhóm em mới chỉ thực hiện được công việc rửa xe cho từng xe một vào rửa, chưa tối ưu được cho việc nhiều xe vào rửa cùng một lúc Đồng thời khả năng phân tích, nhận diện biển số còn chưa được tốt, điều đó làm ảnh hưởng tới sự vận hành hệ thống ngoài thực tế.
Kết luận và hướng phát triển
Nhờ sự cố gắng, nỗ lực của nhóm cùng với đó là sự giúp đỡ tận tình của giáo viên hướng dẫn , nhóm em đã hoàn thành được đồ án “Nghiên cứu và ứng dụng PLC S7-1200 điều khiển và giám sát hệ thống rửa xe ô tô thông minh”. Đề tài đã đạt được một số mục tiêu đặt ra từ đầu:
Quản lý xe ra/vào
Tự động thanh toán thông qua thẻ RFID và hệ thống quản lý tổng.
Tuy nhiên, do kiến thức của nhóm còn hạn chế nên chắc chắn vẫn còn tồn tại nhiều hạn chế, ví dụ như:
Khả năng phân tích, nhận diện biển số xe còn kém
Chưa thiết kế được hệ thống trên website để đặt chỗ rửa xe
Giao diện của hệ thống mô phỏng chưa bắt mắt, sáng tạo.
Chưa thiết kế được phần cứng quá trình rửa xe tự động.
Thiết kế website để đặt chỗ rửa xe trước đồng thời thanh toán online. Phát triển một hệ thống bãi rửa xe thông minh (quẹt thẻ tự động, nhận diện khuôn mặt, …)
Thu thập lịch sử rửa xe, các lịch sử giao dịch của khách hàng.
Có thể lưu lại dữ liệu xe đã rửa trong ngày và có thể truy xuất khi cần thiết.
CODE PHỤC VỤ CHO PHẦN MỀM
#define SS_PIN 10 int UID[4], i; int dulieu = 0; int dem = 0;
MFRC522 mfrc522(SS_PIN, RST_PIN);
Serial.begin(9600); lcd.init(); lcd.backlight(); hienthicho(); hienthivao(); hienthira();
SPI.begin(); mfrc522.PCD_Init(); myservo1.attach(6); myservo1.write(90); myservo2.attach(5); myservo2.write(90);
{ rfid(); hienthicho(); if (Serial.available() > 0)
{ dulieu = Serial.read(); if (dulieu == '1')
{ hienthivao(); for (int goc = 90; goc >= 0; goc -= 1) { myservo1.write(goc); delay (5);
} delay (3000); for (int goc = 0; goc 0: ret, cap = video.read() cv.imwrite('piccap.png', cap)
# Doc hinh an va tach hinh anh nhan dien img = cv.imread("piccap.png")
# cv2.imshow("Anh goc", img) gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# cv2.imshow("Anh xam", gray) thresh = cv.adaptiveThreshold(gray, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C, cv.THRESH_BINARY, 11, 2)
# cv2.imshow("Anh nhi phan", thresh) contours, h = cv.findContours(thresh, 1, 2) largest_rectangle = [0, 0]
# Tạo đường viền để theo dõi bien so for cnt in contours: approx = cv.approxPolyDP(cnt, 0.01 * cv.arcLength(cnt, True), True) if len(approx) == 4: area = cv.contourArea(cnt) if area > largest_rectangle[0]: largest_rectangle = [cv.contourArea(cnt), cnt, approx] x, y, w, h = cv.boundingRect(largest_rectangle[1]) image = img[y:y + h, x:x + w] cv.drawContours(img, [largest_rectangle[1]], 0, (0,
# cv2.imshow("Bien so xe", img) cv.drawContours(img, [largest_rectangle[1]], 0, (0,
# DOC HINH ANH CHUYEN THANH FILE TEXT pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR\\tesseract.exe' gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) blur = cv.GaussianBlur(gray, (3, 3), 0) thresh = cv.threshold(blur, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)[1]
#cv2.imshow('Crop', thresh) kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 3)) opening = cv.morphologyEx(thresh, cv.MORPH_OPEN, kernel, iterations=1) invert = 255 - opening data = pytesseract.image_to_string(invert, lang='eng', config=' psm 6') data = re.sub(r'[\r\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\ xff-\n]', '', data) data = data.split(",") print(data[0]) chuoimacsv = " " hoten = " " idthe = " " bienso = " " taikhoan = " " phi = " " hienthi() # print("a") idthe = sr.readline() idthe = str(idthe, 'utf-8') idthe = idthe.strip('\r\n') print(idthe) dt = pd.read_csv("dulieu.csv") file = open("dulieu.csv", mode="r", encoding="utf-8- sig") detect = file.read() x = 0 phi = '20000' for col in detect: chuoimacsv = chuoimacsv + col if col == '\n': x = x + 1 mt = chuoimacsv.split(",") if mt[0] == idthe: if mt[2] == data[0]: dem = dem + 1 if dem % 2 == 0: hoten = mt[1] bienso = mt[2] trangthai = "Đã thanh toán " taikhoan = mt[3] taikhoan = int(taikhoan) if taikhoan < 20000: trangthai = "Hết tài khoản" hienthi() sr.write('0'.encode()) else: taikhoancl = taikhoan - int(phi) sr.write('1'.encode()) print("q") dt = pd.read_csv("dulieu.csv") dt.loc[(x - 2), 'TAI KHOAN']
= str(taikhoancl) dt.to_csv("dulieu.csv", indexse) hienthi() else: sr.write('1'.encode()) hoten = mt[1] bienso = mt[2] trangthai = "Chưa thanh toán
" taikhoan = mt[3] hienthi() else: hoten = mt[1] bienso = mt[2] taikhoan = mt[3] trangthai = " " hienthi() else: hoten = "Thẻ mới" bienso = "Thẻ mới" trangthai = "Thẻ mới " hienthi() chuoimacsv = "" sr.close() video.stop() cv2.destroyAllWindows() tk.mainloop()
Cài đặt thời gian rửa xe, thời gian rửa xà phòng và thời gian sấy khô xe. Đưa thời gian vào các biến nhớ MW Có thể thay đổi thời gian từ màn hình WinCC.
- Network 2: Khởi động/ dừng hệ thống:
+ Nhấn nút START cấp điện chờ cho hệ thống hoạt động
+ Nhấn nút STOP dừng hệ thống
Chọn chế độ vận hành
- Khi nút nhấn I_Mode được tác động đèn báo Q_Lamp_Auto sáng thông báo hệ thống vận hành ở chế độ Auto
- Khi không nhận tín hiệu tác động nút nhấn I_Mode đèn báo Q_Lamp_Manu sáng thông báo chế độ vận hành là Manual.
- Từ tín hiệu nhận được từ việc chọn chế độ vận hành ở trên sẽ chạy chương trình con FC_AUTO hoặc FC_MANU.
- Khi nút nhấn M_Similation được tác động sẽ khởi chạy chương trình con FC_SIMULATION mô phỏng xe vào/ ra, chạy băng tải và đóng mở cửa.