Trang 8 ii Đề tài “Hệ thống điều khiển và giám sát qua mạng LoRa” đã nghiên cứu và phát triển 2 nội dung lớn là truyền thông không dây qua LoRa và tự xây dựng hệ thống máy chủ, giao diện
TỔNG QUAN
Đặt vấn đề
Truyền thông có dây đóng vai trò quan trọng trong các ứng dụng công nghiệp hiện đại, giúp kết nối thiết bị và hệ thống để thu thập dữ liệu và điều khiển quy trình sản xuất Sử dụng cáp, truyền thông có dây đảm bảo chất lượng truyền tải cao và tốc độ nhanh Tuy nhiên, nó cũng gặp phải một số vấn đề như phạm vi truyền thông hạn chế và khó khăn trong việc thay đổi hoặc di chuyển thiết bị, dẫn đến sự cố và mất thời gian khi cần thay đổi cáp kết nối.
Truyền thông không dây giải quyết nhiều khuyết điểm của truyền thông có dây, bao gồm tính tiện lợi, khả năng kết nối và tiết kiệm chi phí Đây là công nghệ cho phép truyền và nhận thông tin mà không cần cáp, sử dụng sóng điện từ, và đã trở thành phần thiết yếu trong cuộc sống hiện đại Hiện nay, có nhiều phương thức truyền thông không dây trong công nghiệp như Wi-Fi, Bluetooth, Zigbee, Cellular và LoRa, mỗi loại đều có những ưu điểm riêng để phục vụ cho các mục đích khác nhau.
Từ những tìm hiểu của chúng tôi cùng với sự gợi ý của giáo viên hướng dẫn,
Hệ thống điều khiển và giám sát qua mạng LoRa được phát triển nhằm tận dụng lợi ích của truyền thông không dây LoRa, kết hợp với công nghệ hiện đại như Node.js cho máy chủ mạnh mẽ, React.js cho giao diện thời gian thực và PostgreSQL cho cơ sở dữ liệu quan hệ.
Mục tiêu
Nghiên cứu và phát triển tập trung vào hai nội dung chính: truyền thông không dây qua công nghệ LoRa và xây dựng hệ thống máy chủ cùng giao diện người dùng sử dụng Node.js và React.js.
Hệ thống LoRa bao gồm một Gateway và ba Node, có nhiệm vụ giao tiếp và truyền nhận tín hiệu với máy chủ Node.js Mỗi Node đảm nhận một chức năng riêng biệt trong hệ thống.
Node 1: Điều khiển và thu thập dữ liệu hệ thống băng tải phân loại sản phẩm
Node 2: Điều khiển và thu thập dữ liệu hệ thống bồn nước PID
Node 3: Điều khiển và thu thập dữ liệu hệ thống báo cháy
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 2
Toàn bộ dữ liệu hệ thống sẽ được tổng hợp lưu trữ trên cơ sở dữ liệu PostgreSQL và hiển thị trên web được xây dựng bằng React.js.
Nội dung nghiên cứu
Đề tài Hệ thống điều khiển và thu thập dữ liệu thông qua mạng không dây LoRa” thực hiện các nội dung chính sau:
Chương 2: Cơ sở lý thuyết
Chương 3: Tính toán và thiết kế hệ thống
Chương 4: Thi công hệ thống
Chương 5: Kết quả so sánh, thực nghiệm, phân tích, tổng hợp
Chương 6: Kết luận và hướng phát triển
Giới hạn
Nội dung bài viết tập trung vào việc nghiên cứu và phát triển công nghệ LoRa kết hợp với truyền thông Internet, bao gồm việc tự xây dựng hệ thống máy chủ và giao diện người dùng.
- Cách gửi nhận dữ liệu từ người dùng đến thiết bị cuối thông qua các phương thức truyền thông như LoRa
- Nghiên cứu và xây dựng toàn bộ hệ thống trang web giám sát và điều khiển từ xa với Node.js và React.js
Ứng dụng các đối tượng và dữ liệu từ những đồ án môn học trước, chẳng hạn như hệ thống phân loại sản phẩm bằng mã vạch và hệ thống bồn nước, nhằm mục đích thu thập và điều khiển hiệu quả.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 3
CƠ SỞ LÝ THUYẾT
Giới thiệu chung
IoT – Internet of Things (vạn vật kết nối internet) là một mô hình phát triển nhanh chóng, cho phép các thiết bị điện tử, máy móc, đồ gia dụng và cảm biến kết nối qua internet để thu thập, truyền tải và chia sẻ dữ liệu Điều này giúp cuộc sống con người trở nên dễ dàng và tiện lợi hơn bao giờ hết IoT sử dụng thiết bị thông minh và internet để cung cấp giải pháp cho nhiều thách thức trong thương mại, chính phủ và đặc biệt là trong ngành công nghiệp toàn cầu.
IoT đang trở thành một xu hướng công nghiệp mạnh mẽ, với các thiết bị như cảm biến, máy đo và robot có khả năng thu thập và truyền dữ liệu về hoạt động sản xuất cho hệ thống quản lý Hệ thống này phân tích dữ liệu để cung cấp thông tin hữu ích, giúp tăng cường hiệu suất sản xuất, giảm chi phí và nâng cao chất lượng sản phẩm Công nghệ IoT cho phép doanh nghiệp theo dõi các thành phần sản xuất và phát hiện vấn đề trước khi chúng trở thành nghiêm trọng Hơn nữa, IoT cũng hỗ trợ tiết kiệm năng lượng và tài nguyên thông qua tự động hóa quy trình sản xuất.
IoT và mạng truyền thông không dây có mối liên hệ chặt chẽ, với IoT cần kết nối để truyền tải dữ liệu về hệ thống quản lý và nhận tín hiệu điều khiển Mạng truyền thông không dây đóng vai trò quan trọng, cung cấp phương tiện cho các thiết bị IoT kết nối với internet và với nhau.
Các công nghệ mạng truyền thông không dây như Wi-Fi, Bluetooth, NFC, ZigBee, LoRa và Cellular đóng vai trò quan trọng trong việc kết nối các thiết bị IoT với nhau và với hệ thống quản lý Mỗi loại mạng có những ưu điểm riêng về khoảng cách truyền tải, băng thông, tiêu thụ năng lượng và chi phí Do đó, các doanh nghiệp cần cân nhắc kỹ lưỡng để lựa chọn loại mạng phù hợp nhất cho nhu cầu của mình.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 4 cung cấp các mạng phù hợp với nhu cầu của bạn Chúng tôi sẽ phân tích tổng quan về ưu và nhược điểm của từng loại mạng truyền thông không dây trong phần tiếp theo.
2.1.2 Các công nghệ mạng truyền thông không dây a Mạng WiFi
Mạng WiFi đã trở nên phổ biến trong cuộc sống hàng ngày, xuất hiện ở hầu hết các địa điểm như nhà ở, nhà hàng, trường học, bệnh viện và quán cà phê Vậy, WiFi thực sự là gì?
WiFi, hay còn gọi là "Wireless Fidelity", là tên gọi phổ biến của chuẩn không dây Ethernet IEEE 802.11 Công nghệ này sử dụng sóng vô tuyến để truyền và nhận tín hiệu từ các thiết bị lân cận, mang lại khả năng truy cập Internet cho các thiết bị kết nối.
Về cơ bản, WiFi là kết nối không dây giữa các thiết bị và Internet
WiFi hoạt động dựa trên việc truyền và nhận sóng vô tuyến, một loại sóng điện từ, để giao tiếp giữa các thiết bị Các thành phần khác của phổ điện từ bao gồm ánh sáng khả kiến, tia cực tím, tia hồng ngoại và tia X.
Hình 2.1 The Electromagnetic Spectrum (Photo Credit: Designua / Shutterstock)
Tần số vô tuyến của tín hiệu WiFi khác biệt so với tần số của radio ô tô, điện thoại di động hay bộ đàm, vì WiFi hoạt động trong phạm vi Gigahertz (2,4 GHz hoặc 5 GHz) Tần số cao hơn cho phép tín hiệu truyền tải nhiều dữ liệu hơn Mặc dù kết nối 2,4 GHz hiện nay được coi là hơi lỗi thời, băng tần này vẫn được sử dụng rộng rãi nhờ khả năng phủ sóng tốt trong khoảng cách vài trăm feet.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 5
Băng tần 5GHz có phạm vi tối đa khoảng 200 feet (61 mét), nhưng dễ bị nhiễu từ các vật cản như tường và cửa Trong khi đó, băng tần 2,4 có thể cung cấp tốc độ nhanh hơn cho người dùng ở xa bộ định tuyến, đặc biệt khi kết nối qua nhiều phòng Ngược lại, băng tần 5GHz sẽ mang lại tốc độ nhanh hơn cho các kết nối gần.
Tiện lợi: Bản chất không dây của WiFi cho phép người dùng truy cập tài nguyên mạng từ hầu hết mọi vị trí trong vùng phủ sóng của WiFi
Chi phí: Phần cứng của mạng không dây có chi phí thấp so với các mạng có dây vì không cần tốn chi phí để lắp đặt cáp
Nhược điểm Độ tin cậy: Giống như bất kỳ đường truyền tần số vô tuyến nào, tín hiệu mạng không dây sẽ phải chịu nhiều loại nhiễu
Phạm vi trung bình của mạng WiFi chỉ đạt hàng chục mét, không đủ để bao phủ toàn bộ nhà máy công nghiệp Để mở rộng phạm vi WiFi, người dùng cần đầu tư vào bộ lặp hoặc điểm truy cập bổ sung, dẫn đến chi phí cao.
Bluetooth là công nghệ không dây cho phép kết nối và hoạt động giữa nhiều thiết bị khác nhau Ban đầu, nó được phát minh để phục vụ cho các thiết bị như bàn phím, tai nghe, và loa Hiện nay, Bluetooth được sử dụng rộng rãi trên nhiều thiết bị như điện thoại di động, dàn âm thanh, và máy theo dõi sức khỏe Hầu hết các thiết bị không dây hiện nay đều hỗ trợ công nghệ Bluetooth.
Các thiết bị Bluetooth giao tiếp qua sóng vô tuyến tần số cực cao (UHF) với tần số khoảng 2,4 gigahertz, cho phép chúng kết nối trực tiếp mà không cần thiết bị trung gian như bộ định tuyến WiFi Phương thức này giúp tiết kiệm năng lượng và cải thiện tuổi thọ pin của các thiết bị.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 6
Có hai loại công nghệ Bluetooth chính là Bluetooth Low Energy (LE) và Bluetooth Classic (BR/EDR) Bluetooth LE phổ biến hơn do tiêu thụ ít năng lượng và khả năng kết nối mạng lưới thiết bị Trong khi đó, Bluetooth Classic cung cấp tốc độ dữ liệu cao hơn (3 Mbs so với 1 Mbs hoặc 2 Mbs) nhưng chỉ hỗ trợ kết nối điểm-điểm giữa hai thiết bị.
- Tiêu thụ điện năng và năng lượng thấp
- Có thể kết nối thông qua các bức tường hay bất kỳ chướng ngại vật nào
- Phần lớn các thiết bị đều được tích hợp Bluetooth để thuận tiện, dễ sử dụng và truy cập
- Chậm hơn so với công nghệ không dây khác như Wi-Fi
- Có phạm vi giao tiếp nhỏ (chỉ khoảng 50 mét)
- Công nghệ RF hoạt động cùng tần số của Bluetooth, do đó đôi khi có thể gây ra nhiễu
- Để truyền một lượng lớn dữ liệu, nên sử dụng công nghệ truyền thông khác
- Hạn chế số lượng thiết bị kết nối Bluetooth c Zigbee
Zigbee là công nghệ không dây được thiết kế để đáp ứng nhu cầu kết nối của mạng dữ liệu IoT, với ưu điểm về công suất và chi phí thấp Tiêu chuẩn Zigbee hoạt động dựa trên giao thức IEEE 802.15.4, do Zigbee Alliance phát triển.
Sóng truyền thông vô tuyến LoRa
Sóng LoRa là công nghệ truyền dữ liệu không dây, áp dụng kỹ thuật điều chế CSS (Chirp Spread Spectrum) nhằm nâng cao khoảng cách và độ tin cậy trong việc truyền tải dữ liệu giữa các thiết bị IoT.
Trong quá trình điều chế sóng, tín hiệu dữ liệu được chuyển đổi thành tín hiệu sóng mang với tần số cao hơn Khác với các công nghệ truyền dữ liệu sử dụng kỹ thuật điều chế AM (Amplitude Modulation) hay FM (Frequency Modulation), LoRa áp dụng kỹ thuật điều chế CSS (Chirp Spread Spectrum).
Công nghệ CSS cho phép truyền dữ liệu qua khoảng cách xa, vượt qua các rào cản vật lý như tường, tòa nhà và cây cối Sóng LoRa sử dụng băng thông rộng với khả năng điều chỉnh độ rộng băng thông, phù hợp cho việc truyền dữ liệu từ các thiết bị IoT Do đó, công nghệ này rất lý tưởng cho các ứng dụng IoT, nơi yêu cầu truyền dữ liệu từ xa với độ tin cậy cao.
2.2.2 LoRa và LoRaWAN a Khái niệm về LoRa
Công nghệ LoRa là một giao thức vô tuyến bảo mật, khác với LoRaWAN, dữ liệu LoRa không được lưu trữ trên đám mây.
Để truyền dữ liệu, cần sử dụng thiết bị vô tuyến như module LoRa E32 và thiết lập giao tiếp giữa chúng, quá trình này được gọi là Machine to Machine (MtoM) LoRaWAN là một khái niệm quan trọng trong việc kết nối các thiết bị này.
LoRaWAN là giao thức truyền thông được thiết kế cho mạng LPWAN, cho phép truyền tải dữ liệu nhỏ qua khoảng cách xa, phục vụ cho các thiết bị IoT Công nghệ này hỗ trợ kết nối hiệu quả trong môi trường rộng lớn với mức tiêu thụ năng lượng thấp.
LoRaWAN, viết tắt của Long Range Wide Area, là công nghệ kết nối tín hiệu với ứng dụng trong tầng truyền dữ liệu của thiết bị viễn thông Công nghệ này điều chỉnh kiến trúc và giao thức, từ đó nâng cao tính bảo mật của dữ liệu truyền, kéo dài thời lượng pin của các nút, tăng dung lượng mạng và cải thiện chất lượng dịch vụ.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 11 c Sự khác nhau giữa LoRa và LoRaWAN
LoRaWAN là giao thức mạng kết nối tín hiệu từ LoRa, cho phép truyền tải dữ liệu từ các cảm biến đến ứng dụng Đơn giản mà nói, LoRa hoạt động như một tín hiệu radio mang dữ liệu (physical layer), trong khi LoRaWAN xác định cách thức giao tiếp và truyền tải dữ liệu qua mạng Cấu trúc mô hình của LoRaWAN rất quan trọng trong việc đảm bảo hiệu suất và khả năng kết nối của hệ thống.
Mạng LoRaWAN bao gồm các thành phần chính như LoRa node, LoRa gateway, Máy chủ mạng và Máy chủ ứng dụng Kiến trúc của mạng LoRaWAN được thiết kế theo cấu trúc hình sao và cấu trúc giao tiếp điểm tới điểm, đảm bảo tính linh hoạt và hiệu quả trong việc truyền tải dữ liệu.
Hình 2.2 Cấu trúc mô hình LoRaWAN
Các node LoRa là thiết bị có khả năng điều chế sóng vô tuyến, kết nối với vi điều khiển để truyền dữ liệu từ cảm biến đến các gateway lân cận.
Nút cuối LoRa bao gồm 2 phần:
- Một module radio có ăng-ten (chẳng hạn module LoRa E32)
- Một bộ vi điều khiển để xử lý dữ liệu cảm biến và truyền dữ liệu đến gateway
Các LoRa gateway có nhiệm vụ thu thập dữ liệu từ các LoRa Node và chuyển dữ liệu đến máy chủ mạng LoRa Gateway bao gồm 3 phần:
- Mô-đun radio có ăng-ten cho giao tiếp LoRa
- Bộ vi điều khiển để xử lý dữ liệu cảm biến nhận được
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 12
- Phương tiện kết nối Internet như WiFi, Ethernet hoặc Mạng di động để truyền dữ liệu đến Máy chủ mạng
Gateway không lưu trữ dữ liệu và chỉ hoạt động như một bộ chuyển tiếp packet Giao tiếp giữa node và gateway diễn ra theo hai chiều, cho phép node gửi và nhận dữ liệu từ gateway.
Máy chủ mạng (network server) là thành phần quan trọng trong hệ thống LoRaWAN, có nhiệm vụ quét và loại bỏ dữ liệu trùng lặp từ nhiều cổng, đồng thời phục vụ cho máy chủ ứng dụng (application server).
Các ứng dụng hiển thị dữ liệu thu thập từ thiết bị đầu cuối và máy chủ ứng dụng có khả năng gửi phản hồi trở lại nút cuối Khi phản hồi được gửi, máy chủ mạng sẽ nhận và xác định gateway thích hợp để truyền câu trả lời về nút cuối.
- Khi một nút cuối truyền dữ liệu đến gateway, nó được gọi là đường lên
- Khi Gateway truyền dữ liệu đến nút cuối, nó được gọi là đường xuống
2.2.3 Các kỹ thuật điều chế sóng
Trong lĩnh vực điện tử viễn thông, điều chế là quá trình thay đổi thuộc tính của sóng mang để truyền tải thông tin qua tín hiệu điều chế Ví dụ, tín hiệu điều chế có thể là âm thanh từ micrô, hình ảnh từ máy quay video, hoặc chuỗi số nhị phân từ máy tính.
Sóng mang có tần số cao hơn tín hiệu đầu vào vì việc truyền tín hiệu với tần số thấp không hiệu quả Trong truyền thông vô tuyến, sóng mang được điều chế và truyền qua không gian dưới dạng sóng vô tuyến đến máy thu.
Trong điều chế tín hiệu tương tự (analog), tín hiệu điều chế tương tự được
Tổng quan về truyền tải thông tin trên internet
Hình 2.13 Mô hình client-server
Mô hình client-server là kiến trúc phân tán, trong đó máy tính được phân chia thành hai vai trò: máy khách (client) và máy chủ (server) Máy khách thực hiện việc yêu cầu dịch vụ, tài nguyên hoặc thông tin từ máy chủ.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 21
Trong khi đó, máy chủ đáp ứng yêu cầu của máy khách bằng cách cung cấp dịch vụ, tài nguyên hoặc thông tin được yêu cầu
Trong mô hình này, máy chủ là thiết bị xử lý nhanh, được quản lý bởi một nhóm hoặc tổ chức Máy chủ đảm nhận vai trò phục vụ nhiều yêu cầu từ các máy khách khác nhau.
Máy khách là thiết bị cho phép người dùng truy cập vào dịch vụ, tài nguyên hoặc thông tin từ máy chủ Qua mạng máy tính, máy khách gửi yêu cầu đến máy chủ và chờ nhận phản hồi.
Mô hình client-server là một kiến trúc phổ biến trong các ứng dụng mạng như web, email, trò chơi trực tuyến và ứng dụng di động Mô hình này mang lại nhiều
2.3.2 Giao thức HTTP (Hypertext Transfer Protocol) a Giới thiệu
HTTP (Giao thức truyền siêu văn bản) là giao thức chính để trao đổi thông tin qua internet, hoạt động như một hệ thống phân phối thông tin Nó là nền tảng của World Wide Web, cho phép trình duyệt web và máy chủ giao tiếp, gửi và nhận các nội dung như trang web, hình ảnh và âm thanh.
Máy khách và máy chủ giao tiếp thông qua việc trao đổi các tin nhắn riêng lẻ, với tin nhắn từ máy khách gọi là yêu cầu (request) và từ máy chủ là phản hồi (response) HTTP, được thiết kế vào đầu những năm 1990, là một giao thức mở rộng thuộc lớp ứng dụng, hoạt động qua TCP hoặc kết nối TCP mã hóa TLS Nhờ khả năng mở rộng, HTTP không chỉ cho phép tìm nạp tài liệu siêu văn bản mà còn hỗ trợ hình ảnh, video và việc đăng nội dung lên máy chủ.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 22
Hình 2.14 Cấu tạo giao tiếp trang web qua mạng internet b HTTP request
Khi trình duyệt web gửi yêu cầu đến máy chủ để truy cập tài nguyên trên internet, nó sử dụng một URL duy nhất, chỉ định chính xác vị trí của tài nguyên đó trên máy chủ.
Hình 2.15 Cấu tạo của URL
Tài nguyên là bất kỳ đối tượng nào có tên và có thể được truy cập thông qua mã định danh duy nhất, bao gồm người dùng, sản phẩm, bài viết, tài liệu và hình ảnh.
Một HTTP request thường chứa:
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 23
Các phương thức HTTP Request
Phương thức request cho máy chủ biết loại hành động mà máy khách muốn máy chủ thực hiện Các phương pháp phổ biến nhất là:
HEAD Yêu cầu máy chủ về trạng thái (kích thước, tính khả dụng) của tài nguyên.
GET Yêu cầu máy chủ truy xuất tài nguyên.
POST Yêu cầu máy chủ tạo tài nguyên mới.
PUT Yêu cầu máy chủ chỉnh sửa/cập nhật tài nguyên hiện có.
DELETE Yêu cầu máy chủ xóa tài nguyên
Bảng 2.2 Các phương thức HTTP Request
Các tiêu đề HTTP chứa thông tin quan trọng dưới dạng các cặp khóa-giá trị và xuất hiện trong mọi yêu cầu và phản hồi HTTP Chúng cung cấp thông tin cốt lõi, bao gồm trình duyệt mà khách hàng đang sử dụng và dữ liệu được yêu cầu.
Phần thân của yêu cầu HTTP chứa thông tin quan trọng mà yêu cầu chuyển tới máy chủ web, bao gồm tên người dùng, mật khẩu và dữ liệu từ các biểu mẫu.
HTTP response là phản hồi mà máy khách, thường là trình duyệt, nhận từ máy chủ Internet để đáp ứng yêu cầu HTTP Những phản hồi này cung cấp thông tin quan trọng dựa trên nội dung của yêu cầu HTTP.
Một HTTP response thường chứa:
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 24
- HTTP status code (mã trạng thái)
HTTP status code (mã trạng thái)
Mã trạng thái HTTP là một chuỗi ba chữ số, thường dùng để xác định xem yêu cầu HTTP đã được thực hiện thành công hay chưa Các mã trạng thái này được phân loại thành năm nhóm chính.
"xx" dùng để chỉ các số khác nhau từ 00 đến 99
Mã trạng thái bắt đầu bằng số '2' biểu thị thành công, với ví dụ điển hình là mã '200 OK', cho biết rằng yêu cầu của máy khách đã được xử lý thành công khi truy cập một trang web.
Nếu phản hồi bắt đầu bằng '4' hoặc '5', điều này cho thấy có lỗi xảy ra và trang web không thể hiển thị Mã trạng thái '4' chỉ ra lỗi phía máy khách, thường gặp nhất là mã '404 NOT FOUND' do lỗi đánh máy trong URL Ngược lại, mã trạng thái '5' cho biết có sự cố ở phía máy chủ Ngoài ra, mã trạng thái có thể bắt đầu bằng '1' hoặc '3', đại diện cho phản hồi thông tin và chuyển hướng tương ứng.
Giống như một yêu cầu HTTP, phản hồi HTTP cũng bao gồm các tiêu đề quan trọng, cung cấp thông tin về ngôn ngữ và định dạng của dữ liệu trong nội dung phản hồi.
Máy chủ Node.js
Node.js là một thư viện và môi trường thời gian chạy mã nguồn mở cho JavaScript, cho phép phát triển các ứng dụng web bên ngoài trình duyệt Được phát triển bởi Ryan Dahl vào năm 2009, Node.js rất phù hợp cho việc xây dựng các ứng dụng web phía máy chủ, đặc biệt là những ứng dụng yêu cầu xử lý nhiều dữ liệu, nhờ vào mô hình điều khiển sự kiện không đồng bộ của nó.
Node.js là một nền tảng mã nguồn mở, cho phép người dùng truy cập và sử dụng mã nguồn một cách công khai Nền tảng này được duy trì và phát triển bởi cộng đồng các nhà phát triển từ khắp nơi trên thế giới, đảm bảo sự đổi mới và cải tiến liên tục.
- Node.js đa nền tảng: Node.js không phụ thuộc vào bất kỳ phần mềm hệ điều hành nào Nó có thể hoạt động trên Linux, macOS hoặc Windows
Node.js là môi trường runtime cho JavaScript, cho phép thực thi mã JavaScript được viết trong trình soạn thảo văn bản Để thực hiện các tác vụ, mã JavaScript cần được chạy trong một môi trường runtime, và Node.js chính là giải pháp để thực hiện điều đó.
Các trình duyệt như Chrome và Firefox cung cấp môi trường runtime, cho phép chạy mã JavaScript Trước khi Node.js ra đời, JavaScript chỉ có thể hoạt động trên trình duyệt và chủ yếu được sử dụng để phát triển các ứng dụng giao diện người dùng.
Node.js là một môi trường chạy bên ngoài trình duyệt, được phát triển dựa trên JavaScript V8 của Chrome, cho phép xây dựng các ứng dụng back-end bằng chính ngôn ngữ lập trình JavaScript.
Node.js nổi bật với khả năng xử lý hiệu quả các tác vụ I/O nhờ vào mô hình non-blocking I/O, cho phép ứng dụng xử lý nhiều yêu cầu đồng thời mà không bị chậm trễ Hơn nữa, Node.js được phát triển dựa trên JavaScript, một ngôn ngữ lập trình phổ biến và dễ tiếp cận, giúp người dùng nhanh chóng làm quen và phát triển ứng dụng.
Node.js sở hữu một cộng đồng phát triển mạnh mẽ cùng với hệ sinh thái module phong phú, cho phép lập trình viên tái sử dụng các module mở rộng đã có sẵn Điều này giúp tăng tốc độ phát triển ứng dụng một cách hiệu quả và tiết kiệm thời gian.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 30
Hiệu suất cao: Node.js được thiết kế cho phép các ứng dụng xử lý đồng thời nhiều yêu cầu một cách hiệu quả
Node.js là một nền tảng mã nguồn mở, giúp dễ dàng triển khai ứng dụng trên nhiều hệ điều hành khác nhau mà không gặp phải vấn đề tương thích.
Node.js là nền tảng mạnh mẽ cho việc xử lý yêu cầu từ máy khách với tốc độ nhanh chóng Với khả năng xử lý đồng thời các hoạt động và yêu cầu I/O thông qua kỹ thuật luồng, Node.js hoạt động hiệu quả trong việc phục vụ nhiều máy khách Sử dụng ngôn ngữ đơn luồng và vòng lặp sự kiện (event loop), Node.js đảm bảo rằng các yêu cầu được xử lý mà không gây ra hiện tượng blocking, tạo ra trải nghiệm mượt mà cho người dùng.
Non-blocking I/O là phương pháp xử lý nhiều yêu cầu cùng lúc mà không làm gián đoạn chúng I/O chủ yếu liên quan đến việc tương tác với các hệ thống bên ngoài như tệp và cơ sở dữ liệu Node.js không phù hợp cho các tác vụ yêu cầu nhiều CPU, chẳng hạn như tính toán hay xử lý video, vì nó sử dụng một luồng đơn không đủ khả năng xử lý các công việc nặng về CPU.
Bất đồng bộ trong Node.js cho phép các hàm callback được thực thi ngay khi nhận được phản hồi từ máy chủ hoặc cơ sở dữ liệu, nhờ vào kiến trúc hướng sự kiện Node.js không chờ đợi phản hồi từ một luồng đơn lẻ mà gửi yêu cầu đến hệ thống khác, đồng thời cho phép xử lý nhiều yêu cầu song song Để thực hiện điều này, Node.js sử dụng thư viện Libuv, một thư viện mã nguồn mở tập trung vào tính năng không đồng bộ và I/O, giúp truy cập vào hệ điều hành, hệ thống tệp và mạng Khi gửi yêu cầu từ trình duyệt, Node.js tạo một tiến trình mới để xử lý yêu cầu, trong khi vẫn tiếp nhận và xử lý các yêu cầu khác, cho phép xử lý nhiều yêu cầu đồng thời mà không cần chờ hoạt động I/O hoàn thành.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 31
Node.js sử dụng cơ chế "event loop" để quản lý và xử lý các sự kiện Khi nhận được yêu cầu, Node.js sẽ đưa yêu cầu đó vào hàng đợi của event loop Event loop sẽ xử lý các yêu cầu theo thứ tự, sử dụng callback để tiếp tục xử lý các yêu cầu khác một cách hiệu quả.
Node.js có khả năng xử lý nhiều yêu cầu đồng thời nhờ vào việc sử dụng các tiến trình mới cho việc xử lý yêu cầu Bên cạnh đó, Node.js áp dụng sự kiện và callback để tiếp tục xử lý các yêu cầu khác mà không cần chờ đợi hoàn tất các hoạt động I/O.
Hình 2.18 Nguyên lý hoạt động của Node.js
React.js
React.js là một thư viện mã nguồn mở do Facebook phát triển, chuyên dùng để xây dựng giao diện người dùng và ứng dụng web tương tác Nó cho phép phát triển nhanh chóng và hiệu quả, giúp tối ưu hóa trải nghiệm người dùng.
Trong React, lập trình viên xây dựng ứng dụng bằng cách tạo ra các thành phần tái sử dụng, tương tự như các khối lego độc lập Những thành phần này là các phần riêng lẻ của giao diện, và khi được kết hợp lại, chúng tạo thành toàn bộ giao diện người dùng của ứng dụng.
React đóng vai trò quan trọng trong việc quản lý lớp “nhìn” của ứng dụng, cung cấp khả năng tạo ra các thành phần giao diện người dùng (UI) hiệu quả và tối ưu nhất.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 32
Dưới đây là những ưu điểm của React.js cũng là những lý do mà chúng tôi chọn React.js làm framework lập trình cho giao diện:
React.js mang lại hiệu suất cao nhờ vào việc sử dụng Virtual DOM, giúp cập nhật giao diện nhanh chóng và tối ưu hóa hiệu suất vượt trội so với các thư viện khác.
Việc chia nhỏ giao diện người dùng (UI) thành các thành phần giúp đơn giản hóa quá trình quản lý, bảo trì và phát triển ứng dụng, mang lại hiệu quả cao hơn trong công việc.
React.js cho phép tái sử dụng cao các component, giúp tiết kiệm thời gian và nâng cao năng suất trong phát triển ứng dụng.
React.js giúp tạo ra giao diện đẹp mắt và thân thiện với người dùng, đồng thời giảm thời gian phản hồi và nâng cao trải nghiệm người dùng.
Để truy cập một trang web, người dùng nhập URL vào trình duyệt, sau đó trình duyệt gửi yêu cầu đến máy chủ của trang web Nếu yêu cầu thành công, nội dung trang web sẽ được hiển thị Khi người dùng nhấp vào liên kết để chuyển sang trang khác trong cùng trang web, trình duyệt sẽ gửi yêu cầu mới đến máy chủ để tải trang mới.
Việc tải lại giữa trình duyệt và máy chủ diễn ra mỗi khi người dùng truy cập vào trang web mới, nhưng việc tải lại toàn bộ trang có thể gây quá tải và ảnh hưởng đến trải nghiệm người dùng, đặc biệt trên các trang tương tác cao hoặc dựa trên dữ liệu lớn Do đó, cần áp dụng các phương pháp tải trang web hiệu quả hơn để cải thiện trải nghiệm người dùng và tối ưu tốc độ tải trang.
Khi dữ liệu trong ứng dụng JavaScript truyền thống thay đổi, việc cập nhật DOM cần được thực hiện thủ công để phản ánh những thay đổi này, dẫn đến việc tải lại toàn bộ trang DOM (Document Object Model) là cấu trúc cây dùng để xử lý tài liệu XML hoặc HTML, trong đó mỗi nút đại diện cho một phần của tài liệu.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 33
Hình 2.19 Nguyên lý hoạt động của React.js
React mang đến một phương pháp mới trong việc phát triển ứng dụng một trang (Single Page Application - SPA) Khác với các ứng dụng truyền thống, SPA chỉ yêu cầu tải một tài liệu HTML duy nhất trong lần đầu tiên Sau đó, thông qua JavaScript, nó có khả năng cập nhật các phần hoặc nội dung cụ thể của trang mà không cần tải lại toàn bộ trang, giúp cải thiện hiệu suất và trải nghiệm người dùng.
Mẫu định tuyến phía máy khách cho phép người dùng nhận trang mới mà không cần tải lại toàn bộ trang web, giúp cải thiện hiệu suất và mang lại trải nghiệm người dùng năng động hơn React chặn yêu cầu và chỉ tìm nạp, thay đổi các phần cần thiết, tối ưu hóa quá trình tương tác của người dùng.
React sử dụng Virtual DOM, một bản sao của DOM thực, để cập nhật ngay lập tức khi có sự thay đổi về trạng thái dữ liệu Sau đó, React so sánh Virtual DOM với DOM thực nhằm xác định các thay đổi chính xác Phương pháp này giúp tối ưu hóa hiệu suất và giảm thiểu thời gian phản hồi khi có sự thay đổi trên giao diện ứng dụng web.
React tối ưu hóa việc cập nhật DOM thực bằng cách tìm ra phương pháp hiệu quả nhất để thực hiện các thay đổi mà không cần hiển thị lại toàn bộ trang Nhờ đó, các thành phần và giao diện người dùng của React có thể phản hồi nhanh chóng với các thay đổi nội dung mà không gặp phải độ trễ.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 34
Cơ sở dữ liệu quan hệ
Hình 2.20 Cấu tạo của bảng trong cơ sở dữ liệu quan hệ
2.6.2 Khái niệm về SQL (Structured Query Language) Được phát minh bởi Don Chamberlin và Ray Boyce tại IBM, Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ lập trình tiêu chuẩn để tương tác với các hệ thống quản lý cơ sở dữ liệu quan hệ, cho phép quản trị viên cơ sở dữ liệu thêm, cập nhật hoặc xóa các hàng dữ liệu một cách dễ dàng Ban đầu được gọi là SEQUEL, nó đã được đơn giản hóa thành SQL do vấn đề nhãn hiệu Các truy vấn SQL cũng cho phép người dùng truy xuất dữ liệu từ cơ sở dữ liệu chỉ bằng một vài dòng mã Với mối quan hệ này, cơ sở dữ liệu quan hệ đôi khi còn được gọi là "cơ sở dữ liệu SQL"
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 35
PostgreSQL là một hệ thống quản lý cơ sở dữ liệu mã nguồn mở, hỗ trợ cả truy vấn SQL và JSON, đã phát triển hơn 20 năm và trở thành một trong những hệ thống ổn định nhất hiện nay Nó cung cấp khả năng phục hồi, tính toàn vẹn và chính xác cao, được sử dụng rộng rãi làm kho lưu trữ dữ liệu cho nhiều ứng dụng web, di động, không gian địa lý và phân tích Một trong những ưu điểm nổi bật của PostgreSQL là tính ổn định cao, nhờ vào hệ thống kiểm soát lỗi mạnh mẽ và khả năng phục hồi dữ liệu tốt.
PostgreSQL cung cấp khả năng mở rộng linh hoạt, cho phép người dùng tùy chỉnh các thông số cấu hình để phù hợp với nhu cầu cụ thể của các ứng dụng đang hoạt động.
PostgreSQL đảm bảo an toàn với các tính năng bảo mật như quản lý người dùng và phân quyền, đồng thời hỗ trợ mã hóa dữ liệu và kết nối an toàn qua SSL/TLS Hơn nữa, PostgreSQL là một hệ quản trị cơ sở dữ liệu đa nền tảng, có khả năng hoạt động trên nhiều hệ điều hành như Linux, macOS và Windows.
Hỗ trợ JSON: PostgreSQL cho phép lưu trữ và truy vấn dữ liệu JSON, giúp đơn giản hóa việc lưu trữ và truy xuất dữ liệu phi quan hệ
Cộng đồng lớn: PostgreSQL có một cộng đồng lớn và có kinh nghiệm, cung cấp hỗ trợ và tài liệu đầy đủ cho người dùng của nó
PostgreSQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở, được cấp phép theo giấy phép BSD, cho phép người dùng sử dụng và tùy chỉnh miễn phí cho cả mục đích thương mại và phi thương mại.
Nền tảng mã nguồn mở này là sự thay thế cho Firebase của Google, cung cấp giao diện trực quan và dễ sử dụng Hơn nữa, với khả năng lưu trữ trên đám mây, người dùng có thể tận dụng tính linh hoạt và khả năng mở rộng của dịch vụ.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 36 không yêu cầu cài đặt để sử dụng mà chỉ cần kích hoạt tài khoản để bắt đầu phát triển dự án
Supabase cung cấp một bộ công cụ toàn diện cho việc phát triển ứng dụng an toàn và mở rộng, bao gồm quản lý cơ sở dữ liệu, xác thực người dùng, lưu trữ tệp, tạo API tự động và cập nhật theo thời gian thực, cùng nhiều dịch vụ hữu ích khác.
Programmable Logic Controller (PLC)
Hình 2.21 Sơ đồ khối hoạt động của PLC
PLC (Bộ điều khiển logic có chương trình) là thiết bị điện tử quan trọng trong hệ thống tự động hoá, cho phép điều khiển và giám sát hoạt động bằng cách chạy các chương trình đã lập trình Nó nhận tín hiệu từ cảm biến và điều khiển các thiết bị như động cơ, van, và bơm Trong ngành công nghiệp, PLC giúp tăng hiệu suất và giảm chi phí sản xuất hiệu quả.
2.7.2 Ngôn ngữ lập trình PLC
Chương trình PLC thường được phát triển trên máy tính và sau đó tải xuống bộ điều khiển Ngôn ngữ lập trình phổ biến nhất cho PLC là Ladder Logic và "C" Ladder Logic, ngôn ngữ lập trình truyền thống, mô phỏng các sơ đồ mạch với các "bậc thang" logic đọc từ trái sang phải, trong đó mỗi bậc thể hiện một hành động cụ thể do PLC điều khiển, bắt đầu từ một hoặc nhiều đầu vào.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 37
(tiếp điểm) dẫn đến đầu ra (cuộn dây) Do bản chất trực quan của nó, Ladder Logic có thể dễ thực hiện hơn nhiều ngôn ngữ lập trình khác
Hình 2.22 Ngôn ngữ lập trình Ladder
2.7.3 Ưu khuyết điểm của PLC a Ưu điểm
PLC giúp loại bỏ sự phụ thuộc vào các hệ thống điều khiển logic truyền thống bằng dây, mang lại sự thuận tiện trong việc xây dựng, cài đặt, bảo trì và sửa đổi So với các hệ thống cũ, PLC cho phép dễ dàng hơn trong việc quản lý và tối ưu hóa quy trình điều khiển.
Các thành phần PLC không cần đấu dây phức tạp do logic điều khiển được thực hiện qua phần mềm Việc cập nhật và sửa đổi chương trình logic ladder trở nên dễ dàng với khả năng tải lên từ xa, khác biệt hoàn toàn so với các hệ thống logic sử dụng relay phải sửa đổi thủ công.
Lập trình bằng ladder giúp phát triển nhanh chóng các biểu thức logic phức tạp và đơn giản hóa quy trình lập trình PLC nhờ thiết kế mô-đun Điều này không chỉ dễ dàng cài đặt mà còn thuận tiện trong việc tích hợp vào các thiết lập vật lý khác nhau, từ đó hỗ trợ mở rộng và kết nối với nhiều thiết bị đầu vào và đầu ra.
PLC là thiết bị chuyên dụng được thiết kế để hoạt động hiệu quả trong các môi trường khắc nghiệt, bao gồm nhiệt độ cực lạnh và cực nóng, cũng như trong điều kiện bụi bặm và ẩm ướt tại các nhà máy.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 38
PLC được kết hợp với hệ điều hành thời gian thực, cho phép quản lý các tác vụ cụ thể mà không cần đến các tiện ích bổ sung như phần mềm chống vi-rút hay trình dọn dẹp lưu trữ như trên máy tính.
Dựa trên bộ vi xử lý, thời gian thực hiện PLC nhanh hơn các hệ thống điều khiển logic chuyển tiếp, có nhiều bộ phận cơ học b Khuyết điểm
Mặc dù các hệ thống PLC rất đáng tin cậy, nhưng chúng thường yêu cầu màn hình hiển thị bên ngoài để trình bày và thể hiện dữ liệu một cách thân thiện với người dùng.
Khi PLC gặp sự cố, việc khắc phục thường cần đến sự can thiệp của các chuyên gia chuyên về PLC để thực hiện kiểm tra và sửa chữa một cách toàn diện.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 39
TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
Thiết kế sơ đồ khối hệ thống
Hệ thống được cấu thành từ bốn khối chính: khối thiết bị, khối cổng giao tiếp, khối máy chủ và khối giao diện người dùng Bốn khối này hỗ trợ cho hai nội dung nghiên cứu chủ yếu.
- Truyền thông LoRa: được sử dụng ở khối thiết bị và khối cổng giao tiếp
- Tự xây dựng máy chủ và giao diện người dùng bằng Node.js, React.js: được sử dụng ở khối máy chủ và khối giao diện người dùng
Khối thiết bị bao gồm ba node riêng biệt, mỗi node là một hệ thống phần cứng với các cảm biến và cơ cấu chấp hành có chức năng thu thập và điều khiển khác nhau Node 1 thực hiện phân loại sản phẩm barcode thông qua PLC và ngôn ngữ lập trình Python Node 2 là hệ thống bồn nước được điều khiển bằng PID, trong khi Node 3 là hệ thống cảnh báo cháy Dữ liệu từ các node sẽ được truyền qua LoRa đến khối cổng giao tiếp.
Khối cổng giao tiếp bao gồm một bộ LoRa master kết nối với các LoRa slave theo mô hình slave-master, cùng với một vi điều khiển ESP32 để giao tiếp với hệ thống máy chủ thông qua giao thức HTTP và REST API.
Khối máy chủ được xây dựng trên nền tảng Node.js, có chức năng giao tiếp với cơ sở dữ liệu Supabase để lưu trữ thông tin Nó cũng tương tác với giao diện người dùng được phát triển bằng React.js, nhằm hiển thị dữ liệu và thông tin từ các cảm biến Bên cạnh đó, người dùng có thể điều khiển các cơ cấu chấp hành từ xa thông qua khối máy chủ bằng cách gửi tín hiệu yêu cầu.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 40
Hình 3.1 Sơ đồ khối hệ thống
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 41
Mối quan hệ giữa các khối trong sơ đồ là quan hệ 2 chiều như sau:
Các cảm biến từ các node thiết bị thu thập dữ liệu và gửi thông tin đến bộ xử lý ESP32 để xử lý Sau đó, dữ liệu được truyền đến khối cổng giao tiếp qua công nghệ không dây LoRa Bộ xử lý tại cổng giao tiếp cũng sử dụng ESP32 để gửi thông tin đến server Node.js thông qua REST API Dữ liệu sau đó được lưu trữ trên cơ sở dữ liệu Supabase và hiển thị trên giao diện người dùng React.js.
Người dùng tương tác với giao diện web React.js để điều khiển hệ thống, trong khi máy chủ Node.js gửi tín hiệu điều khiển đến khối cổng giao tiếp Khối cổng này chuyển tiếp tín hiệu xuống các node qua module LoRa, từ đó bộ xử lý hoặc PLC sẽ điều khiển các cơ cấu chấp hành dựa trên tín hiệu nhận được.
Khối thiết bị
Hình 3.2 Sơ đồ khối của khối thiết bị
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 42
Khối thiết bị bao gồm ba node chính, tương ứng với ba hệ thống: hệ thống băng tải phân loại sản phẩm bằng mã vạch, hệ thống bồn nước và hệ thống cảnh báo cháy Mỗi node được trang bị cơ cấu chấp hành và cảm biến (thiết bị cuối) cùng với PLC, đảm bảo hoạt động hiệu quả và chính xác.
1), trung tâm điều khiển ESP32 và module thu nhận tín hiệu LoRa (vai trò slave)
3.2.1 Thiết kế bo mạch a Yêu cầu thiết kế
Bo mạch sử dụng tính năng giao tiếp LoRa (Long Range) cho phép truyền tải dữ liệu từ thiết bị từ xa đến khối cổng giao tiếp với khoảng cách lên đến hàng km Tính năng này hỗ trợ hiệu quả cho các ứng dụng đo lường từ xa và giám sát môi trường trong nhà máy, cũng như giữa nhiều nhà máy khác nhau.
Tính năng đầu tiên của mạch đó là tính năng giao tiếp LoRa (Long Range)
Một tính năng nổi bật của mạch là cổng mạng LAN hỗ trợ giao tiếp Modbus TCP/IP, cho phép kết nối với mạng LAN và truyền tải dữ liệu đến PLC thông qua giao thức này.
Cổng RS485 với giao thức Modbus RTU là một tính năng quan trọng của mạch, cho phép truyền tải dữ liệu hiệu quả trong môi trường công nghiệp Giao thức này được sử dụng phổ biến trong các hệ thống điều khiển và giám sát, đảm bảo sự ổn định và tin cậy trong việc truyền thông.
Mạch PCB LoRa được trang bị 3 relay đầu ra và 2 transistor đầu ra, cho phép điều khiển hiệu quả các cơ cấu chấp hành trong thiết bị Tính năng này giúp mạch tương thích với các hệ thống điều khiển tự động, đồng thời tiết kiệm chi phí cho người sử dụng.
Mạch PCB LoRa được trang bị 5 đầu vào số và 2 đầu vào analog, cho phép thu thập dữ liệu từ các cảm biến trong thiết bị Nhờ vào các tính năng này, mạch có khả năng giám sát các thông số vật lý như nhiệt độ, độ ẩm, trọng lượng, áp suất và tốc độ.
Mạch PCB LoRa được trang bị nguồn cung cấp 24V và có khả năng giao tiếp với máy tính qua cổng USB, mang lại sự linh hoạt cho nhiều ứng dụng khác nhau Bên cạnh đó, sơ đồ mô phỏng 3D cũng được cung cấp để hỗ trợ quá trình thiết kế và triển khai.
Mô hình mạch PCB 3D được thiết kế trên phần mềm Altium, bao gồm các linh kiện được sắp xếp theo yêu cầu thiết kế trên bảng mạch in Mô hình này thể hiện rõ ràng cấu trúc và hình dạng của bảng mạch, giúp người dùng dễ dàng hình dung và kiểm tra thiết kế.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 43
Các thiết bị trong mô hình được lựa chọn cẩn thận nhằm đảm bảo chất lượng và hiệu suất tối ưu cho bảng mạch PCB 3D Những lựa chọn này giúp bảng mạch hoạt động hiệu quả và đáp ứng các tiêu chuẩn kỹ thuật cao nhất Phần tiếp theo sẽ trình bày chi tiết về các thiết bị được lựa chọn trong mô hình.
Hình 3.3 Mạch slave mô phỏng 3D trên Altium
Hình 3.4 Mạch master mô phỏng 3D trên Altium
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 44 c Chọn thiết bị
ESP32U WROOM là sự lựa chọn lý tưởng cho hệ thống nhờ vào các tính năng phù hợp với yêu cầu kỹ thuật Với 2 core, thiết bị này tối ưu hóa thời gian và hiệu suất giao tiếp với nhiều thiết bị đồng thời, giảm thiểu hiện tượng delay trong quá trình xử lý các tác vụ giao tiếp LoRa Bên cạnh đó, ESP32U WROOM còn tích hợp hỗ trợ RTOS, giúp quản lý tài nguyên hiệu quả và nâng cao khả năng đáp ứng của hệ thống.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 45
Module LAN W5500 mini được tối ưu hóa về kích thước, lý tưởng cho các ứng dụng hạn chế không gian Sự tích hợp sẵn trong module không chỉ giúp giao tiếp dễ dàng mà còn tiết kiệm thời gian trong quá trình triển khai hệ thống.
Module LAN W5500 mini hỗ trợ các giao thức mạng như TCP/IP, UDP và IPv4/IPv6, tối ưu hóa việc trao đổi dữ liệu Thiết bị này còn có tính năng chống giả mạo địa chỉ MAC và bảo mật cao với TLS/SSL, tăng cường an ninh cho hệ thống.
IC TD041S485H là lựa chọn lý tưởng nhờ vào tính năng cách ly giữa MCU và các thiết bị bên ngoài, giúp ngăn chặn nhiễu cho MCU trong các môi trường có nhiễu.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 46
IC PC817 được sử dụng để cách ly điện áp giữa các thiết bị bên ngoài và MCU, hoạt động dựa trên nguyên lý cách ly quang điện Tín hiệu đầu vào được truyền qua LED phát sáng, sau đó được chuyển tiếp qua kênh cách ly và ra đầu ra thông qua phototransistor Điều này đảm bảo không có tín hiệu điện trực tiếp truyền qua các thiết bị bên ngoài.
Mô-đun LORA E32 nổi bật với nhiều ưu điểm vượt trội, đặc biệt là khả năng truyền dữ liệu xa lên tới 8km Ưu điểm này giúp hệ thống hoạt động hiệu quả và ổn định trong các môi trường rộng lớn như nhà máy.
Khối cổng giao tiếp dữ liệu
Khối cổng giao tiếp dữ liệu là yếu tố then chốt trong việc thu thập và truyền tải dữ liệu từ các thiết bị cảm biến đến máy chủ Trung tâm điều khiển sử dụng vi điều khiển ESP32 tích hợp WiFi, đáp ứng hiệu quả nhu cầu gửi và nhận dữ liệu với máy chủ.
Trung tâm điều khiển kết nối với module thu nhận tín hiệu LoRa, đóng vai trò master, để giao tiếp với máy chủ, gửi và nhận tín hiệu từ các node con trong thiết bị.
3.3.2 Thuật toán gửi nhận dữ liệu
Thuật toán gửi nhận dữ liệu sử dụng hai phương thức chính là REST API và truyền thông LoRa Phương thức giao tiếp với máy chủ được gọi là đường hiển thị, cho phép truyền tải dữ liệu hiệu quả và nhanh chóng REST API cung cấp giao diện lập trình linh hoạt, trong khi LoRa đảm bảo kết nối ổn định ở khoảng cách xa.
Khối cổng trong BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 68 được thiết kế để sử dụng hai phương thức chuẩn của REST API là HTTP GET và POST, nhằm truyền tải dữ liệu một cách tin cậy và hiệu quả Điều này không chỉ giúp cho việc trao đổi dữ liệu trở nên dễ dàng hơn mà còn tạo điều kiện cho các ứng dụng tương tác với nhau một cách thuận lợi.
Khối cổng giao tiếp được thiết kế để kết nối các thiết bị thông qua truyền thông LoRa, tạo điều kiện cho việc gửi và nhận dữ liệu hiệu quả và ổn định Việc áp dụng công nghệ LoRa giúp hệ thống hoạt động linh hoạt và tiết kiệm năng lượng, đồng thời cho phép gửi và hiển thị dữ liệu một cách dễ dàng.
Biểu đồ trình tự Hình 3.34 minh họa luồng gửi dữ liệu trong hệ thống, bắt đầu từ giá trị cảm biến Các giá trị này được truyền đến khối cổng giao tiếp qua công nghệ LoRa, đóng vai trò trung gian kết nối giữa khối thiết bị và máy chủ.
Dữ liệu được gửi đến máy chủ qua giao thức HTTP POST và được lưu trữ trong cơ sở dữ liệu thông qua REST API, cho phép truy xuất hiệu quả khi cần Đồng thời, khối ứng dụng gửi yêu cầu lấy dữ liệu đến khối máy chủ qua REST API, và khối máy chủ sẽ truy xuất dữ liệu từ cơ sở dữ liệu, sau đó phản hồi về khối ứng dụng để hiển thị trên màn hình.
Hình 3.34 Sơ đồ trình tự gửi và hiển thị dữ liệu
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 69 b Điều khiển thiết bị
Hình 3.35 Sơ đồ trình tự điều khiển thiết bị
Khi nhận tín hiệu điều khiển, khối ứng dụng gửi yêu cầu cập nhật dữ liệu đến máy chủ để cập nhật vào hệ thống cơ sở dữ liệu Đồng thời, khối cổng giao tiếp gửi yêu cầu nhận dữ liệu đến máy chủ qua giao thức HTTP GET Sau khi nhận yêu cầu, máy chủ truy xuất dữ liệu từ cơ sở dữ liệu và phản hồi lại khối cổng giao tiếp Khối cổng giao tiếp sau đó gửi dữ liệu đến khối thiết bị để điều khiển các cơ cấu chấp hành Cuối cùng, khối thiết bị gửi phản hồi xác nhận đã cập nhật dữ liệu về cổng giao tiếp và truyền đến máy chủ để ghi lại vào hệ thống cơ sở dữ liệu.
Khối máy chủ
Khối máy chủ đóng vai trò quan trọng trong hệ thống, chịu trách nhiệm lưu trữ dữ liệu, kết nối với khối cổng giao tiếp và truyền nhận thông tin với khối ứng dụng Nó bao gồm hai phần chính: máy chủ được xây dựng bằng Node.js và cơ sở dữ liệu quan hệ PostgreSQL Khối máy chủ luôn phải xử lý tải lớn, tiếp nhận hàng trăm đến hàng ngàn yêu cầu gửi nhận dữ liệu từ khối cổng giao tiếp và khối ứng dụng.
3.4.2 Thiết kế cấu trúc máy chủ Để xây dựng máy chủ mạnh mẽ, Node.js thôi là chưa đủ mà còn cần đến ExpressJS ExpressJS là một trong những framework web phổ biến và được ưa
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 70 là một trong những công nghệ phổ biến nhất hiện nay Được phát triển trên nền tảng Node.js, ExpressJS mang đến cho lập trình viên nhiều tính năng thiết yếu để xây dựng ứng dụng web, bao gồm routing, middleware, xử lý request và response, cũng như quản lý session.
ExpressJS hỗ trợ tích hợp với nhiều công nghệ như MongoDB, MySQL, Redis, Socket.io và Passport, giúp các nhà phát triển dễ dàng tùy chỉnh ứng dụng để phù hợp với nhu cầu cụ thể của người dùng Tính linh hoạt này là một trong những điểm mạnh của ExpressJS, tạo điều kiện thuận lợi cho việc phát triển ứng dụng.
Hình 3.36 Sơ đồ hoạt động của máy chủ
3.4.3 Thiết kế cơ sở dữ liệu a Hệ cơ sở dữ liệu thông tin hệ thống
Hệ cơ sở dữ liệu thông tin hệ thống có chức năng lưu trữ các giá trị, trạng thái của các cảm biến cũng như cơ cấu chấp hành
Với bảng “Data” được xem là trung tâm giúp lưu trữ các thông tin sau:
- node: dữ liệu thuộc node nào
- value giá trị của dữ liệu
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 71
- min: điểm đặt thấp nhất của dữ liệu
- max: điểm đặt cao nhất của dữ liệu
- server_data: nhận dữ liệu từ máy chủ
- esp_data: cập nhật dữ liệu từ thiết bị
Hình 3.37 Sơ đồ quan hệ cơ sở dữ liệu thông tin hệ thống
Bảng “DataHistory” giúp lưu trữ lịch sử giá trị của các cảm biến:
- id: khóa chính, cũng có tác dụng đánh số thứ tự
- data_id: khóa ngoại, giúp liên kết với bảng Data
- date: lưu trữ ngày, tháng, năm theo cấu trúc DD/MM/YYYY
- time: lưu trữ giờ, phút, giây
- value: lưu trữ giá trị tại một thời điểm
- status: trạng thái dữ liệu tại một thời điểm
Bảng “Alarm” giúp cập nhật trạng thái cảnh báo ở các node:
- data_id: khóa chính và khóa ngoại liên kết với bảng Data
- date: lưu trữ ngày, tháng, năm theo cấu trúc DD/MM/YYYY
- time: lưu trữ giờ, phút, giây
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 72
- text: thông tin cảnh báo
- status: trạng thái cảnh báo (Active, Acknowledge, OK)
- value: giá trị cảm biến ở thời điểm cảnh báo
- limit: giá trị đặt tại thời điểm cảnh báo
Bảng “AlarmHistory” giúp lưu trữ lịch sử cảnh báo:
- id: khóa chính, cũng có tác dụng đánh số thứ tự
- data_id: khóa ngoại, giúp liên kết với bảng Data
- date: lưu trữ ngày, tháng, năm theo cấu trúc DD/MM/YYYY
- time: lưu trữ giờ, phút, giây
- text: thông tin cảnh báo tại một thời điểm
- status: trạng thái cảnh báo (Active, Acknowledge, OK)
- value: giá trị cảm biến ở thời điểm cập nhật cảnh báo
- limit: giá trị đặt tại thời điểm cập nhật cảnh báo b Bảng dữ liệu người dùng
Hình 3.38 Cấu trúc thông tin người dùng
Hệ cơ sở dữ liệu người dùng có chức năng lưu trữ thông tin người dùng bao gồm:
- username: khóa chính, có thể được xem là mã định danh người dùng
- password: lưu mật khẩu phục vụ cho việc đăng nhập và bảo mật
- first_name: họ người dùng
- last_name: tên người dùng
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 73
- role: phân quyền người dùng (Admin, Operator, Monitor).
Thiết kế giao diện
The interface design is based on principles outlined by Akram Hossain from Purdue University Calumet in the paper "AC 2012-3605: HMI DESIGN: AN ANALYSIS OF A GOOD DISPLAY FOR SEAMLESS INTEGRATION BETWEEN USER UNDERSTANDING AND AUTOMATIC CONTROLS." One key aspect discussed is the importance of color in creating an effective and user-friendly interface.
Sử dụng màu xám sáng làm nền giúp tạo sự dễ nhìn và tăng độ tương phản với các màu sắc tươi sáng như đỏ, vàng, xanh, trong các thành phần khác của trang.
Một số màu đặc biệt cũng được sử dụng để thể hiện cho các chức năng vận hành nhất định:
- Red → Stop, Emergency or Prohibition (Dừng, khẩn cấp hoặc cấm)
- Green → Start or Safe Condition (Bắt đầu hoặc điều kiện an toàn)
- Blue → Operation (Các nút vận hành thông thường) b Nguyên tắc về hình ảnh, đồ họa
Hạn chế sử dụng các đèn hoạt hình nhấp nháy, các hình ảnh 3D với màu sắc tươi sáng, máy bơm quay hoặc băng tải chuyển động
Các giá trị dữ liệu phải được nhóm trong các vùng của màn hình
Việc sử dụng biểu đồ giúp người vận hành dễ dàng theo dõi hoạt động của nhà máy và giám sát các sai lệch có thể xảy ra, từ đó nâng cao hiệu quả quản lý Hệ thống cấp bậc trang cũng đóng vai trò quan trọng trong việc tổ chức thông tin một cách rõ ràng và có hệ thống.
Theo tiêu chuẩn công nghiệp, trang đầu tiên của HMI phải là màn hình tổng quan (Overview), trong khi các trang tiếp theo sẽ cung cấp thông tin chi tiết về các tương tác thực tế đang diễn ra trong quy trình.
Có thể phân cấp thành một số level sau:
Trang này cung cấp cái nhìn tổng quát về toàn bộ quá trình kiểm soát, giúp người vận hành nắm bắt được điều kiện hoạt động tổng thể của quy trình mà họ phụ trách.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 74
Màn hình cấp 2 hiển thị thông tin chi tiết về các đơn vị con trong một quá trình lớn, cung cấp tất cả các dữ liệu và điều khiển cần thiết để thực hiện nhiệm vụ cho từng đơn vị con một cách hiệu quả.
Cấp độ 3: Các trang này cung cấp thông tin chi tiết về từng phần thiết bị và sơ đồ kiểm soát quy trình, được sử dụng chủ yếu cho mục đích chẩn đoán hệ thống.
- Level 4: level này cho thấy thông tin chi tiết của các hệ thống con, cảm biến và thông tin các thành phần khác d Phân quyền
Các chức năng bảo mật được thiết lập để kiểm soát quyền truy cập của người dùng dựa trên cấp độ của nhà điều hành Việc bảo vệ bằng mật khẩu giúp hạn chế truy cập vào các màn hình quan trọng như màn hình quản lý và bảo trì, từ đó nâng cao bảo mật cho cả thiết bị và người vận hành.
3.5.2 Thiết kế giao diện người dùng a Tổng quan
Giao diện của ứng dụng được thiết kế tổng thể trên Figma và lập trình bằng ReactJS Website bao gồm một thanh điều hướng navbar và sáu khung chính, được xây dựng dựa trên sự kết hợp giữa các quy tắc thiết kế HMI trong SCADA, đồng thời đảm bảo tính hiện đại và thân thiện với người dùng.
Hình 3.39 Thiết kế tổng quan giao diện người dùng
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 75 b Thanh điều hướng
Hình 3.40 Bản thiết kế thanh điều hướng
Thanh điều hướng, hay còn gọi là navbar, giúp người dùng dễ dàng truy cập các chức năng chính và các trang khác nhau trong ứng dụng.
Trong hệ thống, thanh điều hướng được bố trí ở đầu mỗi trang, giúp người dùng dễ dàng truy cập các tính năng và trang quan trọng Các chức năng chính trên thanh điều hướng bao gồm màn hình tổng quan, giám sát từng node, trang quản trị, bảng dữ liệu và thiết lập tài khoản.
Màn hình đăng nhập bao gồm các ô input cho phép người dùng nhập tên đăng nhập và mật khẩu Sau khi điền đầy đủ thông tin, người dùng chỉ cần nhấn nút "login" để truy cập vào hệ thống.
Khi người dùng nhấn nút đăng nhập, hệ thống sẽ xác minh thông tin đăng nhập với cơ sở dữ liệu Nếu thông tin chính xác, người dùng được chuyển đến màn hình chính Ngược lại, nếu thông tin không chính xác, hệ thống sẽ hiển thị thông báo lỗi và yêu cầu người dùng nhập lại thông tin.
Hình 3.41 Bản thiết kế giao diện đăng nhập
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 76 d Giao diện giám sát tổng quan (overview)
Giao diện giám sát tổng quan giúp kỹ sư vận hành dễ dàng theo dõi và kiểm soát toàn bộ hệ thống một cách hiệu quả Nó được thiết kế để cung cấp thông tin và dữ liệu liên quan đến hệ thống giám sát, được phân chia thành 3 cụm tương ứng với 3 node khác nhau.
Hình 3.42 Bản thiết kế giao diện giám sát tổng quan
Các giá trị sẽ được thay đổi màu sắc theo trạng thái, giúp người dùng dễ dàng phát hiện các bất thường Nếu giá trị vượt quá hoặc thấp hơn mức quy định, nó sẽ được hiển thị bằng màu đỏ để cảnh báo kỹ sư giám sát Giao diện cung cấp thông tin chi tiết cho từng node.
THI CÔNG HỆ THỐNG
KẾT QUẢ THỰC NGHIỆM
Kết quả máy chủ
5.1.1 Hệ thống API máy chủ
Hệ thống xây dựng được 25 đường dẫn API để giao tiếp với máy chủ cũng như ESP32 với 3 router chính là “/esp” - router giúp giao tiếp với ESP32, “/database”
- router giao tiếp với giao diện người dùng React.js và “/auth” - thực hiện nhiệm vụ xác thực người dùng
Hệ thống hiện tại bao gồm 25 đường dẫn API, được tối ưu hóa để giao tiếp hiệu quả với máy chủ và ESP32 Các đường dẫn này được phân chia thành ba router chính, nhằm nâng cao tính linh hoạt và hiệu quả cho các nhiệm vụ khác nhau.
Router "/esp" là router chính trong máy chủ, được tối ưu hóa để giao tiếp với ESP32 Nó cho phép thực hiện các yêu cầu điều khiển khối thiết bị, bao gồm việc truyền tải dữ liệu và điều khiển các cơ cấu chấp hành của thiết bị.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 97
Hình 5.2 Router con trong router "/esp"
Router "/database" được phát triển để tương tác với giao diện người dùng React.js, cho phép người dùng dễ dàng truy cập và cập nhật dữ liệu từ cơ sở dữ liệu của hệ thống một cách thuận tiện.
Hình 5.3 Router con trong router "/database"
Router "/auth" được phát triển nhằm thực hiện xác thực người dùng, đảm bảo chỉ những người dùng được phép mới có thể truy cập vào các tính năng của hệ thống Điều này cho phép họ thực hiện các hoạt động quan trọng như cập nhật dữ liệu và điều khiển thiết bị kết nối với ESP32.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 98
Hình 5.4 Router con trong router "/auth"
Khi React.js hoặc ESP32 gửi yêu cầu GET để nhận dữ liệu, máy chủ Node.js sẽ phản hồi bằng định dạng JSON Để kiểm tra thời gian truy xuất dữ liệu, chúng tôi sử dụng công cụ Postman, một ứng dụng hỗ trợ phát triển và kiểm thử API hiệu quả Với Postman, người dùng có thể tạo yêu cầu HTTP gửi đến máy chủ và nhận phản hồi, từ đó giúp xác minh tính chính xác của các API một cách nhanh chóng và thuận tiện.
5.1.2 Kiểm thử thời gian lấy dữ liệu
Hình 5.5 Kiểm thử API GET “/getUsers” của máy chủ trên Postman
Khi thực hiện lệnh “/getUsers” trên router, thời gian trung bình để hoàn thành 100 lần gọi thành công là 21.737 giây, tương đương với khoảng 165ms cho mỗi lệnh GET Điều này chứng tỏ rằng hệ thống có thời gian phản hồi nhanh và hiệu quả.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 99
Hình 5.6 Kiểm thử API GET “/getData” của máy chủ trên Postman
Router có mức xử lý phức tạp nhất khi vừa truy xuất dữ liệu từ cơ sở dữ liệu, vừa xử lý cảnh báo và phản hồi cho lệnh “/getData” Kết quả trung bình sau 100 lần chạy thành công là 2 phút 21 giây, với thời gian trung bình cho mỗi lệnh GET khoảng 1.363 giây.
5.1.3 Kiểm thử khả năng chịu tải của máy chủ
Để đảm bảo máy chủ hoạt động hiệu quả với lượng truy cập lớn, chúng tôi đã tiến hành bài kiểm tra khả năng chịu tải Biểu đồ lưu lượng truy cập máy chủ (Hình 5.7) cho thấy kết quả của quá trình này.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN đã thực hiện kiểm tra khả năng chịu tải với phần mềm Postman, mô phỏng 100 máy ảo truy cập đồng thời vào máy chủ Trong quá trình thử nghiệm, tổng cộng khoảng 7997 yêu cầu đã được gửi đến máy chủ, với trung bình 25.96 yêu cầu mỗi giây được xử lý thành công Kiểm tra khả năng chịu tải này rất quan trọng để đảm bảo máy chủ có thể đáp ứng hiệu quả các yêu cầu từ người dùng, đặc biệt trong các tình huống có lượng truy cập lớn.
Kết quả giao diện người dùng
Hình 5.8 Kết quả tổng quan giao diện người dùng
Hệ thống giao diện người dùng được thiết kế với các chức năng chính như đăng nhập, theo dõi tổng quan hệ thống, và quản lý từng node, cùng với trang admin Mỗi trang giao diện phục vụ một mục đích cụ thể, giúp người dùng dễ dàng điều hướng và tìm kiếm thông tin một cách nhanh chóng và hiệu quả.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 101
Khi người dùng truy cập vào trang đăng nhập, họ cần nhập thông tin tài khoản bao gồm tên người dùng và mật khẩu Hệ thống sẽ tiến hành kiểm tra tính hợp lệ của tài khoản sau khi thông tin được nhập.
Khi người dùng nhập thông tin tài khoản chính xác, họ sẽ được chuyển đến trang tổng quan hệ thống Ngược lại, nếu thông tin không đúng, hệ thống sẽ thông báo lỗi và yêu cầu người dùng đăng nhập lại Điều này đảm bảo rằng chỉ những người dùng có quyền truy cập mới có thể vào hệ thống.
Hình 5.9 Kết quả giao diện đăng nhập thực tế
5.2.3 Trang tổng quan hệ thống (Overview)
Trang tổng quan hệ thống cung cấp cái nhìn tổng quát về ba node chính Node 1 hiển thị dữ liệu về số lượng sản phẩm đã phân loại, số lượng sản phẩm bị lỗi và thời gian hoạt động của hệ thống Node 2, liên quan đến hệ thống bồn nước, cung cấp thông tin về mực nước, sai số giữa điểm đặt và thực tế, xung PWM và trạng thái động cơ Node 3, hệ thống cảnh báo cháy, hiển thị dữ liệu về nhiệt độ, giá trị PPM, độ ẩm và trạng thái của động cơ bơm nước Khi người dùng nhấp vào một trong ba node, họ sẽ được chuyển đến trang thông tin chi tiết của từng node.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 102
Hình 5.10 Kết quả giao diện tổng quan hệ thống 5.2.4 Trang chi tiết các node
Giao diện của mỗi node bao gồm ba thành phần chính: dữ liệu hiển thị dưới dạng số để cung cấp giá trị chính xác của các thông số, biểu đồ đường thể hiện lịch sử dữ liệu, và phần điều khiển cho phép người dùng thiết lập điểm đặt cho các thông số cũng như điều khiển trạng thái động cơ trong node.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 103
Người dùng có thể tùy chọn các biểu đồ đường phù hợp với dữ liệu mong muốn trong giao diện biểu đồ thực tế Ngoài ra, họ cũng có khả năng điều chỉnh số điểm hiển thị trong biểu đồ từ 10 đến 100, giúp việc giám sát xu hướng trở nên dễ dàng hơn.
5.2.5 Chức năng cảnh báo (alarm)
Hình 5.13 Kết quả chức năng cảnh báo thực tế
Khi hệ thống phát hiện cảnh báo, biểu tượng cảnh báo sẽ xuất hiện và nhấp nháy ở góc trái trên màn hình, giúp người giám sát nhanh chóng cập nhật tình hình.
Khi nhấn vào biểu tượng cảnh báo, một bảng thông tin chi tiết sẽ hiện ra, cung cấp các thông số như ngày giờ cập nhật, thông tin cụ thể về cảnh báo, trạng thái hiện tại, giá trị cảm biến, giá trị đặt và các hành động đã được thực hiện bởi người giám sát.
Hình 5.14 Bảng cảnh báo alarm thực tế
Thông tin cảnh báo sẽ cung cấp giá trị cảm biến khi vượt qua ngưỡng đặt sẵn Nếu giá trị cảm biến vượt ngưỡng trên, cảnh báo sẽ hiển thị “High Limit” Ngược lại, nếu giá trị cảm biến vượt ngưỡng dưới, cảnh báo sẽ hiển thị “Low Limit”.
Hình 5.15 Các lựa chọn trong bảng alarm
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 105
Khi người dùng nhấn vào biểu tượng menu trong ô “Action”, họ có thể thay đổi trạng thái của cảnh báo sang Acknowledge hoặc Disable, hoặc truy cập trang chi tiết cảnh báo Cảnh báo ở trạng thái Active sẽ hiển thị màu đỏ, trong khi trạng thái Acknowledge sẽ có màu cam.
Khi người dùng nhấn vào "Đi đến trang cảnh báo," họ sẽ được chuyển đến trang lịch sử cảnh báo, nơi hiển thị tên node, tên dữ liệu, ngày tháng cập nhật trạng thái cảnh báo, giá trị cảm biến, giá trị ngưỡng đặt và hành động liên quan đến cảnh báo Thông tin này giúp người dùng nắm rõ khoảng thời gian giữa các trạng thái cảnh báo Chúng tôi sẽ cung cấp chi tiết về các tính năng của bảng trong phần tiếp theo.
Hình 5.16 Giao diện lịch sử cảnh báo 5.2.6 Chức năng bảng lịch sử dữ liệu
Chức năng bảng lịch sử dữ liệu được chia thành hai trang: trang đầu tiên hiển thị lịch sử cảnh báo, trong khi trang thứ hai cung cấp thông tin về lịch sử dữ liệu cảm biến Điều này giúp người dùng dễ dàng theo dõi các hoạt động và trạng thái của cảm biến trong quá khứ.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 106
Hình 5.17 Giao diện lịch sử dữ liệu
Chức năng bảng có 3 khu vực chính là tên bảng và các nút nhấn chức năng
Bảng hiển thị dữ liệu và khu vực chia nhỏ trang cho phép người dùng xuất dữ liệu thành file Excel thông qua nút "Export to Excel" Tính năng này giúp lưu trữ và chia sẻ dữ liệu với đối tác hoặc bên thứ ba một cách nhanh chóng và tiện lợi.
Người dùng có thể tùy chỉnh thông tin hiển thị trong bảng dữ liệu của ứng dụng theo nhu cầu cá nhân Đặc biệt, các cột như tên node, tên dữ liệu, ngày, giờ và trạng thái được tích hợp chức năng lọc dữ liệu, giúp người dùng dễ dàng tìm kiếm và quản lý thông tin một cách nhanh chóng.
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 107 chóng tìm kiếm và xem các thông tin mong muốn trong bảng dữ liệu một cách dễ dàng và thuận tiện (Hình 5.19)
Kết quả thi công bo mạch
Để đảm bảo hoạt động và tính ổn định của mạch PCB, chúng tôi đã sử dụng hệ thống mạch kết nối với bộ kit ESP32, với các chân I/O đã được hàn sẵn Qua quá trình kiểm tra, chúng tôi nhận thấy rằng mạch PCB tự thiết kế vẫn chưa đạt yêu cầu về độ ổn định và cần được cải thiện nhiều khía cạnh.
Kết nối LoRa và mô hình hoạt động trở nên ổn định hơn khi sử dụng bộ kit ESP32 Do đó, chúng tôi đã chọn bộ kit ESP32 để điều khiển hệ thống, nhằm đạt được kết quả tối ưu và ổn định nhất Dưới đây là hình ảnh kết quả thi công mạch.
Hình 5.30 Mạch LoRa khối cổng giao tiếp (gateway)
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 112
Hình 5.31 Mạch LoRa khối thiết bị
Hình 5.32 Mạch LoRa khối thiết bị (node) khi hoàn thiện
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 113
Kết quả thi công mô hình
Để mô hình hoạt động tối ưu và ổn định nhất, chúng tôi sử dụng bộ kit ESP32 để thu thập dữ liệu và điều khiển các mô hình
5.4.1 Mô hình băng tải PLC
Hình 5.33 Mô hình PLC phân loại sản phẩm
Hình 5.34 Xử lý ảnh nhận diện mã vạch
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 114
Hình 5.35 Hệ gửi nhận tín hiệu LoRa node 1 5.4.2 Mô hình bồn nước PID
Hình 5.36 Mô hình bồn nước điều khiển bằng PID
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 115
5.4.3 Mô hình cảnh báo cháy
Hình 5.37 Bên trong mô hình khối cảnh báo cháy
Hình 5.38 Mô hình cảnh báo cháy khi hoàn thiện
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 116
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Trong phần kết luận và định hướng phát triển, chúng tôi đã tổng hợp các công việc đã thực hiện, nêu rõ các điểm mạnh và điểm yếu, đồng thời đề xuất những hướng nghiên cứu tiềm năng và gợi ý cho các đề tài trong tương lai.
Đã hoàn thành nghiên cứu và phát triển đề tài “Hệ thống điều khiển và giám sát qua mạng LoRa” theo mục tiêu ban đầu, với hai nội dung chính được thực hiện.
- Nghiên cứu và tự xây dựng toàn bộ hệ thống máy chủ bằng Node.js cũng như giao diện người dùng bằng React.js thông qua mạng Internet
- Nghiên cứu và thiết kế được hệ thống mạch PCB mạng LoRa cũng như kết nối giao tiếp LoRa
- Hoàn thành hệ thống mạng LoRa với đầy đủ các thành phần như sơ đồ khối thiết kế ban đầu
- Kết nối, gửi nhận dữ liệu ổn định thông qua LoRa
- Hệ thống máy chủ chịu tải tốt cùng với thời gian phản hổi nhanh
- Hệ thống cơ sở dữ liệu lưu trữ được lượng lớn dữ liệu thu thập cùng với thời gian truy xuất khá nhanh chóng
- Giao diện người dùng được xây dựng phát triển hoàn chỉnh, có tính thời gian thực, có khả năng tự cập nhật và đồng bộ dữ liệu
Hiển thị dữ liệu dưới dạng biểu đồ tròn, biểu đồ đường, chữ số và bảng lịch sử giúp việc giám sát trở nên trực quan và thuận tiện, mang lại cái nhìn rõ ràng hơn về thông tin.
- Mạch PCB hoạt động chưa ổn định, phải làm đi làm lại nhiều lần
- Chưa tối ưu hoàn toàn thời gian gửi nhận dữ liệu từ giao diện người dùng đến các thiết bị
- Mở rộng số lượng node điều khiển cho nhiều thiết bị khác nhau
- Tối ưu hóa thời gian gửi nhận dữ liệu, thời gian truy xuất dữ liệu để nâng cao tính thời gian thực hơn
- Nâng cao tính chịu tải của máy chủ
- Phát triển nhiều tính năng hơn dành cho người dùng
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 117
[1] Mikhail Zymbler, Prayag Tiwari, and Sachin Kumar (2019) ‘Internet of Things is a revolutionary approach for future technology enhancement: a review’, Journal of Big Data, 6(1) Available at: https://doi.org/10.1186/s40537-019-0268-2
[2] Akram Hossain (2012) ‘AC 2012-3605: HMI DESIGN: AN ANALYSIS OF
A GOOD DISPLAY FOR SEAMLESS INTEGRATION BETWEEN USER UNDERSTANDING AND AUTOMATIC CONTROLS’, American Society for Engineering Education
[3] Adel Ismail Al-Alawi (2006) ‘WiFi Technology: Future Market Challenges and Opportunities’, Journal of Computer Science, 2(1), pp 13–18
[4] Mobile Device Tips: Understanding App Permissions (no date) Available at: https://edu.gcfglobal.org/en/mobile-device-tips/understanding-app-permissions/1/ (Accessed: 14 March 2023)
[5] Introduction of ZigBee - GeeksforGeeks (no date) Available at: https://www.geeksforgeeks.org/introduction-of-zigbee/ (Accessed: 14 March 2023)
LoRa is a long-range, low-power wireless technology designed for IoT applications, enabling devices to communicate over significant distances while consuming minimal energy LoRaWAN, the network protocol built on LoRa, facilitates the connection of these devices to the internet, supporting a wide range of applications from smart cities to agriculture This technology operates in unlicensed frequency bands, allowing for easy deployment and scalability By utilizing a star-of-stars topology, LoRaWAN enhances network efficiency and reliability, making it a preferred choice for IoT solutions.
[7] What is a REST API? | IBM (no date) Available at: https://www.ibm.com/topics/rest-apis (Accessed: 09 April 2023)
[8] Documentation | Node.js (no date) Available at: https://nodejs.org/en/docs (Accessed: 09 April 2023)
[9] What is HTTP? Protocol Overview for Beginners (no date) Available at: https://www.freecodecamp.org/news/what-is-http/ (Accessed: 09 April 2023).