1. Trang chủ
  2. » Tất cả

Báo cáo BTL IOT Giám sát lượng nước toàn thành phố

21 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo BTL IoT Giám sát lượng nước toàn thành phố
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Kỹ thuật Điện Tử, IoT
Thể loại Báo cáo Thực tập lực lượng
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 21
Dung lượng 2,82 MB
File đính kèm OneDrive_1_02-03-2023.zip (2 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo BTL IOT Giám sát lượng nước toàn thành phố​ A. ĐẶT VẤN ĐỀ I. Thực trạng hiện nay Hiện nay, vấn đề quản lý nước trong thành phố gặp khá nhiều khó khăn vì phải thực hiện thủ công, ghi chép bằng tay. Ghi chép lượng nước hàng tháng thủ công dẫn đến việc trực hóa thống kê và sao lưu có nhiều bất cập và gần như là không thể đối với dữ liệu lớn. Đặc biệt, khả năng truy vết lịch sử sử dụng nước theo năm để dự đoán lượng nước trong tương lai hay phục vụ nghiên cứu gần như là nhiệm vụ bất khả thi. Hơn nữa, nó còn tốn kém chi phí nguồn lực. Ví dụ: Báo cáo kết quả giám sát thực hiện luật Thủ đô, UB Pháp luật của Quốc hội cho biết, năm 2020, dân số Hà Nội khoảng 10.5 triệu người. Trung bình 4 ngườihộ. Vậy chúng ta có 2.625.000 hộ. Hàng tháng sẽ có 2.625.000 bản ghi tiền điện (số lượng bản ghi sẽ nhiều và gia tăng sẽ rất nhanh). Giả sử mỗi nhân viên chịu trách nhiệm ghi 1.000 bản ghi mỗi tháng, ta sẽ có 2.625 nhân viên. Mức lương cơ bản mỗi nhân viên giả sử là 4 triệutháng, vậy mỗi tháng ta sẽ mất 10,5 tỉtháng để trả lương (một con số lớn). Và với số lượng 2.625.000 bản ghi tháng thì việc sao lưu và thống kê đã là cả 1 bài toán về công sức và việc ghi chép phải cực kì tỉ mỉ vì dễ dẫn đến sai xót với số lượng bản ghi lớn như vậy. II. Đề xuất ý tưởng Từ những khó khăn và nhược điểm của hệ thống hiện nay, nhóm chúng em đã nghiên cứu, bàn bạc và đi đến thống nhất đưa ra một hệ thống tự động, IOT có thể khắc phục toàn bộ những khó khăn trên. Giảm bớt công sức con người với độ chính xác cao, ổn định. Hơn nữa, nó có khả năng mở rộng với quy mô. Đặc biệt có hệ thống web, app an toàn, bảo mật, dễ sử dụng để dễ dàng quản lý và theo dõi. Các thành phần chức năng của hệ thống: • Hiển thị lượng nước từng hộ gia đình theo giờ, tháng, năm • Kiểm soát từng gia đình • Kiểm soát lượng nước toàn thành phố theo tháng, năm • Lưu lại lịch sử các năm để truy vết dữ liệu • Trực quan hóa dữ liệu bằng biểu đồ để phân tích, dự báo lượng nước trong tương lai.

Trang 1

A ĐẶT VẤN ĐỀ

I Thực trạng hiện nay

Hiện nay, vấn đề quản lý nước trong thành phố gặp khá nhiều khó khăn vì phải thực hiện thủ công,ghi chép bằng tay Ghi chép lượng nước hàng tháng thủ công dẫn đến việc trực hóa thống kê và saolưu có nhiều bất cập và gần như là không thể đối với dữ liệu lớn Đặc biệt, khả năng truy vết lịch sử

sử dụng nước theo năm để dự đoán lượng nước trong tương lai hay phục vụ nghiên cứu gần như lànhiệm vụ bất khả thi Hơn nữa, nó còn tốn kém chi phí nguồn lực

Ví dụ: Báo cáo kết quả giám sát thực hiện luật Thủ đô, UB Pháp luật của Quốc hội cho biết, năm

2020, dân số Hà Nội khoảng 10.5 triệu người Trung bình 4 người/hộ Vậy chúng ta có 2.625.000 hộ.Hàng tháng sẽ có 2.625.000 bản ghi tiền điện (số lượng bản ghi sẽ nhiều và gia tăng sẽ rất nhanh) Giả

sử mỗi nhân viên chịu trách nhiệm ghi 1.000 bản ghi mỗi tháng, ta sẽ có 2.625 nhân viên Mức lương

cơ bản mỗi nhân viên giả sử là 4 triệu/tháng, vậy mỗi tháng ta sẽ mất 10,5 tỉ/tháng để trả lương (mộtcon số lớn) Và với số lượng 2.625.000 bản ghi/ tháng thì việc sao lưu và thống kê đã là cả 1 bài toán

về công sức và việc ghi chép phải cực kì tỉ mỉ vì dễ dẫn đến sai xót với số lượng bản ghi lớn như vậy

II Đề xuất ý tưởng

Từ những khó khăn và nhược điểm của hệ thống hiện nay, nhóm chúng em đã nghiên cứu, bàn bạc và

đi đến thống nhất đưa ra một hệ thống tự động, IOT có thể khắc phục toàn bộ những khó khăn trên.Giảm bớt công sức con người với độ chính xác cao, ổn định Hơn nữa, nó có khả năng mở rộng vớiquy mô Đặc biệt có hệ thống web, app an toàn, bảo mật, dễ sử dụng để dễ dàng quản lý và theo dõi.Các thành phần chức năng của hệ thống:

 Hiển thị lượng nước từng hộ gia đình theo giờ, tháng, năm

 Kiểm soát từng gia đình

 Kiểm soát lượng nước toàn thành phố theo tháng, năm

 Lưu lại lịch sử các năm để truy vết dữ liệu

 Trực quan hóa dữ liệu bằng biểu đồ để phân tích, dự báo lượng nước trong tương lai

B THIẾT KẾ HỆ THỐNG

I Sơ đồ thiết kế tổng quan

Trang 2

Giao tiếp giữa Device sensor, Server và MQTT Broker bằng giao thức MQTT Protocol.

II Phân tích chi tiết các thành phần hệ thống

1 Các device, sensor

Mỗi một thiết bị sẽ được gắn 1 vi xử lý ESP32, các sensor đo lưu lượng nước sẽ được gắn vào cácchân tương ứng trên ESP32 Từ đó ta sẽ thu thập dữ liệu về lượng nước được sử dụng Thiết bị đượckết nối mạng 24/7 thông qua wifi, ESP32 liên tục thu thập dữ liệu và gửi lên Server qua các topicbằng giao thức MQTT

Về sensor đo lượng nước YF-S201 DN15:

 Có 3 chân, trong đó:

o Màu đỏ cho Vcc

o Màu đen cho GND

o Màu vàng cho đầu ra xung

 Công thức tính toán cảm biến lưu lượng nước: mỗi lít nước chảy, cảm biến sẽ tạo ra 450xung

 Mỗi xung sẽ có 1/450 lít nước chảy ra

 V_ total= N * 1/450 lít với N là số xung phát hiện

Trang 3

a Sơ đồ giao tiếp giữa esp32 và server

Đầu tiên, thiết bị sẽ gửi id kèm theo password lên server để đăng ký tham gia vào hệ thống Server sẽgửi lại cho thiết bị một token để sử dụng trong một khoảng thời gian Mỗi khi thiết bị gửi dữliệu ,server sẽ kiểm tra tính hợp lệ của token (thời hạn sử dụng) Nếu token hết hạn, thiết bị sẽ gửi yêucầu lấy token mới lên cho server

Thiết bị liên tục thu thập dữ liệu từ sensor Và cứ sau một khoảng thời gian (1 tiếng), nó sẽ gửi dữ liệulượng nước truy cập lên cho server Gói tin gửi lên sẽ có id, token và dữ liệu

Thiết bị sau khi đăng ký tham gia vào hệ thống sẽ phải liên tục gửi gói tin keep alive lên server đểserver biết nó vẫn đang hoạt động (1 phút gửi 1 lần) Nếu quá thời gian cho phép mà server khôngnhận được gói tin keep alive từ thiết bị, server sẽ coi như thiết bị đang ngừng hoạt động và khôngnhận các gói tin collect data

b Các task cần thực hiện trên esp32

 Task thu thập dữ liệu lượng nước

Thực hiện nhiệm vụ đo lưu lượng nước từ các sensor

 Task keep_alive

Thực hiện gửi gói tin keepAlive lên cho server, để server nhận biết được thiết bị vẫn đang hoạtđộng

 Task gửi dữ liệu

Sau một tiếng thì thiết bị sẽ gửi dữ liệu đo được từ các sensor lên cho server lưu trữ vào

database

 Task get token:

Thực hiện lấy token để thiết bị gửi gói tin lên cho server

Trang 4

2 Server

Triển khai hai service là HTTP serivce và Mqtt Serivce

 HTTP serivce: cung cấp 1 số API

Trang 5

3 Admin và User

Hệ thống có 2 tác nhân chính, một là người dùng (chính là người sử dụng nước trong hộ gia đình), hai

là admin (người quản trị nước trong thành phố)

Admin có đầy đủ các chức năng : thêm xóa sửa user, thêm thiết bị cho user, phân quyền user, xemtổng lượng nước của thành phố theo năm và theo tháng của từng user

User có thể đăng nhập bằng web hoặc app và có thể xem được chi tiết thông tin thiết bị của mình(video có demo)

Trang 6

MQTT hoạt động theo mô hình Client (Publisher/Subscriber) – Server (Broker).

b Kiến trúc và cơ chế hoạt động của MQTT

 Thành phần chính của MQTT là Client (Publisher/Subscriber), Server (Broker), Sessions ,Subscriptions và Topics

 MQTT Client (Publisher/Subscriber): Clients sẽ subscribe một hoặc nhiều topics để gửi vànhận thông điệp từ những topic tương ứng

 MQTT Server (Broker): Broker nhận những thông tin subscribe (Subscriptions) từ client,nhận thông điệp, chuyển những thông điệp đến các Subscriber tương ứng dựa trênSubscriptions từ client

 Topic: Có thể coi Topic là một hàng đợi các thông điệp, và có sẵn khuôn mẫu dành choSubscriber hoặc Publisher Một cách logic thì các topic cho phép Client trao đổi thông tin vớinhững ngữ nghĩa đã được định nghĩa sẵn Ví dụ: Dữ liệu cảm biến nhiệt độ của một tòa nhà

 Session: Một session được định nghĩa là kết nối từ client đến server Tất cả các giao tiếp giữaclient và server đều là 1 phần của session

 Subscription: Không giống như session, subscription về mặt logic là kết nối từ client đếntopic Khi đã subscribe một topic, Client có thể nhận/gửi thông điệp (message) với topic đó

c Quality of Service -QoS

QoS là một thỏa thuận giữa bên gửi và bên nhận trong việc đảm bảo phân phối message Có 3 cấp độQoS trong MQTT khi publish/subscribe

Trang 7

 QoS0 Broker/Client sẽ gửi dữ liệu đúng một lần, quá trình gửi được xác nhận bởi giao thứcTCP/IP

 QoS1 Phía server nhận message được xác định bởi một message PUBACK Nếu có lỗi, haymessage xác nhận không nhận được sau một khoảng thời gian nhất định thì sẽ gửi lại message

và thiết lập bit DUP tron header của message Vì vậy message được gửi tới server ít nhất mộtlần Nếu client không nhận được message PUBACK hoặc trong một khoảng thời gian đượcđịnh nghĩa hoặc có lỗi xảy ra thì client sẽ gửi lại message PUBLISH với DUP đã được thiếtlập Khi nhận một message lặp lại từ phía client, server sẽ publish các message đến cácsubscriber và gửi một message PUBACK khác

 QoS2: Message bị lặp lại không chuyển đến ứng dụng Đây là mức độ cao nhất khi phân phốimessage, message lặp lại không được chấp nhận Khi QoS = 2, một message có một message

ID trong phần header của nó Nếu có lỗi hoặc sau một khoảng thời gian, luồng protocol sẽthực hiện lại kết quả của message xác nhận cuối cùng hoặc PUBLISH hoặc PUBREL Vì vậyđảm bảo message đến subscriber đúng một lần

2 Spring mvc

Spring framework là nền tảng mã nguồn mở phổ biến để xây dựng các ứng dụng Những tính năng cốtlõi của Spring có thể được sử dụng để phát các ứng dụng Java Destop, ứng dụng mobile, Java Webmột cách đơn giản Trong bài tập lớn này sẽ sử dụng Spring framework để xây dựng ứng dụng phíaserver, cung cấp cơ chế thuận tiện để triển khai các dịnh vụ chức năng của hệ thống

Flow trong Spring MVC framework

 Bất kỳ request nào tới ứng dụng web đều được gửi tới Front Controller(Dispatcher servlet)

 Dispatcher servlet sử dụng Handler Mapping để biết được controller nào sẽ xử lý rquest đó

 Thực thi các logic được xác định trong controller và trả về đối tượng ModelAndView

 Dựa trên các giá trị trong ModelAndView, Dispatcher servlet sẽ gửi các yêu cầu đến ViewResolver, View Resolver sẽ tìm kiếm dựa trên các config file view mà Controller trả về

 Cuối cùng Dispatcher servlet sẽ tìm kiếm đến file view đã được View Resolver xác định trước

đó và gửi kết quả cho người dùng

Triển khai theo mô hình front-end back-end riêng Client gửi request tới server qua API và sẽ sử dụngRestController để xử lý và trả về dữ liệu JSON

Trang 8

Spring triển khai 2 gói dịch vụ Nó phục vụ 2 luồng khác nhau của máy chủ Bao gồm HTTPservice(Cung cấp API cho front-end) và Mqtt service(đăng ký topic và xử lý message).

3 Vue.js

Vue.js là một framework linh động dùng để xây dựng giao diện người dùng (user interfaces) Khác

với các framework nguyên khối (monolithic), Vue được thiết kế từ đầu theo hướng cho phép vàkhuyến khích việc phát triển ứng dụng theo từng bước Khi phát triển lớp giao diện (view layer),người dùng chỉ cần dùng thư viện lõi (core library) của Vue, vốn rất dễ học và tích hợp với các thưviện hoặc dự án có sẵn Cùng lúc đó, nếu kết hợp với những kĩ thuật hiện đại như SFC (single filecomponents) và các thư viện hỗ trợ, Vue cũng đáp ứng được dễ dàng nhu cầu xây dựng những ứngdụng một trang (SPA - Single-Page Applications) với độ phức tạp cao hơn nhiều

4 MySQL

MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) dựa trên ngôn ngữ

truy vấn có cấu trúc ( SQL) được phát triển, phân phối và hỗ trợ bởi tập đoàn Oracle MySQL chạytrên hầu hết tất cả các nền tảng, bao gồm cả Linux , UNIX và Windows MySQL thường được kết hợpvới các ứng dụng web

5 Apache Tomcat

Apache Tomcat là một web server HTTP được phát triển bởi Apache Software

Foundation, hỗ trợ mạnh cho ứng dụng Java thay vì website tĩnh Do đó, nó có thể

chạy nhiều bản Java chuyên biệt như Java Servlet, JavaServer Pages (JSP), Java EL, và WebSocket

Bạn hoàn toàn có thể sử dụng Apache Tomcat với nhiều ngôn ngữ lập trình khác như PHP,

Python, Perl,… Nhờ sự giúp đỡ của module Apache phù hợp, chẳng hạn mod_php, mod_python,mod_perl,…

6 React Native

React Native là một framework do công ty công nghệ nổi tiếng Facebook phát triển nhằm mục đíchgiải quyết bài toán hiệu năng của Hybrid và bài toán chi phí khi mà phải viết nhiều loại ngôn ngữnative cho từng nền tảng di động

Ở hệ thống này, chúng em triển khai ứng dụng Android chủ yếu cung cấp cho người dùng theo dõilượng nước theo chu kỳ thời gian (1 tiếng/lần) hoặc real-time (khi ấn vào refresh) Từ đó để giám sátlượng nước, phát hiện bất thường, tính toán số tiền cũng như sự gian lận (nếu có) của bên cung cấpnước

Trang 11

C TRIỂN KHAI (DEMO)

I Demo các thành phần chức năng của hệ thống

Demo IOT - Hê thống cấp nước thông minh cho thành phố

II Minh họa code

Trang 12

 TaskCollectData

Trang 13

 Task gửi dữ liệu

o Trước khi dữ liệu, thiết bị cần được active trên hệ thống:

o Sau đó kiểu tra xem token còn hạn không, nếu còn thì gửi dũ liệu

Trang 14

 Task GetToken và KeepAlive

Trang 15

III Kết quả, hình ảnh sản phẩm

Trang 16

1 Admin

1 Admin

Trang chủ :

Trang 17

Chỉ có Admin có các chức năng thêm người dùng, thêm thiết bị cho người dùng (có phân quyền chouser)

Sau khi tạo tài khoản cho user, admin có thể thêm thiết bị gắn với user đó

Sau khi tạo thiết bị thành công thì server sẽ create token để active thiết bị

Admin có thể theo dõi tổng user và các thiết bị của user

Trang 18

Admin có thể xem lượng nước của từng thiết bị của mỗi user theo năm và theo tháng:

Theo năm: (có thể select chọn năm, video có demo)

Trang 19

Hệ thống có đầy đủ chức năng thêm xóa sửa user, device, profile (có video demo):

b.

Trang 20

2 User

D TEAMWORK – CÔNG VIỆC NHÓM

Phan Thành Đạt 20173001 Thuyết trình, viết báo cáo, tìm hiểu phần cứng sensor,

viết app điện thoại, bảo mật hệ thống, thiết kế hệ thốngHoàng Văn Chương 20172984 Làm slide, viết báo cáo, viết web hiển thị, thiết kế cơ sở

dữ liệu, thiết kế hệ thốngTrần Văn Định 20173017 Làm slide, viết báo cáo, tìm hiểu phần cứng ESP32, viết

Server, thiết kế cơ sở dữ liệu, thiết kế hệ thốngChử Việt Hoàng 20173135 Làm slide, viết báo cáo, tìm hiểu ESP32, code ESP 32,

thiết kế cơ sở dữ liệu, thiết kế hệ thống

Ngày đăng: 02/03/2023, 01:24

🧩 Sản phẩm bạn có thể quan tâm

w