CHƯƠNG 3 XÂY DỰNG HỆ THỐNG CƠ SỞ DỮ LIỆU VÀ CẬP NHẬT ĐỘNG DỮ LIỆU MẠNG CẢM BIẾN KHÔNG DÂY LÊN WEBSITE
3.2. Chương trình nhúng cho các nút mạng
3.3.2. Chương trình giao diện cảnh báo
Hình 3.17: Mô tả các thành phần trong .NET Framework.
.NET Framework của Microsoft là một nền tảng lập trình tập hợp các thƣ viện lập trình có thể đƣợc cài thêm hoặc đã có sẵn trong các hệ điều hành Windows. Nó cung cấp những giải pháp thiết yếu cho những yêu cầu thông thường của các chương trình điện toán như lập trình giao diện người dùng, truy cập dữ liệu, kết nối cơ sở dữ liệu, ứng dụng web, các giải thuật số học và giao tiếp mạng. Ngoài ra, .NET Framework quản lý việc thực thi các chương trình được viết dựa trên .NET Framework do đó người dùng cần phải cài.NET Framework để có thể chạy các chương trình đƣợc viết trên nền .NET.
.NET Framework có hai thành phần chính: Common Language Runtime (CLR) và thƣ viện lớp .NET Framework. CLR là nền tảng của .NET Framework. Chúng ta có thể hiểu runtime nhƣ là một agent quản lý mã nguồn khi nó đƣợc thực thi, cung cấp các dịch vụ cốt lõi nhƣ: quản lý bộ nhớ, quản lý tiểu trình, và quản lý từ xa. Ngoài ra nó còn thúc đẩy việc sử dụng kiểu an toàn và các hình thức khác của việc chính xác mã nguồn, đảm bảo cho việc thực hiện đƣợc bảo mật và mạnh mẽ. Thật vậy, khái niệm quản lý mã nguồn là nguyên lý nền tảng của runtime. Mã nguồn mà đích tới runtime thì đƣợc biết nhƣ là mã nguồn đƣợc quản lý (managed code). Trong khi đó mã nguồn mà không có đích tới runtime thì đƣợc biết nhƣ mã nguồn không đƣợc quản lý (unmanaged code).
Thƣ viện lớp, một thành phần chính khác của .NET Framework là một tập hợp hướng đối tượng của các kiểu dữ liệu được dùng lại, nó cho phép chúng ta có thể phát
dụng có giao diện đồ họa (GUI) đến những ứng dụng mới nhất đƣợc cung cấp bởi ASP.NET, nhƣ là Web Form và dịch vụ XML Web.
Ngôn ngữ C#
C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường. Microsoft phát triển C# dựa trên C++ và Java. C# đƣợc miêu tả là ngôn ngữ có đƣợc sự cân bằng giữa C++, Visual Basic, Delphi và Java. C# đƣợc thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sƣ phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC.
Ngôn ngữ C# đƣợc lựa chọn trong luận văn này vì nó có đƣợc sự mạnh mẽ của C++ và sự đơn giản của VB:
C# là ngôn ngữ đơn giản
C# là ngôn ngữ hiện đại
C# là ngôn ngữ hướng đối tượng
C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
C# là ngôn ngữ ít từ khóa
C# là ngôn ngữ hướng module
C# sẽ là một ngôn ngữ phổ biến
3.3.2.2. Chương trình giao diện cảnh báo sự cố tự động
Hình 3.18: Giao diện chính của chương trình Thiết đặt thông số cổng COM
Đây là phần để thiết đặt các thông số cổng COM gồm số hiệu COM Port, tốc độ Baud Rate, giá trị Party, Data Bits và Bit Stop. Hình thể hiện cổng đƣợc cài đặt có số hiệu COM5. Thực chất đối với máy tính cá nhân hiện nay, các cổng COM không còn đƣợc tích hợp nhiều nữa. Nhƣng chúng ta hoàn toàn có thể dễ dàng có một kết nối cổng COM với thiết bị chuyển đổi USB to RS232 thông qua một cổng kết nối USB.
comport.BaudRate = int.Parse(cmbBaudRate.Text);
comport.DataBits = int.Parse(cmbDataBits.Text);
comport.StopBits=(StopBits)Enum.Parse(typeof(StopBits), cmbStopBits.Text);
comport.Parity = (Parity)Enum.Parse(typeof(Parity), cmbParity.Text);
comport.PortName = cmbPortName.Text;
Hình 3.19: GroupBox chứa các tham số cài đặt ComPort
Thiết đặt các giá trị cảnh báo
Vì không phải lúc nào chúng ta cũng theo dõi trực tiếp quá trình diễn biến môi trường, nên phải thiết kế một hệ thống tự động cảnh báo khi có sự cố để xử lý kịp thời.
Các mức cảnh báo sẽ là các ngƣỡng gây nguy hiểm có mức độ từ thấp đến cao và có thể thay đổi linh hoạt được. Dưới đây là thiết đặt các mức ngưỡng với 3 mức cơ bản của nhiệt độ và độ cao mức nước
Hình 3.20: GroupBox chứa các tham số cài đặt mức ngƣỡng Điều khiển ngắt nối cổng COM
Đây là phần điều khiển đóng mở cổng COM.
Mở port
comport.Open();
Đóng port
comport.Close();
Hình 3.21: GroupBox ngắt nối cổng COM Điểu khiển monitor
Chứa các nút dùng để điều khiển hiển thị các thông tin nhƣ đồ thị, dữ liệu trong khoảng thời gian và dùng để lưu dưới dạng file văn bản.
Hình 3.22: GroupBox ngắt nối cổng COM Bảng thông báo kết quả
Hiển thị kết quả thông tin tức thời từ hệ thống giá trị mức nước và nhiệt.
Hình 3.23: Hiển thị kết quả
Vẽ đồ thị hiện thị thông tin tức thời một cách tự động liên tục theo thời gian thực
Để hiện thị thông tin một cách giác quan hơn ta có thể sử dụng đồ thị với trục dữ liệu và một trục nữa là thời gian. Luận văn sử dụng thƣ viện ZedGraph của .NET. Muốn vậy ta phải thêm thƣ viện ZedGraph.dll vào Project.
Hình 3.24: Đồ thị thời gian thực
Kết quả thông báo trên TextBox: các thông tin từ cổng COM gửi về trong bộ đệm sẽ đƣợc hiển thị theo dòng lần lƣợt trên TextBox.
Hình 3.25: Kết quả truyền về
Kết quả truy vấn dữ liệu trong khoảng thời gian theo ngày:
Hình 3.26: Truy xuất kết quả theo ngày
Cảnh báo sự cố: Mỗi khi có sự cố vƣợt ngƣỡng ta sẽ cho phát một file audio cảnh báo và đồng thời cho hiển thị lên màn hình nội dung cảnh báo khác nhau với dòng chữ động.
Hình 3.27: Thông báo cảnh báo vƣợt ngƣỡng Cho hiển thị TextBox cảnh báo:
textBox7.Show();
timer1.Enabled = true;
textBox7.Text = "BÁO ĐỘNG CẤP HAI MỨC NƯỚC ĐÃ VƯỢT NGƢỠNG CHO PHÉP!!!";
Cho phép phát âm thanh cảnh báo
SoundPlayer a = new SoundPlayer("warn2.wav");
a.PlayLooping();
Điều khiển chương trình cảnh báo:
Từ giao diện người dùng, chúng ta sẽ thiết kế thêm phần điều khiển chương trình cảnh báo nhắm thuận tiện phát hiện sự cố một cách nhanh và chính xác nhất.
Thiết lập tham số cho các cảnh báo:
Tùy vào vị trí đặt sensor, các ứng dụng cụ thể mà chúng ta cần thiết lập mức độ cảnh báo phù hợp. Thông thường với cảnh báo thiên nhiên sẽ có các cấp độ khác nhau từ bình thường cho đến khẩn cấp nguy hiểm. Vì vậy ta cần phải thiết đặt nhiều mức cảnh báo
VD: Các cấp báo động mức nước lũ sông Việt Nam
Báo động Cấp I Có khả năng xảy ra lũ - Nước sông dâng cao; đe doạ phần bờ
cao; gây ngập ở các vùng đất rất thấp
Báo động Cấp II Tình trạng lũ nguy hiểm - Lũ gây ngập tại những vùng bằng phẳng; trừ những thị trấn và thành phố được bảo vệ trước sự tấn công của nước lũ;
dòng chảy trong sông với vận tốc lớn gây nguy hiểm cho bờ sông và làm xói lở đê;
chân cầu có nguy cơ bị nguy hiểm do bị xói lở
Báo động Cấp III Tình trạng lũ rất nguy hiểm - Tất cả các vùng đất thấp đều bị ngập; kể cả những vùng đất thấp nằm trong thành phố; sự an toàn của các đê bảo vệ ven sông đang bị đe doạ; bắt đầu có sự thiệt hại về cơ sở hạ tầng
Báo động trên Cấp III Trình trạng lũ khẩn cấp - Lũ không thể kiểm soát đƣợc trên diện rộng; đê bị vỡ là điều khó tránh khỏi và có thể không kiểm soát đƣợc; thiệt hại về cơ sở hạ tầng là nghiêm trọng
(theo Văn phòng thường trực Ban chỉ đạo Phòng chống lụt bão Trung ương) Nhƣ vậy, chúng ta phải thiết lập các mức cảnh báo để có thể mang lại thông tin hiệu quả nhất. Vì điều kiện thí nghiệm còn hạn chế, nên ở đây việc thiết đặt thông số cảnh báo chỉ mang tính chất biểu trƣng.
Phát tín hiệu cảnh báo:
Tín hiệu cảnh báo ở đây có thể là: gửi cảnh báo trên mạng Internet, phát tin nhắn đến điện thoại tổng đài, âm thanh cảnh báo, phát đèn cảnh báo. Trong khuôn khổ đề tài này sử dụng cảnh báo bằng âm thanh. Mỗi khi sensor truyền về tín hiệu môi trường vượt quá mức ngưỡng cho phép, chương trình sẽ tự động phát ra âm thanh cảnh báo. Để thực hiện điều này ta cần thêm form cảnh báo.