Trong nhiều ứng dụng context-aware, context được sử dụng để trigger các thông tin
đặc trưng cho người sử dụng. Người ta ứng dụng context-aware vào SN để làm giảm mức tiêu thụ năng lượng, đồng thời kéo dài được tuổi thọ của pin.
Nếu nhìn 1 cách đơn giản, qui trình họat động của hệ thống context-aware sensor là: (1) phân tích các luồng dữ liệu thu thập được để phát hiện ra ngữ cảnh, (2) ánh xạ các ngữ cảnh này tới các bộ trigger,(3) và sau đó sử dụng các bộ trigger này để
chạy các chức năng quản lý năng lượng trên các sensor tương ứng
Hình 2-16: Sơđồ trạng thái máy tiết kiệm năng lượng
Hình trên mô tả sự chuyển trạng thái theo ngữ cảnh để tiết kiệm năng lượng của các node sensor. Mỗi state (Vd: Sleep, Idle, etc) biểu diễn 1 trạng thái năng lượng của sensor, các trạng thái này được xác định bằng các command hiện thời mà sensor
đang thực thi. Các sensor bao gồm sensor đang chịu sựđiều khiển theo ngữ cảnh và sensor chuyên dùng để xác định ngữ cảnh. Sau đây là mô tả chi tiết các trạng thái họat động
• Sleep: Trong trạng thái này, tất cả các họat động của sensor node sẽ dừng lại trong 1 khoảng thời gian cốđịnh, nhờđó năng lượng được tiết kiệm tối đa. Nếu các node khác hoặc các ứng dụng điều khiển gửi bản tin đến node hiện tại (đang trong trạng thái sleep) thì bản tin này sẽ không được phản hồi. Khi sensor node chuyển từ trạng thái khác sang trạng thái Sleep, ngữ cảnh
với tham số thời gian cốđịnh (thời gian idle), kết thúc khoảng thời gian này, node sẽ thoát khỏi trạng thái hiện tại và quay trở lại trạng thái họat động bình thường.
• Idle: Một sensor ở trong trạng thái idle khi nó duy trì mức năng lượng họat
động nhỏ hơn so với chế độ họat động bình thường. Để làm giảm mức năng lượng tiêu tốn, trong trạng thái này sensor có thể giảm tần suất truyền thông, khi đó số lượng các bản tin chuyển đổi giữa server hoặc giữa các node sẽ
giảm đi, hoặc sensor có thể giảm tải tính toán bằng cách lược bỏ kích thước của gói tin truyền nhận khi thấy trong các gói tin này có thông tin dư thừa. Như vậy, trong chế độ này sensor chỉ họat động với 1 bộ tối thiểu các chức năng vốn có của nó.
• Highly_Active: Khi cần thiết phải giám sát liên tục 1 hiện tượng tự nhiên (vd: mưa, gió, nắng, nhiệt độ, độ ẩm, etc), sensor sẽ vào trạng thái Highly_Active, lúc này tốc độ lấy mẫu dữ liệu sẽ cao hơn bình thường
• Active: Đây là chế độ họat động bình thường, trong chếđộ này sensor hoàn toàn không có khả năng tiết kiệm năng lượng
• Dead: Trạng thái này dùng để mô tả 1 node đã bị hỏng, nguyên nhân có thể
do năng lượng bị cạn kiệt hoặc sensor bị hỏng do các nhân tố ngoại cảnh tác
động như: bị lửa phá huỷ, nước mưa làm chập mạch điện, etc.
2.8.3.2 Architecture
Kiến trúc khung của Context-Aware Sensors bao gồm các thành phần: (1) Một nhóm sensor có khả năng nhận diện ngữ cảnh và truyền nhận lệnh, (2) Một số dịch vụ cho phép truyền thông giữa các sensor và hệ thống, (3) Các thành phân cung cấp các tính năng lõi phục vụ cho việc sử dụng và phát hiện ngữ cảnh.
Ngôn ngữ nesC được sử dụng để xây dựng các chương trình chạy trên các sensor node, đây là 1 biến thể của ngôn ngữ C truyền thống dành cho các thiết bị SN, trong môi trường hệđiều hành TinyOS. Các Java 1.1 API được sử dụng trong các module thu thập, phân tích và truyền thông dữ liệu giữa các node và trạm gốc (base
station). Nội dung phần này sẽđi vào mô tả quá trình thiết kế và thực thi các thành phần trong hệ thống cũng như là cách thức các thành phần này tương tác với nhau. Hình dưới đây là kiến trúc của framework
Các thành phần chính trong framework:
• Communication server: thành phần này có chức năng giao tiếp giữa các sensor và trạm gốc (base station), thực hiện nhận các gói dữ liệu thô từ
sensors, sau đó phân tách các gói này thành định dạng có thể nhận biết được bằng các trình ứng dụng. Tương tự như thế, communication server cũng có chức năng phân tách các bản tin điều khiển (gửi từ trình ứng dụng tới các sensor) thành dạng dữ liệu mà sensor có thể nhận diện được.Về bản chất, thành phần này cung cấp 1 giao thức truyền thông hợp nhất cho các ứng dụng (thực thi bằng ngôn ngữ mức cao) có thể truyền nhận các lệnh tới chương trình họat động trên sensor (thực thi bằng ngôn ngữ mức thấp, môi trường là hệđiều hành TinyOS)
• Context locator service: Thành phần này có chức năng nhận diện ra ngữ
cảnh từ nguồn dữ liệu thô thu được từ sensor bằng cách sử dụng luật điều kiện if-else. Luật này dùng đểđưa ra quyết định chọn hoặc bỏ 1 ngữ cảnh nào đó.
• Context mining service: Có thể sử dụng các kỹ thuật phân tách dữ liệu (mining techniques) để khám phá ngữ cảnh. Mô hình kiến trúc của hệ thống sử dụng kĩ thuật này (Trong công trình nghiên cứu của Chong et al, 2005) sử
dụng các luật cốđịnh (được định nghĩa trước) để phát hiện ra ngữ cảnh, do
đó các ngữ cảnh này là tĩnh và phụ thuộc vào các kịch bản được thiết kế từ
trước. Trong sơđồ kiến trúc ở hình trên, thành phần context mining service không sử dụng kỹ thuật trên để phát hiện ra ngữ cảnh mà phải kết hợp context locator service.
trình ngữ cảnh, (2) bộ giải mã macro, và (3) bộ chuyển đổi action (chuyển thành định dạng mà đối tượng hướng tới hiểu được).
Mô tả các hoạt động trong kiến trúc
Hình 2-17: Kiến trúc Context-Aware Sensor Network
Bước 1a và 1b: (1a) Sensor gửi dữ liệu thô, (1b) Communication server phân tách dữ liệu nhận được, sau đó gửi đi. Trong thực tế, communication server có thể là các thực thể cấp cao như PDA, Laptop, các sensor node thực hiện thu thập dữ liệu môi trường và gửi các gói dữ liệu thô dưới dạng các số hexa tới các thực thể tính toán khắp nơi nói trên. Sau đó, các thực thể này sẽ tiếp tục biển đổi gói tin thành số thập phân theo định dạng mà các ứng dụng sau có thể nhận biết
được.
Bước 2 và 3: (2)Tra cứu ngữ cảnh và (3) trả lại tên của ngữ cảnh. Khi thu thập
đủ x mẫu dữ liệu (x là giá trị người dùng định nghĩa trên cơ sởđộ chính xác của phép xử lý dữ liệu đọc được trong các sensor) từ các sensor, hệ thống thực hiện
tính trung bình tất cả các giá trị này, từđó tạo ra ngữ cảnh primary cho nhóm sensor. Mỗi lần có ngữ cảnh primary mới được tạo ra, ngữ cảnh primary hiện tại
được biến thành ngữ cảnh secondary, đồng thời thông tin về ngữ cảnh secondary sẽđược gửi tới thành phần context trigger engine.
Nếu hệ thống khám phá ra ngữ cảnh mới thì ngữ cảnh này sẽđược cập nhật vào kho chứa để chờ các tác động từ phía người dùng.
Bước 4: Gửi nhãn ngữ cảnh (context lable) và các nhãn của nhóm sensor. Thành phần context trigger engine server sử dụng luật điều kiện if-then để tìm kiếm các hoạt động của sensor tương ứng ngữ cảnh hiện tại vừa nhận được, để làm
được việc này, yêu cầu cần phải có các thông tin hệ thống theo ngữ cảnh này. (Ví dụ: thời gian hiện tại và các nhóm sensor tương ứng)
Bước 5 và 6: (5)Yêu cầu thông tin chi tiết về các hoạt động (action) và trả lại các đoạn (6) action macro và thông tin trigger. Mỗi khi tìm thấy 1 đoạn action macro phù hợp với 1 ngữ cảnh nào đó, hệ thống sẽđặt action macro này vào hàng đợi và lên lịch trình để kích hoạt action macro này. Hàng đợi hoạt động dựa vào tham số thời gian trigger (time-to-trigger), đây chính là 1 bộ timer đếm ngược có tác dụng kích hoạt các action macro. Khi giá trị bộđếm bằng 0, hệ
thống thực hiện active macro tương ứng.
Bước 8,9,10: (8)Gửi các hoạt động và nhóm sensor, (9)gửi bản tin điều khiển, (10) gửi các lệnh sensor. Bản tin điều khiển sẽđược bóc tách thành các hoạt
động mà sensor có thể hiểu được, sau đó các lệnh này sẽđược gửi tới nhóm sensor tương ứng để thực thi.
yêu cầu các sensor trong mạng có khả năng xử lý dữ liệu, truyền thông với các node hàng xóm qua các liên kết không dây, cảm biến được ánh sáng và nhiệt độ.
Kịch bản ứng dụng: triển khai 1 mạng context-aware-sensor tại 1 trang trại nuôi bò, tất cả các sensor node trong mạng đều có khả đo nhiệt độ, ánh sáng và âm thanh, chúng được lập trình để thu thập dữ liệu dưới dạng các gói tin, sau đó truyền các dữ
liệu này tới các node hàng xóm gần nhất, các node này sẽ thực hiện truyền các dữ
liệu đã được tổng hợp tới trạm gốc. Tất cả các sensor đặt trong chuồng bò và đặt ở
vùng không gian xung quanh đều có chức năng cung cấp thông tin ngữ cảnh. Khi dữ liệu đến trạm gốc, nó sẽ được thu thập và sau đó được phân tích thành các pattern phục vụ cho việc nhận dạng ngữ cảnh.
Nghiên cứu các đặc tính dữ liệu thu thập được sẽ tạo ra ngữ cảnh, hệ thống sẽ xác
định sự tồn tại của ngữ cảnh này trong cơ sở dữ liệu, nếu chưa có thì sẽ được cập nhật vào CSDL. Trong tình huống cụ thể là ở chuồng bò, nếu sensor phát hiện ra không có âm thanh nào trong suốt thời gian dài, hệ thống sẽ nhận thức được ngữ
cảnh mới, có thể được gán nhãn là: “Bò đang tạm thời ở ngoài chuồng”. Kho chứa dữ liệu ngữ cảnh sẽ tựđộng cập nhật context mới này vào, đồng thời báo cho người sử dụng để cập nhật các trigger action cho ngữ cảnh này.
Quay trở lại với ví dụ trên, khi nhận biết được ngữ cảnh: “Bò tạm thời đang ở ngoài chuồng”, hệ thống sẽ tạo ra 1 context-triggered action có tác dụng làm giảm hoạt
động thu thập dữ liệu tại tất cả các chuồng đang không có bò cho đến khi chúng quay trở lại. Ngoài ra, hệ thống còn tạo thêm 1 context-triggered action khác có chức năng làm giảm hoạt động truyền thông các bản tin dữ liệu trong mạng. Thứ tự
các họat động như sau:
1. Hệ thống nhận biết ngữ cảnh “Bò đang ở ngoài chuồng”, sau đó thực hiện tra cứu ngữ cảnh này trong CSDL để tìm ra action “giảm họat động thu thập”
2. Tiếp theo, bộ decoder thực hiện giải mã action macro “giảm họat động thu thập” thành dạng lệnh action đơn giản hơn như “giảm thu thập cường độ ánh sáng” và “giảm thu thập cường độ âm thanh”
3.Hệ thống ánh xạ các nhãn action trên thành các sensor command tương ứng và guải chúng tới communication server trên trạm gốc.
4. Trạm gốc nhận các sensor command và gửi các lệnh này đến các sensor tương
CHƯƠNG 3 NGHIÊN CỨU THỰC NGHIỆM HỆ THỐNG SENSOR NETWORK
3.1 Đề xuất mô hình kiến trúc Ubiquitous Sensor Network
Mong muốn của tác giả là đề xuất ra 1 mô hình chung để phát triển các ứng dụng ubiquitous trên nền tảng sensor network. Từ mô hình này, người phát triển có thể
sử dụng các thành phần và các middleware để xây dựng nên các ứng dụng phù hợp bao gồm:
• Các ứng dụng hiện tại, đang là nhu cầu bức thiết của nước ta
• Cơ sở nghiên cứu để phát triển các ứng dụng phù hợp với xu hướng của thế giới Sau đây là mô hình kiến trúc Ubiquitous Sensor Network:
Hình 3-1: Mô hình kiến trúc Ubiquitous Sensor Network
Mô hình kiến trúc của hệ thống thể hiện 5 đặc trưng của lĩnh vực tính toán khắp nơi:
1.Nhận thức ngữ cảnh – Context Aware
Như trong mô hình kiến trúc đã đề xuất, việc nhận thức ngữ cảnh được thực hiện nhờ vào hệ thống sensor network và các bộ đọc thẻ RFID đặt tại nhiều vị trí khác nhau. Liên kết giữa các sensor node có thể là không dây hoặc có dây, hệ thống có thể họat động theo cơ chế tập trung họăc phân tán, tùy vào các ứng dụng cụ thể. Với mạng các sensor node, thông tin ngữ cảnh được cung cấp là các trạng thái của môi trường vật lý như : nhiệt độ, độẩm, cường độ ánh sáng, tốc độ gió, etc. Khi kết hợp các thông số đo được với tham số thời gian, hệ thống sẽ có khả năng tự xây
đặt trong chuồng lợn thông báo không có tiếng động trong 1 thời gian dài, hệ thống sẽ tự hiểu đây chính là thời gian lợn không ở trong chuồng, do đó sẽ đưa ra quyết
định dừng tất cả họat động của các sensor ở trong và ngoài chuồng để tiết kiệm năng lượng và giảm tải truyền thông trong mạng.
Với các bộ đọc thẻ RFID, thông tin ngữ cảnh được cung cấp bao gồm: vị trí (của người, của đối tượng), thời gian, chiều cao, cân nặng (của đối tượng là vật nuôi, vd: Bò),etc. Khi người hoặc các đối tượng khác (vật nuôi) sử dụng thẻ RFID đi qua các vị trí X,Y,Z như mô tả trên kiến trúc, thông tin về vị trí sẽ được gửi vềStorage và xử lý để có các họat động ngữ cảnh phù hợp. Ngoài ra, nếu sử dụng công nghệđịnh vị bằng RFID, vị trí chính xác của đối tượng sẽ được xác định chỉ với 3 bộ RFID Reader đặt trên khu vực di chuyển .
Hệ Autonomous đóng vai trò thực hiện các họat động tùy biến ngữ cảnh. Hệ này sẽ
gửi các yêu cầu đến kho chứa ngữ cảnh – Context Data để lấy ra các Context Action cần thiết, sau đó điều khiển các thiết bị tương ứng nhằm tác động vào môi trường hoặc cung cấp thông tin cho người dùng. Các thiết bị trong hệ bao gồm 2 loại:
1. Terminal: Thiết bị đầu cuối cung cấp thông tin người dùng: màn lcd, bảng quang báo, loa, etc
2. Actuator: Thiết bị chấp hành, bao gồm máy bơm, quạt gió, máy phun sương, thiết bị chiếu sáng, etc
2.Tính di động - Mobility
Để đáp ứng nhu cầu di động của người sử dụng, cần phải xây dựng cơ chế trao đổi dữ liệu giữa mạng sensor và chương trình ứng dụng chạy trên thiết bị đầu cuối di
động (Mobile, PDA). Trong kiến trúc đã đề xuất, khối Network Bridge đóng vai trò duy trì kết nối trực tiếp hoặc gián tiếp giữa Sensor Network và các Application trên Mobile hoặc PDA. Trực tiếp trong trường hợp các sensor node họat động theo kiểu phân tán, lúc này mỗi node không nhất thiết phải truyền thông với node khác và node trung tâm. User sử dụng thiết bị cầm tay để thu thập trực tiếp dữ liệu từ các sensor trong vùng lân cận. Gián tiếp trong trường hợp sensor node họat động theo
kiểu tập trung, dữ liệu thu thập từ tất cả các node sẽ được truyền về node trung tâm
(Centrolized Data), sau đó được xử lý và lưu vào Storage. Dữ liệu thích hợp (trong quá khứ) từStorage sẽ được đẩy lên cho User khi có yêu cầu. Trong trường hợp này, nếu User yêu cầu lấy dữ liệu hiện tại của 1 node cụ thể, thành phần
Centrolized Data sẽ thực hiện cơ chế định tuyến và truy xuất đến node tương ứng trong mạng để lấy dữ liệu và gửi trả lại cho User.
Như vậy, khi di chuyển trong tầm nhìn của sensor node, các ứng dụng chạy trên thiết bịđầu cuối Mobile luôn đảm bảo được cung cấp thông tin mong muốn từ các node. Kiến trúc chung các ứng dụng di động:
• Lớp đáy: hardware resource layer
Lớp tài nguyên phần cứng, ví dụ: bộ lưu trữ, tài nguyên dữ liệu, hoặc truyền thông. • Lớp giữa: Middle-ware và các service của hệ điều hành trong middleware. Ví du: hỗ trợ xử lý và quản lý dữ liệu
• Lớp đỉnh: human-computer interaction - tương tác người máy.
3. Khả năng lưu trữ (Storage)
Bộ nhớ với tốc độ truy nhập cao và dung lượng lớn cho phép lưu trữ nhiều loại dữ
liệu tính toán và trao đổi trong quá trình vận hành hệ thống. 2 loại dữ liệu điển hình là:
• Dữ liệu ngữ cảnh – Context data: Loại dữ liệu này bản chất là các qui tắc để điều khiển hệ thống nhằm tác động vào môi trường hoặc cung cấp các thông tin cho người dùng. Ví dụ: khi có người bước vào thì đèn tựđộng bật sáng, hoặc khi nhiệt
độ tăng quá cao thì khởi động máy phun sương và quạt gió để hạ nhiệt, etc. Dữ liệu này có thể nhập vào từ người sử dụng hoặc tự học được từ việc phân tích dữ liệu thu thập từ các sensor.
• Dữ liệu thu thập từ môi trường – Collection Data: Bao gồm các loại dữ liệu