3.3.1.1 Đèn nhị phân UPnP (Binary Light)
Hình 3.2 : Đèn nhị phân UPnP
Đèn nhị phân UPnP có tính năng cơ bản như tắt và mở. Thiết bị này được xây dựng theo tiêu chuẩn về thiết bị đèn nhị phân và bao gồm dịch vụ tiêu chuẩn “Switch Power” được mô tả trên UPnP Forum. Các dịch vụ của thiết bị được mô tả như bảng bên dưới :
Kiểu thiết bị Kiểu dịch vụ ID Dịch vụ
Light SwitchPower:1 SwitchPower Location:1 Location
55
Các biến số trạng thái của dịch vụ “SwitchPower” :
Tên biến số Kiểu dữ liệu Giá trị cho phép Giá trị mặc định Sự kiện
Target Boolean 0, 1 0 No
Status Boolean 0, 1 0 Yes
Bảng 3.2 :Các tham số trạng thái của dịch vụ “SwitchPower”
Tham số trạng thái “Target” tham chiếu đến việc thiết lập trạng thái của đèn, tham số có giá trị “0” thì đèn sẽ tắt và ngược lại. Tham số “Status” tham chiếu trạng thái hiện tại của đèn.
Các hành động của dịch vụ “SwitchPower” được mô tả như bảng bên dưới :
Tên hành động Biến số Hướng Tham số liên quan
SetTarget NewTargetValue IN Target
GetTarget RetTargetValue OUT Target
GetStatus ResultTargetStatus OUT Status
Bảng 3.3 : Các hành động của dịch vụ “SwitchPower”
Hành động “SetTarget” được sử dụng để yêu cầu thay đồi trạng thái của đèn mở hoặc tắt. Hành động “GetTarget” trả về giá trị của yêu cầu và hành động “GetStatus” trả về trạng thái hiện tại.
56
3.3.1.2 Công tắc điện (Switch)
Hình 3.3 : Công tắc điện
Công tắc điện là thiết bị bật tắt đơn giản với hai trạng thái. Khi người dùng bấm vào giao diện sử dụng của thiết bị, trạng thái của thiết bị sẽ thay đồi. Các dịch vụ của thiết bịđược mô tả như bảng bên dưới :
Kiểu thiết bị Kiểu dịch vụ ID Dịch vụ
Switch Switch:1 Switch Location:1 Location
57 Các biến số trạng thái của dịch vụ “Switch” :
Tên biến số Kiểu dữ liệu Giá trị cho phép Giá trị mặc định Sự kiện
State Boolean 0, 1 0 No
Bảng 3.5 : Các tham số trạng thái của dịch vụ “Switch”
Tham số trạng thái “State” tham chiếu đến trạng thái hiện tại của công tắc.
Các hành động của dịch vụ “Switch” được mô tả như bảng bên dưới :
Tên hành động Biến số Hướng Tham số liên quan
SetState NewState IN State
GetState ResultState OUT State
Bảng 3.6 : Các hành động của dịch vụ “Switch”
Hành động “GetState” trả về trạng thái hiện tại của thiết bị. Hành động “SetState” thiết lập giá trị trạng thái của thiết bị.
58
3.3.1.3 Điện thoại (Phone)
Hình 3.4 : Điện thoại
Điện thoại mô phỏng tính năng cơ bản với hai trạng thái là đổ chuông và im lăng. Các dịch vụ của thiết bịđược mô tảở bảng bên dưới.
Kiểu thiết bị Kiểu dịch vụ ID Dịch vụ
Phone Ring:1 Ring
Location:1 Location
59 Các biến số trạng thái của dịch vụ “Ring” :
Tên biến số Kiểu dữ liệu Giá trị cho phép Giá trị mặc định Sự kiện
Target Boolean 0, 1 0 No
Status Boolean 0, 1 0 Yes
Bảng 3.8 :Các tham số trạng thái của dịch vụ “Ring”
Tham số “Target” tham chiếu đến trạng thái muốn thiết lập của thiết bị. Tham số “Status” là trạng thái hiện tại của thiết bị.
Các hành động của dịch vụ “Ring” được mô tả như bảng bên dưới :
Tên hành động Biến số Hướng Tham số liên quan
SetTarget NewTargetValue IN Target
GetTarget RetTargetValue OUT Target
GetStatus ResultTargetStatus OUT Status
60
3.3.1.4 Máy nghe nhạc CD (CD Player)
Hình 3.5 : Máy nghe nhạc
Thiết bị nghe nhạc “CDPlayer” được mô tả theo tiêu chuẩn của UPnP Forum. Thiết bị này có các chức năng cơ bản như thêm hoặc giảm bớt đĩa, điều khiển âm lượng, điều khiển các trạng thái chơi nhạc,.. Các dịch vụ của thiết bị được mô tả như bảng bên dưới.
Kiểu thiết bị Kiểu dịch vụ ID Dịch vụ
CDPlayer Audio:1 Audio ChangeDisc:1 ChangeDisc PlayCD:1 PlayCD SwitchPower:1 SwitchPower Location:1 Location
61
Các dịch vụ chính của thiết bị là “Audio” và “PlayCD”. Dịch vụ “Audio” điều khiển các thông số về âm thanh như âm lượng, trống, độ cân bằng,… Dịch vụ “PlayCD” thiết lập các trạng thái của thiết bị khi chơi nhạc như tạm dừng,
Các biến số trạng thái của dịch vụ “Audio” :
Tên biến số Kiểu dữ liệu Giá trị cho phép Giá trị mặc định Sự kiện
Balance Integer -127, 127 0 Yes
Bass Integer -127, 127 0 Yes
Fade Integer -127, 127 0 Yes
Treble Integer -127, 127 0 Yes
Volume Integer 0, 255 0 Yes
Bảng 3.11 : Các tham số trạng thái của dịch vụ “Audio”
Các hành động của dịch vụ “Audio” được mô tả như bảng bên dưới :
Tên hành động Biến số Hướng Tham số liên quan
AddVolume NewVolume IN Volume
GetAudio CurrentVolume OUT Volume
SetBalance NewBalance IN Balance
SetBass NewBass IN Bass
62
SetTreble NewTreble IN Treble
SetVolume NewVolume IN Volume
Bảng 3.12 : Các hành động của dịch vụ “Audio”
Các biến số trạng thái của dịch vụ “PlayCD” :
Tên biến số Kiểu dữ liệu
Giá trị cho phép Giá trị mặc định Sự
kiện
PlayMode string PLAY, PAUSE, STOP STOP Yes
PlayProgram string ONCE_IN_ORDER, EPEAT_IN_ORDER, ONCE_RANDOM, REPEAT_RANDOM
ONCE_IN_ORDER Yes
TrackDuration string Yes
TrackNumber Integer 0, 255 0 Yes
63
3.3.1.5 Điều khiển Tivi (TV Control Emulator)
Hình 3.6 : Điều khiển Tivi
Thiết bị mô phỏng chức năng cơ bản của bộđiều khiển tivi thực với các chức năng nhưđiều khiển âm lượng, nguồn điện bật tắt, màu sắc, độ sáng, độ tương phản, điều khiển kênh. Các dịch vụ của thiết bịđược mô tả như bảng bên dưới :
64 Kiểu thiết bị Kiểu dịch vụ ID Dịch vụ TV tvcontrol:1 tvcontrol tvpicture:1 tvpicture Location:1 Location Bảng 3.14 : Các dịch vụ của TV Các biến số trạng thái của dịch vụ “tvcontrol” :
Tên biến số Kiểu dữ liệu Giá trị cho phép Giá trị mặc định Sự kiện
Channel Integer 1, 100 1 Yes
Mute Boolean 0,1 0 Yes
Power Boolean 0,1 0 Yes
Volume Integer 1,100 5 Yes
Bảng 3.15 : Các biến số trạng thái của dịch vụ “tvcontrol”
Các hành động của dịch vụ “tvcontrolSCPD” được mô tả như bảng bên dưới :
Tên hành động Biến số Hướng Tham số liên quan
DecreaseChannel Channel IN Channel
DecreaseVolume Volume IN Volume
65
IncreaseVolume Volume IN Volume
PowerOff Power IN Power
PowerOn Power IN Power
SetChannel NewChannel IN Channel
SetMute NewMuteValue IN Mute
SetVolume NewVolume IN Volume
66
3.3.1.6 Đồng hồ hẹn giờ (Timer)
Hình 3.7 : Đồng hồ hẹn giờ
Thiết bị đồng hồ hẹn giờ là thiết bị đếm ngược thời gian theo từng giây. Khoảng thời gian đồng hồ chạy được thiết lập và có thể tạm dừng hoặc dừng hẳn thiết bị về trạng thái ban đầu. Các dịch vụ của thiết bịđược mô tả như bảng bên dưới :
Kiểu thiết bị Kiểu dịch vụ ID Dịch vụ
Time Timer:1 Timer
Location:1 Location
Bảng 3.17 : Các dịch vụ của đồng hồ hẹn giờ
Các biến số trạng thái của dịch vụ “Timer” :
Tên biến số Kiểu dữ liệu Giá trị cho phép Giá trị mặc định Sự kiện
Finished Boolean 0, 1 0 Yes
67
Minute Integer 0, 255 0 No
Second Integer 0, 255 0 No
Pause Boolean 0, 1 0 Yes
Bảng 3.18 : Các tham số trạng thái của dịch vụ “Timer”
Các tham số trạng thái “Hour”, “Minute”, “Second” tương ứng là giá trị giờ, phút, giây thiết lập để đồng hồ đếm theo từng giây về giá trị 0. Tham số “Pause” được sử dụng để thiết lập trạng thái tạm dừng của đồng hồ, khi tham số có giá trị “1” thì đồng hồ sẽ tạm dừng tại thời điểm đó, khi tham số có giá trị “0” đồng hồ sẽ tiếp tục chạy. Tham số “Finished” tham chiếu đến trạng thái hiện tại của thiết bị, tham số có giá trị “0” khi đồng hồđang chạy và có giá trị “1” khi đồng hồ chạy hết thời gian thiết lập.
Các hành động của dịch vụ “Timer” được mô tả như bảng bên dưới :
Tên hành động Biến số Hướng Tham số liên quan
GetFinished RetFinished OUT Finished
SetTime NewHour,NewMinute, NewSecond
IN
Pause
Stop
68
Hành động “GetFinished” trả về trạng thái hoàn thành của đồng hồ, dựa vào giá trị trả về sẽ biết được đồng hồ đã chạy xong hay chưa. Hành động “SetTime” thiết lập khoảng thời gian chạy ngược của đồng hồ, khi gọi đến hành động này với các tham số giờ, phút, giây được thiết lập thì đồng hồ sẽ bắt đầu hoạt động. Hành động “Pause” thiết lập giá trị của tham số pause để tạm dừng thiết bị. Hành động Stop sẽ thiết lập tham số Finished có giá trị 1 và các tham số Hour, Minute, Second lần lượt có giá trị 0.
69
3.3.1.7 Cảm biến chuyển động (Motion Sensor)
Hình 3.8 : Cảm biến chuyển động
Thiết bị cảm biến chuyển động mô phỏng thiết bị trong thực tế. Thiết bị này được sử dụng để phát hiện chuyển động của con người. Ví dụ như khi chủ nhà bước qua cửa vào phòng, cảm biến phát hiện có chuyển động, tham số trạng thái của thiết bị lập tức thay đổi giá trị, dựa vào sự thay đổi này có thể thiết lập các hành động của các thiết bị khác như rèm cửa sổ tự động mở, đèn mở hoặc bật hệ thống điều hòa không khi trong phòng.
70
Kiểu thiết bị Kiểu dịch vụ ID Dịch vụ
MotionSensor MotionSensor:1 MotionSensor Location:1 Location
Bảng 3.20 :Các dịch vụ của cảm biến chuyển động
Các biến số trạng thái của dịch vụ “MotionSensor” :
Tên biến số Kiểu dữ liệu Giá trị cho phép Giá trị mặc định Sự kiện
Motion Boolean 0, 1 0 Yes
Bảng 3.21 :Các tham số trạng thái của dịch vụ “MotionSensor”
Tham số “Motion” được sử dụng để thông báo khi thiết bị phát hiện có chuyển động. Giá trị khởi tạo ban đầu là 0, khi phát hiện có chuyển động thì giá trị này sẽ chuyển sang 1 và sẽ tự động trả về giá trị 0 sau một thời gian ngắn, có thể là vài giây. Tham số này có thông báo sự kiện, do đó điểm điều khiển và các thiết bị theo dõi nó sẽ nhận được thông báo khi thiết bị phát hiện có chuyển động.
Các hành động của dịch vụ “MotionSensor” được mô tả như bảng bên dưới :
Tên hành động Biến số Hướng Tham số liên quan
SetMotion NewMotion IN Motion
GetMotion RetMotion OUT Motion
71
3.3.2 Dịch vụ vị trí (Location Service)
Dịch vụ vị trí được sử dụng để xác định vị trí của các thiết bị trong môi trường. Tất cả các thiết bị đều được tích hợp thêm dịch vụ vị trí. Lấy ví dụ về thiết bị đèn chiếu sáng trong nhà, mỗi chiếc được đặt tại một vị trí khác nhau, thông tin về vị trí được xác định dựa vào biến số trạng thái vị trí của dịch vụ. Đểđiểm điều khiển xác định được vị trí của các thiết bị, thông tin về vị trí được lưu trong tập tin XML cùng UDN của thiết bị. Thông tin trong tập tin sẽđược cập nhật khi biến số trạng thái vị trí thiết bị thay đổi.
Các biến số trạng thái của dịch vụ vị trí theo tiêu chuẩn của UPnP được xác định như bảng bên dưới :
Tên biến số Kiểu dữ liệu Giá trị cho phép Giá trị mặc định Sự kiện
Locality String DEFAULT Yes
Mobility Boolean 0, 1 0 No
Bảng 3.23: Dịch vụ vị trí urn:upnp-org:serviceId:Location
Các biến số “Locality” và “Mobility” lưu trữ thông tin về vị trí và tính chuyển động của thiết bị. Biến số “Locality” được phép thông báo sự kiện về sự thay đổi giá trị, do đó các điểm điều khiển sẽ nhận được thông báo khi thiết bị thay đổi vị trí. Nếu biến số “Mobility” có giá trị bằng 0 (hoặc False) thì giá trị của biến số “Locality” sẽ không báo giờ thay đổi. Khi cài đặt thiết bị nếu người dùng thiết lập tính chuyển động “Mobility” và thông tin vị trí của thiết bị là không đổi thì thiết bịđó sẽ giữ nguyên vị trí.
72
Các hành động của dịch vụđược mô tả như hình bên dưới :
Tên hành động Tên tham số Hướng Biến số liên quan
GetLocality Locality OUT Locality
GetMobility Mobility OUT Mobility
Bảng 3.24: Các hành động của dịch vụ vị trí urn:upnp-org:serviceId:Location
Dịch vụ vị trí cung cấp các hành động “GetLocality()”, “GetMobility” để lấy giá trị của các biến số trạng thái “Locality” và “Mobility”.
Sử dụng tên phòng để xác định vị trí thiết bị có ý nghĩa hơn việc sử dụng tọa độ. Tuy nhiên cũng có vài điểm hạn chế của phương pháp này. Đầu tiên là người cài đặt phải cấu hình hệ thống để nó biết vị trí mỗi phòng. Vấn đề này sẽ không được đề cập đến trong đồ án này, một vấn đề khác là vấn đề tiềm năng khi những người dùng khác nhau lại có cách đặt tên khác cho cùng một phòng. Ví dụ một vài người khác nhau có thể cùng gọi tên phòng khách là “living room” hoặc “setting room”,... Giải pháp để giải quyết là đưa cho người dùng một danh sách các tên đã định nghĩa trước và cho phép họ thêm các thông tin khác nếu cần thiết. Dịch vụ vị trí định nghĩa một danh sách tên như sau :
DEFAULT Bedroom 2 Kitchen Bathroom 1 Porch
Living Room Bedroom 3 Utility Room Bathroom 2 Front Garden Dining Room Bedroom 4 Toilet 1 Hall Back Garden Bedroom 1 Bedroom 5 Toilet 2 Landing
73
3.3.3 Điểm điều khiển – Control Point
Điểm điều khiển hay Control Point là tìm kiếm, phát hiện, điều khiển và tương tác với các thiết bị. Điều điều khiển sử dụng giao thức SSDP lắng nghe bản tin của các thiết bị trong mạng để tìm kiếm các thiết bị tương thích với chuẩn UPnP. Sau khi phát hiện các thiết bị, điểm điều khiển biên dịch bản mô tả về các thiết bịđó và nếu nó phù hợp thì sẽ thiết lập sự tương tác và điều khiển.
Để điều khiển được các thiết bị, điểm điều khiển sử dụng giao thức SOAP, các hành động gửi đi dưới dạng bản tin SOAP có chứa nội dung hàm và các giá trị tham số nếu cần. Điểm điều khiển luôn theo dõi sự thay đổi của các thiết bị bằng cách nhận các thông báo thông qua giao thức GENA. Điểm điều khiển quan tâm đến việc nhận các thông báo, theo dõi sự kiện biến số trạng thái và cung cấp đích đến để gửi sự kiện. Điểm điều khiển còn xác định thời gian theo dõi để làm mới hoặc hủy bỏ sự theo dõi đối với các thiết bịđó.
Điểm điều khiển sẽ liệt kê danh sách tất cả các thiết bị khả dụng trong mạng, các dịch vụ thiết bị cung cấp, trong mỗi dịch vụ bao gồm các hàm số hay hành động và các tham số trạng thái. Dựa trên các tính năng mà điểm điều khiển cung cấp, người dùng có thể xem toàn bộ thông tin mô tả về thiết bị như kiểu thiết bị, tên thiết bị, UDN, thông tin nhà sản xuất,… Người dùng có thể tương tác, theo dõi sự thay đổi của các tham số trạng thái của thiết bị và điều khiển các thiết bị đó thông qua các hành động mà thiết bị cung cấp.
74
Hình 3.9: Giao diện điểm điều khiển
75
Thông qua giao diện chương trình, người dùng chọn một trong các kiểu thiết bị của các thiết bị có sẵn trong hệ thống hoặc tự khai báo thêm, sau đó lựa chọn kiểu thiết bị có khả năng tương thích, kết hợp được và bắt đầu khởi tạo mối quan hệ này. Khi người dùng chọn một kiểu thiết bị thì chương trình sẽ hiển thị danh sách các kiểu thiết bị đã được thiết lập trước đó. Người dùng cũng có thể xóa các mối quan hệ đó nếu thấy không còn phù hợp một cách trực quan trên giao diện sử dụng.
Hình 3.11 : Giao diện chức năng tạo kịch bản điều khiển các thiết bị
Dựa trên thông tin về kiểu thiết bị đã được thiết lập ở trên và thông tin về vị trí của thiết bị, hệ thống sẽ lọc danh sách các thiết bị có khả năng tương thích cao thỏa mãn điều kiện để kết hợp tạo thành kịch bản điều khiển.