3. Giao diện phần mềm Trạm khí tượng:
3.1 Đặt cấu hình:
Máy tính và cảm biến được kết nối với nhau qua cổng RS232 nên cần có một sự thống nhất về cấu hình cho cả máy tính và cảm biến. Muốn vậy thì đặt cấu hình là một phần quan trọng. Trong tính năng đặt cấu hình thì theo các chế độ giao tiếp của cảm biến, các thông số cần chọn là: địa chỉ thiết bị, giao thức truyền thông (ASCII tự động, ASCII tự động với mã kiểm tra CRC, ASCII tuần tự, ASCII tuần tự với CRC, NMEA 0183 tự động, NMEA 0183 tuần tự, SDI-12 v1.3-chế độ low-power để đo và gửi dữ liệu ra khi có yêu cầu, SDI-12 v1.3 đo liên tục), thông số kiểm tra, lựa chọn kết nối(SDI-12, RS-232, RS-485, RS-422), tốc độ truyền, số bit truyền, số bit kiểm tra và số bit dừng. Các thông số này sẽ được ghép lại thành một bản tin chung và sẽ là lệnh để đặt cấu hình cho máy tính theo yêu cầu truyền thông nối tiếp.
Một bản tin như vậy có dạng:
aXU,A=a,M=[M],T=[T],C=[C],B=[B],D=[D],P=[P],S=[S],L=[L],N=[N],V=[V]<cr><lf> với a là địa chỉ thiết bị, XU là câu lệnh đặt,A là địa chỉ: 0 (mặc định) …9, A…Z, a…z, M là giao thức truyền thông, T là thông số để kiểm tra, C là lựa chọn kết nối, B là tốc độ truyền (baud): 1200, 2400, …115200, ta chọn ở đây tốc độ truyền baud là 9600, D là số bit dữ liệu truyền: 7/8, P là bit kiểm tra, S là số bit dừng, L là thời gian trễ trên đường truyền RS-232, N là tên thiết bị (WXT510), V là phiên bản phần mềm.
Phần cài đặt cấu hình sẽ được thao tác trên giao diện tab chức năng tên là “ Đặt cấu hình”, trong đó, người sử dụng sẽ phải đặt cấu hình để kết nối cảm biến và đặt cấu hình để kết nối cơ sở dữ liệu, ta có thể xem trong giao diện dưới đây:
Hình 17 Giao diện chức năng “ Đặt cấu hình” 3.2 Lựa chọn chế độ đo:
Đây là tính năng cho phép người dùng lựa chọn đo tự động tất cả các thông số hay đo một số thống nhất định.
Cũng theo yêu cầu về giao thức truyền thông, muốn điều khiển cho cảm biến đo theo yêu cầu thì cũng phải tạo ra một bản tin để gửi đến cổng truyền thông. Với lựa chọn đo tự động tất cả các thông số thì bản tin sẽ là aR0<cr><lf> với a là địa chỉ thiết bị, R0 là câu lệnh yêu cầu thông tin về tất cả các thông số đo. Với lựa chọn đo theo yêu cầu, bản tin có dạng
aR1,Dm=[Dm],Sm=[Sm],aR2,Ta=[Ta],Ua=[Ua],Pa=[Pa],aR3,Ri=[Ri]<cr><lf>
với a là địa chỉ thiết bị, R1 là yêu cầu thông tin đo gió, R2 là yêu cầu thông tin nhiệt độ, áp suất, độ ẩm, R3 là yêu cầu thông tin lượng mưa, Dm là hướng gió, Sm là tốc độ gió, Ta là nhiệt độ, Ua là độ ẩm, Pa là áp suất, Ri là lượng mưa.
Nếu thông số nào được yêu cầu thì giá trị của nó bằng 1, còn bình thường không được đo thì giá trị của nó mặc định là 0. Ví dụ nếu ta chỉ chọn đo tốc độ gió và lượng mưa thì bản tin có dạng: aR1,Dm=0,Sm=1,aR2,Ta=0,Ua=0,Pa=0,aR3,Ri=1<cr><lf>
Phần lựa chọn chế độ đo sẽ được thao tác trên giao diện có tab tên là “ Lựa chọn chế độ đo”, trong đó, người sử dụng sẽ có thể lựa chọn các chế độ đo khác nhau ( hoặc tự động đo tất cả các thông số hoặc đo các thông số cụ thể) tùy thuộc nhu cầu sử dụng.
Hình 18 Giao diện chức năng “ Lựa chọn chế độ đo” 3.3 Giám sát số liệu:
Ta có lưu đồ thuật toán từ khi bắt đầu cho đến khi kết thúc một quá trình nhận, giải mã, hiển thị và cập nhật vào cơ sở dữ liệu một bản tin thông số thời tiết như sau:
Hình 19 Lưu đồ thuật toán
Máy tính sẽ nhận các bản tin cấu hình và chế độ đo nhờ ta đặt một biến toàn cục dạng xâu kí tự chứa bản tin. Khi gọi chương trình này thì nó tự động lấy bản tin đặt cấu hình, thực hiện thủ tục mở cổng RS232 và giải mã bản tin để đặt cấu hình cho máy tính. Khi đã thực hiện mở cổng thì bản tin về chế độ đo sẽ được đưa lên RS232 và truyền cho cảm biến. Sau khi truyền yêu cầu đến cảm biến thì đồng thời nhận số liệu về từ cổng và giải mã bản tin từ cổng để hiển thị số liệu và ghi vào cơ sở dữ liệu trong cơ sở dữ liệu của mySQL.
Chức năng giám sát số liệu được hiển thị trên giao diệnnhư hình dưới, trong đó thể hiện tất cả các thông số môi trường mà người sử dụng cần giám sát, theo dõi:
Hình 20 Giao diện chức năng “ Giám sát số liệu”
3.4 Tra cứu thống kê:
Tính năng này cho phép chúng ta xem dữ liệu từ thời gian nào đến thời gian nào của tất cả các thông số, ta có thể dễ dàng theo dõi sự thay đổi theo thời gian của các thông số, cũng như truy xuất được thời gian đã đo các thông số để có thể theo dõi.
Hình 21 Giao diện chứcnăng “ Tra cứu thống kê”
4 Phần mềm “Cảm biến ảo”
Theo như mô tả ở chương 3, “Cảm biến” này lấy bản tin mang thông tin về lựa chọn chế độ đo từ máy tính qua cổng truyền tin nối tiếp, giải mã bản tin và tiến hành giả số liệu đo. Sau khi thu thập được một tập số liệu đo, chương trình sẽ tạo ra một bản tin mang đầy đủ số liệu đã thu thập theo yêu cầu máy tính và gửi trả về cho cổng RS 232. Việc đặt cấu hình cho “Cảm biến” được thực hiện bằng tay ngay trên mặt máy. Bản tin trả về có dạng:
aR0,Dm=[Dm],Sm=[Sm],Ta=[Ta],Ua=[Ua],Pa=[Pa],Ri=[Ri]<cr><lf>
là gộp các số liệu yêu cầu. Nếu một thông số nào không được yêu cầu đo thì giá trị của nó trong bản tin sẽ là 0.
Hình 22 Phần mềm cảm biến ảo WXT510
Sau khi đã kết nối thành công cảm biến ảo WXT510 với máy tính, lúc này cảm biến đã sẵn sàng gửi các tín hiệu giả định ngẫu nhiên về máy tính , việc lấy ngẫu nhiên này được thông qua hàm GetRandomNumber(x,y) trong C#
5.1 Ghép nối:
Để ghép nối truyền nhận dữ liệu giữa cảm biến ảo WXT510 với máy tính, tôi sử dụng:
• 02 Cáp USB sang COM RS232
• 01 cáp cổng COM RS232 với 2 đầu âm
Hình 23 Hai cáp chuyển đổi USB-RS232 và cáp RS232 với 2 đầu âm
Nối từng đầu đực cổng RS232 của cáp chuyển đổi RS232-USB với các đầu cái của sợi dây 2 đầu âm RS232. Để có thể truyền nhận dữ liệu, cần đổi chéo 2 đầu chân 2 và chân 3 , ta cắt đôi dây COM âm 2 đầu và nối chéo 2 chân 2 và 3 với nhau, chân mát ( chân 5) hai đầu dây nối với nhau.
Các đầu USB còn lại sẽ nối với máy tính để truyền nhận dữ liệu trên cùng một máy tính từ cảm biến ảo WXT510 được giả lập trên máy tính.
5.2 Chạy thử nghiệm
Chạy chương trình của trạm khí tượng tự động, cảm biến ảo WXT510, sau đó cài đặt cấu hình và kết nối cơ sở dữ liệu mySQL với máy tính, cảm biến ảo với máy tính
Hình 26 Cảm biến ảo WXT510 sau khi đã kết nối
Sau khi đã chọn các chế độ đo theo yêu cầu của người sử dụng, ta có thể xem các giá trị đo đạc về máy tính thông qua một chức năng khác trong phần mềm trạm khí tượng tự động tại tab Giám sát số liệu.
Trong trường hợp ta chọn chế độ tự động, và khi đó tất cả các giá trị sẽ tự động được gửi về (nhiệt độ, độ ẩm, hướng gió, tốc độ gió, áp suất, lượng mưa)
Hình 27 Kết quả đo đạc khi sử dụng tab chế độ đo tự động
Nếu chọn chế độ đo theo yêu cầu thì chỉ các giá trị được chọn trong phần lựa chọn đại lượng đo, mới được gửi về , các giá trị còn lại được cho về giá trị 0 (không đo). Hình dưới đây ta chọn chế độ đo theo yêu cầu và chỉ yêu cầu đo hai thông số là nhiệt độ và hướng gió
Kết quả ta sẽ nhận được chỉ có hai thông số nhiệt độ và hướng gió là vẫn tiếp tục nhận giá trị về từ cảm biến, còn lại các thông số khác sẽ trở về giá trị 0.
Hình 28 Kết quả đo đạc khi sử dụng tab chế độ đo từng phần
Khi vận hành, nếu người sử dụng cần tra cứu lại các số liệu đo đạc trước đó, có thể sử dụng tab chức năng Tra cứu thống kê. Ví dụ ở đây chọn tra cứu thông tin từ ngày 01/03/2015 đến ngày 23/01/2015 , ta nhập số liệu vào các thông tin “ từ ngày” , “ đến ngày” như mong muốn, sau đó bấm nút lựa chọn ta được kết quả như sau:
5.3 Đánh giá thử nghiệm
• Phần mềm trạm khí tượng đã hoạt động tốt và có thể chạy theo yêu cầu của người sử dụng. Các thông số cần hiển thị theo yêu cầu đề bài (Nhiệt độ, Độ ẩm, Lượng mưa, Tốc độ gió, Hướng gió, Áp suất ) đều hiển thị tốt, liên tục và sai số nhỏ.
• Các kết quả thu thập về được lưu vào trong cơ sở dữ liệu mySQL và truy xuất ra ngoài chính xác và đầy đủ.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết luận:
Sau thời gian 6 tháng học tập nghiên cứu luận văn và nhận được sự giúp đỡ hướng dẫn rất tận tình của thầy Lê Minh Hoàng, tôi đã hoàn thành đề tài lu ận văn với các kết quả như sau:
• Khái quát được về tình hình nghiên cứu khí tượng thuỷ văn ở nước ta và trên thế giới, đưa ra một số giải pháp xây dựng các trạm quan trắc hiện đại hiện nay.
• Phần mềm trạm khí tượng đã hoạt động tốt và có thể chạy theo yêu cầu của người dung, máy tính thu thập dữ liệu đầy đủ và chính xác với cơ sở dữ liệu mySQL, cảm biến ảo WXT510 hoạt động tốt theo cấu hình và giao thức truyền - nhận như thiết bị thật, quá trình truyền nhận dữ liệu ổn định, sai số nhỏ.
Hướng phát triển của đề tài :
Ngôn ngữ lập trình C# đang được ứng dụng một cách rộng rãi và hiệu quả để thực hiện các đề tài lớn nhỏ. Đề tài của tôi đã thực hiện được phần nào yêu cầu của luận án, và đề tài có thể phát triển theo các hướng sau:
• Thiết kế website trạm khí tượng để truy cập và truy vấn số liệu. • Ứng dụng để hỗ trợ việc dự báo thời tiết.
Tuy nhiên, do thời gian cũng như kiến thức còn hạn chế nên trong quá trình thực hiện luận văn, tôi không thể tránh được những sai sót. Vì vậy tôi kính mong nhận được sự góp ý , hướng dẫn thêm của các thầy cô giáo bộ môn Kỹ thuật Đo và Tin học Công nghiệp và các cán bộ nghiên cứu Trung tâm MICA để có thể hoàn thiện hơn nữa nội dung của đề tài luận văn này.
PHỤ LỤC: Các trường trong lệnh truyền thông của WXT 510
1. Các trường trong lệnh đặt chế độ giao tiếp hiện thời
• a = Địa chỉ thiết bị
• XU = Lệnh đặt trong ASCII và NMEA 0183 • XXU = Lệnh đặt trong SDI-12
• [A] = Địa chỉ: 0 (mặc định) …9, A…Z, a…z
• [M] = Giao thức truyền thông (A=ASCII tự động, a= ASCII tự động với mã kiểm tra CRC, P = ASCII tuần tự, p= ASCII tuần tự với CRC, N= NMEA 0183 tự động, Q= NMEA 0183 tuần tự, S= SDI-12 v1.3-chế độ low-power khi đo và gửi dữ liệu ra khi có yêu cầu, R= SDI-12 v1.3 đo liên tục= phép đo được thực hiện trong những khoảng thời gian cập nhật được đặt bởi người sử dụng)
• [T] = Thông số để kiểm tra (=0 nếu không có thông số nào)
• [C] = Giao diện nối tiếp(1= SDI-12, 2= RS-232, 3= RS-485, 4= RS-422) • [B] = Tốc độ truyền (baud): 1200,2400, …115200
• [D] = Số bit dữ liệu truyền: 7/8
• [P] = Kiểm tra chẵn lẻ: O= theo lẻ, E= theo chẵn, N= không kiểm tra • [S] = Số bit dừng: 1/2
• [L] = Thời gian trễ trên đường truyền RS-485= 0…10000ms (khi C=3) • [N] = Tên thiết bị: WXT510
• [V] = Phiên bản phần mềm(?) (eg: 1.00,2.01,…) • <cr><lf> = Kết thúc trả lời
2. Các trường trong lệnh yêu cầu thông tin đo gió
• R1= lệnh truy vấn thông tin về gió • Dn= hướng gió nhỏ nhất (D= độ)
• Dm= hướng gió trung bình • Dx = hướng gió lớn nhất
• Sn = Tốc độ gió nhỏ nhất (M = m/s) • Sm = tốc độ gió trung bình
• Sx = tốc độ lớn nhất
3. Các trường trong lệnh yêu cầu thông tin đo áp suất, nhiệt độ, độ ẩm
• R2= lệnh truy vấn thông tin áp suất, nhiệt độ và độ ẩm • Ta = Nhiệt độ (C = o
C)
• Ua = độ ẩm tương đối (P= %RH) • Pa = áp suất không khí (H = hPa)
4. Các trường trong lệnh yêu cầu thông tin đo lượng mưa
• R3 = Lệnh truy vấn thông tin về lượng mưa • Rc = Lượng mưa tích luỹ (M=mm)
• Rd = Khoảng thời gian mưa (s=giây) • Ri = Cường độ mưa (M=mm/giờ)
• Hc = Lượng mưa đá (M = viên đá/ cm2) • Hd = Khoảng thời gian mưa đá (s = giây) • Hi = Cường độ mưa đá (M= viên đá/ cm2 giờ) • Rp = Cường độ mưa cực đại (M = mm/ giờ) • Hp = Cường độ mưa đá cực đại (M = viên đá/ cm2
giờ)
5. Các trường trong câu lệnh nhận dạng: aI!
Khi ra lệnh này, máy sẽ trả về: allccccccccmmmmmmvvvxxxxxxxx<cr><lf>, trong đó:
• all: phiên bản của SDI-12, cho biết phiên bản tương thích của SDI-12, VD phiên bản 1.3 được mã hoá là 13
• cccccccc: 8 kí tự nhận dạng của hang: Vaisala_ • mmmmmm: 6 kí tự chỉ model của cảm biến • vvv: 3 kí tự chỉ phiên bản phần mềm
TÀI LIỆU THAM KHẢO
[1] “Serial port complete: programming and circuits for RS-232 and RS-485 links and
networks and Networks” - Jan Axelson
[2] “Sensor Technology Handbook “ – Jon Wilson
[3] “GIáo trình đo lường điện và cảm biến đo lường “ - Nguyễn Văn Hòa, Trần Đăng Thành, Hoàng Sỹ Hồng- XNB Giáo Dục
[4] “Các giải pháp lập trình C#” – Nguyễn Ngọc Bình Phương, Thái Thanh Phong – NXB Giao Thông Vận Tải
[5] “Mạng truyền thông công nghiệp” – Hoàng Minh Sơn – NXB Khoa Học Kỹ Thuật [6] “WXT 510 User Guide” - Tài liệu hướng dẫn sử dụng của hãng Vaisala.
[7] “WXT510 Weather Transmitter ” Tài liệu giới thiệu sản phẩm hãng Vaisala [8] Trang web của trung tâm dự báo khí tượng thuỷ văn trung ương: