XÁC ĐỊNH YÊU CẦU

Một phần của tài liệu Xây dựng ứng dụng điều khiển iots bằng giọng nói (Trang 37)

IV. PHẠM VI NGHIÊN CỨU

2.2. XÁC ĐỊNH YÊU CẦU

2.2.1. Yêu cầu chức năng

2.2.1.1. Yêu cầu chức năng nghiệp vụ

Điều khiển: Người dùng có thể sử dụng giọng nói, văn bản hoặc nhấn phím để

điều khiển các trạng thái bật - tắt của thiết bị khả dụng trong account mà họ đang sử dụng.

Đồng bộ dữ liệu: Khi hệ thống nhận được yêu cầu thực hiện một hành động của

người dùng từ app di động thì dữ liệu sẽ được đẩy lên và được cập nhật lại trên server. Khi đó thì trạng thái của thiết bị khi hiển thị trên website cũng phải được đồng bộ và tất nhiên là thiết bị phần cứng cũng phải được đồng bộ tương ứng.

2.2.1.2. Yêu cầu chức năng hệ thống

Bảng 2-1 Bảng yêu cầu chức năng hệ thống

STT Nội dung Mô tả chi tiết Ghi chú

1 Real time Các hoạt động của người dùng: điều kiển bật tất các công tắc được đồng bộ với nhau giữa app – web – phần cứng. 2 Bảo mật Người dùng lúc tạo tài khoản sẻ phải xác thực bằng email hoặc sms của mình. Thông tin người dùng được mã hóa để tránh trường hợp lộ thông tin tài khoản mật khẩu.

Nhận diện được giọng nói

Ứng dụng nhận diện giọng nói của người dùng để đưa ra các hành động: bật – tất theo tên, bât- tất tắt cả, bật- tất theo vị trí công tắt.

Phân quyền Admin: Quản lý thông tin người dùng, phân quyền người dùng, thao tác để

19

thiết bị. Nhắc nhở người

dùng

Nhắc nhở hoặc yêu cầu người dùng đăng nhập lại sau khoảng thời dài không dùng ứng dụng.

2.2.2. Yêu cầu phi chức năng

Bảng 2-2 Bảng yêu cầu phi chức năng

STT Nội dung Tiêu chuẩn Mô tả chi tiết

1 Tốc độ xử lý quá trình điều khiển thiết bị nhanh chóng.

Hiệu quả Một lần có thể cho nhiều tài khoản đăng nhập vào để điều khiển

2 Tiết kiệm được thời gian, công sức, điện năng và giảm chi phí

Hiệu quả Tiết kiệm thời gian so với quản lý thủ công và bật tắt bằng tay. Dễ dàng quản lý các thiết bị từ xa và có thể tắt những thiết bị không có nhu cầu sử dụng. 3 Dễ dàng quản lý, kiểm soát

và lắp đặt

Tiện dụng Dễ dàng cài đặt và thêm thiết bị cho user khi user có nhu cầu mở rộng danh sách các thiết bị điều khiển

4 Có thể thiết kế thêm theo yêu cầu của doanh nghiệp.

Tiến hóa Các doanh nghiệp, người dùng có thể yêu cầu thêm tính năng hữu ích cho app

5 Cho phép người dùng gia tăng số lượng các thiết bị mà họ muốn điều khiển.

Tiến hóa Người dùng có thể dễ dàng yêu cầu admin thêm thiết bị điều khiển.

20

6 Giao diện thân thiện, đơn giản

Tiện dụng Khách hàng ở mọi lứa tuổi đều có thể dễ dàng sử dụng

7 Dễ thao tác Tiện dụng Các thao tác nhập xuất chỉnh sửa đơn giản, gần gũi với người dùng

21

3.1. NHẬN DIỆN TÁC NHÂN VÀ CHỨC NĂNG TRONG SỞ ĐỒ USE CASE

Bảng 3-1 Bảng tác nhân toàn hệ thống

STT Tác nhân Chức năng

1 Admin - Quản lý thông tin tài khoản người dùng

- Phân quyền người dùng

- Thiết lập, xử lý code cho phần cứng

- Thống kê, quản lý dữ liệu. 2 Người dùng - Quản lý thông tin tài khoản

- Thiết lập thời gian login

- Xem danh sách các devices

- Xem danh sách các switch trong một device

- Điều kiển các thiết bị

3 Khách - Tạo tài khoản

3.2. SƠ ĐỒ USE CASE

22

Hình 3- 2: Use case Quản lý thông tin cá nhân

23

Mô tả các Use case liên quan tới Tài khoản người dùng

Bảng 3-2: Use case Đăng nhập

Mô tả Cho phép người dùng đăng nhập vào hệ thống.

Tác nhân kích hoạt Người dùng

Tiền điều kiện Người dùng biết tài khoản và mật khẩu đăng nhập

Các bước thực hiệ (1)Người dùng mở ứng dụng

(2)Nhập tên đăng nhập và mật khẩu (3)Nhấn nút “Login”

(4)Nếu đăng nhập thất bại, thông báo “Tài khoản hoặc mật khẩu không đúng”. Người dùng nhập lại thông tin và đăng nhập lại lần nữa

(5)Nếu đăng nhập thành công: Mở giao diện Trang chủ chứa các chức năng của người dùng.

Bảng 3-3: Use case Setting

Mô tả Cho phép người dùng thiết lặp tài khoản, yêu cầu thời gian

đăng nhập lại hệ thống

Tác nhân kích hoạt Người dùng

Tiền điều kiện Đã đăng nhập thành công vào hệ thống

Các bước thực hiện (1)Tại màn hình chính người dùng chạm vào nút

“Menu”

(2)Màn hình sẽ hiển thị 2 mục chọn:

- Đổi người dùng

- Hẹn thời gian login lại

Bảng 3-4: Use case Đổi người dùng

Mô tả Cho phép người dùng thay đổi tài khoản đăng nhập

24

Tiền điều kiện Đã chạm vào nút “Menu”

Các bước thực hiện (1)Người dùng chọn mục đổi người dùng

(2)Hệ thống lưu trữ dữ liệu sẻ xóa thông tin password người dùng lưu trong thiết bị.

(3)Mở màn hình Đăng nhập

(4)Load lại email người dùng trước đó, và yêu cầu người dùng nhập lại mật khẩu tài khoản

Bảng 3-5: Use case hẹn thời gian login lại

Mô tả Cho phép người dùng chọn thời gian yêu cầu login lại hệ

thống

Tác nhân kích hoạt Người dùng

Tiền điều kiện Đã chạm vào nút “Menu”

Các bước thực hiện (1)Nếu người dùng chọn “Hẹn thời gian login lại”

(2)Hệ thống sẻ hiện thị 3 mục cho người dung chọn:

- Không hỏi

- 1 tuần

- 1 tháng

(3)Nếu người dùng chọn một trong ba mục trên và bấm nút “APPLY” hệ thống sẽ lưu trữ lại thời gian lúc người dùng bấn nút để làm cơ sở kiểm tra yêu cầu login lại trong lần đăng nhập sau.

(4)Nếu lưu trữ thành công, hệ thống thông báo cập nhật thành công và đóng popup

(5)Nếu lưu trữ thất bại, hệ thống thông báo cập nhất thất bại và đóng popup

25

Hình 3- 4: Cơ sở dữ liệu tương tác

Mô tả các Use case liên quan tới Điều kiển

Bảng 3-6: Use case Xem tất cả devices

Mô tả Cho phép người dùng xem tất cả các project được tạo trong

tài khoản cá nhân

Tác nhân kích hoạt Người dùng

Tiền điều kiện Đã đăng nhập vào hệ thống

Các bước thực hiện (1)Tại màn hình chính của người dùng. Chọn mục

“Scenes”

(2)Màn hình sẻ chuyển sang màn hình xem tổng quát danh sách các devices. Với các thông tin của device, trạng thái bật tất của từng.

26

(3)Người dùng có thể xem chi tiết khi chạm vào từng item trong danh mục

Bảng 3-7: Use case Xem tất cả switch

Mô tả Cho phép người dùng xem tất cả switch trong một device

Tác nhân kích hoạt Người dùng

Tiền điều kiện Sau khi chọn một project trong danh sách

Các bước thực hiện (1)Tại màn hình của người dùng. Chọn vào mục xem tất

cả

(2)Màn hình sẽ hiện thị danh sách các switch hiện đang có trong project và trạng thái của các switch đó.

Bảng 3-8: Use case bật/tất switch

Mô tả Cho phép người dùng bật tất một hoặc nhiều switch cùng

một lúc

Tác nhân kích hoạt Người dùng

Tiền điều kiện Sau khi mở màn hình Switch Activity

Các bước thực hiện (1)Tại màn hình chính của người dùng. Người dùng

chạm vào một switch trong danh sách các switch (2)Khi người dùng chạm vào một switch, hệ thống sẻ

kiểm tra xem trạng thái hiện tại của switch đó là đang bật hay đang tất

(3)Sau khi kiểm tra trạng thái của switch đó, có 2 trường hợp:

- Switch đang ở trạng thái bật

27

request lên server yêu cầu cập nhật lại trạng thái của switch thành tất.

(5)Nếu switch đang ở trạng thái tất, hệ thống sẽ gửi 1 request lên server yêu cầu cập nhật lại trạng thái của switch thành bật

(6)Sau khi server cập nhật và trả về kết quả thành công thì sẻ thông báo tên switch đã được cập nhật, nếu cập nhật thất bại hệ thống cũng hiện thông báo báo cho người dùng biết thao tác bị lỗi.

(7)Sau khi hiện thông báo, sẽ cập nhập lại adapter danh sách trạng thái các switch và hiện thị cho người dùng.

Bảng 3-9: Use case Voice chat

Mô tả Cho phép người dùng điều kiển thiết bị bằng giọng nói

Tác nhân kích hoạt Người dùng

Tiền điều kiện Sau khi mở màn hình Switch Activity

Các bước thực hiện (1)Tại màn hình chính của người dùng

(2)Người dùng chạm vào icon mic

(3)Hệ thống sẻ hiện dialog của google voice

(4)Sau khi người dùng nói một yêu cầu của mình (bật, tất), hệ thống sẻ chuyển đổi file âm thanh thành văn bản text.

(5)Sau khi chuyển đổi thành nội dung văn bản, hệ thống sẻ gửi nội dung văn bản tới api.ai của google.

(6)Khi nội dung được gửi lên, thông qua api dialogflow nhận diện đoạn văn bản trên thuộc về một intent nào trong danh sách các intent đã tạo

28

(7) Có 2 trường hợp xảy ra:

- Nếu thuộc các intent tạo, api.ai của dialogflow sẻ trả về một chuỗi json chứa nội dung kết quả trả về với các action do admin đã thiết lập trước đó

- Nếu không có trong các intent tạo, api.ai sẻ trả về 1 json có chứa action: “input.unknown”.

{ "id": "eb021898-6a88-437f-8a01- c174f283ea5e-5b26cf67", "lang": "en", "sessionId": "bff8700c-792c-ffdf-1c8c- 78c20df58daf", "timestamp": "2019-07- 14T18:48:59.279Z", "result": { "source": "agent", "resolvedQuery": "bật đèn", "action": "batTheoTen", "actionIncomplete": false, "score": 1, "parameters": { "any": [ "đèn" ] }, "contexts": [], "metadata": {

29

c14f93c059ef",

"intentName": "bat theo ten", "endConversation": true, "webhookUsed": "false", "webhookForSlotFillingUsed": "false", "isFallbackIntent": "false" }, "fulfillment": { "speech": "đèn đã được bật", "messages": [ { "lang": "en", "type": 0, "speech": "đèn đã được bật" } ] } }, "status": { "code": 200, "errorType": "success" } }

(8)Sau khi nhận được file json chứa thông tin action. Hệ thống sẽ bất xem action đó là gì:

30

- batTheoTen/tatTheoTen: nếu là action này, thì hệ

thống sẻ lấy thêm parameters “any” trong file json để tìm kiếm trong danh sách switch có chứa tên switch như trong không.

+ Trường hợp có:

. Nếu có 2 tên switch giống: Hệ thống sẽ hiện

lên dialog cho phép người dùng chọn các switch mình muốn tất

. Nếu chỉ có 1 switch giống tên hoặc có nhiều switch cùng tên nhưng đã có trạng thái

bật/tất theo yêu cầu: Hệ thống tự động cập nhật

trạng thấy của switch còn lại. Và hiện thêm 1 đoạn text thông báo đã cập nhật thành công cho người dùng biết.

.Nếu trạng thái của các switch có cùng tên

giống như yêu cầu: Hệ thống sẻ thêm một thông báo

trong list view chat: “Hình như bạn đã bật nó rồi. Hoặc không có cái này…”.

+ Trường hợp không có:

Hệ thống show một thông báo nhở với lời nhắc là “Không có cái này”

- batTatCa/tatTatCa: nếu là action này, hệ thống sẻ

gửi một request lên server yêu cầu cập nhật tất cả các switch bật/tất.

- batViTri/tatViTri: nếu action là batViTri/tatViTri,

hệ thống sẻ kiểm tra parameters “number”. Xác định vị trí yêu cầu có vượt qua số lượng switch hay < 0 hay không.

31

cầu.

. Nếu không hợp lệ: Thông báo người dùng

vị trí này không tồn tại.

- Các trường hợp còn lại (input.unknown,…): Hệ

thống sẻ thông báo là “Xin lỗi mình gặp khó khăn khi hiểu câu hỏi của bạn”.

Bảng 3-10: Use case chat

Mô tả Cho phép người dùng điều kiển thiết bị bằng nội dung văn

bản

Tác nhân kích hoạt Người dùng

Tiền điều kiện Sau khi mở màn hình Switch Activity

Các bước thực hiện (1)Người dùng chạm vào edittext chat

(2)Hệ thống sẽ hiện thị keyboard cho người dùng nhập nội dung yêu cầu thực hiện. Trong quá trình nhập, button Send sẻ thay đổi màu sắc.

(3)Khi người dùng bấm vào nút “Send”, nội dung văn bản sẻ được thêm vào trong khung chat và đồng thời thực hiện thao tác gửi thông tin lên api.ai để nhận dạng nội dung văn bản.

(4)Các bước sau đó được thực hiện như Use case Voice chat nêu trên.

32

Cơ sở dữ liệu liên quan:

Hình 3- 5: Cơ sở dữ liệu liên quan

3.4. CHI TIẾT CÁC BẢNG DỮ LIỆU

Tb_UserType

Tb_UserType(UserType, NameUserType)

Bảng 3-11: Chi tiết Bảng Tb_UserType

STT Thuộc tính Kiểu Miền giá

trị

Ý nghĩa Ghi chú

1 UserType nvarchar(256) Khóa chính Id

2 NameUserType nvarchar(256) Tên user type

33

Tb_Permission

Tb_Permission(PermissionID, NamePermission)

Bảng 3-12: Chi tiết Bảng Tb_Permission

STT Thuộc tính Kiểu Miền giá

trị

Ý nghĩa Ghi chú

1 Permission Varchar(250) Khóa chính

Id

2 NamePermission nvarchar(256) Tên

Permission

Tb_UserType_Permission

Tb_UserType_Permission(UserTye,PermissionID,ActtionID)

Bảng 3-13: Chi tiết Bảng Tb_UserType_Permission

STT Thuộc tính Kiểu Miền giá

trị

Ý nghĩa Ghi chú

1 UserType Nvarchar(256) Khóa chính, khóa ngoại

Id userType

2 PermissionID Varchar(250) Khóa chính, khóa ngoại

Id

permission 3 ActtionID Varchar(50) Khóa chính Id acttion

AspNetUsers

AspNetUsers(Id, Email, EmailCOnfirmed, PasswordHash, SecurityStamp,

PhoneNumber, PhoneNumberConfirmed, TwoFactorEnabled, LockoutEnđateUtc, LockoutEnabled, AccessFaileCount, UserName, UserType, FullName, Pictures, Status, Address, DateCreate, DateUpdate, IdThanhVien)

34

Bảng 3-14: Chi tiết Bảng AspNetUser

STT Thuộc tính Kiểu Miền

giá trị Ý nghĩa Ghi chú 1 Id Nvarchar(128) Khóa chính Id

2 Email Nvarchar(256) Email user

3 EmailConfirmed Bit Trạnh thái

true/false email confirmed

4 PasswordHash Nvarchar(MAX) Mật khẩu

người dùng

5 SecurityStamp Nvarchar(MAX)

6 PhoneNumber Nvarchar(MAX) Số điện

thoại người dùng 7 PhoneNumberConfirmed Bit 8 TwoFactorEnabled Bit Bật/tất towFactor 9 LockoutEnđateUtc Datetime 10 LockoutEnabled Bit 11 AccessFaileCount Int

12 UserName Nvarchar(256) Tên tài

khoản

13 UserType Nvarchar(256) Khóa

ngoại

35

15 Pictures Nvarchar(256) Ảnh người

dùng 16 Status bit 17 Address Nvarchar(MAX) 18 DateCreate Datetime 19 DateUpdate Datetime 20 IdThanhVien Nvarchar(128)  Tb_Projects

Tb_Projects(ProjectID, ProjectName, CommentProject, DateCreate, DateModify, UserName, Id, SubUname, FullName)

Bảng 3-15: Chi tiết Bảng Tb_Projects

STT Thuộc tính Kiểu Miền giá

trị

Ý nghĩa Ghi chú

1 ProjectID Nvarchar(50) Khóa

chính

Id Projects

2 ProjectName Nvarchar(250) Name

3 CommentProject Nvarchar(MAX)

4 DateCreate Datetime Ngày tạo

tài khoản

5 DateModify Datetime

6 UserName Nvarchar(256) Khóa

ngoại Tên user 7 Id Nvarchar(128) Khóa ngoại Id user 8 SubUname Nvarchar(256) 9 FullName Nvarchar(256)

36

Tb_Switches

Tb_Switches(SwitchID, NameSwitch, ProjectID, ValueSwitch, CommentSwitch, TrangThai, Gio, Phut, Giay, Offset, PicturesOn, Pictureoff, NguongAnhSangTren, NguongNhietDoTren, NguongDoAmTren, NguongPinTren, KindSwitchID,

TimerType, TrangThaiSlider, SecondsTimeSpan, RepeatTime, ScheduleJobID, RepeatDayWeek, CountValueSwitchOn, CountValueSwitchOff)

Bảng 3-16: Chi tiết Bảng Tb_Projects

STT Thuộc tính Kiểu Miền

giá trị

Ý nghĩa Ghi chú

1 SwitchID Int Khóa

chính

Id

2 NameSwitch Nvarchar(250) Name

3 ProjectID Nvarchar(50) Khóa

ngoại

Id project

4 ValueSwitch Int Trạng thái

của switch, (0 – 255) Trạng thái này kiểm tra switch đang bật or tất hoặc độ sáng của switch 5 CommentSwitch Nvarchar(MAX)

6 TrangThai Bit Trạng thái

hẹn giờ

37 9 Giay Int 10 Offset Float 11 PicturesOn Nvarchar(255) ảnh switch on 12 PicturesOff Nvarchar(255) ảnh switch off

13 NguongAnhSangTren Float Ngưỡng

ánh sáng trên

14 NguongNhietDo Float Ngưỡng

nhiệt độ

15 NguongDoAm Float Ngưỡng

Độ Ẩm

16 NguongPinTren Float Ngưỡng

Pin 17 KindSswitchID Nvarchar(50)

18 TimerType Nvarchar(50)

19 TrangThaiSlider Bit 20 SecondsTimeSpan Real

21 ScheduleJobId Nvarchar(50) Không

thuộc phạm vi nghiên cứu

22 RepeatDayWeek Nvarchar(50) Không

thuộc phạm vi

38

nghiên cứu

23 CountValurSwitchOn Numeric(18,0) Không

thuộc phạm vi nghiên cứu

24 CountValueSwitchOff Numeric(18,0) Không

thuộc phạm vị nghiên cứu SƠ ĐỒ QUAN HỆ Hình 3- 6: Sơ đồ quan hệ

39

4.1. THIẾT KẾ GIAO DIỆN

4.1.1. Danh sách các màn hình và sơ đồ chuyển đổi

Hình 4- 1: Danh sách các màn hình và sơ đồ chuyển đổi

4.1.2 Mô tả chi tiết các màn hình

4.1.2.1. Màn hình Chờ

Ý nghĩa:

Nếu người dùng mới dùng app thì hiện button login, còn người dùng chưa đăng xuất thì kiểm tra xem thời gian yêu cầu login lại tới chưa, nếu chưa thì tiến thành đăng nhập với tài khoản và mật khẩu đã lưu trên máy trước đó, nếu đã hết hạng thì xóa đi mật khẩu lưu trên máy và hiện button login cho người dùng đăng nhập lại

40

Các đối tượng trong hình

Bảng 4-1: Bảng các đối tượng Màn hình chờ

STT Loại Ý nghĩa

1 Button Chuyển đến màn hình đăng nhập

41

4.1.2.2. Màn hình Đăng nhập

Ý nghĩa: Cho phép người dùng đăng nhập vào hệ thống.

Chi tiết màn hình:

 

Màn hình chờ

Chuyển người dùng tới màn hình login

Click Login

Hình 4- 3: Sơ đồ biến cố màn hình chờ

42

Các đối tượng trong hình

Bảng 4-2: Bảng các đối tượng Màn hình Đăng nhập

STT Loại Ý nghĩa

1 Edittext Nhập tên đăng nhập của tài khoản 2 Edittext Nhập mật khẩu của tài khoản

Một phần của tài liệu Xây dựng ứng dụng điều khiển iots bằng giọng nói (Trang 37)

Tải bản đầy đủ (PDF)

(82 trang)