Mô phỏng mạng WSN dùng Omnet++

Một phần của tài liệu Nghiên cứu và xây dựng cụm cảm biến sử dụng cho hệ thống cảnh báo sạt lở đất (Trang 46)

3.1.1. Công cụ mô phỏng OMNeT++

OMNeT++ là một ứng dụng cung cấp cho người sử dụng môi trường để tiến hành mô phỏng hoạt động của mạng. OMNeT++ cung cấp sẵn các thành phần tương ứng với các mô hình thực tế. Các thành phần này (còn được gọi là các modul) được lập trình theo ngôn ngữ C++, sau đó được tập hợp lại thành những thành phần hay những mô hình lớn hơn bằng một ngôn ngữ bậc cao (NED).

Các thành phần chính của OMNET++

+ Thư viện phần nhân mô phỏng (simulation kernel)

+ Trình biên dịch cho ngôn ngữ mô tả hình trạng (topology description language) - NED (nedc)

+ Trình biên tập đồ hoạ (graphical network editor) cho các file NED (GNED) + Giao diện đồ hoạ thực hiện mô phỏng, các liên kết bên trong các file thực hiện mô phỏng (Tkenv)

+ Giao diện dòng lệnh thực hiện mô phỏng (Cmdenv)

+ Công cụ (giao diện đồ hoạ) vẽ đồ thị kết quả vector ở đầu ra (Plove) + Công cụ (giao diện đồ hoạ) mô tả kết quả vô hướng ở đầu ra (Scalars) + Công cụ tài liệu hoá các mô hình

+ Các tài liệu hướng dẫn, các ví dụ mô phỏng...

- Một mô hình trong OMNeT++ chứa các modul lồng nhau có cấu trúc phân cấp, trao đổi thông tin với nhau bằng cách gửi các message. Mỗi mô hình này thường biểu diễn cho một hệ thống mạng. Modul mức cao nhất trong cấu trúc phân cấp được gọi là module hệ thống. Modul này có thể chứa các modul con, các modul con cũng có thể chứa các modul con của riêng nó. Độ sâu phân cấp đối với các modul là không giới hạn, điều này cho phép người sử dụng có thể dễ dàng biểu diễn một cấu trúc logic của một hệ thống trong thực tế bằng cấu trúc phân cấp của OMNeT++. Cấu trúc của mô hình có thể được mô tả bằng ngôn ngữ NED của OMNeT++.

3.1.2. Mô hình truyền gói tin:

Một kết nối có thể có ba tham số đặc trưng. Những tham số này rất thuận tiện cho các mô hình mô phỏng mạng thông tin [9]. Ba tham số này bao gồm:

+ Độ trễ đường truyền (propagation delay) tính bằng giây. + Tỉ số lỗi bit, được tính bằng số lỗi/bit.

+ Tỉ số dữ liệu, được tính bằng số bit/s.

Các tham số này là tuỳ chọn. Giá trị của các tham số này là khác nhau trên từng kết nối, phụ thuộc vào kiểu của liên kết (hay còn gọi là kiểu của kênh truyền - channel type).

Độ trễ đường truyền là tổng thời gian đến của message bị trễ đi khi truyền qua kênh.

Tỉ số lỗi bit ảnh hưởng đến quá trình truyền message qua kênh. Tỉ số này là xác suất các bit bị truyền sai. Do đó xác suất để một message độ dài n bit truyền đi chính xác là: P(message gửi đi được nhận chính xác) = (1 - BER)n

trong đó BER là tỉ số lỗi bit và n là số bit của message.

Hình 3.1: Các modul đơn giản và kết hợp

Các message truyền đi đều có một cờ lỗi, cờ này sẽ được thiết lập khi việc truyền message có lỗi.

Tỉ số dữ liệu được tính theo đơn vị bit/s, và nó được sử dụng để tính thời gian để truyền một gói tin. Khi tỉ số này được sử dụng, quá trình gửi message đi trong mô hình sẽ tương ứng với việc truyền bit đầu tiên và message được tính là đến nơi sau khi bên nhận đã nhận được bit cuối cùng.

3.1.3. Xây dựng mô hình mô phỏng:

Một mô hình OMNeT++ bao gồm những phần sau:

+ Ngôn ngữ mô tả topology - NED (file có phần mở rộng .ned): mô tả cấu trúc của module với các tham số, các cổng... Các file.ned có thể được viết bằng bất kỳ bộ soạn thảo hoặc sử dụng chương trình GNED có trong OMNeT++.

+ Định nghĩa cấu trúc của các message (các file có phần mở rộng .msg): Người sử dụng có thể định nghĩa rất nhiều kiểu message và thêm các trường dữ liệu cho chúng. OMNeT++ sẽ dịch những định nghĩa này sang các lớp C++ đầy đủ.

+ Mã nguồn của các module đơn giản. Đây là các file C++ với phần mở rộng là .h hoặc .cc.

Hệ thống mô phỏng cung cấp cho ta các thành phần sau:

+ Phần nhân mô phỏng: Phần này chứa code để quản lý quá trình mô phỏng và các thư viện lớp mô phỏng. Nó được viết bằng C++, được biên dịch và được đặt cùng dạng với các file thư viện (các file có phần mở rộng là .a hoặc .lib).

+ Giao diện người sử dụng: Giao diện này được sử dụng khi thực hiện quá trình mô phỏng, tạo sự dễ dàng cho quá trình sửa lỗi, biểu diễn (demonstration) hoặc khi thực hiện mô phỏng theo từng khối (batch execution of simulations).

Các chương trình thực hiện mô phỏng (the simulation executable): là các chương trình độc lập, tức là nó có thể chạy trên các máy khác không cài đặt OMNeT++ hay các file mô hình tương ứng. Khi chương trình khởi động, nó bắt đầu đọc file cấu hình (thông thường là file omnetpp.ini). Đầu ra của quá trình mô phỏng là các file dữ liệu. Các file này có thể là các file vector, các file vô hướng hoặc các file của người sử dụng

3.1.4. Kịch bản và kết quả thực nghiệm mô phỏng: (adsbygoogle = window.adsbygoogle || []).push({});

* Kịch bản

- Mạng cảm biến dùng trong mô phỏng là mạng WSN bao gồm các nút cảm biến đặt ở những vị trí khác nhau

- Các giao thức CSMA, S-MAC, T-MAC được mô phỏng trên cơ sở hoạt động của các nút cảm biến. Mỗi nút cảm biến bao gồm 3 cảm biến (nhiệt độ, độ ẩm, gia tốc).

- Một user có thể đứng từ bất cứ một máy tính nào có trình duyệt Web và được nối mạng khi kết nối với Web Server sẽ được Web Server cũng trả về một trang web. Từ trang web, User có thể kiểm tra giám sát các dữ liệu từ các nút thiết bị.

- Để một máy tính có thể trở thành Web Server, máy tính phải được cài đặt trình phục vụ tại Server, và có nguồn của trang web. Đề tài này sử dụng công nghệ của Microsoft nên IIS được chọn dùng làm trình điều khiển Web.

* Kết quả thu thập dữ liệu:

- Phần kết quả tôi thực hiện việc thu thập dữ liệu từ các nút cảm biến, kết nối truyền tới gateway tới webserver.

- Việc căn chỉnh cảm biến độ ẩm được thực hiện như phương trình sau [11]

_

_

(M 0 ) * 200

1023 0

ADC offset ADC

offset ADC M    (32) Trong đó: M: Độ ẩm đất (%)

MADC: Giá trị dữ liệu trả về từ ADC

0offset_ADC: Giá trị ADC tại 0 kPa (0offset_ADC = 500)

Thử nghiệm thực tế, cảm biến độ ẩm được chôn ở độ sâu 0.2m trong lòng đất và được chôn trong khoảng thời gian 2 ngày trước khi tiến hành đo đạc để đảm bảo điều kiện nước bên trong cảm biến và môi trường đất ngoài là tương đương. Kết quả được thể hiện như trên hình 3.3

- Đối với cảm biến gia tốc: các dữ liệu được thu thập và thực hiện việc tính toán để tìm kết quả. Các thuật toán để tính gia tốc tại mỗi trục bằng phương trình (33)

(33)

Trong đó:

Ai là giá trị của gia tốc theo hướng i = X, Y, Z; Vi là giá trị sau khi lấy mẫu của trục;

RADC là điện áp tham chiếu; Oi là giá trị offset

Si là độ nhạy.

Kết quả điện áp Offset và độ nhạy của cảm biến gia tốc được cho trong bảng 3.1 Bảng 3.1: Điện áp Offset và độ nhạy

Trục Offset (V) Độ nhạy (V/g)

x 1.6455 0.3362

y 1.6234 0.3379

z 1.6689 0.329

- Các dữ liệu được quản lý, kiểm soát thông qua website: (adsbygoogle = window.adsbygoogle || []).push({});

http://uetlandslide.com/home.action. Ở website này xây dựng gồm có 4 phần chính là: + Home: Giới thiệu chung về thực trạng sạt lở đất ở Việt Nam và yếu tố thúc đẩy lĩnh vực để xây dựng trang web này. Và hình vẽ mô phỏng việc lắp đặt các nút cảm biến trong thực tế để thực hiện việc thu thập dữ liệu từ môi trường bên ngoài, phác họa về mặt phẳng trượt có khả năng gây ra sạt lở đất. Đồng thời cũng giới thiệu

0 50 100 150 200 250 300 350 0 0.02 0.04 0.06 50 100 150 200 250 300 1.5 2 2.5 3 A m p lit u d e 0 50 100 150 200 250 300 350 -0.04 -0.02 0 0.02 Time(s)

về mô hình chung của phương thức truyền nhận dữ liệu để thực hiện việc theo dõi các dữ liệu.

+ Statistics: bao gồm 3 phần chính (From, To, Select node) thực hiện việc chọn nút cảm biến để theo dõi số liệu tại vị trí từ nút này và khoảng thời gian thực hiện việc theo dõi dữ liệu. Các dữ liệu thu được thể hiện dưới dạng thống kê số liệu.

+ Graphics: bao gồm 4 phần chính (From, To, Select node, Graph type) thực hiện chức năng giống Statistics, có thêm phần Graph type để lựa chọn cụ thể loại dữ liệu mà chúng ta cần theo dõi và giám sát (Temperature, Moisture, Acceleration và Battery). Nhưng khác với phần Statistics đóng vai trò là thống kê các dữ liệu của môi trường phần Graphics khi nhận được dữ liệu từ các nút sẽ thực hiện việc minh họa các dữ liệu thành một chuỗi các số liệu dưới dạng đồ thị để thuận tiện trong vấn đề giám sát kiểm tra.

+ About: Bao gồm số điện thoại quản lý để khi nào trang web nhận được dữ liệu từ các nút sẽ gởi thông báo đến số điện thoại đó (message) để bảo đảm rằng các dữ liệu môi trường cần khảo sát từ các nút luôn được quản lý.

Hình dưới đây mô tả giao diện quản lý dữ liệu của trang web.

3.2. Thực nghiệm kiểm chứng: 3.2.1. Thực nghiệm trong phòng: 3.2.1. Thực nghiệm trong phòng:

Khi đo lường trong phòng thí nghiệm, các kịch bản thực nghiệm được thể hiện trong Bảng 3.2.

Bảng 3.2: kịch bản thực nghiệm khi đo lường trong phòng thí nghiệm Kiểu kết nối Số lượng

nút

Khoảng cách từ nút tới gateway Phạm vi thực nghiệm Thời gian thực nghiệm mô phỏng Nút 1 Nút 2 Nút 3 Hình sao 3 2.5 m 3 m 4.5 m 5x5 m2 2 giờ

Mô hình thực nghiệm được thể hiện trong hình 3.6.

Khi kết thúc thực nghiệm, tôi thực hiện việc tính toán tỷ lệ phân phối gói dữ liệu các cơ sở về số lượng gói tin đã được gửi và nhận. Việc tính toán tỷ lệ phân phối gói dữ liệu thực hiện theo công thức:

Tỷ lệ giao Packet = số lượng gói tin nhận được / số gói tin đã gửi

Hình 3.6: Mô hình thực nghiệm các hệ thống WSNs khi thí nghiệm trong phòng

Số lượng gói tin gửi của các nút 1, nút 2, và nút 3 tương ứng là 62 tin, 68 tin và 55 tin. Như vậy tổng số gói tin đã gửi trong quá trình thực nghiệm là 185 gói tin. Từ hình 3.7, tổng số gói tin nhận được là 185 gói tin. Do đó, tỷ lệ nhận được gói dữ liệu trong quá trình thực nghiệm là 100%.

Trong quá trình thực tế, việc xây dựng các mô hình tương tự với quá trình thực nghiệm. Hình 3.9 sẽ hiển thị các mô hình trong quá trình thực tế.

Hình 3.8: Số lượng gói tin gửi đi trong quá trình thực nghiệm trong phòng

Số lượng các gói tin truyền - nhận được thể hiện trong Bảng 3.3.

Bảng 3.3: Số lượng các gói tin truyền - nhận được trong quá trình thực nghiệm trong phòng

Số gói tin truyền Số gói tin nhận Tỷ lệ nhận tin thành công (%)

185 185 100

3.2.2. Thực nghiệm ngoài trời:

Khi đo bên ngoài, tôi đã mở rộng số lượng các nút cảm biến. Các kịch bản thực nghiệm được thể hiện trong Bảng 3.4.

Bảng 3.4: Kịch bản thực nghiệm khi đo lường ngoài trời Kiểu kết

nối

Số lượng

nút (adsbygoogle = window.adsbygoogle || []).push({});

Khoảng cách từ nút tới gateway Phạm vi thực nghiệm Thời gian thực nghiệm mô phỏng Nút1 Nút 2 Nút 3 Nút 4 Nút 5 Nút 6 Hình sao 6 38 m 57 m 18 m 39 m 35 m 25 m 100 ×100 m2 30 phút Mô hình thực nghiệm được thể hiện trong hình 3.10

Khi kết thúc thực nghiệm, tôi đã tính toán tỷ lệ phân phối gói dữ liệu các cơ sở về số lượng gói tin đã được gửi và nhận.

Số lượng gói tin gửi của các nút 1, nút 2, nút 3, nút 4, nút 5 và nút 6 tương ứng là 11 tin, 23 tin, 19 tin, 13 tin, 15 tin, và 16 tin. Như vậy tổng số gói tin đã gửi trong quá trình thực nghiệm là 97 gói tin. Từ hình 3.11, tổng số gói tin nhận được là 97 gói tin. Do đó, tỷ lệ nhận được gói tin trong quá trình thực nghiệm là 100%.

Trong quá trình thực tế, việc xây dựng các mô hình tương tự với quá trình thực nghiệm. Hình 3.13 sẽ hiển thị các mô hình trong quá trình thực tế.

Hình 3.11: Số lượng gói tinnhận được trong quá trình thực nghiệm ngoài trời

Số lượng các gói tin truyền - nhận được thể hiện trong Bảng 3.5.

Bảng 3.5: Số lượng các gói tin truyền - nhận được trong quá trình thực nghiệm ngoài trời

Số gói tin truyền Số gói tin nhận Tỷ lệ nhận tin thành công (%)

97 97 100

3.3. Nâng cao thời gian hoạt động của hệ thống:

Trong phần này, tôi thực hiện tính toán tiêu thụ điện năng của bộ cảm biến trong các hộp cảm biến để ước tính tuổi thọ của pin. Các hộp cảm biến bao gồm 3 loại cảm biến: nhiệt độ, gia tốc và độ ẩm của đất. Mức độ tiêu thụ điện năng của bộ cảm biến được thể hiện trong Bảng 3.6.

Bảng 3.6: Công suất tiêu thụ điện của một nút cảm biến [10]

Thành phần nút cảm biến

Dòng điện (mA) Điện áp (V) Công suất (mW)

Waspmote 15 (Hoạt động) 55*10-3 (Nghỉ) 3,3 49,5 (Hoạt động) 0,18 (Nghỉ) Modul XBee 3 3,3 10 Cảm biến nhiệt độ 10 3,3 33 Cảm biến gia tốc 0,35 3,3 1,155 Cảm biến độ ẩm 2 3,3 6,6

Tổng công suất trung bình của nút cảm biến khi hoạt động = 100,255 mW

Tổng công suất trung bình của nút cảm biến ở chế độ nghỉ = Công suất của Waspmote ở chế độ nghỉ = 0,18 mW

Pin là pin Lithium, nó có điện áp là 3,7V và 6600 mAh. Công suất tiêu thụ được tính bằng công thức:

Công suất tiêu thụ = Điện áp * Dòng điện

Từ công thức trên, điện năng tiêu thụ là 24,420 Wh. Theo lý thuyết thời gian cho lần sạc tiếp theo được tính: 24420mWh / 100.255mW = 244 giờ (khoảng 10,2 ngày).

Trong thực tế, pin chì-axit không thể xả nhiều lần bằng 100% năng lượng của nó. Vì vậy, khi tính toán cần phải giảm công suất pin bằng một lượng khoảng 25%.

Trong trường hợp này, 25% * 244 giờ = 61 giờ. Vì vậy, thời gian thực tế giữa 2 lần nạp lúc này là: 244 giờ - 61 giờ = 183 giờ (khoảng 7,6 ngày).

Để tiết kiệm năng lượng tiêu thụ, sau 10 phút chúng tôi thực hiện đọc và truyền dữ liệu một lần trong 3 giây. Trong khoảng thời gian còn lại, các nút cảm biến trong mô hình hoạt động ở chế độ nghỉ và tiêu thụ điện năng ở mức thấp.

Tổng năng lượng tiêu thụ trong 3 giây để đọc và truyền dữ liệu là: 100.255mW * 3s = 0.08mWh. Trong thời gian nghỉ, năng lượng tiêu thụ là: 0.18mW * 10 min = 0.03mWh.

Tổng số lần các nút cảm biến đọc và truyền dữ liệu là: 24420mWh / (0.08mWh + 0.03mWh) = 222.000 lần.

Các nút cảm biến có thể hoạt động khoảng: 222.000 lần * (10 phút + 3giây) * (100% - 25%) = 1162 ngày (khoảng 3,2 năm).

Với việc thực hiện truyền nhận dữ liệu từ các nút cảm biến với thời gian là khoảng 10 phút/1 lần thì vấn đề tiêu thụ năng lượng của pin được tiết kiệm mà hiệu quả công việc vẫn có thể đảm bảo, tuổi thọ của pin được tăng lên từ 7 ngày đến 3 năm.

3.4. Thảo luận:

- Để cho mô hình đảm bảo tính hiệu quả và có thể được áp dụng trong thời gian tới, hệ thống đưa ra phương thức truyền – nhận dữ liệu chung cho mô hình này như sau: (adsbygoogle = window.adsbygoogle || []).push({});

- Phương thức truyền – nhận dữ liệu được thực hiện như mô hình truyền nhận phía trên: các dữ liệu về môi trường sẽ được thu từ các nút cảm biến bao gồm các

Một phần của tài liệu Nghiên cứu và xây dựng cụm cảm biến sử dụng cho hệ thống cảnh báo sạt lở đất (Trang 46)