Thiết kế và thực thi hệ thống đo đạc, thu thập các tham số môi trườn g Agrasys

Một phần của tài liệu Ứng dụng của mạng cảm biến trong lĩnh vực tính toán khắp nơi = b application of sensor network in ubiquitous computing (Trang 75)

- Agrasys

Hình 3-5: Sơđồ kiến trúc của hệ thống Agrasys

Hình vẽ trên mô tả kiến trúc của hệ thống Agrasys.Tất cả các chức năng của hệ

thống như: thu thập thông số môi trường, điều khiển thiết bị ngoại vi, giao tiếp với người sử dụng … đều đã được modul hóa thành các đơn vị chức năng nằm trong tầng ứng dụng của hệ thống Agrasys

Các đơn vị chức năng này bao gồm : • Tạo lịch trình (M01)

Đơn vị này có nhiệm vụ sắp xếp một cách hợp lý tất cả các hoạt động khác trong hệ

thống như : hoạt động thập thông tin về môi trường hoạt động giao tiếp mạng hoạt

động điều khiển thiết bị ngoại vi • Đồng bộ (M02)

Đơn vị này có nhiệm vụđồng bộ các hoạt động trong hệ thống • Thu thập thông số môi trường (M03 )

Đơn vị này có nhiệm vụ thực hiện hoạt động thu thập thông tin về môi trường. • Thực hiện lệnh (M04)

Đơn vị này có nhiệm vụ xử lý các lệnh được đưa ra bởi các thiết bị ngoại vi của hệ

thống như bàn phím, màn hình cảm ứng… điều khiển các thiết bị chấp hành (actuator) như :giàn phun, máy bơm.Khi có mã lệnh được gửi đến đơn vị này, tùy theo trạng thái hiện tại của hệ thống mà đơn vị này sẽ quyết định xem nên thực hiện lệnh ngay lập tức, hay là chờ một khoảng thời gian nữa mới thực hiện lệnh , hay là hủy lệnh này đi.

Nhận lênh từ thiết bị ngoại vi (M05 )

Đơn vị này tiếp nhận các lệnh điều khiển của người dùng thông qua thiết bị ngoại vi là bàn phím. Người dùng có thể điều khiển trực tiếp bằng tay việc tăng nhiệt độ, giảm nhiệt độ hoặc bật tắt máy bơm …

Giao tiếp mạng (M06)

Người sử dụng có thể tương tác với hệ thống qua giao diện web, nhờ có đơn vị giao tiếp mạng (M06) mà trang web đó có thể hiển thị giá trị thông số môi trường của các sensor.

Xử lý/Thu thập dữ liệu (dùng cho các sensor có dây)(M07)

Đơn vị này hoạt động trên nền (platform) là môi trường lập trình ngôn ngữ C (Code Vision) cho chip AVR.Có chức năng điều khiển chip AVR thu thập thông số môi trường từ Sensor.Sau đó gửi thông số này cho đơn vị thu thập thông số môi trường (M01) mỗi khi có lệnh yêu cầu gửi dữ liệu.

Nhận lệnh/điều khiển thiết bị chấp hành (M08)

Tương tự nhưđơn vị thu thập,xử lý dữ liệu cho các sensor có dây M09, đơn vị này cũng được phát triển trên nền (Platform) là ngôn ngữ C cho chip AVR. Có chức năng xử lý và thực hiện các yêu cầu điều khiển TBCH từ đơn vị thực hiện lệnh

Xử lý/Thu thập dữ liệu (dùng cho các sensor không dây)(M09)

Phân tích các lệnh được gửi từđơn vị thực hiện lệnh (M04) để đưa ra các quyết

định điều khiển thiết bị chấp hành

Thiết kế chi tiết phần mềm hệ thống Agrasys 3.3.1 Sơđồ ghép nối hệ thống

Hình 3-6 : Sơđồ ghép nối hệ thống

Hình vẽ trên mô tả sơđồ ghép nối của các khối trong hệ thống về mặt vật lý, bao gồm các khối sau:

• Đơn vị xử lý trung tâm H03 • Giao tiếp mạng H06

• Thiết bị ngoại vi H05 (bàn phím, màn hình LCD, Led) • Bộ chuyển đổi 232/485 H02

• Các bộ Sensor môi trường H01

• Các bộ Sensor không dây H10

• Bộđiều khiển kết nối không dây H09 (adsbygoogle = window.adsbygoogle || []).push({});

• Các bộđiều khiển TBCH H05 (Máy bơm làm mát, máy bơm tưới phun, tưới xòe, quạt gió, đèn cực tím)

3.3.2 Hoạt động của hệ thống

3.3.2.1 Tương tác giữa các khối chức năng trong hệ thống

• Khối phát yêu cầu M03.1 • Khối nhận dữ liệu từ Sensor M03.2 • Khối xác nhận và phân tách dữ liệu M03.3 • Khối đóng gói dữ liệu M03.4 • Khối tạo file xml M03.5 • Khối thống kê dữ liệu M03.6

Ngoài ra, để giúp cho việc hiển thị thông số môi trường từ hiện trường lên 1 giao diện người dùng (giao diện web), ngoài các khối củă đơn vị thu thập thông số môi trường M03, cần thêm 1 số khối của các đơn vị khác như :

• Khối web tương tác M06.1 của đơn vị giao tiếp mạng • Khối tạo lịch trình M01

• Khối ứng dụng web M06.2 của đơn vị giao tiếp mạng

• Khối thu thập/xử lý dữ liệu thông số môi trường (không dây) M07 • Khối điều khiển TBCH M08

• Khối thu thập/xử lý thông số môi trường (có dây) M09

Hoạt động của đơn vị thu thập môi trường:

Sơ đồ trên mô tả hoạt động của đơn vị thu thập thông số môi trường M03. Thứ tự

hoạt động của các khối được sắp xếp theo các quá trình (1) Æ (2) Æ (3) Æ (4)Æ(5)

Æ(6) Æ(7) Æ(8), (9) như hình vẽ trên.Ngoài ra, hoạt động (10)Æ (11) diễn ra định kì theo thời gian

(1) Đơn vị tạo lịch trình M01 sẽ sắp xếp thời gian hoạt động cho khối phát yêu cầu M03.1 bằng cách gửi tín hiệu kích hoạt khối này với tần số 2 Hz như hình vẽ sau:

Hình 3-8 : Giản đồ thời gian gửi yêu cầu

(2) Mỗi khi nhận được tín hiệu kích hoạt từ đơn vị tạo lịch trình M01 , khối phát yêu cầu sẽ gửi ra các yêu cầu dưới dạng bản tin có cấu trúc đã được thống nhất trước tới các bộ Sensor không dây, hoặc có dây, hoặc là các thiết bị chấp hành tùy vào ngữ cảnh cụ thể.

(3) Khi nhận được yêu cầu từ khối phát yêu cầu M03.1, các bộ Sensor không dây, có dây,TBCH sẽ đáp trả bằng cách gửi dữ liệu lên bus dưới dạng các bản tin có cấu trúc đã thống nhất trước.

(4) Khi các bộ sensor gửi dữ liệu đến, khối nhận dữ liệu M05 có nhiệm vụ đệm tất cả dữ liệu nhận được vào bộđệm và gửi cho khối xác nhận và phân tách dữ liệu M03.3

(5) Dữ liệu nhận được ở quá trình 4 sẽ được khối xác nhận và phân tách dữ liệu M03.3 kiểm tra tính đúng đắn bằng cách tính toán mã CRC.Nếu như bản tin nhận

được là sai thì sẽ thực hiện huỷ bản tin, còn nếu bản tin nhận đúng thì sẽ phân tách dữ liệu để xác định thông số môi trường nào của sensor nào.Sau đó sẽ chuyển sang quá trình (6).

(6) Trong quá trình này, dữ liệu sẽ được khối đóng gói dữ liệu M03.4 đóng gói thành cấu trúc cơ sở dữ liệu đã thống nhất ở trước, từđây , dữ liệu sẽđược gửi vào cho 2 khối khác nhau.Một là dữ liệu sẽ ghi vào cơ sở dữ liệu, hai là sẽ vào khối update dữ liệu M03.5 để giúp cho việc hiển thị thông số môi trường lên web.

Hình 3-9 Cấu trúc file xml

Có thể thấy được các trường sau:

Trường ID: xác định tên của Sensor

Trường tọa độ x,y : biểu thị vị trí của Sensor trên bản đồ

Trường ngày tháng,thời gian: biểu thị sự tương ứng về mặt thời gian với giá trịđo được của sensor

Trường nhiệt độ: biểu thị nhiệt độđo được từ sensor • Trường độẩm : biểu thịđộẩm đo được từ sensor

Tất cả các trường này đều nằm trong cấu trúc của cơ sở dữ liệu (database), vì vậy khi muốn hiển thị các thông tin này lên web, chỉ việc đọc dữ liệu từ csdl ra và ghi lên file xml có cấu trúc nhưđã giải thích ở trên.

(8) Khối web tương tác M06.1 sẽ thể hiện giá trị thông số môi trường trên 1 giao diện web cho người dùng theo dõi.Để cập nhật giá trị các thông số này, khối này sẽ

gửi yêu cầu làm mới (refresh) xuống cho WebServer (đây là môdun được cài đặt sẵn trong hệ thống) (adsbygoogle = window.adsbygoogle || []).push({});

(9) Khối WebServer nhận được yêu cầu từ khối web tương tác M06.1 (cụ thể là yêu cầu làm mới (resfresh)), sẽ gửi yêu cầu này cho khối ứng dụng Web M06.2 (WebApplication ), khối này sẽ thực hiện lệnh này và cập nhật file XMl được tạo ra bởi khối update dữ liệu M03.5 để cập nhật giá trị thông số môi trường.

(10) Để hỗ trợ cho chức năng quan sát dữ liệu (nhiệt độ, độẩm) trong quá khứ.Khối tạo lịch trình sẽ gửi tín hiệu kích hoạt khối thống kế dữ liệu M03.6 hoạt động .Khối này sẽ thực hiện các công việc cần thiết để phục vụ cho mục đích quan sát dữ liệu trong quá khứ. Chi tiết về hoạt động và chức năng khối thống kê dữ liệu M03.6

được mô tảở Section 3.3.2.2: Hoạt động của khối thống kê dữ liệu

(11) Sau khi dữ liệu được xử lý bởi khối thống kê dữ liệu, sẽđược tạo thành các file XML có cấu trúc đã được định nghĩa trước để sẵn sàng cho việc hiển thị lên giao diện web

Hinh vẽ trên mô tả trình tự logic hoạt động của hệ thống.Sau thời điểm thời điểm bắt đầu ,logic chương trình sẽ chuyển sang hoạt đông khởi tạo các tuyến (1) (thread ) sau:

• Tuyến tạo lịch trình

• Tuyến phát yêu cầu tới sensor • Tuyến thu dữ liệu

Tiếp theo, chương trình sẽ kiểm tra điều kiện (2) :”Có tín hiệu đến từ khối tạo lịch trình hay không?”. Nếu không sẽ tiếp tục quay lại kiểm tra điều kiện này, nếu có sẽ

chuyển sang hoạt động gửi yêu cầu đọc dữ liệu đến các SenSor(3). Sau đó chuyển sang hoạt động kích hoạt tuyến thu dữ liệu (4) , xử lý dữ liệu thu (5) , và khóa tuyến thu dữ liệu (6) để tối ưu tài nguyên cho chương trình.

Sau hoạt động (6), chương trình thực hiện kiểm tra điều kiện (7) “có tín hiệu dừng hoạt động hệ thống hay không?” Nếu có thì chuyển sang trạng thái kết thúc,thoát khỏi chương trình.Còn nếu không thì sẽ quay trở lại hoạt động khởi tạo các tuyến chương trình (2).

3.3.2.2 Hoạt động của khối thống kê dữ liệu Vị trí trong hệ thống

Vị trí của khối thu thống kê dữ liệu (M03.6) được chỉ ra như hình vẽ dưới đây (ô có

Hình 3-11: Vị trí của khối thông kê dữ liệu M03.6 trong hệ thống Chức năng

Module này có chức năng thống kê và xử lý dữ liệu đo đạc trong quá khứ, trước khi dữ liệu này được hiển thị lên đồ thị trên trang web khi có yêu cầu của người sử

dụng

Modul này là một phần của chương trình logic chạy trên đơn vị xử lý trung tâm H03. Tham khảo Hình 3-6 : Sơđồ ghép nối hệ thống.

3.3.2.2.1 Phương pháp thng kê s liu trong quá kh

Yêu cầu phải xử lý số liệu để hỗ trợ cho việc hiển thị

Về mặt chức năng, hệ thống Agrasys cho phép người sử dụng quan sát dữ liệu nhiệt

độ, độẩm đo đạc được trong quá khứ theo các chếđộ sau:

• Xem dữ liệu đo được của toàn bộ một ngày bất kì trong quá khứ

• Xem dữ liệu đo được của toàn bộ một tháng trong quá khứ

• Xem dữ liệu đo được của toàn bộ 1 năm trong quá khứ

• Xem dữ liệu đo được từ thời điểm cách thời điểm hiện tại N giờ

Trong tất cả các chế độ quan sát nói trên, dữ liệu đều được hiển thị dưới dạng đồ

thị như hình vẽ sau:

Hình 3-12: Đồ thị thống kê dữ liệu trong quá khứ

Do tần số lấy mẫu khá lớn : 0.05 hz, nên cứ sau khoảng thời gian 20 giây lại có thêm 1 mẫu dữ liệu (nhiệt độ hoặc độ ẩm). Do đó, trong 1 ngày, 1 tháng, hoặc 1 năm sẽ có rất nhiều mẫu dữ liệu (hàng nghìn mẫu). Từđặc tính về sự biến động của nhiệt độ và độ ẩm: hai đại lượng này biến thiên khá chậm theo thời gian, nên các mẫu dữ liệu cạnh nhau sẽ độ tương quan lớn, sai khác giữa các mẫu là rất ít. Nếu hiển thị tất cả các mẫu này lên đồ thị Hình 3-12: Đồ thị thống kê dữ liệu trong quá khứ thì sẽ gây ra sự dư thừa thông tin, và lãng phí tài nguyên mạng cũng như

tài nguyên của hệ thống.Vì vậy, cần phải xử lý số liệu đo đạc trước khi hiển thị lên

đồ thị.Đối với mỗi chếđộ hiển thị sẽ có một cách xử lý khác nhau. Sau đây là phần giải thích về các cách này. (adsbygoogle = window.adsbygoogle || []).push({});

Các phương pháp xử lý số liệu đối với từng chếđộ hiển thị

Chếđộ hiển thị toàn bộ dữ liệu của 1 ngày trong quá khứ:

Một ngày tương ứng với 24 giờ, do đồ thị ở Hình 3-12: Đồ thị thống kê dữ liệu trong quá khứ chỉ hiển thị 120 mẫu (tương ứng với 120 điểm trên màn hình), nên mỗi giờ sẽ tương ứng với 120/24 =5 (mẫu dữ liệu).Trong thực tế, cứ sau 20 giây thì có thêm một mẫu dữ liệu , do đó trong 1 giờ sẽ có 3600/20 =180 mẫu dữ liệu. Để rút gọn từ 180 mẫu xuống còn 5 mẫu, thực hiện tính giá

trị trung bình của tất cả các mẫu thu thập được trong các khoảng thời thời gian 12 phút. Trong 1 giờ có 5 khoảng thời gian 12 phút, nên sẽ có 5 mẫu dữ liệu. • Chếđộ hiển thị toàn bộ dữ liệu của 1 tháng trong quá khứ

Một tháng tương ứng với 30 ngày (có 1 số tháng khác ít hoặc nhiều hơn 30 ngày ), do đồ thị ở Hình 3-12: Đồ thị thống kê dữ liệu trong quá khứ chỉ

hiển thị 120 mẫu (tương ứng với 120 điểm trên màn hình), nên mỗi ngày sẽ

tương ứng với 120/30 =4 (mẫu dữ liệu).Trong thực tế, cứ sau 20 giây thì có thêm một mẫu dữ liệu , do đó trong 1 ngày sẽ có 4320 mẫu dữ liệu. Để rút gọn từ 4320 mẫu xuống còn 4 mẫu, thực hiện tính giá trị trung bình của tất cả các mẫu thu thập được trong các khoảng thời gian 6 tiếng. Trong 1 ngày có 4 khoảng thời gian 6 tiếng, nên sẽ có 4 mẫu dữ liệu.

Chếđộ hiển thị toàn bộ dữ liệu của 1 năm trong quá khứ

Một năm tương ứng với 12 tháng , do đồ thịởHình 3-12: Đồ thị thống kê dữ liệu trong quá khứ chỉ hiển thị 120 mẫu (tương ứng với 120 điểm trên màn hình), nên mỗi tháng sẽ tương ứng với 120/12 =10 (mẫu dữ liệu).Trong thực tế, cứ sau 20 giây thì có thêm một mẫu dữ liệu , do đó trong 1 tháng sẽ có 129600 mẫu dữ liệu. Để rút gọn từ 129600 mẫu xuống còn 10 mẫu, thực hiện tính giá trị trung bình của tất cả các mẫu thu thập được trong các khoảng thời gian 3 ngày. Trong 1 tháng có 10 khoảng thời gian 3 ngày, nên sẽ có 10 mẫu dữ liệu.

Chếđộ hiển thị toàn bộ dữ liệu của N giờ gần đây

Trong chế độ này, dữ liệu của các giờ liên tiếp trong quá khứ sẽđược ghép lại (mỗi giờ có 5 mẫu).Tùy theo số lượng giờ cần xem mà đồ thị sẽ dài hay ngắn. • Chếđộ hiển thị toàn bộ dữ liệu của N ngày gần đây

Trong chế độ này, dữ liệu của các ngày liên tiếp trong quá khứ sẽđược ghép lại (mỗi ngày có 10 mẫu).Tùy theo số lượng ngày cần xem mà đồ thị sẽ dài hay ngắn.

Hình 3-13: Thuật toán tạo file XML và cơ sở dữ liệu cho ngày (Hình 1) và tháng (Hình 2)

Hình 1 mô tả thuật toán chương trình thu thập dữ liệu AVR và tổng hợp thống kê vào file XML và cơ sở dữ liệu phục vụ cho việc xem quá khứ nhiệt độ và độ ẩm của các sensor

• (1) Khởi tạo mảng:Ởđây phải dùng mảng động do số mẫu trong một giờ không xác định được trước đối với mỗi sensor.Chỉ có thể xác định khi chạy vì thời gian lấy mẫu của mỗi sensor đã được xác đinh.

• (2)Gán các giá trị nhận về từ AVR vào các phần tử của mảng.

• (3)Kiểm tra thời gian hệ thống,xác định giá trị phút của hệ thống.Nếu giá trị

phút chia 12 có dư là 0 và một biến cờ (check) có giá trị khác 1 thì thực hiện bước sau.Nếu 1 trong 2 điều kiện sai thì không thực hiện.

• (4)Tính trung bình các phần tử của mảng,lưu giá trị này vào file xml giờ và vào cơ sở dữ liệu ngày.Xóa mảng.Gán giá trị cờ (check) bằng 1 để các giá trị tiếp theo của phút này nó không thực hiện hàm này nữa.

• (5)Kiểm tra dư của số phút chia 12 bằng 1.

• (6)Nếu (5) đúng thì gán cờ (check) bằng 0 để có thể thực hiện được hàm (4) Hình 2 mô tả thuật toán tạo file XML của ngày và tạo cơ sở dữ liệu của tháng • (1)Kiểm tra sự tồn tại của file dữ liệu ngày.Nếu không tồn tại thì kết thúc thuật

toán này mà không xử lí gì cả.

• (2)Mở file dữ liệu ngày và khởi tạo mảng.Mảng ở đây là mảng động để có thể

Một phần của tài liệu Ứng dụng của mạng cảm biến trong lĩnh vực tính toán khắp nơi = b application of sensor network in ubiquitous computing (Trang 75)