Đồ án tốt nghiệp: Ứng dụng IoT giám sát mức tiêu thụ điện - nước (ĐH SPKT)

Tham khảo đồ án tốt nghiệp IoT giám sát tiêu thụ điện nước. Luận văn đầy đủ, trình bày chi tiết hệ thống dùng Arduino, NodeMCU và Firebase.

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2018

104
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về Đồ án IoT Giám sát Tiêu thụ Điện Nước

Đồ án IoT giám sát tiêu thụ điện nước là một hệ thống công nghệ tiên tiến ứng dụng trong quản lý năng lượng gia đình và công nghiệp. Đây là dự án tốt nghiệp ngành Kỹ thuật Điện - Điện tử Truyền thông từ Trường Đại học Sư phạm Kỹ thuật TP.HCM. Hệ thống này kết hợp các cảm biến thông minh, vi điều khiển Arduino và NodeMCU để giám sát mức tiêu thụ điện và nước một cách thời gian thực. Công nghệ IoT (Internet of Things) cho phép người dùng theo dõi consumption data từ xa qua giao diện web, giúp tối ưu hóa chi phí và quản lý tài nguyên hiệu quả. Dự án này có ý nghĩa thực tiễn cao, đáp ứng nhu cầu phát triển của xã hội hiện đại trong tiết kiệm năng lượng và bảo vệ môi trường.

1.1. Định nghĩa và Mục tiêu của Dự án

Mục tiêu chính của dự án là xây dựng một hệ thống giám sát tiêu thụ điện - nước tự động, chính xác và có thể truy cập từ xa. Hệ thống IoT này cung cấp khả năng thu thập dữ liệu thời gian thực từ các cảm biến, lưu trữ trên Firebase cloud, và hiển thị qua giao diện web đẹp mắt. Dự án nhằm giúp người dùng hiểu rõ hơn về thói quen sử dụng tài nguyên, từ đó có biện pháp tiết kiệm hiệu quả.

1.2. Ứng dụng Thực tiễn của Công nghệ IoT

Công nghệ IoT mở ra nhiều khả năng ứng dụng trong quản lý thông minh. Hệ thống giám sát điện - nước có thể được triển khai tại các gia đình, toà nhà thương mại, nhà máy và tòa chung cư. IoT giúp tự động hóa quá trình thu thập dữ liệu, giảm chi phí nhân công, phát hiện rò rỉ nước sớm và cảnh báo tiêu thụ bất thường, hỗ trợ quản lý năng lượng bền vững.

II. Các Thiết bị Chính trong Hệ thống

Hệ thống IoT giám sát tiêu thụ điện - nước bao gồm nhiều linh kiện điện tử quan trọng. Vi điều khiển Arduino MegaNodeMCU là trái tim của hệ thống, xử lý dữ liệu từ các cảm biến. Module cảm biến dòng điện ACS712-20A đo lường tiêu thụ điện với độ chính xác cao, trong khi cảm biến lưu lượng S201 theo dõi lượng nước sử dụng. Màn hình LCD 16x2 kết hợp với module I2C hiển thị thông tin realtime, còn Firebase hoạt động như nền tảng cloud lưu trữ và quản lý dữ liệu. Tất cả các thành phần này được kết nối thông qua giao tiếp UART và I2C, tạo thành một hệ thống giám sát tích hợp hoàn chỉnh.

2.1. Vi Điều khiển Arduino Mega và NodeMCU

Arduino Mega là vi điều khiển mạnh mẽ với 54 chân GPIO, lý tưởng cho xử lý nhiều cảm biến đồng thời. NodeMCU là nền tảng IoT phát triển dựa trên ESP8266 với kết nối WiFi tích hợp, cho phép truyền dữ liệu lên cloud. Cả hai thiết bị đều lập trình bằng Arduino IDE, hỗ trợ ngôn ngữ C++, giúp tối ưu hóa việc xử lý dữ liệu từ các cảm biến.

2.2. Module Cảm biến Dòng Điện ACS712 và Cảm biến Lưu lượng S201

Module ACS712-20A sử dụng hiệu ứng Hall để đo dòng điện không tiếp xúc trực tiếp, an toàn và chính xác. Cảm biến này xuất ra tín hiệu điện áp tương tự tỉ lệ với dòng điện. Cảm biến S201 là cảm biến lưu lượng nước dùng bánh quạt xoay, tạo xung lực điện cho mỗi lít nước đi qua. Kết hợp hai cảm biến này, hệ thống có thể đo đạc chính xác cả điện và nước.

III. Kiến trúc Hệ thống và Giao tiếp Dữ liệu

Kiến trúc hệ thống IoT được thiết kế theo mô hình ba tầng: tầng nhận cảm biến, tầng xử lý dữ liệu và tầng giao diện người dùng. Tầng cảm biến bao gồm ACS712 và S201 chuyển đổi thông số vật lý thành tín hiệu điện. Tầng xử lý sử dụng Arduino Mega và NodeMCU để xử lý, tính toán và gửi dữ liệu. Tầng giao diện bao gồm màn hình LCD 16x2 cho hiển thị địa phương và trang web cho giám sát từ xa. Giao tiếp UART kết nối Arduino với NodeMCU, trong khi I2C kết nối với LCD. Firebase cloud được sử dụng để lưu trữ dữ liệu thời gian thực, cho phép truy cập từ bất kỳ thiết bị có kết nối internet.

3.1. Giao tiếp UART và I2C

Chuẩn UART (Universal Asynchronous Receiver/Transmitter) cho phép truyền dữ liệu nối tiếp giữa Arduino Mega và NodeMCU với tốc độ baud 9600 hoặc 115200 bps. Giao tiếp I2C (Inter-Integrated Circuit) dùng hai dây SDA và SCL kết nối màn hình LCD 16x2 với module I2C, hỗ trợ địa chỉ 7-bit hoặc 10-bit. Hai chuẩn này đảm bảo truyền dữ liệu ổn địnhgiảm số lượng dây kết nối.

3.2. Hệ thống Cloud Firebase và Giao diện Web

Firebase là nền tảng NoSQL database của Google cung cấp khả năng lưu trữ thời gian thực. NodeMCU kết nối Firebase thông qua WiFi, gửi dữ liệu tiêu thụ điện-nước định kỳ. Trang web giám sát được xây dựng bằng HTML, CSS, JavaScript để hiển thị biểu đồ, thống kê tiêu thụ và cảnh báo bất thường. Người dùng có thể truy cập từ smartphone hoặc máy tính để quản lý năng lượng hiệu quả.

IV. Quá trình Thực hiện và Kết quả Dự án

Quá trình thực hiện đồ án kéo dài 15 tuần, từ tháng 3 đến tháng 7 năm 2018. Giai đoạn đầu tập trung vào nghiên cứu tài liệu, tìm hiểu Arduino, NodeMCU và Firebase. Giai đoạn giữa tổng hợp linh kiện, test các module và cảm biến đảm bảo hoạt động đúng. Giai đoạn cuối viết code cho toàn hệ thống, thiết kế vỏ hộp để bảo vệ mạch điều khiển. Chạy thử nghiệmcân chỉnh hệ thống đảm bảo độ chính xác, hiển thị dữ liệu realtime trên LCD và web. Kết quả cuối cùng là một hệ thống IoT hoàn chỉnh, có thể giám sát tiêu thụ điện - nước hiệu quả, mở ra hướng ứng dụng cho quản lý năng lượng thông minh.

4.1. Các Bước Thực hiện Kỹ thuật

Bước 1: Lập trình Arduino Mega xử lý tín hiệu từ cảm biến, tính toán tiêu thụ điện-nước. Bước 2: Lập trình NodeMCU kết nối WiFi và gửi dữ liệu lên Firebase. Bước 3: Cấu hình LCD 16x2 qua I2C hiển thị dữ liệu thời gian thực. Bước 4: Xây dựng giao diện web với JavaScript để truy vấn dữ liệu từ Firebase và vẽ biểu đồ. Bước 5: Test toàn hệ thống trong điều kiện thực tế, cân chỉnh độ chính xác cảm biến.

4.2. Kết Quả và Ứng Dụng Sau này

Hệ thống hoàn thành với khả năng giám sát chính xác tiêu thụ điện và nước thời gian thực. Dữ liệu được lưu trữ trên Firebase, dễ dàng truy cập và phân tích. Giao diện web thân thiện cho phép người dùng theo dõi tiêu thụ và nhận cảnh báo bất thường. Dự án có thể được mở rộng thêm các cảm biến, tích hợp AI phát hiện hành vi lạm dụng, hoặc kết nối với hệ thống điều khiển thông minh để tự động tắt thiết bị.

21/12/2025

Trích đoạn nội dung tài liệu

Đặt vấn đề, dẫn nhập đề tài: nêu mục tiêu và nội dung nghiên cứu, những hạn chế và bố cục của đề tài.  Chương 2: Cơ Sở Lý Thuyết Giới thiệu phần cứng: các thiết bị đầu vào, đầu ra. Các chuẩn truyền dữ liệu. Hướng dẫn cách lưu trữ nội dung trên firebase hosting.

 Chương 3: Tính toán và thiết kế Tính toán và thiết kế hệ thống: nêu sơ đồ nguyên lý toàn mạch, và thiết kế mô hình.  Chương 4: Thi công hệ thống. Giới thiệu phần thi công mạch, đóng gói bộ điều khiển, các bước thi công mô hình hoàn chỉnh. Viết hướng dẫn sử dụng.

 Chương 5: Kết Quả, Nhận Xét và Đánh Giá Nêu lên kết quả đã hoàn thành được, hình ảnh hoạt động của mạch, nhận xét và đánh giá.  Chương 6: Kết Luận và Hướng Phát Triển Nêu ra những gì đã thực hiện được trong đề tài và hướng phát triển của đề tài. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2 CHƯƠNG 4. THI CÔNG HỆ THỐNG Chương 4.

THI CÔNG HỆ THỐNG 4.1 GIỚI THIỆU Sau khi đã tính toán và lựa chọn thiết bị cụ thể, ta sẽ bước sang giai đoạn sau cùng là thi công hệ thống. Về phần cứng, phần lớn các thiết bị được sử dụng trong đề tài là các module và cảm biến đều có sẵn trên thị trường: Arduino Mega, NodeMCU, ACS712, S201… Ngoài ra sẽ thiết kế mạch để đo giá trị điện áp AC 220V. Đối với phần mềm, chúng ta sẽ tiến hành lập trình điều khiển cho Arduino Mega và NodeMCU; đồng thời sẽ thiết kế giao diện web server và xây dựng cơ sở dữ liệu Realtime Database Firebase.2 THI CÔNG HỆ THỐNG Hệ thống này thực tế có thể thiết kế để tối đa 250 tài khoản người dùng đăng ký và sử dụng (số lượng tối đa mà Firebase cho phép trong một project), tuy nhiên, trong đề tài này chỉ sử dụng 4 tài khoản gmail để đăng ký và sử dụng với vai trò là user, và một tài khoản được sử dụng với vai trò là admin. Các user chỉ có thể xem thông tin giám sát của chính họ và nhận những thông báo từ hệ thống, còn admin thì có thể giám sát được tất cả thông số điện – nước của người dùng thông qua giao diện web.

Từ đó, nhóm thi công 2 bộ mô hình giống nhau để giám sát điện – nước sinh hoạt, tượng trưng cho 2 hộ gia đình trên thực tế. Hai mô hình này sẽ thực hiện công việc đo đạc các thông số và tính toán các giá trị về lượng điện - nước đã tiêu thụ rồi gửi dữ liệu lên database Firebase để hiển thị ra trang web. Các tài khoản mail đăng ký còn lại, cũng sẽ đóng vai trò là các hộ gia đình, nhưng chỉ hiển thị các thông số mang tính chất minh họa tượng trưng. Vì 2 bộ mô hình được thiết kế giống nhau nên nhóm sẽ trình bày quá trình thi công của một bộ mô hình giám sát điện - nước sinh hoạt hằng ngày.

Từ sơ đồ nguyên lý của hệ thống đã được tính toán và thiết kế ở Chương 3 nhóm đã thiết kế được mạch điện của hệ thống theo sơ đồ mạch in cùng với danh sách các linh kiện được sử dụng như sau: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32 CHƯƠNG 4. THI CÔNG HỆ THỐNG Hình 4.1: Sơ đồ mạch in BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33 CHƯƠNG 4. THI CÔNG HỆ THỐNG Bảng 4. Danh sách các linh kiện điện tử STT Tên linh kiện Số lượng Giá trị 1 Arduino mega 1 2 Nodemcu 1 3 ACS712 1 4 S201 1 5 Biến áp 1 6 Diode cầu 1 7 Tụ hóa 1 470uF 8 Tụ gốm 1 100nF 1 10K 9 Điện trở 1 20K 10 Cầu chì 1 2A 11 Nút nhấn 1 12 LCD 16x2 1 13 Module LCD I2C 1 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34 CHƯƠNG 4.

THI CÔNG HỆ THỐNG 4.3 THI CÔNG VÀ ĐÓNG GÓI MÔ HÌNH 4.1 Đóng gói bộ điều khiển Dùng mica trong có kích thước 20cm x 17cm x 9cm để thiết kế vỏ hộp.2: Mặt ngoài của mô hình BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35 CHƯƠNG 4. THI CÔNG HỆ THỐNG 4.2 Thi công mô hình Sử dụng một bảng mạch để gắn các thiết bị và linh kiện và hàng rào kết nối lên trên. Dùng ốc vít để gắn chặt bảng mạch vào mặt dưới của hộp. Lớp vỏ hộp bên ngoài dùng mica trong, có thể tìm thấy ở các tiệm điện – nước.

Để cắt mica, ta phải dùng dao chuyên dụng cắt mica. Đây là công việc đòi hỏi sự chính xác và tính thẩm mỹ bởi mica rất khó cắt. Dung keo silicon để dán các miếng mica lại thành hình hộp. Mặt nắp trên sử dụng bản lề nhằm mục đích đóng mở, có khoét lỗ để gắn cố định màn hình hiển thị LCD và nút bấm trên bề mặt.

Đi dây kết nối các bộ điều khiển, cảm biến, LCD, biến áp và ổ cắm.3: Mặt trong của mô hình và kết nối BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36 CHƯƠNG 4. THI CÔNG HỆ THỐNG 4.4 LẬP TRÌNH HỆ THỐNG 4.1 Lưu đồ giải thuật Khi cấp nguồn, màn hình LCD sẽ hiển thị 3 thông số là điện năng tiêu thụ, dòng điện và điện áp hiện tại lấy từ mạch đo áp và cảm biến dòng ACS712. Khi nhấn nút chuyển chế độ, LCD sẽ hiển thị mức nước tiêu thụ lấy từ cảm biến lưu lượng S201, nhấn lần nữa để lại hiển thị điện năng. Arduino sẽ đều đặn gửi dữ liệu qua module wifi Nodemcu.

Nodemcu tiếp nhận dữ liệu và cập nhật hiển thị LCD và database của Firebase. Khi xảy ra trường hợp mất điện, thì Nodemcu chỉ việc lấy dữ liệu từ database Firebase và cộng với mức tiêu thụ mà arduino gửi qua để tiếp tục hiển thị khi có điện lại. Đối với Arduino, ta sẽ tiến hành khởi tạo thiết lập kết nối, khai báo biến và bật các chức năng cần thiết. Cả hai chương trình đo điện và nước tiêu thụ được thực hiện song song.

Sử dụng hàm millis() được hỗ trợ sẵn từ Arduino IDE để canh thời gian, tiến hành lấy mẫu dòng điện, điện áp trong 1 giây; sau đó sẽ thực hiện công việc tính toán. Bên cạnh đó, Arduino sẽ thực hiện ngắt để chạy chương trình đếm số lượng xung và dừng ngắt để tính toán lượng nước tiêu thụ trong 1 giây (cũng sử dụng hàm millis()). Sau khi đã tính toán xong thông số điện – nước, biến đếm sẽ tăng lên 1; khi biến đếm bằng 10 thì sẽ gửi dữ liệu sang Nodemcu (tức mỗi 10 giây sẽ gửi dữ liệu sang Nodemcu một lần). Đối với Nodemcu, khi khởi động sẽ thực hiện khởi tạo kết nối và bật các chức năng cần thiết.

Sau đó sẽ thực hiện kết nối wifi và Firebase hosting dựa trên các khai báo. Nodemcu sẽ kiểm tra và nhận dữ liệu từ arduino, khi arduino gửi dữ liệu sang thì Nodemcu sẽ nhận, xử lí để hiển thị lên lcd và gửi lên Firebase. NodeMcu lấy thời gian thực trực tiếp từ Internet, thực hiện so sánh và cập nhật dữ liệu lên database Firebase sau mỗi 120s. Đầu tháng sẽ reset các dữ liệu tổng về 0, bên cạnh đó sẽ lưu giá trị tổng điện – nước của tháng này để thống kê mức độ sử dụng điện - nước trong 3 tháng gần nhất.

Nếu nhấn nút hiển thị LCD, chương trình sẽ thực hiện ngắt để xử lý trong thời gian rất ngắn, sau đó tiếp tục hoạt động. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37 CHƯƠNG 4. THI CÔNG HỆ THỐNG Lưu đồ NodeMCU Hình 4.4: Lưu đồ giải thuật của NodeMcu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38 CHƯƠNG 4. THI CÔNG HỆ THỐNG Lưu đồ Arduino Mega 2560 Hình 4.5: Lưu đồ giải thuật của Arduino BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39 CHƯƠNG 4.

THI CÔNG HỆ THỐNG 4.2 Phần mềm lập trình Đề tài sử dụng phần mềm ArduinoIDE (Arduino Intergrated Development Environment) để lập trình cho Arduino Mega 2560 và cả NodeMCU; Ngôn ngữ được sử dụng ở ArduinoIDE là C/C++. Tất cả đều là mã nguồn mở, được đóng góp và hỗ trợ rất nhiều từ cộng đồng, rất thích hợp cho những ai mới bắt đầu tìm hiểu hoặc không chuyên để dễ dàng tiếp cận, nắm bắt và triển khai nhanh chóng. ArduinoIDE hoạt động được trên cả 3 nền tảng: Windows, MAC OS và Linux. Bên dưới là hướng dẫn về cách cài đặt, cách tạo project, viết code và biên dịch chương trình trên hệ điều hành Windows.

Cài đặt: Cài đặt Java Runtime Environment (JRE) Vì Arduino IDE được viết trên Java, nên ta cần phải cài đặt JRE trước; nếu không, Arduino IDE sẽ không hoạt động được. JRE có 2 bản phổ biến nhất hiện nay dành cho Windows 32 bit (x86) và Windows 64 bit (x64). Linkdowload: http://www.com/technetwork/java/javase/downloads/index.html Cài đặt Arduino IDE Link download: https://www.cc/en/Main/Software/ Bước 1: Ta click vào đường dẫn ở trên, chọn “Windows ZIP file for non admin install” như hình sau: Hình 4.6: Giao diện tải Arduino IDE Tiếp tục bấm vào “JUST DOWNLOAD” để tải phần mềm Arduino IDE, bạn cũng có thể đóng góp ở ngay phím bên cạnh. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40 CHƯƠNG 4.

THI CÔNG HỆ THỐNG Hình 4.7: Ủng hộ nhà phát triển Arduino IDE Bước 2:Khi đã tải xong, giải nén file vừa tải. Sau đó copy thư mục đó đến nơi lưu trữ mong muốn. Bước 3: Chạy file arduino.exe để khởi động Arduino IDE Hình 4.8: Giao diện chính của Arduino IDE BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41 CHƯƠNG 4. THI CÔNG HỆ THỐNG Sau khi đã cài đặt xong, mở phần mềm lên ta sẽ thấy một giao diện rất dễ nhìn và thân thiện hơn so với đa phần các phần mềm lập trình khác.

Arduino IDE làm việc với dưới dạng bản soạn thảo gọi là Sketch, ta sẽ soạn các lệnh lập trình (code) vào Sketch rồi sử dụng thao tác biên tập và upload chương trình đó xuống board Arduino đã cắm vào máy. Khi tiến hành nạp code thì ta cần phải chắc chắn rằng phần mềm đã nhận được tín hiệu của board Arduino (Arduino COM port detect); bản Sketch đang soạn nạp đúng với board Arduino tương ứng (khi cần soạn hai Sketch giao tiếp giữa hai board Arduino và cắm vào cùng máy tính thì vấn đề như vậy sẽ bắt đầu phát sinh). Khi cắm board Arduino vào máy tính cổng COM sẽ được nhận và ta vào phần Tools -> Port để chọn cổng COM kết nối Arduino IDE với board. Sau khi máy đã nhận cổng COM thì ta cần điều chỉnh phần mềm lập trình Arduino xác nhận đúng loại board đang muốn nạp.

Cài đặt driver cho Arduino Mega Để arduino giao tiếp được với máy tính, ta cần phải cài đặt driver. Trong thư mục đã giải nén, tìm thư mục drivers. Ta chọn cài đặt dpinst-amd64.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ