Bối cảnh và vấn đề nghiên cứu
Trong quản lý sinh hoạt hộ gia đình, chi phí sử dụng điện và nước là khoản chi tiêu định kỳ nhưng người tiêu dùng thường gặp khó khăn trong việc kiểm soát mức độ tiêu thụ thực tế. Nguyên nhân xuất phát từ việc thiếu các công cụ đo lường, thống kê chi tiết theo thời gian thực; phần lớn người dùng chỉ ước lượng lượng tiêu thụ hoặc hoàn toàn phụ thuộc vào chỉ số ghi nhận trên hóa đơn cuối tháng từ các đơn vị cấp phát năng lượng, cấp thoát nước. Trên thị trường đã xuất hiện các thiết bị giám sát mức tiêu thụ điện có độ chính xác tương đối cao, tuy nhiên giá thành của các thiết bị này khá đắt đỏ và còn nhiều hạn chế trong khả năng theo dõi dữ liệu từ xa qua môi trường mạng Internet.
Trước thực trạng đó, đồ án tốt nghiệp ngành Kỹ thuật Điện tử Truyền thông của tác giả Phạm Quốc Hưng (Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, dưới sự hướng dẫn của ThS. Nguyễn Thanh Nghĩa) đã thực hiện đề tài "Ứng dụng công nghệ IoT giám sát mức tiêu thụ điện – nước".
Mục tiêu nghiên cứu của đồ án bao gồm:
- Thiết kế và thi công một hệ thống phần cứng có khả năng đo đạc chính xác mức tiêu thụ điện năng và lưu lượng nước sinh hoạt.
- Định kỳ cập nhật các dữ liệu đo đạc lên hệ thống máy chủ cơ sở dữ liệu trên nền tảng điện toán đám mây (web host) ứng dụng công nghệ mạng vạn vật kết nối (IoT), cho phép người dùng giám sát các chỉ số từ xa thông qua trình duyệt web trên các thiết bị kết nối mạng.
- Xây dựng hệ thống phân quyền tài khoản người dùng, hỗ trợ người dùng theo dõi dữ liệu cá nhân theo chu kỳ ngày/tháng và hỗ trợ quản trị viên quản lý tập trung thông tin của nhiều hộ gia đình.
Nhiệm vụ nghiên cứu được chia thành 5 nội dung chính:
- Nội dung 1: Tìm hiểu và lựa chọn các giải pháp thiết kế hệ thống.
- Nội dung 2: Thu thập tài liệu, nghiên cứu đặc tính kỹ thuật của các module cảm biến (ACS712, S201), module truyền thông Wifi (NodeMCU), vi điều khiển xử lý trung tâm (Arduino Mega 2560) và nền tảng máy chủ lưu trữ (Firebase).
- Nội dung 3: Thiết kế phần cứng, viết chương trình điều khiển cho hệ thống và tiến hành chạy thử nghiệm.
- Nội dung 4: Thiết kế mô hình hộp chứa, hiệu chỉnh và hoàn thiện các phương án đã lựa chọn.
- Nội dung 5: Đo kiểm, đánh giá kết quả thực hiện của toàn bộ hệ thống.
Đối tượng nghiên cứu của đề tài là dòng điện xoay chiều, điện áp xoay chiều lưới điện dân dụng (220VAC) và lưu lượng nước chảy qua đường ống sinh hoạt. Không gian nghiên cứu tập trung vào mô hình ứng dụng quy mô hộ gia đình với các thiết bị tiêu thụ công suất nhỏ và lượng nước đo lường dung tích nhỏ (đơn vị hiển thị được chuẩn hóa là Wh đối với điện năng và Lít đối với nước). Thời gian thực hiện đồ án diễn ra từ ngày 21/03/2018 (ngày giao nhiệm vụ) đến ngày 16/07/2018 (ngày hoàn thành nhiệm vụ).
Giới hạn nghiên cứu được xác định rõ: hệ thống tập trung hoàn toàn vào chức năng đo lường, thống kê và giám sát thông số từ xa (chưa tích hợp chức năng điều khiển đóng/ngắt thiết bị); mô hình thiết kế nhỏ gọn, sử dụng nguồn điện trực tiếp từ lưới điện sinh hoạt và chấp nhận mức sai số đo lường trong phạm vi cho phép của linh kiện bán dẫn phổ thông.
Cơ sở lý thuyết và phương pháp kỹ thuật
Hệ thống được xây dựng dựa trên sự kết hợp giữa các khối lý thuyết phần cứng điện tử, giao thức truyền thông công nghiệp và nền tảng dịch vụ đám mây thời gian thực:
Thiết kế và triển khai hệ thống
Hệ thống được phân chia thành cấu trúc phần cứng thu thập dữ liệu tại chỗ và hạ tầng phần mềm quản lý, giám sát trên nền tảng web.
| STT |
Tên linh kiện / Thiết bị |
Số lượng |
Thông số / Giá trị kỹ thuật |
Chức năng trong hệ thống |
| 1 |
Arduino Mega 2560 |
1 |
Vi điều khiển ATmega2560, 5V |
Xử lý trung tâm, đo đạc, lấy mẫu ADC và đếm xung |
| 2 |
Module NodeMCU ESP8266 |
1 |
Vi xử lý ESP8266, kết nối Wifi |
Nhận dữ liệu UART, đồng bộ thời gian thực và đẩy lên Cloud |
| 3 |
Module ACS712 |
1 |
Dải đo $\pm 20\text{A}$, độ nhạy ~100 mV/A |
Cảm biến đo dòng điện tải AC sinh hoạt |
| 4 |
Cảm biến lưu lượng S201 |
1 |
Cảm biến từ Hall cánh quạt |
Cảm biến đo lưu lượng dòng chảy nước sinh hoạt |
| 5 |
Biến áp |
1 |
Hạ áp lưới điện xoay chiều |
Hạ áp từ 220VAC phục vụ đo điện áp và cấp nguồn |
| 6 |
Diode cầu |
1 |
Bộ chỉnh lưu toàn sóng |
Chỉnh lưu dòng điện xoay chiều thành dòng một chiều |
| 7 |
Tụ hóa |
1 |
470 $\mu$F |
Lọc phẳng điện áp sau chỉnh lưu |
| 8 |
Tụ gốm |
1 |
100 nF |
Lọc nhiễu cao tần cho mạch đo áp |
| 9 |
Điện trở phân áp |
2 |
10 k$\Omega$ và 20 k$\Omega$ |
Giảm áp tín hiệu về dải đo 0–5V của chân Analog vi điều khiển |
| 10 |
Cầu chì |
1 |
2A |
Bảo vệ quá dòng cho toàn bộ hệ thống mạch |
| 11 |
Nút nhấn |
1 |
Nút bấm cơ học |
Chuyển đổi trạng thái hiển thị LCD (Điện $\leftrightarrow$ Nước) |
| 12 |
Màn hình LCD 16x2 |
1 |
16 ký tự $\times$ 2 hàng |
Hiển thị thông số điện năng (Wh) hoặc lưu lượng nước (Lít) |
| 13 |
Module giao tiếp LCD I2C |
1 |
Chuyển đổi bus song song sang I2C |
Tiết kiệm chân kết nối của vi điều khiển ra màn hình |
Về thi công cơ khí, toàn bộ hệ thống điều khiển, mạch nguồn và cảm biến được đặt bên trong vỏ hộp bằng mica trong suốt có kích thước $20\text{ cm} \times 17\text{ cm} \times 9\text{ cm}$, gia công bằng dao cắt chuyên dụng và cố định bằng keo silicon. Nắp hộp phía trên sử dụng bản lề để tiện thao tác đóng mở, mặt nắp được khoét lỗ để cố định màn hình LCD 16x2 và nút bấm chuyển chế độ.
Quy trình vận hành phần mềm và truyền thông của hệ thống diễn ra theo lưu đồ giải thuật như sau:
- Tại Arduino Mega 2560: Sau khi khởi động, vi điều khiển kích hoạt đồng thời chương trình lấy mẫu dòng/áp và ngắt đếm xung. Sử dụng hàm
millis() để định thời lấy mẫu trong 1 giây, tính toán công suất và điện năng tiêu thụ (Wh); đồng thời tính toán dung tích nước (Lít) dựa trên số xung đếm được trong 1 giây. Cứ sau mỗi 10 giây (khi biến đếm đạt giá trị 10), Arduino Mega đóng gói dữ liệu và truyền sang NodeMCU qua cổng UART.
- Tại NodeMCU ESP8266: Module thiết lập kết nối Wifi và kết nối cơ sở dữ liệu Firebase. Khi nhận gói tin từ Arduino, NodeMCU xử lý dữ liệu để xuất thông tin ra màn hình LCD 16x2 và tự động lấy thời gian thực từ Internet (NTP server). Định kỳ mỗi 120 giây, NodeMCU cập nhật các thông số tích lũy lên Firebase Realtime Database. Định kỳ đầu tháng, hệ thống tự động thiết lập các giá trị tổng về 0 và lưu trữ chỉ số tiêu thụ của tháng vào bộ nhớ dữ liệu thống kê 3 tháng gần nhất.
- Cơ chế khôi phục dữ liệu mất điện: Khi xảy ra sự cố mất điện và có điện trở lại, NodeMCU sẽ tự động truy xuất giá trị lũy kế cuối cùng được lưu trữ trên Firebase Realtime Database, cộng dồn với dữ liệu mới do Arduino gửi qua để tiếp tục tính toán, đảm bảo không bị mất số liệu đo lường.
Quy trình triển khai Web Server và quản lý cơ sở dữ liệu:
- Sử dụng phần mềm Sublime Text biên soạn mã nguồn HTML, JavaScript và CSS.
- Môi trường Node.js và công cụ Firebase CLI (
npm install -g firebase-tools) được sử dụng để khởi tạo (firebase init) và xuất bản trang web (firebase deploy) lên dịch vụ lưu trữ Firebase Hosting.
- Hệ thống cơ sở dữ liệu quản lý các trường thông tin: thông tin tài khoản người dùng (
User-ID, Tên, Địa chỉ mail, Ảnh đại diện), dữ liệu đo lường điện năng (Wh) và lượng nước (Lít) theo ngày/tháng, số tiền quy đổi tương ứng và nhật ký thông báo từ hệ thống.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương này phân tích bối cảnh gia tăng chi phí hóa đơn điện - nước sinh hoạt và sự thiếu hụt các giải pháp giám sát chi tiết, giá rẻ trên thị trường. Tác giả xác định rõ mục tiêu chế tạo hệ thống đo lường ứng dụng IoT, thiết lập 5 nội dung nghiên cứu kỹ thuật, xác định phạm vi giới hạn mô hình gia đình và phác thảo cấu trúc tài liệu khóa luận gồm 6 chương.
Chương 2: Cơ sở lý thuyết
Tập trung trình bày nguyên lý cấu tạo và các thông số kỹ thuật của các module phần cứng: module cảm biến dòng ACS712-20A (nguyên lý hiệu ứng Hall, dải đo $\pm 20\text{A}$, độ nhạy 96–104 mV/A), cảm biến lưu lượng S201, màn hình LCD 16x2 kết hợp mạch chuyển đổi I2C và kit vi điều khiển Arduino Mega 2560. Phân tích chi tiết các chuẩn giao tiếp truyền dữ liệu UART, bus I2C, mạng không dây Wifi và cấu trúc vận hành của Firebase Realtime Database (cách thức lưu trữ JSON, chế độ dữ liệu offline, cơ chế cập nhật thời gian thực và cấu hình quy tắc bảo mật đọc/ghi dữ liệu).
Chương 3: Tính toán và thiết kế
Trình bày sơ đồ khối hệ thống và sơ đồ nguyên lý toàn mạch. Tính toán và thiết kế chi tiết các khối chức năng: khối hiển thị (LCD I2C), khối xử lý trung tâm (Arduino Mega 2560 và NodeMCU ESP8266), khối thiết bị đầu vào (ACS712, S201 và mạch hạ áp đo điện áp AC 220V) và khối nguồn cung cấp điện ổn áp cho hệ thống vi điều khiển.
Chương 4: Thi công hệ thống
Trình bày quy trình thiết kế mạch in (PCB), bảng danh mục linh kiện điện tử chi tiết và phương pháp thi công hộp mica bảo vệ kích thước $20\text{ cm} \times 17\text{ cm} \times 9\text{ cm}$. Xây dựng lưu đồ giải thuật cho Arduino Mega (lấy mẫu 1s, truyền dữ liệu 10s) và NodeMCU (cập nhật Cloud 120s, xử lý ngắt LCD, xử lý sự cố mất điện). Cung cấp tài liệu hướng dẫn cài đặt môi trường Arduino IDE, nạp firmware ESP8266, driver nạp chip, quy trình tạo project Firebase, cài đặt Node.js, sử dụng Firebase CLI để triển khai ứng dụng web và hướng dẫn vận hành thiết bị thực tế.
Chương 5: Kết quả, nhận xét và đánh giá
Trình bày các kết quả thực nghiệm đạt được sau 3,5 tháng triển khai. Ghi nhận hình ảnh hoạt động của màn hình LCD hiển thị giá trị điện năng (Wh) và lưu lượng nước (Lít). Minh họa giao diện web đăng nhập qua Gmail, giao diện quản lý của Admin (quản lý danh sách tài khoản, xem dữ liệu của toàn bộ người dùng) và giao diện giám sát của User (theo dõi chỉ số theo ngày, xem biểu đồ so sánh 3 tháng gần nhất và số tiền quy đổi). Nhận xét, đánh giá hệ thống hoạt động ổn định, dữ liệu truyền nhận đúng chu kỳ, song vẫn còn hiện tượng nhiễu tín hiệu ở cảm biến.
Chương 6: Kết luận và hướng phát triển
Đánh giá mức độ hoàn thành nhiệm vụ theo các yêu cầu thiết kế ban đầu. Tổng kết những ưu điểm về tính nhỏ gọn, tiện dụng, khả năng khôi phục dữ liệu sau mất điện và chi phí thấp. Đồng thời, đề xuất các hướng nâng cấp tiếp theo về cảnh báo quá ngưỡng, thay đổi màn hình cảm ứng, tích hợp điều khiển thiết bị ngoại vi từ xa và mở rộng các phương thức xác thực người dùng.
Kết quả và đóng góp
Đồ án đã đạt được các kết quả thực nghiệm cụ thể và đóng góp kỹ thuật sau:
Hạn chế và hướng nghiên cứu tiếp
Giá trị tham khảo
Tài liệu đồ án là nguồn tham khảo hữu ích cho:
- Đối tượng: Sinh viên, giảng viên và người nghiên cứu thuộc các chuyên ngành Kỹ thuật Điện tử Truyền thông, Kỹ thuật Điện - Điện tử, Kỹ thuật Y sinh, Công nghệ Thông tin và Hệ thống Nhúng/IoT.
- Nội dung tham khảo giá trị:
- Thiết kế phối ghép phần cứng cho cảm biến dòng điện Hall (ACS712) và cảm biến lưu lượng xung (S201) với vi điều khiển.
- Phương pháp lập trình truyền thông liên vi điều khiển qua cổng nối tiếp (UART) và kỹ thuật lập trình đa nhiệm không chặn bằng hàm
millis().
- Quy trình từng bước kết nối NodeMCU ESP8266 với Firebase Realtime Database và các bước triển khai giao diện web lên Firebase Hosting bằng công cụ Firebase CLI.
Câu hỏi thường gặp
1. Hệ thống xử lý như thế nào để không bị mất số liệu điện - nước đã đo khi xảy ra sự cố mất điện?
Khi mất điện, toàn bộ hệ thống phần cứng tạm dừng hoạt động. Khi nguồn điện được cấp trở lại, NodeMCU ESP8266 sẽ tự động kết nối Internet, đọc dữ liệu tích lũy cuối cùng đã được lưu trữ trên Firebase Realtime Database trước đó, sau đó cộng dồn với dữ liệu đo mới nhận được từ Arduino Mega để tiếp tục hiển thị và lưu trữ, tránh hiện tượng chỉ số bị xóa về 0.
2. Chu kỳ lấy mẫu cảm biến và chu kỳ đẩy dữ liệu lên cơ sở dữ liệu Firebase được thiết lập là bao lâu?
Tại vi điều khiển Arduino Mega 2560, việc lấy mẫu tín hiệu dòng điện, điện áp và lưu lượng nước diễn ra liên tục với chu kỳ 1 giây/lần. Cứ sau 10 giây (10 chu kỳ đo), Arduino sẽ gửi dữ liệu sang NodeMCU qua giao tiếp UART. Tại NodeMCU ESP8266, chu kỳ cập nhật dữ liệu tích lũy lên Firebase Realtime Database được thiết lập cố định là 120 giây/lần.
3. Đề tài sử dụng những cảm biến và linh kiện chính nào để thực hiện việc đo đạc điện và nước?
Hệ thống sử dụng cảm biến dòng điện hiệu ứng Hall ACS712-20A (dải đo $\pm 20\text{A}$) và mạch phân áp điện trở hạ áp từ biến áp để đo điện áp AC 220V; sử dụng cảm biến lưu lượng S201 tích hợp cánh quạt và cảm biến từ Hall để đếm xung đo lưu lượng nước. Khối xử lý gồm có board Arduino Mega 2560 (đo đạc, tính toán) và module NodeMCU ESP8266 (truyền thông Wifi).
4. Ứng dụng web và cơ sở dữ liệu Firebase phân quyền quản trị và giới hạn tài khoản như thế nào?
Dự án thiết lập hệ thống trên Firebase Authentication cho phép tối đa 250 tài khoản người dùng trong một project. Trong thử nghiệm thực tế, hệ thống cấu hình 4 tài khoản User (chỉ xem được chỉ số tiêu thụ, biểu đồ 3 tháng và tiền quy đổi của chính họ) và 1 tài khoản Admin (có quyền xem dữ liệu của tất cả người dùng, theo dõi thời gian đăng nhập, quản lý cấp phép/chặn/xóa tài khoản thông qua User-ID).
5. Vỏ hộp của mô hình phần cứng được chế tạo bằng vật liệu và kích thước bao nhiêu?
Vỏ hộp mô hình được thi công bằng vật liệu mica trong suốt có kích thước $20\text{ cm} \times 17\text{ cm} \times 9\text{ cm}$, dán bằng keo silicon. Mặt trên sử dụng bản lề để mở và được khoét lỗ để gắn cố định màn hình LCD 16x2 cùng một nút nhấn cơ học dùng chuyển đổi màn hình hiển thị giữa Wh và Lít.
Kết luận
Đồ án tốt nghiệp "Ứng dụng công nghệ IoT giám sát mức tiêu thụ điện – nước" của tác giả Phạm Quốc Hưng đã thiết kế và thi công thành công mô hình giám sát năng lượng sinh hoạt tích hợp 2 trong 1 với chi phí thấp và kích thước nhỏ gọn. Hệ thống kết hợp hiệu quả giữa phần cứng đo lường nhúng (Arduino Mega, NodeMCU, ACS712, S201) và nền tảng điện toán đám mây Firebase, cho phép cập nhật thông số liên tục và phân quyền quản lý từ xa qua môi trường web. Mặc dù vẫn còn tồn tại hiện tượng nhiễu tín hiệu và chưa tích hợp chức năng điều khiển đóng ngắt tải, đề tài đã giải quyết trọn vẹn mục tiêu nghiên cứu và tạo tiền đề kỹ thuật vững chắc cho các nghiên cứu mở rộng trong lĩnh vực nhà thông minh và quản lý năng lượng tự động.