Trong chương 4 sẽ tập trung vào nghiên cứu vào lý thuyết liên qua đến việc xây dựng
hệ thống IoT, công nghệ Bluetooth, Mesh, hệ điều hành thời gian thực RTOS. Thiết
kế của hệ thống IoT, các thành phần, chức năng và giao tiếp giữa các thành phần. các đặc điểm, tính năng, khả năng vận hành và hoạt động của hệ thong trong thuc tế.
Bluetooth Mesh
— TCP
"... MQTT/ Socket
erver,
Hình 4.1: Sơ đồ hệ thống
4.1. Bluetooth
Bluetooth là một chuẩn công nghệ không dây, được ứng dụng trong những mô hình kết nối có phạm vi hẹp. Được đề cập lần đầu vào năm 1996 do nỗ lực tạo ra một chuẩn kết nối không dây phạm vi ngắn của 3 tập đoàn lớn lúc bấy giờ là Intel, Ericsson, và Nokia. Hiện tại Bluetooth Special Interest Group (Bluetooth SIG) là tô chức tham gia việc giám sát và phát triển các chuẩn của Bluetooth. Sử dụng sóng siêu cao tần (UHF: 300 MHz - 3 GHz) trọng phô sóng vô tuyến (RE: 3Hz — 3THz), Bluetooth hoạt động với tần số từ 2.40 GHz đến 2.48 GHz dải tần được dùng cho công nghiệp, khoa học và y tế (ISM), dữ liệu sẽ được truyền tải thông qua thông qua
79 kênh với 1Mhz độ rộng mỗi kênh và có thể truyền tải 1Mb/s và sử dụng kiểu kết nối point to point. Công nghệ giao tiếp này hiện đang được sử dụng cực kỳ phô biến
và hầu như mọi thiết bị ngày nay đều có khả năng kết nối và truyền tải thông tin. Phiên bản mới nhất của Bluetooth là phiên bản 5.3 ra mắt ngày 13 tháng 7 năm 2021.
44
LSB_ 68/72 0 - 2790
PAYLOAD
Hình 4.2: cau trúc tệp tin
Access code chịu trách nhiệm cho việc xác định thiết bị đích và có thé dai 68 hoặc 72 bit, Header sẽ thé hiện cho chúng ta biết kích thước gói tin và nội dung truyền tải,
payload là nội dung của tập tin.
4.1.1. Bluetooth low energy (BLE)
4.1.1.1. Giới thiệu
Ban đầu được Nokia phát triển năm 2006 dưới tên là Wibree và sau này được tích
hợp vào phiên bản Bluetooth 4.0 năm 2009. BLE không có khả năng tương tích và
kết nối với Bluetooth cơ bản nhưng 2 hệ thống có thể cùng tồn tại trên cùng một thiết
bị. Sử dụng chung giải tần với Bluetooth classic 2.40 GHz đến 2.48 GHz, nhưng dữ liệu sẽ được truyền tải thông qua 40 kênh thay vì 79 kênh và có đến 3 phương thức kết nối : point to point, Broadcast va Mesh. BLE có đặc điểm vượt trội hơn thế hệ trước là ở nó có thê hoạt động trong phạm vi tương tự nhưng với mức tiêu thụ năng lượng nhỏ hơn đáng kê. Đặc điểm tiết kiệm năng lượng này có được là nhờ việc trao đôi gián đoạn của nó, thiết bị sẽ thức dậy, nhanh chóng kết nối, truyền tin, ngắt kết noi và lập tức quay về trạng thái ngủ va thông thường các gói tin được truyền đi cũng
có kích thước nhỏ hơn bluetooth classic: 125 Kb/s. Có 2 loại thiết bị trong mô hình kết nối sử dụng công nghệ BLE là thiết bị ngoại vi (peripheral device) và thiét bi trung tam (central device) thiét bi ngoai vi la thiết bị nhỏ và có nguồn năng lượng hạn chế trong khi thiết bị trung tâm có kích thước hac nguồn năng lượng tốt hơn. Thét bị ngoại vi sẽ gửi các quảng cáo dữ liệu cho các thiết bị khác có thê tìm kiếm, kết nối hoặc chỉ nhận các gói dữ liệu. Thiết bị trung tâm sẽ có vai trò hoàn toan ngược lại,
nó sẽ tìm tiém và đọc các gói dữ liệu được gửi ra từ các thiết bị khác, dé có thé kết nối hoặc đơn giản chỉ nhận dữ liệu.
Application Layer
45
Generic Access Profile Generic Attribute Profile
(GAP) (GATT) Security Manager (SMP) Attribute protocol (ATT) Logical Link Control & Adaptation Protocol (L2CAP)
Link Layer (LL)
Physical Layer (PHY) Bang 4.1: BLE Protocol stack
4.1.1.2. Generic Access Profile (GAP)
La profile do hệ thống Bluetooth định nghĩa và bao gồm những yêu cau co bản của một thiết bị Bluetooth và mọi thiết bị phải thực hiện. GAP xác định các lớp e Physical
Layer, Link Layer, L2CAP, Security Manager, Attribute Protocol và Generic
Attribute Profile, nó giúp liên kết các lớp lai với nhau dé tạo thành yêu cầu cơ ban
cho một thiết bị Bluetooth. Có 4 vai trò đặc biệt được định nghĩa bao gồm:
Broadcaster, Observer, Peripheral và Central, một thiết bị có thé hỗ trợ nhiều vai trò. Thiết bị hỗ trợ Broadcaster sử dung advertising dé truyền dữ liệu, vai trò này không
hỗ trợ kết nối. Observer được sử dụng tôi ưu cho việc chỉ nhận dit liệu là thiết bi bổ sung cho Broadcaster và cũng không hỗ trợ tạo kết nói. Peripheral được sử dụng tối
ưu cho các thiết bị kết nỗi đơn và ít phức. Central hỗ trợ đa kết nối va là thiết bị thiết lập kết nối với các thiết bị Peripheral chức năng phức tạp hơn các vai trò khác.
4.1.1.3. Generic Attribute Profile (GATT)
Được dùng dé định dạng dữ liệu mà server truyền tải đến client, có thé định dạng
thành một hoặc nhiều service và được định danh bằng một mã UUID. Service là tập hợp của các characteristic được định danh bằng một mã UUID, hai Handle (Handle Start và Handle End) dùng để chỉ định số lượng Characteristic trong service này. Characteristic là một attribute mà có chứa thông tin, dữ lệu mà server muốn truyền tải đến client cũng như một số yêu cầu về giao tiếp và bảo mật. Bluetooth SIG đã thiết kế sắn một số model chưacs một số service và Characteristic nhất định mà lập trình viên có thé sử dụng dé qua trinh két néi va giao tiép trở nên thuận tiện hơn, hoặc cũng có thé sử dụng Vendors model dé thiết kế và tạo tập một mô hình giao tiếp giữa client và server theo một cách phù hợp và thuận tiện nhất cho mô hình giao tiếp. Server sử dụng cơ chế bảo mật của Attribute protocol dé đàm bảo dữ liệu chi được truy cập bởi một số client nhất định.
46
4.1.1.4. Attribute protocol (ATT)
Giao thức Attribute là một giao thức trong BLE Protocol stack , các thiết bi sẽ được chia làm 2 vai trò đó là server và client. Server là thiết bị chứa các dữ liệu và client
là thiết bị muốn truy cập là lây đữ liệu từ server. Giao thức Attribute sẽ quy định cách
mà đữ liệu được lưu trữ và cách thức ma client cần dé tiếp cận được dit liệu từ server
(bảo mật).
Một attribute sẽ có 4 phân trường:
e Handle: dài 16 bit dùng dé dinh dạng một attribute
© Type: dài 128 bit dùng dé xác định loại đữ liệu mà attribute đang giữ
e Permissions: dai 8 bit để xác định quyền hạn truy cập tới dữ liệu (đọc, ghi)
và mức độ bảo mật
e Values: dài từ 0 đến 512 bit chứa giá trị của attribute
Các attribute này có thê được đọc hoặc ghi bằng các phương thức do ATT xác định.
4.1.2. Bluetooth Mesh
4.1.2.1. Giới thiệu
Bluetooth Mesh là một chuẩn cộng nghệ mạng không dây được xây dựng trên nền tảng là Bluetooth low energy. Bluetooth Mesh chia sẻ cùng tầng vật lý với BLE hay nói cách khác những thiết bị được tích hợp công nghệ BLE cũng sẽ có khả năng thé kết nối vào mạng Mesh nếu có được sự hỗ trợ từ các tầng cao hơn. Mesh được hình
thành từ năm 2014 và chính thức được thông qua vào ngày 13 tháng 7 năm 2017.
Điểm khác biệt của công nghệ Mesh và công nghệ BLE là nó cho phép việc kết nối nhiều — nhiều (many: many) và cơ chế truyền tin dưới dạng lũ (flooding).
4.1.2.2. Các vai trò
Có 5 vai trò khác nhau trong mang Mesh và mỗi thiết bị sẽ có một hoặc nhiều vai trò
cùng một lúc, các vai trò bao gôm: node, relay node, proxy node, friend node, lowpower node.
e Relay node: có vai trò nhận và sau đó gửi lai message cho các node gan đó có
thê coi như là bộ khuêch đại tín hiện, message sẽ có một Time-To-Live (TTL)
đê xác định sô lân được truyền lại, nó cũng có vai trò mở rộng hệ thông mạng băng cách kết nôi với các thiệt bị muôn tham gia vào hệ thông mạng.
47
Lowpower node và friend node: là thường là các cảm biến và sử dụng nguồn năng lường từ pin, do đó việc hạn chế tối đa kết nối và hoạt động là việc cần thiết dành phần lớn thời gian dé sleep và thức dậy định kỳ dé thực hiện một số hoạt động. Đôi khi nó cũng can nhận l số tín hiệu điều khiển vậy nên cần có một thiết bị thực hiện việc nhận tín hiệu điều khiển khi lowpower node đang trong quá trình sleep và sẽ gửi lại tín hiệu đó khi được yêu cầu đó là friend
node.
Proxy node: hỗ trợ proxy feature và thực hiện vai trò của relay node nhưng có
thé truyén dữ liệu được cho các thiết bi Bluetooth không thuộc mạng lưới
Mesh.
Provisioner Node: Một thiết bị có khả năng thêm một thiết bị vào mạng Mesh cung cấp các Key và thông tin cần thiết để thiết bị có thể giao tiếp với các thiết bị trong mạng Mesh.
4.1.2.3. Co chế truyền tin
Hệ thống mạng Mesh sử dụng cơ chế truyền tin flooding, có đặc điểm là mỗi node trong mạng khi nhận được gói tin sẽ lập tức truyền cho tất cả các node mà
nó có kết nôi.
Ưu điểm: thời gian đáp ứng rất nhanh, có thé điều khiển nhiều thiết bị cùng một lúc và dễ dàng thực hiện.
Nhược điểm: nếu như gói tin lớn sẽ dẫn đến việc hao phí năng lượng và lãng
phí băng thông do các gói tin trùng lặp
48
4.1.2.4. Profile layer
Layer Model Layer Foundation Layer Access Layer
Upper Transport Layer Lower Transport Layer Network Layer
Bearer Layer BLE core
Bang 4.2: BLE Mesh Profile layer
1. Model Layer
Lớp liên quan đên việc triên khai của các model và việc triên khai các chức năng co bản của node theo một kịch bản aplication tiêu chuân và cụ thê ví dụ như đèn, cảm biên,... Xác định quy tac phân bô của các element của trong model của node.
2. Foundation Layer
Chiu trách nhiệm cho việc triên khai các mô hình liên quan dén câu hình va quản lý mesh network.
3. Access Layer
Lớp nay xác định cách các ứng dụng lớp cao hon co thê sử dụng các lớp kỹ thuật hon
bên dưới (upper transport layer). Xác định dang cua application data; ngoài ra còn
xác định và kiểm soát việc mã hóa và giải mã application data được thực hiện ở upper transport layer; đồng thời cũng kiểm tra xem application data nhận được có thuộc các application key và network phù hợp hay chưa trước khi chuyên tiếp nó lên lớp
cao hơn.
4. Upper Transport Layer oo, Lớp chịu trac nhiệm mã hóa, giải mã và xác thực application data va được thiệt kê dé
cung cấp tính bảo mật cho các Access message. Nó cũng có trách nhiệm đối với các
transport control message, được tạo và gửi nội bộ giữa các Upper Transport Layer trên các nút ngang hàng.
5. Lower Transport Layer
Xác định cach các upper transport layer message được phan đoạn và tập hợp lại thành
nhiều PDU vận chuyên thấp hơn dé phân phát các upper transport layer message trên
49
tới các nút khác. Nó cũng xác định một thông báo duy nhất dé quan lý phân đoạn va lắp ráp lại (SAR)
6. Network Layer ; ;
Nó xác định cách thức các transport layer message được gan với một hoặc nhiêu
element. Nó xác định định dang network message cho phép Transport PDU được van
chuyền bởi bearer layer. Lớp cũng quyết định việc chuyền tiếp tin nhắn, chấp nhận chúng dé xử lý thêm hay từ chối chúng. Nghia là, các tính năng chuyền tiếp va proxy
có thể được thực hiện bởi Network Layer. Đồng thời cũng xác định cách một network
message được mã hóa và xác thực.
7. Bearer Layer
Day là lớp cuôi cùng trước khi truy cập BLE core. Nó xác định cách các network
message được vận chuyền giữa các node. Tại thời điểm này, có hai vật bearer được
xác định là: Advertising bearer và Generic Attribute Profile (GATT) bearer.
Advertising bearer là vat mang ưu tiên dé gửi message trong mang lưới Mesh và scanning configuration. Mat khác, GATT bearer được cung cấp dé cho phép các thiết
bị không có khả năng hỗ trợ advertising bearer tham gia vào mạng lưới Mesh. Vật
mang GATT sử dụng giao thức Proxy đề truyền và nhận Proxy PDU giữa hai thiết bị qua kết nối GATT.
4.2. Free real-time operating system for microcontrollers (FreeRTOS)
FreeRTOS là một phan cua RTOS được thiết kế đủ nhỏ dé chạy trên vi điều khiển mặc dù việc sử dụng nó không giới hạn ở các ứng dụng vi điều khiển. Do đó, FreeRTOS chỉ cung cấp chức năng lập lịch thời gian thực cốt lõi, giao tiếp giữa các tác vụ, thời gian và đồng bộ hóa. Điều này có nghĩa là nó được mô tả chính xác hơn như một hạt nhân thời gian thực, hoặc điều hành thời gian thực. FreeRTOS sẽ lập lịch dựa trên độ ưu tiên của mỗi chưng trình và từ đó bộ lập lịch sẽ biết được chương trình nào sẽ được diễn ra tiếp theo. Chức năng bồ sung, chang hạn như giao diện bảng điều khién lệnh, hoặc ngăn xếp mạng, sau đó có thé được bao gồm với các thành phần bổ
trợ.
Hầu hết mọi hệ điều hành đều cho phép nhiều chương trình cùng thực thi, hay còn được gọi là đa tác vụ nhưng trên thực tế mỗi lõi xử lý chỉ có thể thực thi một luồng duy nhất tại một thời điểm do đó việc lập lịch của hệ điều hành sẽ chịu trách nhiệm cho việc chương trình nào sẽ được chạy và bằng cách chuyên đổi nhanh chóng giữa
các chưng trình sẽ làm cho các chương trình cỏ vẻ như đang chạy đồng thời, đó cũng
là mục đích của FreeRTOS là giúp cho hệ thống nhúng đáp ứng được yêu cầu về van
đề thời gian thực.
50
4.3. Hệ thống, và các thành phần
Đề tài mà nhóm đang hướng tới bao gồm 3 thành phan: Các thiết bi thông minh thông dụng liên lạc với nhau trong mạng lưới Mesh, cơ sở dữ liệu dé lưu trữ và cập nhật thông tin của các thiết bị trong hệ và cuối cùng là ứng dụng điều khién trên điện thoại với mục dich là dé quản lý và điều khiển hệ thống từ xa thông qua Internet.
Thiết bị trong gia đình sẽ sử dụng vi điều khiển Esp32 dé làm bộ xử lý trung tâm. Những thiết bị sẽ được tích hợp công nghệ Bluetooth Mesh và sẽ được kết nối vào cùng một mang lưới dé qua đó chúng có thê có thé giao tiếp và liên lạc, đảm bao moi thiết bị đều thực hiện được các chưng năng, của chúng. Ngoài các thiết bị thông minh
được sử dụng phô biến trong đồi sống thì cần thêm một thiết bị chủ có tên là gateway
có vai trò cầu hình nên mang lưới Mesh, kết nối, điều khiển va quản lý các thiết bi,
ngoài ra còn thực hiện chức năng nhận các yêu cầu của người dùng qua ứng dụng và
cập nhật cơ sở dữ liệu khi hệ thống có sự thay đồi.
Cơ sở dữ liệu sẽ có chức năng lưu trữ thông tin của các thiết bị có trong hệ thống và ứng dụng điện thoại có thé truy cập và lây dữ liệu về và thé hiện thông tin cho người
dùng thông qua giao diện của ứng dụng
Cuối cùng là một thành phần không thể thiếu trong bat kỳ hệ thống nhà thông mình nào đó là công cụ điều khiên, với việc vận dụng những kiến thức về hệ điều hành và các ứng dụng Android, nhóm tạo ra một ứng dụng điều khiến trên Thiết bi Android
thông qua môi trường Lập trình Android Studio. Với mục đích giám sát, vận hành và
điều khiển hệ thống mà mình đã xây dựng trước đó, phải dam bảo được tính tiện dụng
và dé dàng thao tác cho người sử dụng
Như đã mô tả ở trên hệ thống sẽ có 4 thành phan chính với các đặc điểm và nhiệm vụ khác nhau, chúng kết nối và giao tiếp với nhau tạo nên sự đồng bộ của hệ thống thông tin và trạng thái của các thiết bị sẽ được gateway cập nhật lên cơ dữ liệu, ứng dụng điện thoại sẽ lay thông tin từ cơ sở dữ liệu về phân tích và chuyền thành giao diện dé
người dùng dễ dàng giám sát và thực hiện các chức năng. Khi người dùng thao tác
điều khiển trên ứng dụng, một mã lệnh sẽ được gửi đến cho gateway thông qua MQTT, khi gateway nhận được tín hiệu điều khiển ngay lập tức sẽ phân tích yêu cau của người dùng và tùy thuộc vào lại điều khiến mà thiết bị chủ sẽ thực hiện một loạt các hành động tường ứng. Sau khi đã đáp ứng được yêu cầu của người dùng thì gateway sẽ sử dụng giao thức HTTP dé cập nhật những thay đổi của hệ thống lên cơ
sở đữ liệu. Ứng dụng điện thoại khi nhận thấy cơ sở dữ liệu có sự thay đôi ngay lập
tức sẽ phân tích lại những thay đổi và cập nhật lại thông tin trên giao diện. Và khi trong hệ thống có sự thay đổi về trạng thái do người dùng thao tác điều khiến trực
51