Giới thiệu đề tài
Việc theo dõi giá trị độ ẩm của đất để điều chỉnh lượng nước cho cây là một việc rất quan trọng Tuy nhiên, để theo dõi chính xác và thực hiện việc này trong thời gian dài đòi hỏi rất nhiều công sức Với sự giúp đỡ của các thiết bị điện tử, chúng ta có thể làm việc này dễ dàng, hiệu quả và ít tốn công sức hơn.
Hệ thống theo dõi độ ẩm và điều khiển tưới cây tự động giúp chúng ta xem giá trị độ ẩm của đất và điều khiển máy bơm nước từ xa, lên lịch tưới cây định kỳ, theo dõi giá trị độ ẩm của đất để tự động điều khiển máy bơm nước hoạt động cho phù hợp.
Mô tả chức năng của hệ thống
Chức năng
Nhận và hiển thị dữ liệu độ ẩm mới nhất từ thiết bị cảm biến độ ẩm, dữ liệu trạng thái hoạt động hiện tại của máy bơm, cập nhật liên tục (mỗi 5s) để hiển thị thông tin mới nhất tại thời điểm đó.
Xem dữ liệu độ ẩm nâng cao: người dùng có thể xem dữ liệu độ ẩm trong một khoảng thời gian (lựa chọn theo ý muốn) dưới dạng biểu đồ.
Thiết lập ngưỡng độ ẩm cho cảm biến độ ẩm: người dùng thực hiện thiết lập/điều chỉnh ngưỡng độ ẩm trên và ngưỡng độ ẩm dưới mong muốn nhằm thực hiện chức năng điều khiển thiết bị tự động.
Điều khiển thiết bị tự động: Ứng dụng tự động điều gửi lệnh khiển trạng thái bật/tắt của máy bơm dựa theo ngưỡng độ ẩm mà người dùng thiết lập Cứ mỗi 30 giây, máy bơm sẽ dựa vào giá trị độ ẩm trung bình của cảm biến trong 2 phút trước đó để gửi file json điều khiển động cơ đến server: gửi lệnh bật máy bơm khi giá trị độ ẩm thấp hơn ngưỡng dưới và gửi lệnh tắt máy bơm khi giá trị độ ẩm cao hơn ngưỡng trên.
Điều khiển thiết bị thủ công: Người dùng gửi lệnh điều khiển trạng thái bật/tắt máy bơm theo mong muốn bằng cách thao tác thủ công trên giao diện.
Xem lịch sử hoạt động: người dùng xem lại dữ liệu độ ẩm, lịch sử thiết lập ngưỡng, lịch sử điều khiển máy bơm trong khoảng thời gian mong muốn.
Quản lý nông trại: Người quản trị có thể xem nông trại, thêm nông trại, cập nhật thông tin nông trại, ngừng/tái hoạt động nông trại, xem thiết bị trong nông trại, thêm thiết bị, xoá thiết bị.
Quản lý người dùng: Người quản trị có thể xem danh sách tài khoản người dùng, thêm người dùng, quản lý nông trại liên kết với người dùng, thêm/xóa nông trại cho người dùng.
Xem cảnh báo thiết bị hư: Người quản trị có thể xem các cảnh báo thiết bị hư và xác nhận thiết bị nào đã xử lý.
Tổ chức lưu trữ dữ liệu nghiệp vụ gồm dữ liệu các thiết bị và các kiểu thực thể khác trong hệ thống, lập trình web app và kết nối được web app client, iot server, business server và thiết bị: Tất cả dữ liệu được lưu trữ trongMySQL.
Use case toàn hệ thống
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 1: Sơ lược hệ thống
Hình 2: Use case hệ thống
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Use case chi tiết
Hình 3 Use case Đăng nhập
Use case name Đăng nhập
Created By Trần Thanh Tuấn
Actor Người dùng, Quản trị
Description Khi truy cập vào trang chủ/trang quản trị, nếu chưa đăng nhập, người dùng/quản trị được chuyển hướng đến trang “Đăng nhập”, người dùng/quản trị tiến hành đăng nhập để sử dụng các chức năng hệ thống.
Preconditions Người dùng/Quản trị đã ở trang “Đăng nhập”
Postconditions Người dùng/quản trị đăng nhập thành công và có thể sử dụng các chức năng hệ thống.
Normal flow 1 Người dùng nhập Tài khoản, Mật khẩu vào các trường thông tin.
2 Người dùng nhấn nút “Đăng nhập” để gửi yêu cầu đăng nhập.
3 Hệ thống kiểm tra thông tin tài khoản của khách hàng hợp lệ, gửi lại thông tin tài khoản.
4 Hệ thống hiển thị thông báo đăng nhập thành công.
5 Hệ thống kiểm tra “loại người dùng” trong thông tin trả về và chuyển hướng đến trang chủ của “Người dùng”/”Quản trị” tùy theo loại người dùng.
3a Hệ thống kiểm tra thông tin tài khoản người dùng cung cấp không có trên hệ thống, phản hồi về mã lỗi.
4a Hệ thống hiển thị thông báo lỗi cho người dùng.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 4 Giao diện trang đăng nhập
Hình 5 Người dùng nhập các trường thông tin
Hình 6 Hệ thống hiển thị thông báo thành công
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 7 Thông tin đăng nhập không chính xác, hệ thống hiển thị thông báo
No Field Name Description Control Data Mandatory Default
1 Tên tài khoản Trường thông tin để Input Text Yes N/A nhập tên tài khoản
2 Mật khẩu Trường thông tin để Input Text Yes N/A nhập mật khẩu tài khoản
3 Đăng nhập Nút Đăng nhập, nhấn Button N/A Yes N/A vào để thực hiện đăng nhập b Xem thông số mới nhất thiết bị
Hình 8: Use case Xem thông số mới nhất thiết bị
Use case name Xem thông số mới nhất thiết bị (cảm biến độ ẩm, máy bơm)
Created By Trần Thanh Tuấn
Description Người dùng có thể xem được thông số độ ẩm mới nhất và tình trạng bật tắt của máy bơm ở ngay thời điểm đó.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Preconditions Các thiết bị (cảm biến độ ẩm, máy bơm) đã được kết nối thành công đến Broker Server Người dùng đã đăng nhập và đang ở trang chủ.
Postconditions Thông số mới nhất của các thiết bị được hiển thị cho người dùng xem.
Normal flow 1 Hệ thống lấy danh sách nông trại của tài khoản và hiển thị giao diện lựa chọn nông trại.
2 Người dùng lựa chọn nông trại muốn kiểm tra và nhấn “Xác nhận”
3 Hệ thống lấy dữ liệu mới nhất về thông số độ ẩm tình trạng và bật/tắt của máy bơm.
4 Hệ thống hiển thị các thông số và thời điểm cập nhật lên giao diện.
5 Người dùng xem các thông số và thời gian cập nhật.
6 Cứ sau mỗi 5 giây, hệ thống cập nhật lại dữ liệu và hiện thị trên giao diện.
2a Người dùng chưa chọn nông trại nhưng nhấn “Xác nhận”
2a1 Hệ thống hiển thị thông báo yêu cầu người dùng chọn nông trại. Alternative flow Không
Non-functional - Độ trễ khi thông số độ ẩm và tình trạng máy bơm được cập nhật lại và hiển thị cho người dùng < 1 giây.
- Độ trễ phản hồi cho các thao tác chuyển từ trang chính sang thẻ “Độ ẩm” và thẻ “Máy bơm” < 1 giây.
Hình 9: Giao diện khi người dùng mới truy cập vào trang chủ
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 10: Giao diện hiển thị các lựa chọn nông trại của tài khoản
Hình 11 Người dùng chưa chọn nông trại nhưng nhấn “Xác nhận”, hệ thống hiển thị thông báo
Hình 12 Giao diện hiển thị thông số mới nhất của thiết bị
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
No Field Name Description Control Data Mandato Default
1 Lựa chọn nông Nhấn vào để hiển thị Select/Option N/A Yes N/A trại danh sách nông trại và chọn nông trại
2 Xác nhận Nút Xác nhận, nhấn Button N/A Yes N/A vào để xác nhận chọn nông trại
3 Thời gian cập Hiển thị thông tin Display Text Yes N/A nhật thời gian cập nhật thông số độ ẩm mới nhất
4 Độ ẩm Hiển thị thông tin độ Display Text Yes N/A ẩm mới nhất
5 Máy bơm Hiển thị thông tin Display Text Yes N/A tình trạng máy bơm hiện tại
6 Thay đổi nông Hiển thị nông trại Select/Option N/A Yes N/A trại hiện tại Nhấn vào để hiển thị danh sách nông trại và chọn nông trại khác c Chức năng thiết lập ngưỡng cảm biến độ ẩm
Hình 13: Use case thiết lập ngưỡng cảm biến độ ẩm
Use case name Thiết lập ngưỡng cảm biến độ ẩm
Created By: Đỗ Lê Quang Trung
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Trigger Người dùng nhấn vào nút “Thiết lập ngưỡng” trong mục điều khiển máy bơm Preconditions Ứng dụng điều khiển và các thiết bị (cảm biến độ ẩm, máy bơm) đã được kết nối thành công đến Broker Người dùng đã truy cập vào trang “Độ ẩm”.
Postconditions Ngưỡng trên và ngưỡng dưới của độ ẩm đã được thiết lập.
Normal flow 1 Hệ thống hiển thị popup “Thiết lập ngưỡng độ ẩm”.
2 Người dùng điền thông số ngưỡng trên và ngưỡng dưới của độ ẩm.
3 Người dùng bấm nút “Save change”.
4 Hệ thống thông báo “threshold saved”
Alternative flows 3a Người dùng bấm nút “Close”.
3a1 Thoát khỏi popup, trở về trang “Máy bơm”
Exceptions 3b Người dùng nhấn chuột bên ngoài popup.
3b1 Thoát khỏi popup, trở về trang “Máy bơm”
4a Người dùng nhập sai dữ liệu.
4a1 Hệ thống thông báo “Dữ liệu không đúng yêu cầu”, tiếp tục bước 2 trong Normal flow.
4b Người dùng nhập ngưỡng dưới cao hơn ngưỡng trên, 4b1 Hệ thống thông báo “Ngưỡng dưới không được cao hơn ngưỡng trên”, tiếp tục bước 2 trong Normal flow.
Non-functional - Ngưỡng độ ẩm được cập nhật lên hệ thống tối đa 1 giây.
- Thời gian ứng dụng kiểm tra sự vượt ngưỡng của độ ẩm, gửi yêu cầu bật/tắt và máy bơm thực hiện đúng yêu cầu bật/tắt tối đa 3 phút.
Hình 14 Trạng thái máy bơm
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 15 Popup thiết lập ngưỡng
Hình 16 Thông báo thiết lập ngưỡng thành công
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
No Field Name Description Control Data Mandatory Default
1 Device status Trạng thái hiện tại Display Text Yes N/A của máy bơm
2 Upper Ngưỡng trên của độ Display Text Yes N/A threshold ẩm
3 Lower Ngưỡng dưới của độ Display Text Yes N/A threshold ẩm
4 Humidity Độ ẩm hiện tại Display Text Yes N/A information
5 Threshold Thiết lập ngưỡng độ Button N/A No N/A button ẩm
6 Manual switch Đóng/mở bảng điều Switch N/A No N/A khiển máy bơm thủ công
7 Close button Đóng popup thiết lập Button N/A No N/A ngưỡng
8 Upper input Nhập ngưỡng trên Input Integer No N/A
9 Lower input Nhập ngưỡng dưới Input Integer No N/A
10 Save button Lưu lại và thay đổi Button N/A No N/A ngưỡng
11 Succeed Dòng chữ thông báo Display Text Yes N/A notification đã thiết lập ngưỡng độ ẩm thành công
12 Error Dòng chữ thông báo Display Text Yes N/A notification lỗi khi nhập ngưỡng dưới cao hơn ngưỡng trên
13 Notification Đóng thông báo Button N/A No N/A buttion
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering d Chức năng điều khiển máy bơm
Hình 18 Use case điều khiển máy bơm
Chức năng gửi lệnh điều khiển máy bơm tự động:
Use-case Name: Gửi lệnh điều khiển máy bơm tự động
Actors: Người dùng, máy bơm
Created By: Đỗ Lê Quang Trung
Description: Cho phép người dùng điều khiển máy bơm tự động
Pre-conditions: 1 Thiết bị có kết nối Internet
Post-conditions: 1 Hiển thị thông tin và trạng thái hiện tại của máy bơm
Normal Flow Cứ mỗi 30 giây, máy bơm sẽ dựa vào giá trị độ ẩm trung bình của cảm biến trong 2 phút trước đó để gửi file json điều khiển động cơ đến server:
- Gửi lệnh bật máy bơm khi giá trị độ ẩm thấp hơn ngưỡng dưới
- Gửi lệnh tắt máy bơm khi giá trị độ ẩm cao hơn ngưỡng trên Alternative Flows:
Non-functional: - Thời gian gửi tín hiệu để khởi động/dừng máy bơm đến server dưới 1 giây
- Người dùng có thể dễ dàng sử dụng sau khi được hướng dẫn trong 5 phút
Chức năng gửi lệnh bật máy bơm thủ công:
Use-case Name: Gửi lệnh bật máy bơm thủ công
Actors Người dùng, máy bơm
Created By: Đỗ Lê Quang Trung
Description Cho phép người dùng điều khiển trực tiếp máy bơm
Trigger Người dùng nhấn vào nút “Điều khiển bằng tay” trong mục điều khiển máy bơm Pre-conditions 1 Thiết bị có kết nối Internet
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
2 Người dùng đã đăng nhập thiết bị Post-conditions 1 Hiển thị thông tin và trạng thái hiện tại của máy bơm
Normal Flow 1 Hiển thị giao diện chứa các thông tin của máy bơm
2 Người dùng nhấn nút “ON”
3 Hiện popup hỏi người dùng “Bạn có muốn bật máy bơm”
4 Người dùng nhấn tút “Có”
5 Gửi file json chứa lệnh bật máy bơm đến server Alternative Flows: 4a Người dùng không nhấn nút “Không”.
Exceptions: 4b Người dùng nhấp chuột bên ngoài popup
Non-functional: - Thời gian gửi tín hiệu để khởi động/dừng máy bơm đến server dưới 1 giây
- Người dùng có thể dễ dàng sử dụng sau khi được hướng dẫn trong 5 phút
Chức năng gửi lệnh tắt máy bơm thủ công:
Use-case Name: Gửi lệnh tắt máy bơm thủ công
Actors Người dùng, máy bơm
Created By: Đỗ Lê Quang Trung
Description Cho phép người dùng điều khiển trực tiếp máy bơm
Trigger Người dùng nhấn vào nút “Điều khiển bằng tay” trong mục điều khiển máy bơm Pre-conditions 1 Thiết bị có kết nối Internet
2 Người dùng đã đăng nhập thiết bị Post-conditions 1 Hiển thị thông tin và trạng thái hiện tại của máy bơm
Normal Flow 1 Hiển thị giao diện chứa các thông tin của máy bơm
2 Người dùng nhấn nút “OFF”
3 Hiện popup hỏi người dùng “Bạn có muốn tắt máy bơm”
4 Người dùng nhấn tút “Có”
5 Gửi file json chứa lệnh tắt máy bơm đến server Alternative Flows: 4a Người dùng không nhấn nút “Không”.
Exceptions: 4b Người dùng nhấp chuột bên ngoài popup
Non-functional: - Thời gian gửi tín hiệu để khởi động/dừng máy bơm đến server dưới 1 giây
- Người dùng có thể dễ dàng sử dụng sau khi được hướng dẫn trong 5 phút
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 20 Điều khiển máy bơm thủ công
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 22 Tắt máy bơm bằng tay
No Field Name Description Control Data Mandatory Default
1 Device status Trạng thái hiện tại của Display Text Yes N/A máy bơm
2 Upper Ngưỡng trên của độ Display Text Yes N/A threshold ẩm
3 Lower Ngưỡng dưới của độ Display Text Yes N/A threshold ẩm
4 Humidity Độ ẩm hiện tại Display Text Yes N/A information
5 Threshold Thiết lập ngưỡng độ Button N/A No N/A button ẩm
6 Manual Đóng/mở bảng điều Switch N/A No N/A switch khiển máy bơm thủ công
7 On button Mở máy bơm Button N/A No N/A
8 Off button Tắt máy bơm Button N/A No N/A
9 Notification 1 Dòng chữ thông báo Display Text Yes N/A
10 Yes button 1 Đồng ý bật máy bơm Button N/A No N/A
11 No button 1 Không đồng ý bật mày Button N/A No N/A bơm
12 Notification 2 Dòng chữ thông báo Display Text Yes N/A
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
13 Yes button 2 Đồng ý tắt máy bơm Button N/A No N/A
14 No button 2 Không đồng ý tắt mày Button N/A No N/A bơm e Chức năng xem lịch sử hoạt động
Hình 23 Usecase xem lịch sử hoạt động
Use-case Name: Chức năng xem lịch sử sensor
Created By: Nguyễn Văn Bảo Khánh
Description: Người dùng xem lại lịch sử dữ liệu khi cảm biến Publish Dữ liệu này bao gồm thời gian Publish, giá trị tại thời điểm Publish của các thiết bị và ID của mỗi sensor.
Trigger: Người dùng ấn vào nút “Lịch sử hoạt động” trong trang chủ ứng dụng Sau đó chọn xem “Lịch sử dữ liệu từ sensor”.
Pre-conditions: 1 Dữ liệu phải được tổ chức và lưu trữ vào Database.
2 Ứng dụng phải được kết nối đến Database.
3 Người dùng đã truy cập vào trang chủ ứng dụng.
Post-conditions: Người dùng xem được lịch sử hoạt động của các thiết bị liên quan. Normal Flow 1 Người dùng: Ở giao diện chính, bấm vào nút “Lịch sử hoạt động”.
2 Hệ thống: Chuyển sang giao diện “Lịch sử hoạt động”.
3 Người dùng: trong trang “Lịch sử” bấm chọn thời gian bắt đầu và thời gian kết thúc.
4 Người dùng: bấm vào tùy chọn: “Xem lịch sử dữ liệu từ sensor”.
5 Người dùng: ấn vào nút “Xác nhận”.
6 Hệ thống: hiển thị ra màn hình thông tin lịch sử hoạt động với các thông tin khách hàng đã lựa chọn.
Flows: - Người dùng bấm nút “Hủy”, hệ thống quay về giao diện chính. Exceptions: Exception 1 ở bước 2:
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
- Người dùng chọn thời gian bắt đầu lớn hơn hoặc bằng thời gian kết thúc thì sẽ hiện lên Alert “Không có dữ liệu được hiển thị” Người dùng ấn vào nút “OK” hệ thống sẽ refresh trang và quay lại bước 2. Non-functional: - Dữ liệu phải đảm bảo luôn sẵn sàng trong lúc user sử dụng.
- Phải có bản backup dữ liệu đề phòng sự cố.
- Thời gian phản hồi của Database < 10s.
Use-case Name: Chức năng xem lịch sử điều khiển
Created By: Nguyễn Văn Bảo Khánh
Description: Người dùng xem lại lịch sử dữ liệu khi điều khiển thiết bị máy bơm thủ công hoặc tự động Dữ liệu hiển thị bao gồm thời gian điều khiển, cường độ máy bơm, trạng thái điều khiển, kiểu điều khiển, ID của thiết bị và người dùng điều khiển.
Trigger: Người dùng ấn vào nút “Lịch sử hoạt động” trong trang chủ ứng dụng Sau đó chọn xem “Lịch sử điều khiển”.
Pre-conditions: 1 Dữ liệu phải được tổ chức và lưu trữ vào Database.
2 Ứng dụng phải được kết nối đến Database.
3 Người dùng đã truy cập vào trang chủ ứng dụng.
Post-conditions: Người dùng xem được lịch sử hoạt động của các thiết bị liên quan. Normal Flow 1 Người dùng: Ở giao diện chính, bấm vào nút “Lịch sử hoạt động”.
2 Hệ thống: Chuyển sang giao diện “Lịch sử hoạt động”.
3 Người dùng: trong trang “Lịch sử” bấm chọn thời gian bắt đầu và thời gian kết thúc.
4 Người dùng: bấm vào tùy chọn: “Xem lịch sử điều khiển”.
5 Người dùng: ấn vào nút “Xác nhận”.
6 Hệ thống: hiển thị ra màn hình thông tin lịch sử hoạt động với các thông tin khách hàng đã lựa chọn.
Flows: - Người dùng bấm nút “Hủy”, hệ thống quay về giao diện chính. Exceptions: Exception 1 ở bước 2:
- Người dùng chọn thời gian bắt đầu lớn hơn hoặc bằng thời gian kết thúc thì sẽ hiện lên Alert “Không có dữ liệu được hiển thị” Người dùng ấn vào nút “OK” hệ thống sẽ refresh trang và quay lại bước 2. Non-functional: - Dữ liệu phải đảm bảo luôn sẵn sàng trong lúc user sử dụng.
- Phải có bản backup dữ liệu đề phòng sự cố.
- Thời gian phản hồi của Database < 10s.
Use-case Name: Chức năng xem lịch sử thiết lập ngưỡng
Created By: Nguyễn Văn Bảo Khánh
Description: Người dùng xem lại lịch sử dữ liệu khi thiết lập ngưỡng độ ẩm Dữ liệu hiển thị bao gồm thời gian cập nhật, ngưỡng trên, ngưỡng dưới và user name người thiết lập.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Trigger: Người dùng ấn vào nút “Lịch sử hoạt động” trong trang chủ ứng dụng Sau đó chọn xem “Lịch sử thiết lập ngưỡng”.
Pre-conditions: 1 Dữ liệu phải được tổ chức và lưu trữ vào Database.
2 Ứng dụng phải được kết nối đến Database.
3 Người dùng đã truy cập vào trang chủ ứng dụng.
Post-conditions: Người dùng xem được lịch sử hoạt động của các thiết bị liên quan. Normal Flow 1 Người dùng: Ở giao diện chính, bấm vào nút “Lịch sử hoạt động”.
2 Hệ thống: Chuyển sang giao diện “Lịch sử thiết lập ngưỡng”.
3 Người dùng: trong trang “Lịch sử” bấm chọn thời gian bắt đầu và thời gian kết thúc.
4 Người dùng: bấm vào tùy chọn: “Xem lịch sử điều khiển”.
5 Người dùng: ấn vào nút “Xác nhận”.
6 Hệ thống: hiển thị ra màn hình thông tin lịch sử hoạt động với các thông tin khách hàng đã lựa chọn.
Flows: - Người dùng bấm nút “Hủy”, hệ thống quay về giao diện chính.
- Người dùng chọn thời gian bắt đầu lớn hơn hoặc bằng thời gian kết thúc thì sẽ hiện lên Alert “Không có dữ liệu được hiển thị” Người dùng ấn vào nút “OK” hệ thống sẽ refresh trang và quay lại bước 2.
Non-functional: - Dữ liệu phải đảm bảo luôn sẵn sàng trong lúc user sử dụng.
- Phải có bản backup dữ liệu đề phòng sự cố.
- Thời gian phản hồi của Database < 10s.
Hình 24 Trang lịch sử hoạt động
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 25 Trang lịch sử hoạt động sau khi người dùng lựa chọn thông tin và ấn “Xác nhận”
Hình 26 Trang lịch sử hoạt động khi người dùng nhập sai dữ liệu
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
No Field Name Description Control Data
1 Thời gian bắt Lựa chọn thời gian
Display Text Yes dd/mm/yyyy đầu bắt đầu
2 Thời gian kết Lựa chọn thời gian
Display Text Yes dd/mm/yyyy thúc kết thúc
3 Lịch sử dữ liệu Lựa chọn kiểu lịch sử
Input Selection Yes N/A từ sensor dữ liệu từ sensor
4 Lịch sử điều Lựa chọn kiểu lịch sử
Input Selection Yes N/A khiển điều khiển
5 Lịch sử thiết Lựa chọn kiểu lịch sử
Input Selection Yes N/A lập ngưỡng thiết lập ngưỡng
6 Xác nhận Xác nhận thông tin Button N/A Yes N/A
7 Hủy Hủy thông tin Button N/A Yes N/A
8 Arlert dùng nhập sai thông Display Alertbox No N/A tin
9 OK Tắt alertbox Button N/A Yes N/A f Chức năng xem độ ẩm nâng cao
Use-case Name: Xem thông tin độ ẩm nâng cao
Created By: Phan Văn Trường
Description: Hiện thị thông tin độ ẩm theo tùy chọn
Trigger: Người dùng nhấn vào nút “Độ ẩm” trên thanh menu.
Pre-conditions: 1 Ứng dụng (web) có kết nối internet.
2 Người dùng đã đăng nhập.
Post-conditions: Hiện thị thông tin độ ẩm theo tùy chọn của người dùng.
Normal Flow 1 Hiện theo đồ thị trực tiếp 7 dữ liệu độ ẩm mới nhất.
2 Người dùng bấm nút hiện thị theo ngày.
3 Độ thị độ ẩm thay đổi dữ liệu thành hiện thị dữ liệu gom theo ngày của 10 ngày gần nhất.
4 Người dùng bấm xem trực tiếp.
5 Quay lại giao diện đồ thị xem trực tiếp.
Alternative 2a Người dùng bấm nút Biểu đồ cột.
Flows: 3a Độ thị độ ẩm thay đổi hiện thị thành dạng biểu dồ cột.
2b Người dùng chọn khoảng thời gian.
3b Người dùng bấm Chọn thời gian.
3.1b Dữ liệu hiện thị theo khoảng thời gian đã chọn.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
3.2b Người dùng chọn xem chi tiết.
3.3b Dữ liệu hiện thị dang xem chi tiết
Exceptions: 1 Biểu đồ trống do không có dữ liệu
Non-functional: Dữ liệu được chuẩn hóa theo đúng định dạng ngày/tháng/năm.
Hình 28 Biểu độ cột độ ẩm
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 29 Biểu đồ đường độ ẩm
No Field Name Description Control Data
1 Xem theo ngày Chọn để hiện thị đồ
Button N/A Yes N/A thị theo ngày
2 Đồ thị Biểu dồ hiệnthị dữ
Display N/A Yes 7 dữ liệu độ ẩm liệu mới nhất
3 Biểu đồ cột Chọn để hiện thị biểu
Button N/A Yes N/A đồ theo dạng cột
4 Biểu đồ đường Chọn để hiện thị biểu
Button N/A Yes N/A đồ theo dạng đường
Cố định mốc Chọn để hiện thị biểu
5 đồ theo dạng cố định Button N/A Yes N/A thời gian gốc thời gian
6 Chọn khung Lựa chọn khoảng
Input String Yes DD/MM/YYYY thời gian thời gian
Chọn để hiện thị đồ
7 Chọn thời gian thị theo khoảng thời Button N/A Yes N/A gian đã chọn
8 Xem trực tiếp Chọn để quay lại chế
Button N/A No N/A độ xem trực tiếp
Chọn để xem dữ liệu
9 Xem chi tiết chi tiết chưa làm gom Button N/A No N/A cụm
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering g Chức năng quản lý nông trại
Hình 30 Use case Quản lý nông trại
Chức năng quản lý nông trại
Use case name Quản lý nông trại.
Created by Trần Phương Tĩnh.
Description Người quản trị xem danh sách các nông trại hiện có.
Preconditions Người quản trị đã đăng nhập thành công vào trang “Quản trị”.
Trigger Người quản trị bấm vào nút “Quản lý nông trại”.
Postconditions Hệ thống hiển thị được danh sách các nông trại hiện có trong cơ sở dữ liệu.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Normal flow 1 Hệ thống mở trang “Quản lý nông trại”.
2 Hệ thống lấy danh sách các nông trại hiện có từ cơ sở dữ liệu.
3 Hệ thống hiển thị danh sách các nông trại hiện có trong cơ sở dữ liệu.
3a Nếu không có nông trại nào được lưu trong cơ sở dữ liệu, hệ thống hiển thị “Hiện tại không có nông trại nào!”.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 32 Trang Quản lý nông trại
No Field Name Description Control Data Mandatory Default
1 Thêm nông Nút thêm nông trại Button N/A Yes N/A trại
2 Hình ảnh Hình ảnh nông trại Display Image Yes N/A
3 Thông tin Tên, địa chỉ nông trại Display Text Yes N/A nông trại
4 Cập nhật Nút cập nhật thông tin Button N/A Yes N/A nông trại
5 Ngừng hoạt Nút ngừng hoạt động Button N/A Yes N/A động nông trại
6 Xem thiết bị Nút xem thiết bị hiện Button N/A Yes N/A hiện có có trong nông trại
7 Hoạt động trở Nút hoạt động nông Button N/A Yes N/A lại trại trở lại
Chức năng thêm nông trại
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Use case name Thêm nông trại.
Created by Trần Phương Tĩnh.
Description Người quản trị thêm nông trại.
Preconditions Người quản trị đã đăng nhập thành công vào trang “Quản trị” và đang ở trang “Quản lý nông trại”.
Trigger Người quản trị bấm vào nút “Thêm nông trại”.
Postconditions Thông tin nông trại được thêm vào cơ sở dữ liệu thành công.
Normal flow 1 Hệ thống mở trang “Thêm nông trại”.
2 Người quản trị điền tên và địa chỉ của nông trại.
3 Người quản trị bấm nút “Lưu”.
4 Hệ thống thêm thông tin nông trại vào cơ sở dữ liệu thành công.
5 Hệ thống hiển thị thông báo “Nông trại đã được thêm vào hệ thống!”.
6 Người quản trị bấm nút “OK”.
7 Hệ thống mở lại trang “Thêm nông trại” để người quản trị có thể tiếp tục thêm nông trại.
3a Người quản trị bấm nút “Huỷ”.
3a1 Hệ thống mở trang “Quản lý nông trại”.
4a Nếu người quản trị nhập tên nông trại dài hơn 40 ký tự, hệ thống thêm thông tin nông trại vào cơ sở dữ liệu không thành công. 4a1 Hệ thống hiện thông báo “Vui lòng nhập tên nông trại có độ dài tối đa 40 ký tự!”.
Phân tích và thiết kế hệ thống
Deployment View
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Implement View
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Database
3.2.1 Bảng lưu thông tin nông trại
`id` int NOT NULL AUTO_INCREMENT,
3.2.2 Bảng lưu thông tin cảm biến độ ẩm
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering )
3.2.3 Bảng lưu thông tin máy bơm
3.2.4 Bảng lưu thông tin thời điểm sử dụng các thiết bị trong nông trại
`id` int NOT NULL AUTO_INCREMENT,
`end_date` varchar(255) DEFAULT NULL,
`start_date` varchar(255) DEFAULT NULL,
`farm_id` int DEFAULT NULL,
`moisture_sensor_id` varchar(255) DEFAULT NULL,
`pump_id` varchar(255) DEFAULT NULL,
KEY `FKm03oqpwkajc79okgv00pt11y3` (`farm_id`),
KEY `FKipekmoh41ajnihbsia3d03mrn` (`moisture_sensor_id`),
KEY `FK146vmuepi9ywuncu91334slps` (`pump_id`),
CONSTRAINT `FK146vmuepi9ywuncu91334slps` FOREIGN KEY (`pump_id`) REFERENCES `pumps` (`id`),
CONSTRAINT `FKipekmoh41ajnihbsia3d03mrn` FOREIGN KEY (`moisture_sensor_id`) REFERENCES `moisture_sen sors` (`id`),
CONSTRAINT `FKm03oqpwkajc79okgv00pt11y3` FOREIGN KEY (`farm_id`) REFERENCES `farms` (`id`)
3.2.5 Bảng lưu thông tin độ ẩm
`id` int NOT NULL AUTO_INCREMENT,
`updated_at` varchar(255) DEFAULT NULL,
`moisture_sensor_id` varchar(255) DEFAULT NULL,
KEY `FK84vu16wpq2r3ql6mfjupmreuw` (`moisture_sensor_id`),
CONSTRAINT `FK84vu16wpq2r3ql6mfjupmreuw` FOREIGN KEY (`moisture_sensor_id`) REFERENCES `moisture_se nsors` (`id`)
3.2.6 Bảng lưu thông tin điều khiển máy bơm
`id` int NOT NULL AUTO_INCREMENT,
`control_type` varchar(255) DEFAULT NULL,
`updated_at` varchar(255) DEFAULT NULL,
`pump_id` varchar(255) DEFAULT NULL,
`user_id` int DEFAULT NULL,
KEY `FKclw1qi7ieqr54vgca6eoadyad` (`pump_id`),
KEY `FKsvm1hu0k9bmsvgshr3kfbuiaj` (`user_id`),
CONSTRAINT `FKclw1qi7ieqr54vgca6eoadyad` FOREIGN KEY (`pump_id`) REFERENCES `pumps` (`id`),
CONSTRAINT `FKsvm1hu0k9bmsvgshr3kfbuiaj` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering )
3.2.7 Bảng lưu thông tin ngưỡng độ ẩm
`id` int NOT NULL AUTO_INCREMENT,
`updated_at` varchar(255) DEFAULT NULL,
`moisture_sensor_id` varchar(255) DEFAULT NULL,
`user_id` int DEFAULT NULL,
KEY `FK36bujf9f8m3jmjd858ykcnhtf` (`moisture_sensor_id`),
KEY `FK8yw7anxfc7crxfpx79iwsfy9j` (`user_id`),
CONSTRAINT `FK36bujf9f8m3jmjd858ykcnhtf` FOREIGN KEY (`moisture_sensor_id`) REFERENCES `moisture_sens ors` (`id`),
CONSTRAINT `FK8yw7anxfc7crxfpx79iwsfy9j` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
3.2.8 Bảng lưu thông tin cảnh báo máy hư
`id` int NOT NULL AUTO_INCREMENT,
`repaired_at` varchar(255) DEFAULT NULL,
`warned_at` varchar(255) DEFAULT NULL,
`moisture_sensor_id` varchar(255) DEFAULT NULL,
KEY `FK8gg6rmi3yent6dat7ag8b29fb` (`moisture_sensor_id`),
CONSTRAINT `FK8gg6rmi3yent6dat7ag8b29fb` FOREIGN KEY (`moisture_sensor_id`) REFERENCES `moisture_sens ors` (`id`)
3.2.9 Bảng lưu thông tin người dùng
`id` int NOT NULL AUTO_INCREMENT,
`create_time` varchar(255) DEFAULT NULL,
3.2.10 Bảng lưu thông tin quyền theo dõi nông trại của người dùng
`id` int NOT NULL AUTO_INCREMENT,
`farm_id` int DEFAULT NULL,
`user_id` int DEFAULT NULL,
KEY `FK7gjm27fo9g6k6f3n4gomld2ax` (`farm_id`),
KEY `FKdnmju29fjr2y7lhbklogrrdu4` (`user_id`),
CONSTRAINT `FK7gjm27fo9g6k6f3n4gomld2ax` FOREIGN KEY (`farm_id`) REFERENCES `farms` (`id`),
CONSTRAINT `FKdnmju29fjr2y7lhbklogrrdu4` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Công nghệ sử dụng trong hệ thống
Spring Boot
Spring Boot là một dự án phát triển bởi JAV (ngôn ngữ java) trong hệ sinh thái Spring framework Nó giúp cho các lập trình viên đơn giản hóa quá trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business cho ứng dụng.
Chúng ta có thể tạo một ứng dụng bằng Spring Boot và chạy nó chỉ trong vòng 5 phút Hầu hết các ứng dụng Spring Boot cần rất ít cấu hình, bạn có thể sử tạo một ứng dụng Java và chạy bằng lệnh java -jar hoặc các cách triển khai ứng dụng khác đang hiện có trong Java Spring boot cũng hỗ trợ một comand line tool để chạy các spring script.
Một số tính năng của Spring Boot:
Các dependency ‘starter’ giúp đơn giản hoá cấu hình và xây dựng ứng dụng.
Dễ dàng deploy vì nó đã nhúng server container (Tomcat, Jetty hoặc Undertow) vào ứng dụng để tránh phức tạp khi triển khai lên môi trường production.
Hỗ trợ cấu hình tự động cho chức năng Spring – bất cứ khi nào có thể
Cung cấp các số liệu, kiểm tra và cho phép cấu hình ứng dụng từ bên ngoài.
ReactJS
React là thư viện JavaScript dùng để xây dựng giao diện người dùng (UI) theo kiến trúc Component.
Nó cho tốc độ phản hồi tuyệt vời khi tương tác với người dùng bằng cách sử dụng phương pháp mới để render trang web React hỗ trợ xây dựng SPAs (Single page application), React sử dụng javascript chuẩn ES6 (giống với typescript những không có kiểu dữ liệu).
Components của công cụ này được phát triển bởi Facebook Nó được ra mắt như một công cụJavaScript mã nguồn mở vào năm 2013.
MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là RDBMS) hoạt động theo mô hình client-server Với RDBMS là viết tắt của Relational Database Management
System MySQL được tích hợp apache, PHP MySQL quản lý dữ liệu thông qua các cơ sở dữ liệu. Mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệ chứa dữ liệu MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL.
Một số tính năng của MySQL:
Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.
Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên Internet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí là ở cấp cao.
Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp.
Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và hơn thế nữa nó có thể được mở rộng nếu cần thiết.
Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm việc rất hiệu quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hướng dẫn cài đặt và sử dụng phần mềm
Backend
Cài đặt Java, JDK, Maven, MySQL, Eclipse.
Tải và giải nén source code, có chứa folder DADN_BE.
Mở MySQL, tạo schema "danganh".
Mở Eclipse, import folder DADN_BE as existing maven projects.
Chạy SensorApplication trong foler sensor để giả lập cảm biến gửi độ ẩm.
Chạy AutomaticIrrigationApplication trong folder automaticIrrigation, đây là app chính.
Frontend
Tải và giải nén source code, có chứa folder DADN_FE.
Mở command line, duyệt tới thư mục DADN_FE.
Người dùng đăng nhập vào hệ thống.
Hình 55 Hướng dẫn đăng nhập
Người dùng có thể sử dụng chức năng xem cảnh báo máy hư.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 56 Hướng dẫn chức năng cảnh báo máy hư
Người dùng có thể sử dụng chức năng quản lý nông trại.
Hình 57 Hướng dẫn chức năng quản lý nông trại
Người dùng có thể sử dụng chức năng quản lý người dùng.
Hình 58 Hướng dẫn chức năng quản lý người dùng
Người dùng đăng nhập vào hệ thống.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 59 Hướng dẫn user đăng nhập
Ở trang chủ người dùng lựa chọn nông trại mà mình sử dụng sau đó có thể xem được những thông tin mới nhất của các thiết bị trong nông trại.
Hình 60 Hướng dẫn lựa chọn nông trại
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 61 Hướng dẫn xem thông tin các thiết bị có trong nông trại
Người dùng có thể sử dụng chức năng xem biểu đồ của thông số độ ẩm theo thời gian.
Hình 62 Hướng dẫn xem biểu bồ thông tin độ ẩm
Người dùng có thể sử dụng chức năng thiết lâp ngưỡng độ ẩm ở trang “Máy bơm”.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 63 Hướng dẫn thiết lập ngưỡng độ ẩm
Người dùng có thể sử dụng chức năng điểu khiển máy bơm thủ công ở trang “Máy bơm”.
Hình 64 Hướng dẫn điều khiển máy bơm thủ công
Người dùng có thể sử dụng chức năng xem lại lịch sử các hoạt động trong nông trại.
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Hình 65 Hướng dẫn xem lịch sử các thiết bị trong nông trại
Tuần Nội dung công việc Thực hiện bởi
Tĩnh Tuấn Khánh Trường Trung
1 Chọn đề tài và tìm hiểu yêu cầu của hệ thống X X X X X
Xác định 5 chức năng chính của hệ thống và vẽ use case
Vẽ use case chức năng xem dữ liệu từ thiết bị X
2 Vẽ use case chức năng thiết lập ngưỡng cảm biến độ ẩm X
Vẽ use case chức năng điều khiển máy bơm nước X
Vẽ use case chức năng xem lịch sử hoạt động X
Vẽ use case chức năng lưu trữ dữ liệu X
Vẽ mockup chức năng xem dữ liệu từ thiết bị X
Vẽ mockup chức năng thiết lập ngưỡng cảm biến độ ẩm X
3 Vẽ mockup chức năng điều khiển máy bơm nước X
Vẽ mockup chức năng xem lịch sử hoạt động X
Vẽ mockup chức năng lưu trữ dữ liệu X
Thêm use case và mockup các chức năng của admin X
Code giả lập cảm biến, MQTT Client nhận dữ liệu từ cảm biến để xử lý X
5 Thêm use case và mockup chức năng đăng nhập X
Code template chung cho Front end X
Cập nhật ERD X X Đặc tả ERD X
Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering
Thêm mockup description cho chức năng xem lịch sử hoạt động X
Thêm use case và mockup chức năng xem độ ẩm nâng cao X
Code cập nhật trang độ ẩm X
Code cập nhật trang máy bơm X
6 Thảo luận về cách cấu hình Server IO Adafruit X X X X X
Tạo app giả lập để thử gửi, nhận dữ liệu X
Code chức năng “Xem cảnh báo thiết bị hư” của admin X
Code chức năng “Xử lý cảnh báo thiết bị hư” của admin X
Code chức năng “Xem dữ liệu mới nhất từ thiết bị” của người dùng X
7 Code giao diện trang “Lịch sử hoạt động” X
Code cập nhật giao diện xem theo ngày, tháng, năm của trang “Độ ẩm” X
Code cập nhật giao diện trang và thêm chức năng thiết lập ngưỡng độ ẩm cho trang “Máy bơm” X
Code lệnh gửi dữ liệu điều khiển máy bơm lên server X
Code chức năng “Quản lý nông trại” X
Cập nhật chức năng “Xem dữ liệu mới nhất từ thiết bị” X
Code chức năng “Xem lịch sử hoạt động” X
Code chức năng “Điều khiển thủ công máy bơm” X
Cập nhật chức năng “Xem biểu đồ độ ẩm” X
Cập nhật giao diện và chức năng “Quản lý nông trại”, nông trại có thêm trạng thái hoạt động X
Cập nhật giao diện và code chức năng “Điều khiển tự
Cập nhật hiển thị biểu đồ độ ẩm khi nhận độ ẩm được gửi từ cảm biến X
Chỉnh sửa bảng Cảm biến độ ẩm và bảng Máy bơm
X trong cơ sở dữ liệu (bị dư cột id) và cập nhật code tương ứng
10 Cập nhật chức năng Xem lịch sử hoạt động, hiển thị theo nông trại X
Cập nhật chức năng Xem biểu đồ độ ẩm, sửa label time,
X thêm tính năng xem live data có cho chọn cố định time, xem data theo thời gian chọn (có option xem chi tiết)
Thêm relation giữa máy bơm, ngưỡng với user trong database X
Thêm chức năng xem lịch sử của sensor, xem máy bơm,
Thêm chức năng quản lý nông trại cho người dùng, update chức năng login X
Thêm xem độ ẩm theo ngày X
Cập nhật phần phân công công việc X
Thêm hướng dẫn sử dụng frontend X
Thêm chức năng quản lý người dùng X