Tải bản đầy đủ (.pdf) (32 trang)

Mạng cảm biến không dây

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (996.66 KB, 32 trang )

ĐẠI HỌC BÁCH KHOA HÀ NỘI
Viện Công Nghệ Thông Tin Và Truyền Thông

BÁO CÁO THỰC TẬP CHUYÊN NGÀNH

Đề tài :

MẠNG CẢM BIẾN KHÔNG DÂY

Giáo viên hướng dẫn : TS.Phạm Huy Hoàng
Sinh viên thực hiện : Nguyễn Quỳnh Anh
MSSV : 20080068
Lớp : TTM - K53


Mạng cảm biến không dây
Hà Nội, 05/2012

MỤC LỤC
MỤC LỤC..................................................................................................................... 2
LỜI NÓI ĐẦU...............................................................................................................3
I. TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY........................................................4
1.Giới thiệu :............................................................................................................ 4
2. Ứng dụng của mạng cảm biến.............................................................................4
3. Cấu trúc của mạng cảm biến...............................................................................5
4. Chức năng của mạng cảm biến không dây .........................................................6
5. Các thách thức và trở ngại :................................................................................7
II. TÌM HIỂU MỘT SỐ GIAO THỨC GIAO THỨC CƠ BẢN TRONG
MẠNG CẢM
BIẾN KHÔNG DÂY........................................................................................................9
1. LEACH..................................................................................................................9


1.1. Đặc điểm....................................................................................................... 9
1.2. Hai pha hoạt động ........................................................................................9
2. ARPEES.............................................................................................................. 10
2.1. Đặc điểm

................................................................................................10

2.2. Hai pha hoạt động ......................................................................................11
III. CÀI ĐẶT MÔ PHỎNG GIAO THỨC ĐỊNH TUYẾN.....................................................19
1. Giao thức lựa chọn mô phỏng ...........................................................................19
2. Môi trường cài đặt.............................................................................................19
3. Mô hình chung của mạng..................................................................................19
4. Xây dựng các mô đun........................................................................................19
4.1. Base station................................................................................................19
4.2. Sensor node................................................................................................ 20
4.3. Event.......................................................................................................... 25
4.4. Các loại messages......................................................................................26
4.5. Các thiếp lập ban đầu của mạng.................................................................26
5. Kết quả thử nghiệm trên phần mềm..................................................................27
KẾT LUẬN............................................................................................................... 31
Nguyễn Quỳnh Anh - 20080068 Page 2


Mạng cảm biến không dây
TÀI LIỆU THAM KHẢO................................................................................................32

LỜI NÓI ĐẦU
Sự phát triển của Internet, truyền thông và công nghệ thong tin kết hợp với những
tiến bộ kĩ thuật gần đây đã tạo điều kiện cho các thế hệ cảm biến mới với giá thành thấp,
khả năng triển khai quy mô lớn với độ chính xác cao. Trong tương lai, mạng cảm biến

không dây sẽ có thể tích hợp hàng triệu cảm biến vào hệ thống để cải thiện chất lượng và
thời gian sống nhằm mục tiêu mang đến sự tiện nghi và cải thiện chất lượng sống cho con
người.
Trong quá trình tìm hiểu và nghiên cứu về mạng cảm biến không dây, em đã lựa
chọn và đi sâu vào nghiên cứu và mô phỏng các giao thức định tuyến trong mạng cảm
biến không dây. Do thời gian tìm hiểu đề tài chưa được nhiều nên những vấn đề em đã
nghiên cứu và trình bày ở đây mới chỉ dừng lại ở những khía cạnh hết sức tổng quan về
mạng cảm biến không dây và đi sâu vào mô phỏng giao thức định tuyến đã có sẵn,chưa
có những sự sáng tạo mới và còn nhiều thiếu sót. Vì thế, em rất mong nhận được sự góp ý
của các thầy cô để đề tài ngày càng hoàn thiện hơn.
Cuối cùng, em xin chân thành cảm ơn thầy Phạm Huy Hoàng, cô Ngô Quỳnh Thu
đã giúp đỡ và hướng dẫn em trong suốt quá trình thực hiện đề tài này.

Hà Nội, tháng 5,năm 2012
Sinh viên
Nguyễn Quỳnh Anh

Nguyễn Quỳnh Anh - 20080068 Page 3


Mạng cảm biến không dây

I. TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY
1.Giới thiệu :
Mạng cảm biến vô tuyến (WSN) có thể hiểu đơn giản là mạng liên kết các node với
nhau bằng kết nối sóng vô tuyến (RF connection) trong đó các node mạng thường là các
thiết bị đơn giản , nhỏ gọn, giá thành thấp ... và có số lượng lớn, được phân bố một cách
không có hệ thống (non-topology) trên một diện tích rộng ,sử dụng nguồn năng lượng
hạn chế (pin), có thời gian hoạt động lâu dài (vài tháng đến vài năm) và có thể hoạt động
trong

Các node mạng thường có chức năng sensing (sensor node): cảm ứng, quan sát môi
trường xung quanh như nhiệt độ, độ ẩm, ánh sáng ... theo dõi hay định vị các mục tiêu cố
định hoặc di động ... Các node giao tiếp ad-hoc với nhau và truyền dữ liệu về trung tâm
(base station) một cách gián tiếp bằng kỹ thuật multi-hop.
Lưu lượng (traffic) dữ liệu lưu thông trong WSN là thấp và ko liên tục. Do vậy để tiết
kiệm năng lượng, các sensor node thường có nhiều trạng thái hoạt động (active mode) và
trạng thái nghỉ (sleep mode) khác nhau. Thông thường thời gian 1 node ở trạng thái nghỉ
lớn hơn ở trạng thái hoạt động rất nhiều.
Như vậy, đặc trưng cơ bản nhất để phân biệt 1 mạng cảm biến và 1 mạng wireless khác
chính là giá thành, mật độ node mạng, phạm vi hoạt động, cấu hình mạng (topology), lưu
lượng dữ liệu, năng lượng tiêu thụ và thời gian ở trạng thái hoạt động (active mode).
2. Ứng dụng của mạng cảm biến
WSN được ứng dụng đầu tiên trong các lĩnh vực quân sự. Cùng với sự phát triển của
ngành công nghiệp điều khiển tự động, robotic, thiết bị thông minh, môi trường, y tế ...
WSN ngày càng được sử dụng nhiều trong hoạt động công nhiệp và dân dụng. Một số
ứng dụng cơ bản của WSN:
- Cảm biến môi trường (quân sự: phát hiện mìn, chất độc, dịch chuyển quân địch ...
công nghiệp: hệ thống chiếu sáng, độ ẩm, phònh cháy, chống rò rỉ ...; dân dụng: hệ thống
điều hòa nhiệt độ, chiếu sáng ... )
- Điều khiển (quân sự: kích hoạt thiết bị, vũ khí quân sự ... ;công nghiệp: điều khiển tự
động các thiết bị, robot ... )
- Theo dõi, giám sát, định vị (quân sự: định vị, theo dõi sự dịch chuyển thiết bị, quân
đội ... )
- Môi trường (giám sát lũ lụt, bão, gió, mưa ... phát hiện ô nhiễm, chất thải ...)
- Y tế (định vị, theo dõi bệnh nhân, hệ thống báo động khẩn cấp ...)
- Hệ thống giao thông thông minh: giao tiếp giữa biển báo và phương tiện giao thông,
hệ thống điều tiết lưu thông công cộng, hệ thống báo hiệu tai nạn, kẹt xe ... hệ thống định
Nguyễn Quỳnh Anh - 20080068 Page 4



Mạng cảm biến không dây

vị phương, trợ giúp điều khiển tự động phương tiện tiện giao thông...
- Gia đình (nhà thông minh: hệ thống cảm biến, giao tiếp và điều khiển các thiết bị
thông minh ...)
WSN tạo ra môi trường giao tiếp giữa các thiết bị thông minh, giữa các thiết bị thông
minh và con người và giao tiếp giữa các thiết bị thông minh và các hệ thống viễn thông
khác (hệ thống thông tin di động, internet ... )
3. Cấu trúc của mạng cảm biến
Một node trong mạng WSN thông thường bao gồm 2 phần: phần cảm biến (sensor)
hoặc điều khiển và phần giao tiếp vô tuyến (RF transceiver).
Do giới hạn về nguồn năng lượng cung cấp (pin...), giá thành và yêu cầu hoạt động
trong một thời gian dài, nên vấn đề tiêu thụ năng lượng là tiêu chí thiết kế quan trọng
nhất trong mạng cảm biến:
- Lớp vật lý (physical layer) tương đối đơn giản, gọn nhẹ do ràng buộc về kích thước và
khả năng tính toán của node. Kỹ thuật điều chế tín hiệu số : O-QPSK, FSK cải thiện hiệu
suất bộ khuếch đại công suất. Các kỹ thuật mã hóa sữa sai phức tạp như Turbo Codes,
LDPC không được sử dụng, kỹ thuật trãi phổ được sử dụng để cải thiện SNR ở thiết bị
thu và giảm tác động của fading của kênh truyền...
- Lớp MAC: kỹ thuật đa trua cập TDMA hoặc CSMA-CA hiệu chỉnh với mục đích
giảm năng lượng tiêu thụ.
- Routing layer: "power aware" Routing Protocol, geography routing ...
WSN thường được triển khai trên một phạm vi rộng, số lượng node mạng lớn và được
phân bố một cách tương đối ngẫu nhiên, các node mạng có thể di chuyển làm thay đổi sơ
đồ mạng... do vậy WSN đò hỏi 1 sơ đồ mạng (topology) linh động (ad-hoc, mesh, star ...)
và các node mạng có khả năng tự điều chỉnh, tự cấu hình (auto-reconfigurable).
Trong một số WSN thông dụng (giám sát, cảm biến, môi trường ...) địa chỉ ID các
node chính là vị trí địa lý và giải thuật routing dựa vào vị trí địa lý này gọi là Geography
routing protocol (GRT). Đối với mạng với số lượng lớn các node, sơ đồ mạng không ổn
định ... GRT giúp đơn giản hóa giải thuật tìm đường, giảm dữ liệu bảng routing (routing

table) lưu trữ tại các node. GRT phù hợp với các WSN cố định, tuy nhiên đối với các
node di động (địa chỉ ID node thay đổi) giao thức routing trở nên phức tạp và không ổn
định.
Cluster hoá: phân chia mạng diện rộng (hàng trăm, hàng ngàn node) thành các clusters
để ổn định topology của mạng, đơn giản hóa giải thuật routing, giảm đụng độ (collission)
khi truy cập vào kênh truyền (medium acess) nên giảm được năng lượng tiêu thụ , đơn
giản hóa việc quản lý mạng và cấp phát địa chỉ cho từng node mạng (theo cluster).
Do giới hạn khả năng tính toán của từng node mạng cũng như để tiết kiệm năng lượng,
Nguyễn Quỳnh Anh - 20080068 Page 5


Mạng cảm biến không dây

WSN thường sử dụng các phương pháp tính toán và xử lý tín hiệu phi tập trung (giảm tải
cho node gần hết năng lượng) hoặc gửi dữ liệu cần tính toán cho các base station (có khả
năng xử lý tín hiệu mạnh và ít ràng buộc về tiêu thụ năng lượng).
4. Chức năng của mạng cảm biến không dây
- Định tuyến và phổ biến dữ liệu
Giao thức định tuyến cho WSNs rơi vào 3 nhóm: dữ liệu trung tâm, kiến trúc mạng, và
căn cứ vào vị trí. Các quy ước về tập hợp dữ liệu đến từ các nguồn khác nhau qua đường
truyền. Điều này cho phéo hạn chế sự dư thừa trong mạng, làm giảm số đường truyền,
giảm năng lượng tiêu thụ. Vấn đề quan tâm trong xử lí nội mạng, ngay khi dữ liệu đang
được truyền nhằm tăng hiệu quả sử dụng năng lượng của toàn hệ thống. Băng thông bị
giới hạn, khả năng cung cấp công suất các node bị hạn chế hay giá thành cao. Để giải
quyết vấn đề này, cần có quá trình xử lí tại nguồn trước khi chuyển qua các node lân cận,
chỉ truyền thông tin tóm tắt, ngắn gọn, tổng hợp nhất.
- Sắp xếp mạng và theo dõi
Các vấn đề liên quan đến sự sắp xếp mạng và theo dõi và giám sát bao gồm quản lý
nhóm các cảm biến, khả năng tự phân chia nhóm, xây dựng phiên làm việc…
- Tập hợp dữ liệu

Tính toán liên quan đến tập hợp dữ liệu, dung hợp, phân tích, tính toán cấu trúc và xử lí
tín hiệu.
- Quản lý dữ liệu
Quản lí dữ liệu phụ thuộc vào kiến trúc dữ liệu, quản lí cơ sở dữ liệu, kĩ thuật truy vấn
và lưu trữ dữ liệu. Trong môi trường mạng truyền thống, dữ liệu được thu thập đến trung
tâm để lưu trữ khi có yêu cầu được gửi đi. Trong các mạng phức tạp hơn, các yêu cầu
theo thời gian thực, cần có các kĩ thuật được xây dựng dùng cho các mô hình kưư trữ dữ
liệu phân bố. Dữ liệu cần được đánh chỉ số cho việc kiểm tra (theo không gian và thời
gian) hiệu quả hơn.
Nguyễn Quỳnh Anh - 20080068 Page 6


Mạng cảm biến không dây

- Bảo mật
Bảo mật là một phần quan trọng trong WSNs, sự chắc chắn, nhất quán và sự sẵn sàng
của thông tin.
5. Các thách thức và trở ngại :
Xác định rõ những hạn chế của mạng cảm biến và các vấn đề kỹ thuật sẽ gặp phải khi
triển khai giúp ta tận dụng triệt để những thuận lợi cũng như tiện ích từ những ứng dụng
vô cùng to lớn của mạng cảm biến không dây trong cuộc sống. Những khó khăn thường
thấy là:
• Năng lượng hạn chế
Khi các thiết bị tính toán tăng hiệu quả nhanh chóng, sự tiêu thụ năng lượng của
mạng cảm biến không dây giống như một nút cổ chai. Các sensor có kích cỡ nhỏ và giá
thành rẻ nên có thể triển khai hàng nghìn sensor trong mạng, không thể nối dây từ các
sensor này đến nguồn năng lượng. Đồng thời để có thể tự vận hành, các sensor cần phải
có nguồn pin. Lượng năng lượng có sẵn trong mỗi sensor bị giới hạn ở một mức nào đó
nên sự đồng bộ hóa chỉ nhận được khi duy trì đủ năng lượng cho hoạt động hiệu quả của
các sensor này.

• Dải thông giới hạn
Trong mạng cảm biến, năng lượng cho xử lý dữ liệu ít hơn nhiều so với việc
truyền nó đi. Hiện nay việc truyền thông vô tuyến bị giới hạn bởi tốc độ dữ liệu khoảng
10-100 Kbits/s. Sự giới hạn về băng thông này ảnh hưởng trực tiếp đến việc truyền thông
tin giữa các sensor. Và nếu không có sự truyền thông tin này thì không thể đồng bộ hóa
được.
• Phần cứng giới hạn
Phần cứng của các nút cảm biến thường bị giới hạn do kích cỡ nhỏ của nó. Một
nút cảm biến tiêu biểu như hạt bụi Berkeley Mica2 (hình 1.5) có một pin mặt trời nhỏ,
CPU 8 bit hoạt động ở tốc độ 10MHz, bộ nhớ từ 128KB đến 1MB, và phạm vi truyền
Nguyễn Quỳnh Anh - 20080068 Page 7


Mạng cảm biến không dây

dưới 50m. Sự hạn chế về năng lượng tính toán và không gian lưu trữ đặt ra một thách
thức to lớn. Đó là ta không thể tăng kích cỡ của nút cảm biến vì chi phí sẽ tăng và tiêu thụ
thêm năng lượng, gây khó khăn trong triển khai hàng nghìn nút trong mạng.
• Kết nối mạng không ổn định
Ưu điểm của mạng cảm biến là tính di động, nhưng vẫn tồn tại những nhược điểm
sau:
 Giới hạn trong phạm vi truyền của các sensor di động (khoảng 10-100m), dẫn đến
việc truyền thông tin giữa các nút cảm biến trở nên khó khăn.
 Các phương tiện truyền không dây không được bảo vệ khỏi nhiễu bên ngoài nên
có thể dẫn đến mất mát một lượng lớn thông tin.
 Giới hạn dải thông khi truyền vô tuyến và kết nối không liên tục.
 Cấu hình mạng thay đổi thường xuyên phụ thuộc vào sự di động của các nút nên
việc định lại cấu hình động trở nên cần thiết.
• Sự kết hợp chặt chẽ giữa sensor và môi trường tự nhiên
WSNs dùng để giám sát các hiện tượng trong thế giới thực nên việc thiết kế mạng

phải thích ứng với các các đặc trưng của môi trường mà nó cảm nhận. WSNs phải được
thiết kế phù hợp với từng ứng dụng như kiểm tra trong quân đội, cảnh báo cháy rừng;
dùng loại sensor nào để đo nhiệt độ, ánh sáng, âm thanh hay độ ẩm tùy từng loại ứng
dụng.
Thách thức lớn nhất trong mạng cảm biến là nguồn năng lượng bị giới hạn và không
thể nạp lại. Hiện nay rất nhiều nghiên cứu đang tập trung vào việc cải thiện khả năng sử
dụng hiệu quả năng lượng trong từng lĩnh vực khác nhau. Trong mạng cảm biến, năng
lượng được sử dụng chủ yếu cho 3 mục đích: truyền dữ liệu, xử lý dữ liệu và đảm bảo
cho phần cứng hoạt động. Không dừng lại ở đó, người ta cũng mong muốn phát triển quá
trình xử lý năng lượng một cách hiệu quả, giảm thiểu tối đa các yêu cầu về năng lượng

Nguyễn Quỳnh Anh - 20080068 Page 8


Mạng cảm biến không dây

qua các mức của protocol stack, các bản tin truyền qua mạng để điều khiển và phối hợp
mạng.

II. TÌM HIỂU MỘT SỐ GIAO THỨC GIAO THỨC CƠ BẢN TRONG
MẠNG CẢM BIẾN KHÔNG DÂY
1. LEACH
1.1. Đặc điểm
Giao thức LEACH: là một thuật toán phân nhóm phân bậc cho các mạng cảm biến gọi là
Phân nhóm phân bậc tương thích, nă ng lượng thấ p – LEACH (Low Energy Adaptive
Clustering Hierarchy). LEACH lựa chọn ngẫu nhiên một số nút cảm biến để trở thành
các nút chính và quay vòng vai trò này để phân bố đều tải nă ng lượng giữa các nút cảm
biến trong mạng. Ở LEACH, các nút chính nén các dữ liệu đến từ các nút khác trong
nhóm của chúng và gửi các gói dữ liệu thu thập này tớ i trạm gốc nhằ m mục đích giảm
số lượng thông tin truyền phát về trạm gốc. Việc thu thậ p số liệu được thực hiện tập

trung và theo chu kỳ . Do vậy giao thức này thực sự thích ứng khi có nhu cầu trao đổi
theo dõi thường xuyên của mạng cảm biến. Thực tế , người sử dụng có thể không cần tất
cả số liệu ngay lập tức, cho nên việc truyền phát số liệu theo chu kỳ là không cần thiết và
có thể làm suy giảm nguồn nă ng lượng giới hạn của các nút cảm biến. Sau một khoảng
thời gian cho trước, việc quay vòng ngẫu nhiên thay đổi vai trò của nút chính được tiến
hành sao cho có sự tiêu tán năng lượng đều giữa các nút cảm biến trong mạng. Dựa vào
mô hình mô phỏng mạng của các tác giả , chỉ có 5 % số nút cần thiết hoạt động ở dạng
nút chính.
1.2. Hai pha hoạt động
Hoạt động của LEACH được phân tách thành hai pha, pha thiết lập và pha ổn định trạng
thái. Ở trong pha thiết lập, các nhóm được tổ chức và các nút chính được lựa chọn. Còn
ở giai đoạn ổn định trạng thái, việc truyền số liệu thực sự về các trạm gốc được tiến
hành. Khoảng thời gian tồn tại của pha ổn định trạng thái thường dài hơn so với thời
gian thiết lập ban đầu để giảm tối thiểu tổng chi phí. Trong pha thiết lập, một số lượng
nhỏ các nút được xác định trước, p, tự quyết định
chúng trở thành các nút chính như sau. Một nút cả m biến chọn lấy một số ngẫu nhiên, r ,
trong phạ m vi 0 và 1. Nếu số ngẫu nhiên này nhỏ hơn giá trị ngưỡng, T(n) , thì nút đó
sẽ trở thành nút chính ở vòng hiện tại. Giá trị ngưỡng được tính toán dựa trên một biểu
thức toán học có sự kết hợp phần tră m mong muốn trở thành nút chính, vòng hiện tại, và
Nguyễn Quỳnh Anh - 20080068 Page 9


Mạng cảm biến không dây

tập hợp các nút chưa được lựa chọn làm nút chính ở vòng trước đó – tập G. T(n) được
xác định:

Tất cả các nút chính được lựa chọn phát quảng bá một bản tin thông báo tới tất cả các nút
còn lại trong mạng rằng chúng là các nút chính mới. Các nút khác, không phải là nút
chính sau khi nhận được bản tin thông báo này sẽ quyết định thuộc về một nhóm nào

đó mà chúng muốn. Quyết định này dựa trên cường độ tín hiệu của bản tin thông báo.
Các nút không phải là nút chính sẽ thông báo cho các nút chính thích ứng rằng chúng sẽ
là thành viên của nhóm. Sau khi thu nhận được tất cả các bản tin từ các nút muốn gia
nhập nhóm và dựa trên số lượng các nút thành viên của nhóm, nút chính sẽ tạ ra một
định thời TDMA, và cấp cho mỗi nút một khe thời gian khi nó truyền phát. Định thời
(Schedule) được quảng bá tới tất cả các nút của nhóm.
Trong giai đoạn ổn định trạng thái, các nút cảm biến bắt đầu cảm biến và truyề n phát số
liệu về các nút chính. Các nút chính, sau khi thu tất cả các số liệu, tập hợp chúng lại
trước khi gửi đến trạm gốc. Sau một khoả n thời gian nhất định nào đó được xác định
trước, mạng sẽ quay trở lại trạng thái thiết lập và bắt đầu một vòng lựa chọn các nút
chính mới. Ở đây các nhóm trao đổi thông tin với nhau bằng việc sử dụng các mã
CDMA để giảm nhiễu từ các nút thuộc các nhóm khác.
LEACH cung cấp một mô hình tốt mà các thuật toán nội bộ và tập hợp dữ liệu có thể
được thực hiện trong các nút chính được lựa chọn một cách ngẫu nhiên. Điều này làm
giảm quá tải thông tin và cung cấp một tập hợp tin cậy các số liệu cho người sử dụng cuối
cùng. Các tác giả của LEACH cũng đã chỉ ra rằ ng LEACH góp phần giả m đáng kể nă
ng lượng tiêu thụ và kéo dài hơn thời gian hoạt động của mạng cảm biế n so với trường
hợp mạng gồm các nhóm cố đị nh.
2. ARPEES
2.1. Đặc điểm
Nét đặc trưng trong thiết kế giao thức ARPEES là đáp ứng thích nghi giữa tối ưu hóa
năng lượng, phân cụm theo sự kiện, và truyền tải đa nút. Mục tiêu của giao thức là tìm ra
tuyến đường truyền tải tối ưu cho dữ liệu đã được tập hợp tới trạm gốc có tính đến quan
hệ tradeoff giữa lượng năng lượng còn lại(tối ưu hóa) của nút chuyển giao và khoảng
cách từ nút chuyển giao tới trạm gốc(tuyến đường ngắn nhất). Năng lượng và khoảng
Nguyễn Quỳnh Anh - 20080068 Page 10


Mạng cảm biến không dây


cách được dùng làm 2 tham số cho việc lựa chọn tuyến đường truyền tải.Các thông số chi
phí của giao thức như sau:
- Năng lượng tiêu thụ và cân bằng tải: mục tiêu là giảm tiêu thụ năng lượng ở các nút có
phần năng lượng dự trữ thấp hơn bằng cách phân tán năng lượng tiêu thụ cho việc tập
hợp,thu thập dữ liệu, truyền tải cho các nút khác nhau
- Cách tiếp cận động và phân tán: xây dựng thuật toán phân cụm phân tán theo yêu cầu,
trong đó các thông số được cảm biến của sự kiện hay đối tượng được sử dụng để phân
cụm. Một nút có thể đưa ra quyết định mà không cần có sự điều khiển tập trung. Với
phương thức phân cụm động theo sự kiện, các cụm được tạo thành dựa trên địa điểm và
thời gian sự kiện xảy ra trong môi trường. Do đó, kích thước của phần hoạt động trong
mạng sẽ biến thiên và số lượng cụm không phụ thuộc vào số lượng các nút trong mạng.
Thêm vào đó phương thức này giúp tiết kiệm năng lượng bởi chỉ một phần của mạng
được kích hoạt phản ứng lại một sự kiện.
- Tuyến đường tối ưu: số lượng các nút trung gian trên đường truyền hoặc chi phí liên kết
được sử dụng làm thông số chi phí để chọn ra tuyến đường tối ưu
- Khả năng thích ứng: khả năng này có nghĩa giao thức có khả năng đáp ứng tốt cho các
ứng dụng lớn với sự thay đổi nhanh của topo mạng chống lại lỗi liên kết. Việc thêm vào
các nút mới thay thế cho các nút lỗi không nên ảnh hưởng đến mạng đang hoạt động
- Kiểm soát overhead: giao thức phải tối thiểu hóa các trao đổi điều khiển cần thiết cho
việc phân cụm, lựa chọn cụm trưởng và xử lý trên nút chuyển giao
- Tối ưu hóa: tuyến đường lựa chọn bởi giao thức có ảnh hưởng tới hiệu năng mạng về độ
trễ, lưu lượng thực và độ tiết kiệm năng lượng. Để đạt tối ưu hóa giao thức cần phải tính
toán tới năng lượng pin, bộ nhớ, băng thông…
Hoạt động của ARPEES được chia thành các vòng, mỗi vòng bao gồm 2 pha được thể
hiện trong hình 2 : pha thành lập cụm và lựa chọn cụm trưởng theo sau bởi pha truyền tải
dữ liệu trong đó dữ liệu được truyền tới trạm gốc qua các nút chuyển giao.
2.2. Hai pha hoạt động
a. Pha thành lập cụm và thuật toán lựa chọn cụm trưởng:
Ban đầu, tất cả các nút mạng ở trạng thái nghỉ để tiết kiệm năng lượng. Khi một sự
kiện được phát hiện trong mạng, các nút gần vị trí xảy ra sự kiện được kích hoạt và sẽ

tiến hành đo đạc thuộc tính đã được chỉ định cảm biến. Nếu giá trị nhân tố cảm biến cao
hơn mức ngưỡng định trước, các nút đó sẽ thực thi thuật toán để nhóm cụm và chọn cụm
Nguyễn Quỳnh Anh - 20080068 Page 11


Mạng cảm biến không dây

trưởng. Các nút quảng bá gói tin REQ_CLUSTER tới các nút hàng xóm. Bản tin này bao
gồm ID của nút, mức năng lượng còn lại và thông tin mô tả dữ liệu cảm biến được sự
kiện:
REQ_CLUSTER{ID(i),ERes(i),I(i)}

(5)

Sau đó các nút sẽ đặt bộ đếm thời gian tới t1. Trong khoảng thời gian t1,mỗi nút sẽ nhận
bản tin REQ_CLUSTER từ tất cả các nút trong cụm và thực thi hàm chọn Cluster_Head
như sau:
FCH(i) = ERes(i) x I(i) , với mọi i thuộc X (6)
MaxFCH(i) -> Cluster Head
Trong đó X là tập các nút được kích hoạt bởi sự kiện.
Khi khoảng thời gian t1 kết thúc, nút có giá trị FCH(i) lớn nhất sẽ tự bầu nó làm
cụm trưởng. Cụm trưởng sẽ lưu trữ ID của tất cả các nút trong tập các nút được kích hoạt
X, và lập 1 lịch TDMA để sắp xếp cho từng nút lần lượt gửi dữ liệu tới cụm trưởng. Chức
năng của lịch là tránh việc xung đột trong truyền tải dữ liệu và đồng bộ hóa giữa các nút
bên trong cụm. Các nút còn lại tự đặt mình làm nút thành viên và chờ đợi để nhận lịch
TDMA từ cụm trưởng. Với lịch đã được sắp xếp, các nút có thể tắt các thành phần thu
nhận tín hiệu ngoại trừ trong khoảng thời gian truyền tải dữ liệu.

Nguyễn Quỳnh Anh - 20080068 Page 12



Mạng cảm biến không dây

Hình 1 : Lưu đồ của trạng thái thứ nhất

Nguyễn Quỳnh Anh - 20080068 Page 13


Mạng cảm biến không dây

Hình 2 : hình thành cụm dựa trên sự kiện và thuật toán lựa chọn cụm trưởng.
Trong hình 2a, nút từ n1 đến n9 xác định sự kiện và chuyển sang trạng thái hoạt động sau
đó quảng bá các bản tin REQ_CLUSTER để trao đổi thong tin. Ở hình 2b chúng ta chỉ
minh họa nút n2 và n5 quảng bá dữ liệu. 2c: nút n5 trở thành cụm trưởng và quảng bá bản
tin về lịch TDMA tới các nút trong mạng. 2d: các thành viên trong cụm lần lượt gửi dữ
liệu cảm biến về cụm trưởng theo những khe thời gian sắp xếp trong lịch.
Thuật toán ở đây đảm bảo nút với mức năng lượng còn lại lớn nhất và gần nhất với
sự kiện xảy ra được lựa chọn làm cụm trưởng. Thêm nữa chúng ta chỉ sử dụng một loại
bản tin để tạo cụm và chọn cụm trưởng. Do đó có thể làm giảm số lượng các bản tin điều
khiển gây ra overhead đồng thời giản lượng dữ liệu truyền tải từ các nút tới cụm trưởng
(sẽ được mô tả ở pha sau) bởi cụm trưởng là nút ở gần sự kiện và đã thu thập được sẵn
nhiều dữ liệu hơn các nút ở xa sự kiện.

Nguyễn Quỳnh Anh - 20080068 Page 14


Mạng cảm biến không dây

b. Pha thu thập dữ liệu
Ở pha này chúng ta sử dụng các nút trung gian để chuyển tiếp các gói tin từ cụm

trưởng tới trạm gốc. Các nút trung gian này lần lượt phải quyết định hàng xóm nào sẽ
nhận gói tin chuyển tiếp. Pha truyền dữ liệu bao gồm ba hoạt động chính:
Thu thập dữ liệu bên trong cụm:
Sử dụng lịch TDMA, mỗi nút cảm biến chuyển các thông tin cảm biến tới cụm
trưởng trong khe thời gian truyền dữ liệu đã được định trước. Một cách đơn giản nhất để
tiết kiệm năng lượng là tắt bộ thu nhận khi không trong quá trình truyền tải. Cụm trưởng
bắt buộc phải liên tục nhận dữ liệu từ các nút trong cụm. Một vấn đề cốt lõi ở đây là các
nút cảm biến được nhón lại thành cụm bao quanh sự kiện: việc truyền tải sẽ tiêu tốn mức
năng lượng thấp nhất do khoảng cách giữa cụm trưởng và các nút cảm biến là nhỏ.
Một vấn đề khác ở đây là độ ưu tiên của mỗi nút trong lịch TDMA. Như đã đề cập
trước đó, mỗi cụm trưởng có thông tin về mô tả dữ liệu trong bản tin của tất cả các nút
khác thuộc cụm - I(i). Nhờ đó nó có thể sắp xếp thứ tự và khoảng thời gian cho từng nút
truyền tải dữ liệu. Nút có nhiều mô tả dữ liệu sẽ truyền tải trước với nhiều khe thời gian
hơn các nút khác. Theo sự sắp xếp này, tất cả các nút sẽ được phân khe thời gian nhất
định để cảm biến môi trường và truyền tải dữ liệu cảm biến về cụm trưởng.
Thực hiện thu thập dữ liệu
Năng lượng dùng trong xử lý dữ liệu ít hơn rất nhiều so với năng lượng để truyền tải dữ
liệu. Do đó việc thu thập dữ liệu bằng cách xử lý cục bộ là rất quan trọng để tối thiểu hóa
năng lượng sử dụng. Để tránh việc truyền tải dữ liệu dư thừa, cụm trưởng thực hiện việc
tổng hợp dữ liệu từ dữ liệu thu thập được, và theo đó giảm lượng dữ liệu thô cần gửi tới
trạm gốc. Dữ liệu né, cùng với các thông tin được yêu cầu bởi trạm gốc, được truyền tới
trạm gốc theo kiểu multi-hop.
Lựa chọn nút chuyển tiếp và hình thành tuyến đường
Trong giao thức này, cụm trưởng sau khi có gói tin sẵn sàng truyền đi sẽ lựa chọn nút
chuyển tiếp để gửi tới trạm gốc với tuyến đường multi-hop thay cho việc truyền trực tiếp
gói tin như giao thức LEACH.
Đầu tiên, cụm trưởng sẽ quảng bá bản tin REQ_RELAY tới tất cả các nút trong phạm vi
kết nối của nó để tìm kiếm nút chuyển tiếp. Mỗi nút nhận bản tin REQ_RELAY sẽ tính
toán mức năng lượng còn lại của nó và khoảng cách tới trạm gốc, ghi kết quả vào bản tin
Nguyễn Quỳnh Anh - 20080068 Page 15



Mạng cảm biến không dây

ACK_RELAY và gửi lại cho cụm trưởng. Cụm trưởng đợi nhận hết các gói tin
ACK_RELAY từ các nút ứng cử làm nút chuyển tiếp và kiểm tra xem nó có thể truyền
trực tiếp dữ liệu tới trạm gốc hay không. Nếu không cụm trưởng sẽ thực hiện chức năng
Relay_Node để chọn nút chuyển tiếp.Nút chuyển tiếp mong muốn cần thỏa mãn 1 số đặc
điểm:
-

Nút chuyển tiếp có mức năng lượng còn lại lớn nhất

-

Nút chuyển tiếp càng gần trạm gốc càng tốt. Việc này có nghĩa nó có khoảng
cách lớn nhất so với cụm trưởng và khoảng cách ngắn nhất tới trạm gốc

-

Tuyến đường multi-hop gần như là đường thẳng giữa cụm trước và trạm gốc

Sau khi nhận bản tin REQ_RELAY từ tất cả các ứng cử viên, cụm trưởng sẽ có được
thông tin cần thiết về cấu trúc mạng 1-hop (cấu trúc mạng liền kề). Tiếp theo cụm trưởng
sẽ tính toán hàm Relay_Node để lựa chọn nút chuyển tiếp tốt nhất. Hàm được định nghĩa
như sau:

Trong đó:
ERes(j) : năng lượng còn lại của nút ứng cử j
d(CH,j) và d(j,BS) : khoảng tới từ cụm trưởng tới j và khoảng cách từ

j tới trạm gốc
Y: tập các ứng cử viên để lựa chọn nút chuyển tiếp trong phạm vi tín
hiệu của cụm trưởng
αj là giá trị góc giới hạn tạo bởi nút j, cụm trưởng và trạm gốc
cos αj có thể tính được thông qua biểu thức:

Nguyễn Quỳnh Anh - 20080068 Page 16


Mạng cảm biến không dây

Nút đạt giá trị FRN(j) lớn nhất sẽ được lựa chọn làm nút chuyển tiếp. Ở nút tiếp theo, nút
chuyển tiếp sẽ hoạt động như cụm trưởng và tìm kiếm nút chuyển tiếp tiếp theo. Quá
trình tìm kiếm tuyến đường chuyển tiếp sẽ lặp lại cho tới khi đến được trạm gốc. Cuối
cùng, tuyến đường truyền tối ưu sẽ được tạo ra bởi các nút chuyển tiếp giữa cụm trưởng
và trạm gốc.

Hình 3 : thể hiện lưu đồ của giao thức ARPEES trong pha thứ hai.

Nguyễn Quỳnh Anh - 20080068 Page 17


Mạng cảm biến không dây

Hình 4 : mô tả 1 ví dụ về hàm lựa chọn nút chuyển tiếp.

Nguyễn Quỳnh Anh - 20080068 Page 18


Mạng cảm biến không dây


III. CÀI ĐẶT MÔ PHỎNG GIAO THỨC ĐỊNH TUYẾN
1. Giao thức lựa chọn mô phỏng
Trong bài báo cáo này em lựa chọn giao thức ARPEES để cài đặt mô phỏng. Vì đây là
giao thức hướng sự kiện sẽ được phát triển mạnh trong tương lai.
2. Môi trường cài đặt
Giao thức ARPEES được mô phỏng trên phần mềm OMNeT ++ phiên bản 4.2.1
3. Mô hình chung của mạng
Để mô phỏng một giao thức trong một mạng cảm biến không dây cần xây dựng mô hình
của ba thành phần chính là các sensor node, base station và sự kiện xảy ra (event). Ở
trong phần mô phỏng của mình,em sẽ kết hợp sự kiện xảy ra với các sensor node,tức là
một sự kiện xảy ra chính là một node ở trị ví của node đó,và sự kiện sẽ được chọn một
cách ngẫu nhiên.
Mạng bao gồm 1 base station ở vị trí cố định và 80 nút được rải tương đối đều trên
khoảng không gian cần cảm biến. Các node cảm biến sự kiện và truyền dữ liệu về base
station theo giao thức định tuyến ARPEES.
4. Xây dựng các mô đun
4.1. Base station
a.Các tham số của base station
int xpos,ypos : tọa độ (x,y) là vị trí của base station
int trRange : khoảng cách có thể truyền được cho trước
double energy : năng lượng của base station,ban đầu được cho trước
int roundNumber : số vòng trong một lần cảm biến được cho trước
int frameNumber : số fame dữ liệu của 1 bản tin được cho trước
int totalRound : biến đếm tổng số vòng hiện tại
int firstNodeDead : id của node đầu tiên hết năng lượng
int eventID : id của node sự kiện được chọn ngẫu nhiên
double totalEnergyRemain[NUMBERROUND] : tổng năng lượng còn lại
b.Các hàm và chức năng chính của các hàm.













virtual void initialize() : khởi tạo các giá trị cần thiết cho quá trình mô phỏng .
Ở đây là khởi tạo trước các tham số của Base station trước khi quá trình mô
phỏng bắt đầu và định thời gian tự động gửi self message SMSG_INIT cho các
sensor node.

Nguyễn Quỳnh Anh - 20080068 Page 19


Mạng cảm biến không dây












virtual void initNodes() : Hàm này thực hiện việc khởi tạo các cổng kết nối
giữa Bs với các sensor node nằm trong vùng truyền tải của Bs .
void createEvent() : Hàm này thực hiện việc tạo ra sự kiện bằng cách lấy ngẫu
nhiên một trong số 80 node làm node xảy ra sự kiện. Khi một node có giá trị
energy nhỏ hơn 10 được coi là node đã hết năng lượng. Lúc này biến isDead
của node được gán bằng “1” và mạng được thiết lập lại các giá trị ban đầu bằng
hàm resetDisplay(). Quá trình tạo ngẫu nhiên một sự kiện được tiến hành. Sau
khi tạo sự kiện bắt đầu sự kiện bằng hàm startEvent().
double energyRemainCal() : Hàm này thực hiện việc tính năng lượng còn lại
của cả hệ thống bằng cách lấy tổng tất cả năng lượng còn lại của các node còn
năng lượng trong mạng .
int TestAlive() : Hàm này thực hiện việc kiểm tra Bs có còn năng lượng hay
không bằng cách kiểm tra biến isDead. Nếu Bs đã hết năng lượng hàm trả về
giá trị “0”,nếu còn hàm trả về giá trị “1”.
void finish() : hàm này được sử dụng để ghi lại các thông số trạng thái cần thiết
khi quá trình mô phỏng kết thúc để phục vụ cho việc thống kê,đánh giá về sau.
Khi quá trình mô phỏng kết thúc là khi mạng không còn đủ năng lượng để duy
trì hoạt động. Hàm thực hiện việc ghi lại các giá trị id của node hết năng lượng
đầu tiên, và tổng số vòng đã thực hiện được cho đến lúc đó.
virtual void handleMessage(cMessage *msg) : Hàm handleMessage() được gọi
khi mỗi message đến module. Khi đó hàm này sẽ xử lý gói tin và trả lại kết quả
ngay lập tức. Chú ý rằng các module hàm handleMessage() không được tự
động gọi, mà phải nhận được gói tin từ module khác. Muốn thế ta phải thêm
các self-message từ hàm khởi tạo initialize() thì hàm handleMessage() sẽ bắt
đầu làm việc mà không cần phải nhận gói tin từ module khác.Ở đây,hàm
handeMessage() thực hiện xử lí các gói tin khi Base station nhận được các gói
tin này.

4.2. Sensor node

a.Các tham số của một sensor node.


int active : khởi tạo bằng 0, khi một nút nhận được sự kiện thì active của node
bằng 1



int xpos,ypos : tọa độ (x,y) là vị trí của sensor node



int trRange : khoảng cách có thể truyền được cho trước



int ssRange : khoang các các node có thể cảm biến được,được cho trước



double energy : năng lượng của một node,ban đầu được cho trước

• cModule *clusterHead : con trỏ chỉ tới Cluster Head
Nguyễn Quỳnh Anh - 20080068 Page 20


Mạng cảm biến không dây

• Sensor *relayNode : con trỏ chỉ tới các Relay Node



double Neighbordistance[NUMBERNODES] : khoảng cách tới các node hàng
xóm

• cModule *EventStarter: con trỏ lưu nút bắt đầu sự kiện


int LastEventNodeID : id lớn nhất của node tham gia vào sự kiện



int LastNeighborID : id lớn nhất của node hàng xóm



int totalStatusInfoMsg : đếm số lượng bản tin của một node nhận được khi có
sự kiện xảy ra



int totalEventModule : số lượng node tham gia vào sự kiện



int timeslot : khe thời gian



int frameNumber : số fame dữ liệu của 1 bản tin được cho trước




int roundNumber : số vòng trong một lần cảm biến được cho trước



int totalDataCHMsg : tổng số các message các node gửi cho Cluster Head



int totalFrame : biến đếm tổng số frame hiện tại trong 1 vòng



int isClusterHead : biến kiểm tra node có phải là Cluster Head hay không



int isDead : biến kiểm tra node đã hết năng lượng hay chưa



int RequestMsgNumber : tổng số các message được broadcast để tìm Relay
Node



int hasPath : biến kiểm tra có đường gửi dữ liệu đến Base Station hay không




int isRelayNode : biến kiểm tra node có phải là Relay Node hay không



double RelayEnergy : năng lượng tiêu thụ khi truyền dữ liệu qua các Relay
Node



double relayNodeEnergy : năng lượng của Relay Node



double relayNodeBeginEnergy : năng lượng ban đầu của Relay Node

b.Các hàm và chức năng chính của các hàm.
Nguyễn Quỳnh Anh - 20080068 Page 21


Mạng cảm biến không dây


virtual void initialize() : Hàm này khởi tạo trước các tham số của Sensor node
trước khi quá trình mô phỏng bắt đầu và định thời gian tự động gửi self
message SMSG_INIT cho các sensor node.



void initNodes() : : Hàm này thực hiện việc khởi tạo các cổng kết nối giữa Bs

với các sensor node hoặc giữa các sensor node với nhau thỏa mãn điều kiện
nằm trong vùng truyền tải của node đó void .



startEvent() : Hàm này thực hiện việc tính khoảng cách giữa các sensor node
tới node xảy ra sự kiện, kiểm tra điều kiện nếu khoảng cách này nhỏ hơn
khoảng cách có thể cảm biến, node này không phải là Bs và node này vẫn còn
năng lượng thì xếp node này là node có tham gia vào sự kiện, tức là node có
thể cảm biến sự kiện và gửi về cho Bs. Ban đầu biến ative của node này được
khởi tạo bằng “0”, khi được xác nhận nó là node có tham gia vào sự kiện thì
active bằng “1”. Biến đếm số node tham gia vào sự kiện total ban đầu cũng
được gán bằng “0”, mỗi khi tìm thêm được một node thỏa mãn các điều kiện
trên thì total tăng lên 1 đơn vị. Nếu số node tham gia vào sự kiện lớn hơn 1
(total >1) ta tìm id của node có id lớn nhất trong số các node tham gia vào sự
kiện, và gửi bản tin thông báo sự kiện đến các node nằm trong vùng có thể cảm
biến. Nếu số node tham gia vào sự kiện nhỏ hơn hoặc bằng 1 (total <=1 ) thì
gọi lại hàm createEvrnt() để tạo lại sự kiện mới.



double distanceCal(int x1,int y1,int x2,int y2) : Hàm này thực hiện việc tính
khoảng cách từ 1 node bất kì có tọa độ (x1,y1) đến một node khác có tọa độ
(x2,y2)



double distanceBScal(int x,int y) : Hàm này thực hiện việc tính khoảng cách từ
một node bất kì có tọa độ (x,y) đến Bs




void computeCH() : Hàm này thực hiện việc tính toán và chọn ra node làm
Clusster head trong số các node tham gia vào sự kiện ( có active =1 ). Node
được chọn làm Cluster head là node có giá trị hàm C lớn nhất. Hàm C được
tính theo công thức sau :
C(node i) = năng lượng ( node i) /Khoảng cách (từ node i đến node xảy ra
sự kiện)

Theo công thức của hàm C ta thấy node có năng lượng càng lớn và khoảng
cách đến node xảy ra sự kiện càng nhỏ thì node đó sẽ được làm Cluster head. Các
node tham gia vào sự kiện sẽ có một hàm C được tính toán như trên và so sánh
Nguyễn Quỳnh Anh - 20080068 Page 22


Mạng cảm biến không dây

với nhau để chọn ra node làm Cluster head. Sau khi được chọn làm Cluster head
giá trị biến isClusterHead của node được gán bằng “1” và bắt đầu thực hiện hàm
sendTDMA().


void sendTDMA() : Hàm này thực hiện việc đặt giá trị khe thời gian timeSlot
để định thời gian cho các self message để tự động gửi các bản tin kích hoạt
hàm handleMessage() và thực hiện việc gửi đi gói tin TDMAmsg từ các node
có tham gia vào sự kiện đến Cluster head để Cluster head làm nhiệm vụ chia
khe thời gian cho các node gửi dữ liệu về Cluster head.




void energySend(int kbit,double d): Hàm này thực hiện việc tính năng lượng
tiêu thụ trong quá trình gửi dữ liệu giữa các sensor node và từ đó tính năng
lượng còn lại của node sau khi đã gửi dữ liệu đến các node khác. Năng lượng
của việc gửi dữ liệu phụ thuộc vào khoảng cách giữa hai sensor node và độ dài
dữ liệu cần gửi tính theo đơn vị kbit. Cụ thể năng lượng gửi dữ liệu được tính
bằng công thức :
energySend = ( Eelec + Efs *d *d ) * kbit
Trong đó Eelec và Efs là 2 hằng số có giá trị

Eelec = 0.00005
Efs = 0.00000001
• void energyReceive(int kbit) : Hàm này thực hiện việc tính năng lượng tiêu thụ
trong quá trình nhận dữ liệu giữa các sensor node và từ đó tính năng lượng còn
lại của node sau khi đã nhận dữ liệu từ các node khác. Năng lượng của việc
nhận dữ liệu chỉ phụ thuộc vào độ dài dữ liệu cần gửi tính theo đơn vị kbit.
Cụ thể năng lượng nhận dữ liệu được tính bằng công thức :
energyReceive = Eelect * kbit
Trong đó Eelec hằng số có giá trị : Eelec = 0.00005


void findRelayNode() : Chức năng của hàm này là tìm Relay node tiếp theo để
chuyển tiếp dữ liệu từ Cluster head về Base station. Ban đầu khi chưa tìm được
Relay node tiếp theo thì biến hasPath bằng “0” . Khi đó Cluster head sẽ gửi
một bản tin broadcast tới tất cả các node nằm trong vùng có thể truyền tải của
nó, các node nhận được bản tin broadcast này cũng thỏa mãn điều kiện là nó
vẫn còn năng lượng và chưa phải là Relay node ( isDead =0 và isRelayNode
=0) và biến RequestMsgNumber đếm các bản tin Cluster head đã broadcast
cũng tăng lên 1 đơn vị. Một node nhận được bản tin broadcast này sẽ được
chọn làm Relay node nếu giá trị hàm F của nó là lớn nhất, nó không phải là


Nguyễn Quỳnh Anh - 20080068 Page 23


Mạng cảm biến không dây

Cluster head và chưa được chọn làm Relay node. Hàm F là hàm đánh giá để
chọn Relay node dựa trên thuật toán ARPEES. Cụ thể công thức của hàm F
như sau :
F(node j) = năng lượng(node j) * (djCH/djBS) * cos a(j)
Trong đó :
djCH là khoảng cách từ node j tới Cluster head
djBS là khoảng cách từ node j tới Base station
a là giá trị góc giới hạn tạo bởi nút j, Base station và Cluster head
cos a(j) có thể tính theo công thức :
cos a(j) = (djCH *djCH+ dCHBS * dCHBS –djBS * DjBS)/ (2
*djCH*dCHBS)
Trong đó :
dCHBS là khoảng cách từ Cluster head đến Base station.
Mỗi node nằm trong vùng có thể truyền của Cluster head sẽ được tính một
hàm F này và so sánh với nhau để chọn ra node có giá trị hàm F lớn nhất. Theo
công thức ở trên của hàm F thì node có năng lượng càng lớn, khoảng cách tới
Cluster head càng xa,khoảng cách tới Base station càng gần và góc tạo bởi
node,Cluster head và Base station càng nhỏ thì càng có khả năng làm Relay
node. Khi đã chọn được Relay node thỏa mãn các điều kiện trên thì biến
relayNodeEnergy và biến relayNodeBeginEnergy được gán bằng năng lượng
của node này và biến hasPath được gán giá trị bằng “1”.


void resetDisplay() : Chức năng của hàm này là khởi tạo lại các thiết lập ban
đầu cho mạng, các tham số của sensor node được gán lại giá trị từ đầu và thực

hiện việc thiết lập các cổng cho các sensor node. Nếu có node nào đã hết năng
lượng (isDead =0) thì loại node đó ra khỏi mạng.



void arrangeNodes() : Hàm này thực hiện việc sắp xếp vị trí cho các sensor
node sao cho các node này phân bố tương đối đều đặn. Các giá trị tọa độ
(xpos,ypos) xác định vị trí của sensor node được tính như sau :
xpos = x *50 + rand() % (51)

Nguyễn Quỳnh Anh - 20080068 Page 24


Mạng cảm biến không dây

ypos = y *50 + rand() % (51)
Tức là xpos lấy giá trị ngẫu nhiên trong khoảng ( x*50,51) , ypos lấy giá trị
ngẫu nhiên trong khoảng (y *50 ,51)
Trong đó :
x = (id của node) / 8
y= (id của node ) %8


void setDisplay() : Chức năng của hàm này là tạo ra các bubble hiển thị thông
báo về vị trí và id của các node trong mạng



void changeCH() : Hàm này thực hiện việc thay đổi Cluster head sau mỗi vòng
truyền dữ liệu về Base station. Khi đó là lúc đã truyền đầy đủ các frame của dữ

liệu về Base station nên biến đếm totalFrame được gán bằng “ 0” và thực hiện
hàm sendSatusInfo() để nhận thông báo trạng thái của các node tham gia sự
kiện, từ đó chọn lại Cluster head.



void sendStatusInfo() : Chức năng của hàm này là gửi thông tin về trạng thái
của các node tham gia vào sự kiện tới các node khác, để từ đó làm căn cứ chọn
Cluster head.



void finish() : Hàm này làm nhiệm vụ ghi lại những thông tin cần thiết phục vụ
cho việc thống kê và đánh giá kết quả quá trình mô phỏng sau khi quá trình mô
phỏng kết thúc. Ở đây hàm ghi lại giá trị năng lượng của node sau khi quá trình
mô phỏng kết thúc.



virtual void handleMessage(cMessage *msg) : Hàm handleMessage() được gọi
khi mỗi message đến module. Khi đó hàm này sẽ xử lý gói tin và trả lại kết quả
ngay lập tức. Ở đây,hàm handeMessage() thực hiện xử lí các gói tin khi Sensor
node nhận được các gói tin này.

4.3. Event
• int eventID : id của node sự kiện được chọn ngẫu nhiên


void createEvent() : Hàm này thực hiện việc tạo ra sự kiện bằng cách lấy ngẫu
nhiên một trong số 80 node làm node xảy ra sự kiện. Khi một node có giá trị

energy nhỏ hơn 10 được coi là node đã hết năng lượng. Lúc này biến isDead của
node được gán bằng “1” và mạng được thiết lập lại các giá trị ban đầu bằng hàm

Nguyễn Quỳnh Anh - 20080068 Page 25


×