Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh cuộc cách mạng công nghiệp lần thứ tư (Cách mạng Công nghiệp 4.0) và sự phát triển mạnh mẽ của công nghệ thông tin, xu hướng tự động hóa đang mở rộng từ lĩnh vực công nghiệp sang đời sống dân dụng. Sự phổ cập của mạng Internet toàn cầu cùng các thiết bị di động thông minh đã thúc đẩy sự ra đời của khái niệm Internet vạn vật (Internet of Things – IoT). Các thiết bị gia dụng truyền thống dần được chuyển đổi thành các thực thể có khả năng giao tiếp, thực hiện mệnh lệnh và tối ưu hóa hoạt động theo yêu cầu của người dùng, hình thành nên mô hình ngôi nhà thông minh (Smarthome).

Xuất phát từ yêu cầu thực tiễn của môn học SCADA Nâng cao tại Khoa Điện – Điện tử Viễn thông, Trường Đại học Giao thông Vận tải Thành phố Hồ Chí Minh, đề tài "Thiết kế hệ thống điều khiển và giám sát nồng độ khí ở môi trường thông qua Webserver sử dụng board Arduino và Esp8266" được thực hiện nhằm xây dựng giải pháp giám sát và điều khiển thiết bị điện gia dụng từ xa.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài gồm:

  1. Nghiên cứu tổng quan về hạ tầng mạng Internet, bộ giao thức truyền thông TCP/IP, chuẩn mạng Ethernet và cơ chế hoạt động của Web Server.
  2. Thiết kế và lập trình giao diện Web SCADA sử dụng HTML, CSS, JavaScript và kết nối cơ sở dữ liệu thời gian thực Google Firebase để theo dõi trạng thái môi trường và gửi lệnh điều khiển.
  3. Xây dựng ứng dụng di động (Mobile App) trên hệ điều hành Android bằng nền tảng MIT App Inventor 2 nhằm phục vụ giám sát và điều khiển thiết bị không dây qua điện thoại.
  4. Thiết kế phần mềm giao diện trên máy tính cá nhân bằng ngôn ngữ C# trên môi trường Microsoft Visual Studio tích hợp thư viện LiveCharts để hiển thị trực quan thông số và đồ thị thời gian thực.

Đối tượng nghiên cứu của đồ án là hệ thống giám sát các thông số môi trường (nhiệt độ, độ ẩm, nồng độ không khí) và điều khiển trạng thái bật/tắt của ba nhóm thiết bị phụ tải gồm máy lạnh, quạt điện và hệ thống đèn chiếu sáng. Phạm vi thực nghiệm tập trung vào việc thu thập dữ liệu qua vi điều khiển Arduino, ESP8266, NodeMCU ESP32 và đồng bộ hóa đa nền tảng qua Internet.


Cơ sở lý thuyết và phương pháp

Cơ sở lý thuyết của đề tài dựa trên nền tảng kỹ thuật truyền thông dữ liệu, hệ thống SCADA nâng cao và công nghệ phát triển giao diện web/ứng dụng:

  • Mô hình mạng và giao thức truyền thông: Đồ án phân tích mô hình TCP/IP gồm 4 tầng (Tầng Liên mạng, Tầng Mạng, Tầng Giao vận, Tầng Ứng dụng). Các giao thức chính được khảo sát gồm:
    • IP (Internet Protocol) và ICMP (Internet Control Message Protocol) tại tầng mạng.
    • TCP (Transmission Control Protocol) hướng kết nối đảm bảo tính toàn vẹn dữ liệu và UDP (User Datagram Protocol) phi kết nối tối ưu tốc độ truyền gói nhỏ.
    • HTTP, FTP, SMTP, POP3, DNS, DHCP, SNMP tại tầng ứng dụng.
    • Chuẩn Ethernet IEEE 802.3: Khảo sát lịch sử phát triển từ chuẩn DIX Ethernet (năm 1980 do DEC, Intel, Xerox phối hợp), cơ chế đa truy cập cảm nhận sóng mang phát hiện xung đột (CSMA/CD), tốc độ truyền 10 Mbps và Fast Ethernet 100 Mbps; cấu trúc khung tin Ethernet gồm các trường: Preamble (10101010), SFD (10101011), Destination MAC, Source MAC, LEN, Data và FCS (mã kiểm tra dư tuần hoàn CRC).
  • Công nghệ Web Server và Cơ sở dữ liệu: Khảo sát cơ chế tương tác Client-Server qua giao thức HTTP; vai trò của ngôn ngữ định dạng siêu văn bản HTML (phát minh năm 1991 bởi Tim Berners-Lee tại CERN, quản lý bởi tổ chức W3C) và ngôn ngữ định kiểu tầng CSS (phát triển từ năm 1996 bởi W3C) với ba phương thức nhúng: Inline CSS, Internal CSS và External CSS; kết nối cơ sở dữ liệu đám mây thời gian thực thông qua Firebase JavaScript SDK.
  • Phương pháp nghiên cứu: Đề tài áp dụng phương pháp thiết kế kỹ thuật thực nghiệm kết hợp lập trình đa nền tảng. Nhóm tác giả tổng hợp tài liệu chuyên ngành, thiết kế cấu trúc dữ liệu trên Firebase Realtime Database, xây dựng mã nguồn giao diện tương tác và thực hiện thử nghiệm gửi - nhận dữ liệu giữa phần cứng và phần mềm.

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo kiến trúc SCADA phân tán ứng dụng IoT, chia làm 3 khối chức năng: Khối thu thập & chấp hành (Phần cứng), Khối máy chủ trung gian (Firebase) và Khối giao diện giám sát điều khiển người dùng (Web, Mobile App, Desktop App).

Thành phần hệ thống Nền tảng / Công nghệ triển khai Chức năng chi tiết trong đồ án
Phần cứng vi điều khiển Arduino, ESP8266, NodeMCU ESP32 Đọc tín hiệu cảm biến môi trường, nhận lệnh điều khiển đóng cắt tải và gửi dữ liệu lên máy chủ
Cơ sở dữ liệu trung gian Google Firebase Realtime Database Lưu trữ dữ liệu cảm biến (taolao/temp, taolao/doam) và trạng thái thiết bị (hahaha/Den)
Giao diện Web SCADA HTML, CSS, JavaScript, jQuery, VS Code Hiển thị nhiệt độ, độ ẩm, nồng độ không khí (PPM) và cung cấp hệ thống 6 nút điều khiển ON/OFF
Giao diện Di động (Mobile) MIT App Inventor 2 (Android OS) Giám sát thông số môi trường và điều khiển thiết bị qua điện thoại thông minh với phản hồi nhanh
Giao diện Máy tính (PC) C# (.NET WinForms), Visual Studio, LiveCharts Bảng điều khiển trung tâm, đồng hồ đo SolidGauge, hiển thị biểu đồ nhiệt độ theo thời gian thực

1. Triển khai Giao diện Web SCADA

Giao diện Web được soạn thảo trên Visual Studio Code (phiên bản được khảo sát theo số liệu Stack Overflow 2019 chiếm hơn 50% lượt bình chọn lập trình viên). Hệ thống sử dụng:

  • Mã nguồn HTML cấu trúc 2 khối chính (#box1, #box2), tích hợp các thẻ hiển thị giá trị nhiệt độ (#nhietdo), độ ẩm (#doam), chất lượng không khí (#khongkhi), hình ảnh trạng thái quạt (.lab2-quaton, .lab2-quatoff), đèn (.denon, .lab2-denoff) và máy lạnh (.maylanhon).
  • Mã nguồn CSS định dạng toàn diện các thuộc tính vị trí, màu sắc, font chữ Roboto/Times New Roman, hiệu ứng animation @keyframes keyframes1 và các lớp nút nhấn (#btn1 đến #btn6).
  • Mã nguồn JavaScript module tích hợp Firebase App và Firebase Database SDK (initializeApp, getDatabase, ref, set, onValue). Khi người dùng click nút, hàm set() cập nhật chuỗi trạng thái (onquat, offquat, onden, offden, onmaylanh, offmaylanh) lên nhánh hahaha/Den. Đồng thời, các sự kiện onValue() liên tục lắng nghe thay đổi từ cơ sở dữ liệu để cập nhật số đo và hình ảnh hiển thị tương ứng.
// Cấu hình Firebase trong mã nguồn Web SCADA của đồ án
const firebaseConfig = {
  apiKey: "AIzaSyB4AQohzuoGIoJ8yaZz-q8BbBlbe3S1s6Y",
  authDomain: "hongphu-doan.com",
  databaseURL: "https://hongphu-doan-default-rtdb.com",
  projectId: "hongphu-doan",
  storageBucket: "hongphu-doan.com",
  messagingSenderId: "634646302",
  appId: "1:634646302:web:babbf526c880c59942230f",
  measurementId: "G-8RTLLL820S"
};

2. Triển khai Ứng dụng Di động (Mobile App)

Ứng dụng di động được xây dựng thông qua nền tảng trực tuyến MIT App Inventor 2 kết nối với tài khoản Google. Sử dụng phương pháp lập trình khối kéo thả (Block programming), phần mềm Android được thiết kế gồm màn hình đăng nhập bảo mật và màn hình làm việc chính của hệ thống. Ứng dụng đồng bộ trực tiếp với NodeMCU ESP32 qua cơ sở dữ liệu Firebase.

3. Triển khai Ứng dụng Máy tính (Desktop App)

Giao diện quản lý trên PC được thiết kế bằng Microsoft Visual Studio sử dụng ngôn ngữ C# (Windows Forms Application thuộc namespace fireConfig, lớp Form1). Hệ thống sử dụng thư viện đồ họa LiveCharts với các điều khiển hiển thị nâng cao:

  • Đồng hồ hiển thị giá trị dạng khối (solidGauge1, solidGauge2, solidGauge3).
  • Các nhãn hiển thị thông số: Temperature, Humidity, Air.
  • Các nút bấm điều khiển sự kiện: Bật/Tắt máy lạnh (onquat, bttatled), Bật/Tắt quạt (button2, button3), cùng các đối tượng hình ảnh hiển thị trạng thái (pictureBox1 đến pictureBox6).
  • Hệ thống timer1 và cơ chế lắng nghe sự kiện đồng bộ dữ liệu liên tục với Firebase.

Nội dung chính theo từng chương

Phần 1: Giới thiệu

Chương mở đầu trình bày tổng quan về cuộc cách mạng công nghiệp lần thứ tư, vai trò của trí tuệ nhân tạo (AI), công nghệ đám mây, cảm biến hồng ngoại và mạng Internet trong việc hình thành mô hình Smarthome. Tác giả phân tích nhu cầu cấp thiết trong việc chuyển đổi các thiết bị điện gia dụng từ các vật dụng thụ động thành hệ thống thông minh, cho phép con người kiểm soát tập trung, ra lệnh bằng giọng nói, điều khiển tự động theo lịch trình hoặc vận hành từ xa qua mạng.

Phần 2: Web SCADA

Nội dung chương 2 đi sâu vào nền tảng lý thuyết mạng và quy trình phát triển website SCADA:

  • Trình bày tổng quan cấu trúc mạng Internet, phân biệt mạng World Wide Web (WWW) và môi trường mạng vật lý.
  • Phân tích chi tiết 4 tầng của mô hình TCP/IP, cơ chế gán địa chỉ IP, hệ thống phân giải tên miền (DNS) và cấu trúc khung truyền tin Ethernet theo chuẩn IEEE 802.3.
  • Trình bày nguyên lý hoạt động của Web Server, sự khác biệt giữa ngôn ngữ lập trình Client-side và Server-side.
  • Tổng quan lịch sử, cấu trúc thẻ, ưu điểm và hạn chế của ngôn ngữ HTML; phân tích cấu trúc, vai trò giải quyết bài toán định dạng trang và các cách thức nhúng CSS vào tài liệu web.
  • Giới thiệu phần mềm soạn thảo Visual Studio Code, phân tích các tính năng IntelliSense, Git, Debugger, Terminal tích hợp, Live Server dựa trên dữ liệu thống kê môi trường phát triển năm 2018–2019.
  • Cung cấp toàn bộ mã nguồn lập trình HTML, CSS và JavaScript giao tiếp cơ sở dữ liệu Firebase phục vụ giao diện điều khiển và giám sát thiết bị trên nền tảng trình duyệt.

Phần 3: Mobile App

Chương 3 tập trung vào công nghệ di động và ứng dụng điều khiển thực tế:

  • Trình bày định nghĩa, ưu điểm của Mobile App đối với người dùng (tính phổ biến của smartphone, khả năng hiển thị trực quan, hiệu quả điều khiển giám sát từ xa và tối ưu trải nghiệm người dùng).
  • Khái quát công cụ tạo phần mềm Android mã nguồn mở MIT App Inventor 2 do MIT duy trì; cơ chế lập trình khối kéo thả không đòi hỏi viết mã phức tạp.
  • Thiết kế giao diện đăng nhập và giao diện điều khiển trung tâm trên điện thoại Android, cập nhật liên tục nhiệt độ, độ ẩm, nồng độ không khí (ppm) và nút bật/tắt thiết bị.
  • Mở rộng thiết kế giao diện trên máy tính: Giới thiệu phần mềm Microsoft Visual Studio, các ngôn ngữ hỗ trợ (C#, F#, C/C++, Visual Basic,...); xây dựng mã nguồn C# WinForms cho giao diện Form1, tích hợp thư viện LiveCharts, hiển thị biểu đồ nhiệt độ theo thời gian và bảng dữ liệu trạng thái.

Kết quả và đóng góp

Đồ án ghi nhận các kết quả thực nghiệm và đóng góp kỹ thuật sau:

  • Kết quả vận hành hệ thống:
    • Hệ thống thu thập và hiển thị chính xác các thông số môi trường gồm: Nhiệt độ (hiển thị theo đơn vị $^\circ\text{C}$), Độ ẩm (hiển thị theo tỉ lệ %) và Nồng độ không khí (hiển thị theo đơn vị $\text{PPM}$).
    • Thực hiện đóng cắt và phản hồi trạng thái hai chiều thành công cho 3 tải điện: Máy lạnh, Quạt điện và Hệ thống đèn.
    • Xây dựng hoàn chỉnh 3 giao diện giám sát song song: Giao diện Web SCADA trên trình duyệt, Ứng dụng di động trên nền tảng Android và Phần mềm Desktop trên nền tảng Windows Forms C#.
    • Tốc độ phản hồi truyền nhận dữ liệu điều khiển giữa ứng dụng Mobile App và mạch phần cứng NodeMCU ESP32 đạt mức cao, độ trễ đo được trong văn bản là dưới 1 giây (< 1s).
  • Đóng góp của đề tài:
    • Hiện thực hóa mô hình SCADA quy mô nhỏ (Web SCADA) ứng dụng trong dân dụng với kinh phí tối ưu bằng cách kết hợp các vi điều khiển mã nguồn mở (Arduino, ESP8266, ESP32) và nền tảng điện toán đám mây Firebase Realtime Database.
    • Cung cấp mã nguồn mẫu chi tiết về việc kết nối Firebase SDK phiên bản web với cấu trúc giao diện HTML/CSS/JS thuần và ứng dụng Windows Forms C#.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế:
    • Hệ thống được thiết kế ở mức độ bài tập lớn đồ án môn học, các kịch bản điều khiển phụ tải hiện mới dừng ở mức đóng/cắt ON/OFF cơ bản, chưa tích hợp các thuật toán điều khiển mờ (Fuzzy Logic) hay PID tự động theo ngưỡng môi trường.
    • Phần mềm di động xây dựng trên nền tảng MIT App Inventor 2 còn phụ thuộc vào môi trường phát triển khối lệnh, chưa tối ưu hóa sâu mã nguồn native Android/iOS.
    • Cơ sở dữ liệu Firebase sử dụng cấu hình tài khoản cá nhân thử nghiệm, chưa triển khai các lớp mã hóa bảo mật chuyên sâu cho hệ thống SCADA công nghiệp.
  • Hướng nghiên cứu tiếp:
    • Mở rộng kết nối thêm nhiều loại cảm biến môi trường (cảm biến bụi mịn, cảm biến khí độc CO, gas).
    • Nâng cấp ứng dụng di động sang các nền tảng lập trình đa nền tảng chuyên nghiệp.
    • Tích hợp giải thuật trí tuệ nhân tạo (AI) để dự đoán xu hướng biến đổi nhiệt độ và tự động hóa điều hòa không khí trong nhà.

Giá trị tham khảo

Báo cáo là tài liệu tham khảo hữu ích cho sinh viên các ngành Kỹ thuật Điện, Kỹ thuật Điện tử – Viễn thông, Kỹ thuật Điều khiển & Tự động hóa và Công nghệ Thông tin khi thực hiện bài tập lớn, đồ án môn học về SCADA Nâng cao, Hệ thống Nhúng hoặc Lập trình ứng dụng IoT.

Nội dung đặc biệt giá trị ở phần cung cấp chi tiết mã nguồn giao diện Web (HTML/CSS), cấu trúc mã C# kết nối Firebase và cách thức liên kết các thông số cảm biến thời gian thực lên giao diện điều khiển máy tính và điện thoại.


Câu hỏi thường gặp

1. Hệ thống trong đồ án sử dụng các loại vi điều khiển nào để thu thập dữ liệu và điều khiển?
Đề tài sử dụng tài nguyên của board vi điều khiển Arduino kết hợp module truyền thông ESP8266 và vi điều khiển NodeMCU ESP32 chuyên dùng cho các ứng dụng IoT công suất nhỏ.

2. Giao diện Web SCADA giám sát những thông số môi trường nào và điều khiển thiết bị gì?
Giao diện Web cập nhật liên tục 3 thông số môi trường: Nhiệt độ ($^\circ\text{C}$), Độ ẩm (%) và Nồng độ không khí ($\text{PPM}$). Hệ thống cho phép bật/tắt 3 thiết bị phụ tải gồm: Quạt điện, Đèn và Máy lạnh.

3. Cơ sở dữ liệu nào được sử dụng làm cầu nối trung gian giữa phần cứng và phần mềm?
Hệ thống sử dụng cơ sở dữ liệu đám mây thời gian thực Google Firebase Realtime Database (được cấu hình qua dự án hongphu-doan với URL https://hongphu-doan-default-rtdb.com).

4. Ứng dụng di động được xây dựng bằng công cụ nào và có thời gian phản hồi là bao nhiêu?
Ứng dụng di động trên hệ điều hành Android được thiết kế bằng công cụ kéo thả khối lệnh MIT App Inventor 2 (liên kết qua tài khoản Google). Thời gian phản hồi điều khiển giữa ứng dụng và NodeMCU ESP32 đạt tốc độ dưới 1 giây.

5. Phần mềm trên máy tính được lập trình bằng ngôn ngữ gì và sử dụng thư viện đồ họa nào?
Phần mềm trên máy tính được lập trình bằng ngôn ngữ C# trên môi trường Microsoft Visual Studio (Windows Forms Application), tích hợp thư viện LiveCharts để hiển thị các đồng hồ đo khối (SolidGauge) và vẽ đồ thị biến thiên nhiệt độ theo thời gian.


Kết luận

Báo cáo bài tập lớn môn học SCADA Nâng cao của nhóm sinh viên Trường Đại học Giao thông Vận tải TP.HCM đã hoàn thành việc thiết kế và xây dựng mô hình hệ thống Nhà thông minh (Smarthome). Đề tài giải quyết tốt bài toán giám sát các thông số nhiệt độ, độ ẩm, nồng độ không khí và điều khiển thiết bị điện thông qua việc đồng bộ dữ liệu thời gian thực lên máy chủ Firebase. Với việc triển khai thành công cùng lúc ba giao diện người dùng trên nền tảng Web SCADA, ứng dụng di động Android và phần mềm máy tính C#, đồ án là một mô hình thực nghiệm tiêu biểu cho các ứng dụng SCADA và IoT quy mô nhỏ.