1. Trang chủ
  2. » Luận Văn - Báo Cáo

nghiên cứu xây dựng hệ thống giám sát chất lượng nước ứng dụng iot

44 15 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Nghiên cứu, xây dựng hệ thống giám sát chất lượng nước ứng dụng IoT
Tác giả Lê Hùng Việt
Người hướng dẫn ThS. Phạm Đình Tuân
Trường học Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội
Chuyên ngành Kỹ Thuật Robot
Thể loại Đồ án 1
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 44
Dung lượng 3,93 MB

Cấu trúc

  • 1.1. Đặ t v ấn đề (11)
  • 1.2. Mục đích nghiên cứu (11)
  • 1.3. Phương pháp nghiên cứu (12)
  • 1.4. Nội dung nghiên cứu (12)
  • 1.5. Bố cục (12)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (0)
    • 2.1. IoT (0)
    • 2.2. Mô hình h th ng giám sát ch ệ ố ất lượng nước ứ ng d ng IoT ........................ ụ 5 2.3. Các thành phần trong xây dựng hệ thống giám sát chất lượng nước ứng dụng IoT (0)
  • CHƯƠNG 3. THIẾT KẾ VÀ THI CÔNG HỆ THỐNG (0)
    • 3.1. Tổng quan hệ thống (0)
    • 3.2. Yêu cầu đặt ra (0)
    • 3.3. Thiết kế và thi công phần cứng (0)
    • 3.4. Cài đặt Node-red và MQTT broker (31)
    • 3.5. Thiết lập kết nối DDNS, PortForwarding (0)
    • 3.6. Lập trình vi điều khiển (33)
    • 3.7. Thiết kế và xây dựng Dashboard (36)
  • CHƯƠNG 4. KẾ T QUẢ VÀ ĐÁNH GIÁ (40)
    • 4.1. Kế t quả đạt đượ c (40)
    • 4.2. Kết quả thực nghiệm (40)
    • 4.3. Đánh giá kết quả (41)
    • 4.4. Hướng phát triển (42)
  • CHƯƠNG 5. KẾT LUẬN (43)

Nội dung

Trong lĩnh vực này, IoT có thể cung cấp các giải pháp giám sát chất lượng nước nhanh chóng và hi u quệ ả hơn bằng cách sử dụng các thiết bị cảm biến đ thu th p dể ậ ữ liệu và truyền tải

Đặ t v ấn đề

Chất lượng nước là m t trong nh ng y u t quan tr ng cộ ữ ế ố ọ ủa cuộc sống, đóng vai trò quan tr ng trong s phát tri n và duy trì sọ ự ể ự sống, đồng th i, chờ ất lượng nước cũng là một y u t then ch t trong vi c nuôi tr ng th y h i sế ố ố ệ ồ ủ ả ản Tuy nhiên các hồ, sông, su i và ố các tài nguyên nước khác, nhất là ở các vùng nông thôn và hẻo lánh thường không được giám sát đầy đủ và hiệu quả

Hiện nay, công nghệ Internet of Things (IoT) đang phát triển mạnh mẽ và được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau, bao gồm giám sát môi trường và chất lượng nước Việc áp dụng cong nghệ IoT để giám sát chất lượng nước là một biện pháp hiệu qu và tiên ti n giúp gi i quy t các thách thả ế ả ế ức về giám sát chất lượng nước

Tuy nhiên, vi c xây d ng hệ ự ệ thống giám sát chất lượng nước ứng dụng IoT cũng đặt ra nhiều thách thức Đầu tiên, c n thi t phải thi t k , tri n khai các cảm biến độc l p ầ ế ế ế ể ậ và đáng tin cậy để thu nhập dữ liệu, hệ thống phải theo dõi liên tục để đảm bảo chất lượng nước luôn được giám sát và đánh giá chính xác Đồng th i, phờ ải có một hệ thống truyền thông g n nhọ ẹ và đáng tin cậy để truyền dữ liệu về trung tâm để ử lý và đưa ra x các chỉ số đánh giá chất lượng nướ Ngoài ra việc lưu trữ và qu n lý dc ả ữ ệu cũng là li một nhiệm vụ quan tr ng trong vi c xây d ng h th ng ọ ệ ự ệ ố

Do đó, đề tài được đ t ra đặ ể giải quyết các vấn đề nêu trên, b ng cách sằ ử ụng công d nghệ IoT để xây dựng hệ ống giám sát ch th ất lượng nước Hệ ống này sẽ cho phép th giám sát từ xa, c p nh t dậ ậ ữ liệu nhanh chóng, hiển thị d liữ ệu theo th i gian thờ ực Hơn nữa việc ứng dụng IoT sẽ giúp tiết kiệm chi chí và thời gian hơn so với các phương pháp truyền th ng ố

Mục đích nghiên cứu

Đề tài được thực hiện v i mục đích áp dụng các kiến thức đã học để nghiên cứu, ớ xây dựng một mô hình “Hệ thống giám sát chất lượng nước ứng d ng IoT” Sau khi ụ thực hi n, h th ng cệ ệ ố ần có những chức năng sau:

• Giám sát, theo dõi chất lượng nước theo th i gian thờ ực thông qua Internet bằng trình duyệt, có thể ả ữ ệ t i d li u v ề để đánh giá thêm

• Có thể điều khiển hệ thống từ xa bằng dashboard

• Phần cứng có thể ễ d tri n khai, g n gàng, gi m thi u chi phí phát sinh ể ọ ả ể

• Hệ th ng ch y ố ạ ổn định, ít l i v t ỗ ặ

Phương pháp nghiên cứu

Trong đề tài này, chúng tôi sử dụng các phương pháp nghiên cứu sau:

• Phương pháp tham khảo tài liệu: bằng cách thu thập thông tin từ sách, tạp chí, kênh truy n thông v ề ề điệ ừn t , vi n thông, truy c p t m ng Internet ễ ậ ừ ạ

• Phương pháp quan sát: khảo sát, đánh giá một số ứng dụng có sử dụng công nghệ IoT, các h th ng giám sát chệ ố ất lượng nước đã có

• Phương pháp thực nghiệm: Xem xét mộ ố công nghệ t s đã được áp dụng trước đó để rút ra kinh nghiệm cũng như những yêu cầu đặt ra cho mô hình “Hệ thống giám sát chất lượng nước ứng d ng IoT” ụ

Nội dung nghiên cứu

Đề tài “Nghiên cứu, xây dựng hệ thống giám sát chất lượng nước ứng dụng IoT” có các nôi dung nghiên cứu sau:

• Tìm hi u công ngh IoTể ệ , các chỉ ố ề s v chất lượng nước

• Các gi i pháp thiả ết kế ệ ố h th ng

• Tìm hiểu, đánh giá, lựa chọn thiết bị: cảm biến, vi điều khi n, màn hình… ể

• Tìm hi u các giao th c truy n thông I2C, MQTT, WiFi ể ứ ề

• Lắp ráp các linh kiện đi n lên bảng mạch, lệ ập trình cho vi điều khiển

• Thiết k , gia công phế ần vỏ ộp ch h ứa các bảng mạch và linh ki n ệ

• Xây d ng giao di n hi n th ự ệ ể ị và điều khiển, xử lý d li u trên server ữ ệ

• Sửa lỗi và tối ưu hệ ố th ng

• Đánh giá các kết quả thực hiện

Bố cục

Nội dung tài g m các phđề ồ ần sau:

Chương 1 Tổng quan về đề tài

Chương 2 Cơ sở lý thuyết:

• Các vấn đề trong giám sát chất lượng nước

Hình 3.2 Mạch điện hoàn ch nh ỉ 3.3.2 Thi t k và gia công v bế ế ỏ ảo vệ

Sau khi th c hiự ện lắp ráp bảng mạch, c n phầ ải đo đạc các thông số chiều dài, rộng cao c a m ch ủ ạ đặc biệt là ị v trí các l bỗ ắt bulong để thi t k chuế ế ẩn xác nhất

Chúng tôi s d ng ph n mử ụ ầ ềm SolidWork để thi t k ế ế mô hình 3D ới các yêu cầu: v

• Vị trí đặ ảt b ng m ch cạ ần được thi t k dế ế ạng rãnh trượt để tháo lắp d dàng ễ

• Các vị trí lắp LCD, công tắc, đèn báo phả được thiết kế chính xác về kích thưới c và v trí ị

• Phải để sẵn lỗ của lu n dây các cồ ảm biến

• Các bộ phận được lắp ráp v i nhau b ng bulong hoớ ằ ặc bằng các rãnh cài vào nhau

Hình 3.3 B n thi t k 3D v bả ế ế ỏ ảo vệ ạch điệ m n

Sau khi th c hi n thi t k , chúng tôi gia công v b o v bự ệ ế ế ỏ ả ệ ằng phương pháp in 3D, chất li u nh a ABSệ ự Phương pháp gia công này có ưu điểm là độ chính xác cao, chi phí phải chăng

Hình 3.4 S n ph m v b o v ả ẩ ỏ ả ệ Sau khi có vỏ bảo vệ và mạch điện, tiến hành l p ráp chúng vào v i nhau, bao gắ ớ ồm lắp công tắc, đèn báo và màn hình LCD lên nắp của vỏ ả b o v ệ

Hình 3.5 S n ph m ph n c ng hoàn ch nh ả ẩ ầ ứ ỉ

3.4 Cài đặt Node red và MQTT broker-

Sau khi cài đặt hệ điều hành Raspberry OS cần cài đặt và tinh chỉnh Node-red và MQTT broker, c th ụ ể như sau:

• Cài đặt Node-red: o Cài đặt Node.js bằng terminal o Cài đặt Node-red bằng câu lệnh “npm install -g node-red” o Cài đặt để Node-red tự động khởi chạy mỗi khi Raspberry Pi khởi động

• Cài đặt MQTT broker: o Cài đặt Mosquitto (MQTT mã nguồn mở, xử lý các thông điệp MQTT) b ng ằ câu lệnh: “sudo apt install mosquitto” o Cài đặt để Mosquitto tự động khởi chạy mỗi khi Raspberry Pi khởi động o Chỉnh s a file config c a Moquittoử ủ cho phép các k t n i MQTT tế ố ừ Internet

Hình 3.6 Giao di n s d ng cệ ử ụ ủa Node-red

3.5 Thiết lập kế ối DDNS, PortForwardingt n

Port Forwarding là một kỹ thuật được sử ụng trong mạng máy tính để d chuyển tiếp lưu lượng mạng từ một cổng đến một thiết b có thể ị để đượ được c truy c p từ Internet, ậ Port Forwarding cho phép chuy n tiể ếp các kết nố ừ cổi t ng của địa chỉ IP công cộng đến cổng của địa chỉ IP nộ ội b Cụ thể trong hệ thống này là cho mở ổ c ng mạng để các thiết bị có thể truy cập vào Raspberry Pi để truy xu t và ghi dấ ữ liệu, đồng thời có thể thực hiện giao tiếp MQTT t Internet thay vì chừ ỉ có thể ử ụng mạ s d ng nôi b ộ Để thực hiện mở cổng mạng, chúng tôi truy c p vào trang quản lý moderm, mạng ậ và th c hi n cự ệ ấu hình như hình 3.7 Trong đó, cổng 1883 phục vụ giao th c MQTT, ứ cổng 1880 để truy c p vào server Node-red, cậ ổng 2244 để thực hiện điều khiển Raspberry Pi qua giao thức SSH Địa chỉ IP 192.168.1.65 là địa chỉ IP của Raspberry

Hình 3.7 Giao di n th c hi n Port Forwarding ệ ự ệ

Sau các khi mở cổng mạng, hệ thống đã có thể truy c p tậ ừ internet nhưng phải thông qua địa chỉ IP mạng Tuy nhiên dãy số này thường rất khó nhớ và mạng gia đình thường chỉ có IP đ ng (độ ịa ch IP công cộng b thay đổi sau một thời gian), do đó chúng ỉ ị tôi s dử ụng d ch vị ụ DDNS (Dynamic Domain Name System - H th ng ệ ố giúp tự động cập nhật địa chỉ IP của một thiết bị mạng đến một tên miền phân giải DNS cụ thể) để có thể truy cập vào h th ng b ng tên miệ ố ằ ền Các bước th c hi n c thự ệ ụ ể:

• Đăng ký dịch vụ DDNS với tên miền, hiện nay có nhiều d ch vụ ị cho phép đăng ký DDNS miễn phí như: NoIP, Duck DDNS, Dynu… Trong hệ thống này chúng tôi s d ng d ch v NoIP ử ụ ị ụ

• Truy c p vào trang qu n lý moderm m ng, ch n m c DDNS Configuration ậ ả ạ ọ ụ

• Thực hiện cài đặt như hình 3.8

Hình 3.8 Cài đặt dịch vụ DDNS 3.6 Lập trình vi điều khiển

Trong đề tài này chúng tôi sử dụng vi điều khiển ESP32, vi c lệ ập trình được thực hiện trên PlatformIO – một môi trường phát tri n tích h p IDEể ợ dùng cho vi c phát tri n ệ ể phần m m và quề ản lý mã nguồn cho các ứng dụng IoT

Mã n ồn đượgu c viết bằng ngôn ngữ C++ trên nền tảng Arduino cho vi điều khiển ESP32

Hình 3.10 Sơ đồ khối tổng quan quy trình hoạt động của hệ thống

• Kết n i Wifiố : kết nối vi điều khiển ESP32 với Internet, để có thể giao ti p vế ới server

• Khai báo MQTT broker và hàm Callback: Cần khai báo MQTT broker cụ th vể ới các tham số địa chỉ IP (tên mi n), cề ổng mạng của MQTT broker để vi xử lý có thể thực hi n các thao tácệ Publish và Subscribe ữ ệu Hàm Callback để ử d li x lý các dữ li u nhệ ận đượ ừ server thành các lc t ệnh điều khi n ể

• Lắng nghe dữ liệ ừ server: Liên tu t ục lắng nghe các dữ liệu g i vử ề từ server do người dùng điều khiển

• Thực hi n hàm callbackệ : Xử lý các dữ liệu lắng nghe được để điều ch nh các ỉ tham s cố ủa hệ ống: chu kì cậ th p nh t d li u, b t t t cậ ữ ệ ậ ắ ảm biến…

• Đọc dữ liệu cảm biến và gửi lên server: ESP32 lần lượ đọt c giá trị các c m bi n, ả ế tổng hợp thành 1 đoạn JSON và tiến hành gửi lên server sau m i thỗ ời gian được cài đặt

Hình 3.11 Sơ đồ khối hàm kết nối Wifi 3.6.2 Hàm callback

Hình 3.12 Sơ đồ kh i hàm Callback ố

3.6.3 Đọc dữ liệu cảm biến và gửi lên server

Các dữ liệu từ ảm bi n m c ế ực nư c, đớ ộ đục, độ pH được đọc qua ADC ADS1115 bằng giao th c I2Cứ , sau đó đọc cảm biến nhiệt độ bằng giao thức OneWire Tấ ả ữt c d liệu đọc được sẽ được đóng gói thành 1 chuỗi JSON và được gửi lên server bằng phương thức Publish

Tại mặc định, bi n TimetoUpdate sế ẽ có giá trị là 3000ms, khi người dùng thay đổi giá trị này bằng cách nh p lệnh trên ậ dashboard, hệ thống sẽ t ự động c p nh t giá ậ ậ trị mới và đưa và so sánho

Hình 3.13 Sơ đồ khối hàm đọc dữ ệ li u c m bi n và ả ế gửi lên server

3.7 Thiết kế và xây dựng Dashboard

Trong hệ thống giám sát chất lượng nước ứng dụng IoT, dashboard đóng vai trò là bảng điều khi n hể ệ thống, là nơi dữ ệu được hiể li n thị dưới d ng biạ ểu đồ theo th i gian ờ thực Dashboard được xây d ng bự ằng các công cụ ủ c a Node-Red trên n n tề ảng Node.js

CƠ SỞ LÝ THUYẾT

THIẾT KẾ VÀ THI CÔNG HỆ THỐNG

Cài đặt Node-red và MQTT broker

Sau khi cài đặt hệ điều hành Raspberry OS cần cài đặt và tinh chỉnh Node-red và MQTT broker, c th ụ ể như sau:

• Cài đặt Node-red: o Cài đặt Node.js bằng terminal o Cài đặt Node-red bằng câu lệnh “npm install -g node-red” o Cài đặt để Node-red tự động khởi chạy mỗi khi Raspberry Pi khởi động

• Cài đặt MQTT broker: o Cài đặt Mosquitto (MQTT mã nguồn mở, xử lý các thông điệp MQTT) b ng ằ câu lệnh: “sudo apt install mosquitto” o Cài đặt để Mosquitto tự động khởi chạy mỗi khi Raspberry Pi khởi động o Chỉnh s a file config c a Moquittoử ủ cho phép các k t n i MQTT tế ố ừ Internet

Hình 3.6 Giao di n s d ng cệ ử ụ ủa Node-red

3.5 Thiết lập kế ối DDNS, PortForwardingt n

Port Forwarding là một kỹ thuật được sử ụng trong mạng máy tính để d chuyển tiếp lưu lượng mạng từ một cổng đến một thiết b có thể ị để đượ được c truy c p từ Internet, ậ Port Forwarding cho phép chuy n tiể ếp các kết nố ừ cổi t ng của địa chỉ IP công cộng đến cổng của địa chỉ IP nộ ội b Cụ thể trong hệ thống này là cho mở ổ c ng mạng để các thiết bị có thể truy cập vào Raspberry Pi để truy xu t và ghi dấ ữ liệu, đồng thời có thể thực hiện giao tiếp MQTT t Internet thay vì chừ ỉ có thể ử ụng mạ s d ng nôi b ộ Để thực hiện mở cổng mạng, chúng tôi truy c p vào trang quản lý moderm, mạng ậ và th c hi n cự ệ ấu hình như hình 3.7 Trong đó, cổng 1883 phục vụ giao th c MQTT, ứ cổng 1880 để truy c p vào server Node-red, cậ ổng 2244 để thực hiện điều khiển Raspberry Pi qua giao thức SSH Địa chỉ IP 192.168.1.65 là địa chỉ IP của Raspberry

Hình 3.7 Giao di n th c hi n Port Forwarding ệ ự ệ

Sau các khi mở cổng mạng, hệ thống đã có thể truy c p tậ ừ internet nhưng phải thông qua địa chỉ IP mạng Tuy nhiên dãy số này thường rất khó nhớ và mạng gia đình thường chỉ có IP đ ng (độ ịa ch IP công cộng b thay đổi sau một thời gian), do đó chúng ỉ ị tôi s dử ụng d ch vị ụ DDNS (Dynamic Domain Name System - H th ng ệ ố giúp tự động cập nhật địa chỉ IP của một thiết bị mạng đến một tên miền phân giải DNS cụ thể) để có thể truy cập vào h th ng b ng tên miệ ố ằ ền Các bước th c hi n c thự ệ ụ ể:

• Đăng ký dịch vụ DDNS với tên miền, hiện nay có nhiều d ch vụ ị cho phép đăng ký DDNS miễn phí như: NoIP, Duck DDNS, Dynu… Trong hệ thống này chúng tôi s d ng d ch v NoIP ử ụ ị ụ

• Truy c p vào trang qu n lý moderm m ng, ch n m c DDNS Configuration ậ ả ạ ọ ụ

• Thực hiện cài đặt như hình 3.8

Hình 3.8 Cài đặt dịch vụ DDNS 3.6 Lập trình vi điều khiển

Trong đề tài này chúng tôi sử dụng vi điều khiển ESP32, vi c lệ ập trình được thực hiện trên PlatformIO – một môi trường phát tri n tích h p IDEể ợ dùng cho vi c phát tri n ệ ể phần m m và quề ản lý mã nguồn cho các ứng dụng IoT

Mã n ồn đượgu c viết bằng ngôn ngữ C++ trên nền tảng Arduino cho vi điều khiển ESP32

Hình 3.10 Sơ đồ khối tổng quan quy trình hoạt động của hệ thống

• Kết n i Wifiố : kết nối vi điều khiển ESP32 với Internet, để có thể giao ti p vế ới server

• Khai báo MQTT broker và hàm Callback: Cần khai báo MQTT broker cụ th vể ới các tham số địa chỉ IP (tên mi n), cề ổng mạng của MQTT broker để vi xử lý có thể thực hi n các thao tácệ Publish và Subscribe ữ ệu Hàm Callback để ử d li x lý các dữ li u nhệ ận đượ ừ server thành các lc t ệnh điều khi n ể

• Lắng nghe dữ liệ ừ server: Liên tu t ục lắng nghe các dữ liệu g i vử ề từ server do người dùng điều khiển

• Thực hi n hàm callbackệ : Xử lý các dữ liệu lắng nghe được để điều ch nh các ỉ tham s cố ủa hệ ống: chu kì cậ th p nh t d li u, b t t t cậ ữ ệ ậ ắ ảm biến…

• Đọc dữ liệu cảm biến và gửi lên server: ESP32 lần lượ đọt c giá trị các c m bi n, ả ế tổng hợp thành 1 đoạn JSON và tiến hành gửi lên server sau m i thỗ ời gian được cài đặt

Hình 3.11 Sơ đồ khối hàm kết nối Wifi 3.6.2 Hàm callback

Hình 3.12 Sơ đồ kh i hàm Callback ố

3.6.3 Đọc dữ liệu cảm biến và gửi lên server

Các dữ liệu từ ảm bi n m c ế ực nư c, đớ ộ đục, độ pH được đọc qua ADC ADS1115 bằng giao th c I2Cứ , sau đó đọc cảm biến nhiệt độ bằng giao thức OneWire Tấ ả ữt c d liệu đọc được sẽ được đóng gói thành 1 chuỗi JSON và được gửi lên server bằng phương thức Publish

Tại mặc định, bi n TimetoUpdate sế ẽ có giá trị là 3000ms, khi người dùng thay đổi giá trị này bằng cách nh p lệnh trên ậ dashboard, hệ thống sẽ t ự động c p nh t giá ậ ậ trị mới và đưa và so sánho

Hình 3.13 Sơ đồ khối hàm đọc dữ ệ li u c m bi n và ả ế gửi lên server

3.7 Thiết kế và xây dựng Dashboard

Trong hệ thống giám sát chất lượng nước ứng dụng IoT, dashboard đóng vai trò là bảng điều khi n hể ệ thống, là nơi dữ ệu được hiể li n thị dưới d ng biạ ểu đồ theo th i gian ờ thực Dashboard được xây d ng bự ằng các công cụ ủ c a Node-Red trên n n tề ảng Node.js

3.7.1 Lấy dữ ệ li u v server ề Để lấy dữ liệu từ MQTT broker, server cần phải subscribe vào topic mà ESP32 vừa publish dữ liệu lên Dữ liệu nhận được sẽ là một chuỗi JSON, cần ph i th c hiả ự ện tách chuỗi JSON thành các từng giá tr ng v i t ng lo i c m bi n Do server ch y trên ị ứ ớ ừ ạ ả ế ạ nền t ng Node.js nên vi c tách giá tr ả ệ ị cũng cần được th c hiự ện b ng khằ ối hàm Node.js

Hình 3.14 Sơ đồ khối lấy dữ liệu về server

Hình 3.15 K t qu lế ả ấy dữ ệ li u v server ề 3.7.2 Hi n th d li u theo d ng biể ị ữ ệ ạ ểu đồ

Sau khi tách chuỗi JSON thành các dữ li u ệ ứng v i t ng loớ ừ ại cảm bi n, m i giá trế ỗ ị cảm biến sẽ được kết n i v i mố ớ ột khố ẽ bii v ểu đồ Để thêm tính năng xóa các dữ ệu li hiển thị trên biểu đồ ầ, c n ph i lả ập trình thêm các khối cho phép xóa các giá trị đang tồn tại trên biểu đồ khi nhấn vào nút “Clear”

Hình 3.16 Kh i v biố ẽ ểu đồ Node-red được tích h p m t sợ ộ ố dạng biều đồ, tuy nhiên các biểu đồ này còn đơn giản, giao diện chưa được đ p, do đó cẹ ần chỉnh sửa bằng vi c thêm các kh i “Template” ệ ố để thêm thuộc tính CSS cho từng biểu đồ Vi c này giúp cho các biểu đồ trực quan hơn, ệ các chỉ s ố được bi u th ể ị rõ ràng hơn

Hình 3.17 K t qu v biế ả ẽ ểu đồ

3.7.3 Thi t k bế ế ảng điều khi n h th ng ể ệ ố

Lập trình vi điều khiển

Trong đề tài này chúng tôi sử dụng vi điều khiển ESP32, vi c lệ ập trình được thực hiện trên PlatformIO – một môi trường phát tri n tích h p IDEể ợ dùng cho vi c phát tri n ệ ể phần m m và quề ản lý mã nguồn cho các ứng dụng IoT

Mã n ồn đượgu c viết bằng ngôn ngữ C++ trên nền tảng Arduino cho vi điều khiển ESP32

Hình 3.10 Sơ đồ khối tổng quan quy trình hoạt động của hệ thống

• Kết n i Wifiố : kết nối vi điều khiển ESP32 với Internet, để có thể giao ti p vế ới server

• Khai báo MQTT broker và hàm Callback: Cần khai báo MQTT broker cụ th vể ới các tham số địa chỉ IP (tên mi n), cề ổng mạng của MQTT broker để vi xử lý có thể thực hi n các thao tácệ Publish và Subscribe ữ ệu Hàm Callback để ử d li x lý các dữ li u nhệ ận đượ ừ server thành các lc t ệnh điều khi n ể

• Lắng nghe dữ liệ ừ server: Liên tu t ục lắng nghe các dữ liệu g i vử ề từ server do người dùng điều khiển

• Thực hi n hàm callbackệ : Xử lý các dữ liệu lắng nghe được để điều ch nh các ỉ tham s cố ủa hệ ống: chu kì cậ th p nh t d li u, b t t t cậ ữ ệ ậ ắ ảm biến…

• Đọc dữ liệu cảm biến và gửi lên server: ESP32 lần lượ đọt c giá trị các c m bi n, ả ế tổng hợp thành 1 đoạn JSON và tiến hành gửi lên server sau m i thỗ ời gian được cài đặt

Hình 3.11 Sơ đồ khối hàm kết nối Wifi 3.6.2 Hàm callback

Hình 3.12 Sơ đồ kh i hàm Callback ố

3.6.3 Đọc dữ liệu cảm biến và gửi lên server

Các dữ liệu từ ảm bi n m c ế ực nư c, đớ ộ đục, độ pH được đọc qua ADC ADS1115 bằng giao th c I2Cứ , sau đó đọc cảm biến nhiệt độ bằng giao thức OneWire Tấ ả ữt c d liệu đọc được sẽ được đóng gói thành 1 chuỗi JSON và được gửi lên server bằng phương thức Publish

Tại mặc định, bi n TimetoUpdate sế ẽ có giá trị là 3000ms, khi người dùng thay đổi giá trị này bằng cách nh p lệnh trên ậ dashboard, hệ thống sẽ t ự động c p nh t giá ậ ậ trị mới và đưa và so sánho

Hình 3.13 Sơ đồ khối hàm đọc dữ ệ li u c m bi n và ả ế gửi lên server

Thiết kế và xây dựng Dashboard

Trong hệ thống giám sát chất lượng nước ứng dụng IoT, dashboard đóng vai trò là bảng điều khi n hể ệ thống, là nơi dữ ệu được hiể li n thị dưới d ng biạ ểu đồ theo th i gian ờ thực Dashboard được xây d ng bự ằng các công cụ ủ c a Node-Red trên n n tề ảng Node.js

3.7.1 Lấy dữ ệ li u v server ề Để lấy dữ liệu từ MQTT broker, server cần phải subscribe vào topic mà ESP32 vừa publish dữ liệu lên Dữ liệu nhận được sẽ là một chuỗi JSON, cần ph i th c hiả ự ện tách chuỗi JSON thành các từng giá tr ng v i t ng lo i c m bi n Do server ch y trên ị ứ ớ ừ ạ ả ế ạ nền t ng Node.js nên vi c tách giá tr ả ệ ị cũng cần được th c hiự ện b ng khằ ối hàm Node.js

Hình 3.14 Sơ đồ khối lấy dữ liệu về server

Hình 3.15 K t qu lế ả ấy dữ ệ li u v server ề 3.7.2 Hi n th d li u theo d ng biể ị ữ ệ ạ ểu đồ

Sau khi tách chuỗi JSON thành các dữ li u ệ ứng v i t ng loớ ừ ại cảm bi n, m i giá trế ỗ ị cảm biến sẽ được kết n i v i mố ớ ột khố ẽ bii v ểu đồ Để thêm tính năng xóa các dữ ệu li hiển thị trên biểu đồ ầ, c n ph i lả ập trình thêm các khối cho phép xóa các giá trị đang tồn tại trên biểu đồ khi nhấn vào nút “Clear”

Hình 3.16 Kh i v biố ẽ ểu đồ Node-red được tích h p m t sợ ộ ố dạng biều đồ, tuy nhiên các biểu đồ này còn đơn giản, giao diện chưa được đ p, do đó cẹ ần chỉnh sửa bằng vi c thêm các kh i “Template” ệ ố để thêm thuộc tính CSS cho từng biểu đồ Vi c này giúp cho các biểu đồ trực quan hơn, ệ các chỉ s ố được bi u th ể ị rõ ràng hơn

Hình 3.17 K t qu v biế ả ẽ ểu đồ

3.7.3 Thi t k bế ế ảng điều khi n h th ng ể ệ ố

Theo yêu cầu đặt ra, c n phầ ải có chức năng điều khi n hể ệ thống từ dashboard C ụ thể, người dùng có thể bật t t c m biắ ả ến và thay đổ chu kỳ ập nh t di c ậ ữ ệu của hệ ố li th ng Để thực hiện việc này, cần phải sử dụng các khối “Button” và “Form” của Node-red Mỗi khi Button được thay đổi trạng thái hoặc người dùng nh p giá tr thậ ị ời gian để hệ thống c p nh t dậ ậ ữ liệu m i; server sớ ẽ gử ệi l nh về Client Client th c hi n phân tích ự ệ lệnh và đưa ra quyết định tương ứng

Hình 3.18 Khối điều khi n h th ng ể ệ ố

Hình 3.19 Giao diện điều khi n h th ng ể ệ ố

3.7.4 Phát triển tính năng tả ữ ệi d li u v ề máy người dùng Để có thể tải dữ liệu về, hệ thống cẩn phải liên tục ghi dữ liệu thu được vào một file csv Do đó cần cấp quyền để Node-red có thể truy cập vào thư mục của máy chủ Tại thời điểm bắt đầu sang ngày mới ho c thặ ời điểm đầu tiên server hoạt động trong ngày, hệ thống tự động kh i tở ạo một file csv v i tên các cớ ột tương ứng là th i gianờ và giá tr t ng c m bi n v i c u trúc tên file là ngàyị ừ ả ế ớ ấ , tháng, năm

Cần t o mạ ột form để người dùng lựa chọn ngày muốn tải dữ liệu về Sau khi người dùng ch n ngày, h th ng t ng tọ ệ ố ự độ ạo đường link d n tẫ ới file tương ứng và gán vào nút

“Download”, s n sàng ch request t i file cẵ ờ ả ủa người dùng Khi người dùng nh n nút ấ

“Download”, h thệ ống tiền hành đọc file và tr v ả ề response để người dùng tải được file dữ li u ệ

Hình 3.20 Kh i kh i t o file và ghi d li u ố ở ạ ữ ệ

Hình 3.21 Khối tính năng tả ữ ệi d li u v máy ề

KẾ T QUẢ VÀ ĐÁNH GIÁ

Kế t quả đạt đượ c

• Bước đầu biết cách nghiên cứu độc l p một đề tài Viậ ệc bi t cách nghiên c u mế ứ ột đề tài giúp chúng tôi có thêm các kĩ năng và kiến thức để tiếp t c th c hi n nghiên ụ ự ệ cứu các đề tài khác trong tương lai

• Biết cách lập trình vi xử lý ESP32 và các loại c m biả ến quan trắc chất lượng nước ESP32 là dòng vi điều khiển rất phổ biến, và ngày càng được sử dụng nhiều trong các ng d ng IoT, viứ ụ ệc sử ụ d ng thành thạo dòng vi điều khi n này ể là bước đệm để tiếp cận các dòng vi xử lý khác, nâng cao kĩ năng về l p trình nhúng và ậ IoT

• Học được các kĩ thuật về thi t lế ập kết n i Internet cho server ố

• Biết cách tạo m t server vộ ới Node-red và MQTT

• Bước đầu tiếp cận việc phát triển giao diện người dùng bằng các công cụ có sẵn và ch nh sỉ ửa các thuộc tính để có giao ệ di n tr c quan, rõ rànự g hơn

Kết quả thực nghiệm

Video th c nghiự ệm: Click vào đây

4.2.1 Kh i chở ạy và kết nối toàn b h th ng ộ ệ ố

Hình 4.1 Kết qu khả ởi chạy hệ ố th ng 4.2.2 Hi n th ể ị các biểu đồ lên dashboard

Hình 4.2 Các biểu đồ trên dashboard

4.2.2 Điều khiển hệ thống từ dasboard

Hình 4.3 K t qu ế ả điều khiển b t, t t cậ ắ ảm biến

4.2.3 Tải dữ ệ li u v ề máy người dùng

Đánh giá kết quả

Sau 15 tuần nghiên cứu và phát triển, sản phẩm cơ bản đáp ứng được các yêu cầu đặt ra Dưới đây là một số nhận xét

• Phần cứng (mạch điện, hộp b o v ) chả ệ ắc chắn, nh gỏ ọn, d dàng lễ ắp đặt và sửa chữa, thay th linh ki n, các linh ki n ch y ế ệ ệ ạ ổn định, không x y ra ch p cháy ả ậ

• Chương trình trên vi xử lý ESP32 chạ ổn định, độy trễ thấp (thời gian truyền – nhận d li u tữ ệ ới server dưới 1 giây)

• Server hoạt động ổn định, các dữ ệu đượ li c toàn v n ẹ

• Giao di n dashboard thân thi n vệ ệ ới người dùng

• Mạch điện được chế tạo bằng phương pháp hàn nhiệt vào bảng PCB lỗ, kinh nghiệm hàn mạch chưa nhiều nên tính thẩm mĩ chưa cao

• Chưa được tích hợp khả năng thay đổi thông số kết nối bằng giao diện, việc sửa

Hướng phát triển

• Mở rộng số lượng Client kết nối đến server

• Tích hợp khả năng tùy chỉnh k t n i m ng cho t ng Client b ng giao di n ế ố ạ ừ ằ ệ

• Đa dạng hóa các loại cảm biến: cảm biến nồng độ Oxy hòa tan, cảm biến ion… để nâng cao khả năng và chất lượng giám sát, theo dõi

• Triển khai h th ng xệ ố ử lý nước d a trên các tự hông s quan trố ắc được

Ngày đăng: 04/05/2024, 14:52

HÌNH ẢNH LIÊN QUAN

Hình 3.3. B n thi t k  3D v  b ả ế ế ỏ ảo vệ ạch điệ  m n - nghiên cứu xây dựng hệ thống giám sát chất lượng nước ứng dụng iot
Hình 3.3. B n thi t k 3D v b ả ế ế ỏ ảo vệ ạch điệ m n (Trang 30)
Hình 3.2. M ạch điệ n hoàn ch nh  ỉ 3.3.2. Thi t k  và gia công v  bế ế ỏ ảo vệ - nghiên cứu xây dựng hệ thống giám sát chất lượng nước ứng dụng iot
Hình 3.2. M ạch điệ n hoàn ch nh ỉ 3.3.2. Thi t k và gia công v bế ế ỏ ảo vệ (Trang 30)
Hình 3.4. S n ph m v  b o v   ả ẩ ỏ ả ệ - nghiên cứu xây dựng hệ thống giám sát chất lượng nước ứng dụng iot
Hình 3.4. S n ph m v b o v ả ẩ ỏ ả ệ (Trang 31)
Hình 3.5. S n ph m ph n c ng hoàn ch nh  ả ẩ ầ ứ ỉ 3.4. Cài đặt Node red và MQTT broker - nghiên cứu xây dựng hệ thống giám sát chất lượng nước ứng dụng iot
Hình 3.5. S n ph m ph n c ng hoàn ch nh ả ẩ ầ ứ ỉ 3.4. Cài đặt Node red và MQTT broker (Trang 31)
Hình 3.6. Giao di n s  d ng c ệ ử ụ ủa Node -red  3.5.  Thiết l ập kế ối DDNS, PortForwardingt n - nghiên cứu xây dựng hệ thống giám sát chất lượng nước ứng dụng iot
Hình 3.6. Giao di n s d ng c ệ ử ụ ủa Node -red 3.5. Thiết l ập kế ối DDNS, PortForwardingt n (Trang 32)
Hình 3.7. Giao di n th c hi n Port Forwarding  ệ ự ệ - nghiên cứu xây dựng hệ thống giám sát chất lượng nước ứng dụng iot
Hình 3.7. Giao di n th c hi n Port Forwarding ệ ự ệ (Trang 33)
Hình 3.10. Sơ đồ  khối tổng quan quy trình ho ạt độ ng của hệ thống  Giải thích lưu đồ: - nghiên cứu xây dựng hệ thống giám sát chất lượng nước ứng dụng iot
Hình 3.10. Sơ đồ khối tổng quan quy trình ho ạt độ ng của hệ thống Giải thích lưu đồ: (Trang 34)
Hình  3.13. Sơ đồ  kh ối hàm đọc dữ ệ  li u c m bi n và  ả ế gửi lên server - nghiên cứu xây dựng hệ thống giám sát chất lượng nước ứng dụng iot
nh 3.13. Sơ đồ kh ối hàm đọc dữ ệ li u c m bi n và ả ế gửi lên server (Trang 36)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN