Giải pháp giám sát và cảnh báo phòng server ATSCADA [7]:
Hình 3.10: Mô hình tổng quát hệ thống giám sát và cảnh báo phòng server ATSCADA
Các thành phần của hệ thống bao gồm (Hình 3.11):
- Bộ xử lý Gateway tích hợp phần mềm Web Server giám sát và cảnh báo. - Bộ điều khiển SMART I/O AT-IO8
- Cảm biến: cảm biến khói, cảm biến rò rỉ nước, cảm biến nhiệt độ, cảm biến từ,…
- Đèn còi báo động tại chỗ
- Bảng hiển thị nhiệt độ, độ ẩm đặt tại phòng Server - Relay kích hoạt On/Off
Hình 3.11: Sản phẩm tủ giám sát và cảnh báo phòng server ATSCADA
3.2XÂY DỰNG GIẢI PHÁP:
Như vậy, thị trường trong và ngoài nước cũng đã có các giải pháp giám sát cho phòng máy. Như đã trình bày ở Chương 1 và Chương 2 của luận văn này, công nghệ phần cứng cũng như các giao thức nền tảng IoT hỗ trợ việc xây dựng một hệ thống hoàn chỉnh hỗ trợ việc xây dựng một giải pháp giám sát phòng máy tương tự.
Trong phần này, luận văn sẽ trình bày chi tiết về các loại thiết bị được sử dụng để xây dựng hệ thống thông minh giám sát các thông số môi trường, điều kiện an ninh phòng máy ở một số điều kiện và tính năng cơ bản. Xem xét thử nghiệm ở phòng máy cụ thể là phòng máy Nguyễn Hồng Đào quận Tân Bình. Đây là phòng máy trực thuộc Công ty TNHH truyền hình cáp Saigontourist (SCTV) thực hiện chức năng phân phối tín hiệu truyền hình cho hơn 30.000 khách hàng truyền hình và 8.000 khách hàng Internet. Phòng máy đã được lắp đặt các khối giám sát cơ bản: Kiểm soát cửa ra vào (access control), hệ thống camera, hệ thống giám sát và cảnh báo khói cục bộ. Hệ thống được xây dựng sẽ thực hiện kết nối các khối giám sát rời rạc này lại, đồng thời bổ sung thêm các khối giám sát điều kiện môi trường để có một hệ thống giám sát toàn diện, làm tiền đề cho hệ thống thông minh giám sát điều kiện môi trường và an ninh phòng máy quy mô lớn tập trung từ xa có khả năng mở rộng dễ dàng [1],[2],[8].
Sự quy mô của hệ thống ở đây được xem xét dựa trên số lượng phòng máy được giám sát có thể được kết nối vào hệ thống (số lượng cho SCTV là 174), giao thức cho phép mở rộng số lượng client kết nối đồng thời vào broker không giới hạn (tất nhiên vẫn phải mở rộng tài nguyên broker khi cần).
Ngoài ra, hệ thống được phát triển theo mô hình công nghệ IoT trên cơ sở sử dụng giao thức MQTT đơn giản và có tính mở, giúp ta có thể xây dựng các dịch vụ cloud mở rộng ở thành phần backend trong đó bao gồm cả các thành phần thông minh khi dữ liệu được các cảm biến chuyển về đủ để thực hiện các quyết định hay dự báo (như cảnh báo battery của các bộ lưu điện dự phòng UPS đã xuống cấp cần thay thế) dựa trên các phương pháp khác nhau.
Về định nghĩa trí thông minh, nhiều người đồng nhất "thông minh là khả năng thu thập và sử dụng tri thức". Đối với nhiều người, thuật ngữ "điều khiển thông minh"
có nghĩa là điều khiển dùng phương pháp mạng thần kinh, logic mờ hay giải thuật di truyền. Tuy nhiên, điều khiển thông minh không hạn chế trong các phương pháp trên, điều này quả thực rõ ràng vì trong tương lai có thể có các phương pháp khác để tiếp cận các bài toán ra quyết định phức tạp hơn, do đó, khái niệm thông minh gắn liền với phương pháp là chưa chính xác. Theo Albus, "Hệ thống thông minh là hệ thống có khả năng hoạt
động thích hợp trong môi trường bất định, trong đó một hoạt động thích hợp là hoạt động làm tăng xác suất thành công, và thành công là đạt được mục tiêu con hướng tới đạt được mục tiêu chung của hệ thống". Albus cũng phân ra ba cấp độ thông minh, trong
đó cấp độ tối thiểu là, thông minh đòi hỏi khả năng cảm nhận môi trường, ra quyết định và điều khiển hành động [9].
Ở giải pháp thực nghiệm trong luận văn này, các phương pháp ra quyết định (cảnh báo nhiệt độ cao, khói cháy) được xây dựng theo phương pháp if this then that dựa trên tri thức (dưới hình thái là các tiêu chuẩn kĩ thuật phòng máy, các đường đặc tuyến của battery hãng…) được sử dụng để xây dựng nên các tính năng nhằm đạt được mục tiêu chung là một hệ thống giám sát, cảnh báo hoàn chỉnh và tự động hoàn toàn thì cũng đã được xem là có tính thông minh.
Hình 3.12: Sơ đồ kết nối các khối chức năng trong hệ thống
Theo sơ đồ kết nối các khối chức năng như Hình 3.12 ta thấy trong phòng máy sẽ có các khối chức năng:
- Giám sát và xử lý cục bộ: Là khối nhận và xử lý thô dữ liệu từ tất cả các khối cảm biến, chức năng trong phòng máy. Sau khi nhận dữ liệu, tùy vào ngữ cảnh, dữ liệu sẽ được lọc, xử lý, xác định trạng thái và chuyển tiếp về các dịch vụ lưu trữ, cảnh báo hướng đối tượng và giao diện web giám sát trên cloud.
- Khối giám sát ra vào: Là một hệ thống chuyên biệt có thể hoạt động độc lập. Chịu trách nhiệm lưu trữ, giám sát và quản lý an ninh ra vào phòng máy, đồng thời kích hoạt và gửi các thông tin dữ liệu này về cho khối Giám sát và xử lý
cục bộ.
- Khối giám sát an ninh và chuyển động trong phòng máy: Giống như khối giám sát ra vào, khối này là một hệ thống camera chuyên biệt có thể hoạt động độc lập. Chịu trách nhiệm xử lý, phân tích và lưu trữ hình ảnh. Đồng thời, kích hoạt và gửi các thông tin liên quan đến các sự kiện chuyển động cho khối
Giám sát và xử lý cục bộ.
- Khối giám sát nhiệt độ: Có nhiệm vụ thu thập dữ liệu nhiệt độ trong phòng máy, gửi về cho khối Giám sát và xử lý cục bộ.
- Khối giám sát độ ẩm: Có nhiệm vụ thu thập dữ liệu độ ẩm trong phòng máy, gửi về cho khối Giám sát và xử lý cục bộ.
- Khối giám sát cháy - khói: Có nhiệm vụ thu thập dữ liệu về tình trạng khói trong phòng máy, gửi về cho khối Giám sát và xử lý cục bộ.
- Khối giám sát nguồn điện lưới: Có nhiệm vụ thu thập dữ liệu về trạng thái điện lưới trong phòng máy, gửi về cho khối Giám sát và xử lý cục bộ.
Phòng máy của SCTV có các tiêu chuẩn kỹ thuật bao gồm bộ tiêu chuẩn điều kiện môi trường và an ninh ra vào phòng máy cũng được ban hành từ lâu (tri thức) đều là các yếu tố ảnh hưởng đến kiến trúc thiết kế và phương án lập trình, xử lý các điều kiện trạng thái của hệ thống.
3.2.1 Sơ bộ phần cứng các khối
3.2.1.1Khối Giám sát và xử lý cục bộ – Board mạch Raspberry Pi:
Khối giám sát và xử lý cục bộ có nhiệm vụ thu thập các thông số từ các khối giám sát, cảm biến, sau đó nó thực hiện xử lý các dữ liệu này, tính toán xác định trạng thái theo ngưỡng tiêu chuẩn được thiết lập trước, đưa cảnh báo cục bộ (chuông báo tại chỗ) và tùy ngữ cảnh, chuyển dữ liệu lên cloud.
Raspberry Pi (Pi) là chiếc máy tính nhúng có giá phải chăng với kích thước bằng một chiếc thẻ tín dụng. Raspberry Pi ra đời năm 2012, ban đầu được thiết kế cho mọi người, ở mọi độ tuổi để học tin học và lập trình. Raspberry Pi chỉ cần thêm một màn hình kết nối qua cổng HDMI, bàn phím và chuột USB là có thể sử dụng để thực hiện các tác vụ văn phòng, giải trí tương đương với một chiếc máy tính thông thường. Nhờ ưu điểm về kích thước, chi phí đầu tư, độ ổn định và có các giao diện phần cứng hỗ trợ cho đa giao thức, Raspberry Pi nhanh chóng phổ biến và được cộng đồng thế giới sử dụng trong nhiều dự án khác nhau. Cụ thể, ngay trong năm đầu tiên, một triệu board Raspberry
Pi đã được bán ra. Đến thời điểm viết luận văn này, Raspberry Pi đã cho ra 5 họ sản phẩm phổ thông và một họ chuyên biệt dành cho các dự án công nghiệp [10] (Hình 3.13).
Hình 3.13: Dòng sản phẩm Compute Module 3+ Development Kit
Trong bài luận này, tôi sẽ sử dụng mẫu board mạch Raspberry Pi 3 B+, với các thông số kỹ thuật như Bảng 3.2 (Hình 3.14, 3.15)
Bảng 3.2. Thông số kỹ thuật của board mạch Raspberry Pi 3B+
Thông số Giá trị
Bộ xử lý
Broadcom BCM2837B0, Cortex- A53 (ARMv8) 64-bit SoC @ 1.4GHz
Bộ nhớ 1GB LPDDR2 SDRAM
Giao diện kết nối
2.4GHz and 5GHz IEEE
802.11.b/g/n/ac wireless LAN, Bluetooth 4.2, BLE
Gigabit Ethernet over USB 2.0 (maximum throughput
300Mbps)
4 × USB 2.0 ports
Giao diện truy xuất 40 chân vào ra số mở rộng
Thiết bị lưu trữ Thẻ nhớ micro SD lưu trữ hệ điều hành và dữ liệu.
Nguồn điện
Sử dụng nguồn cung cấp tối thiểu 5V/2.5A.
Có thể nhận qua các giao diện: micro USB, chân 5V GPIO hay chức năng Power over Ethernet
Vòng đời Còn được sản xuất tối thiểu đến tháng 03/2023
Hình 3.14: Board mạch Raspberry Pi 3 B+
Board mạch Raspberry Pi 3 với các thông số kỹ thuật và giao diện trên đáp ứng hoàn toàn nhiệm vụ thu thập dữ liệu từ các cảm biến, thiết bị ngoại vi và nhiệm vụ làm gateway kết nối với dịch vụ website giám sát và email cảnh báo qua các giao thức có dây có dây như UART, USB, I2C, SPI, Ethernet cũng như các giao diện không dây Bluetooth , Wireless .v.v…
Cài đặt hệ điều hành và cấu hình cơ bản cho Raspberry Pi:
Mặc dù nhiều hệ điều hành có thể chạy trên Pi, nhưng các họ của Pi có hệ điều hành chính thức dựa trên nhân Linux được tinh chỉnh cho các board Raspberry Pi. Hệ điều hành này trước đây có tên gọi là Raspbian. Đến nay, hệ điều hành này đã đổi tên thành hệ điều hành cùng tên board mạch, hệ điều hành Raspberry Pi (Pi OS). Tôi sẽ sử dụng Pi OS cho hệ thống thực nghiệm [11], [12].
Công cụ cần dùng để cài đặt Pi OS trên windows:
- Máy tính chạy Windows cài phần mềm Win32DiskImager.
- File ảnh Pi OS tải trực tiếp từ trang chủ của nhà sản xuất board mạch.
- Thẻ micro SD tối thiểu 4GB, nên sử dụng class 10 để đảm bảo tốc độ đọc ghi. - Board mạch Raspberry Pi 3 B+ và bộ nguồn cấp 5V tối thiểu 2.5A
Sau khi đã chuẩn bị đủ công cụ, ta thực hiện ghi hệ điều hành vào thẻ nhớ (Hình 3.16)
Hình 3.16: Giao diện ứng dụng Win32 Disk Imager trên Windows 10
- Bước 1: Đưa thẻ micro SD vào máy tính Windows, đợi máy tính nhận thẻ. - Bước 2: Tại khung nhập Image File, chuyển đường dẫn đến file ảnh Pi OS. - Bước 3: Chọn thẻ microSD tại mục Device (ở đây thẻ của tôi được ánh xạ vào
thiết bị tên F).
- Bước 4: Bấm nút Write để bắt đầu ghi Pi OS vào thẻ.
- Bước 5: Sau khi ghi xong đưa thẻ nhớ vào board mạch Raspberry Pi và cấp nguồn cho board.
Để làm việc với Pi, ta có thể làm việc trực tiếp hoặc từ xa, qua giao diện desktop hoặc dòng lệnh (giao diện được hỗ trợ ở hầu hết các hệ điều hành Like-Unix). Với một màn hình kết nối với Pi qua cổng HDMI cùng chuột và bàn phím USB, khi đó ta sẽ làm
việc với Pi trên giao diện desktop như trên một máy tính thông thường hoặc có thể sử dụng dịch vụ VNC (Virtual Network Computing, một dịch vụ điều khiển từ xa qua giao diện tương tự như Teamviewer, Anydesk, Ultraview… cài sẵn theo Pi OS) (Hình 3.17). Và một lựa chọn khác là ta có thể làm việc thông qua giao diện câu lệnh từ xa thông qua dịch vụ ssh (cũng được tích hợp sẵn trên Pi OS, nhưng cần phải kích hoạt lần đầu).
Hình 3.17: Giao diện desktop của Pi OS
Làm việc với Pi từ xa qua giao diện dòng lệnh cần một máy tính có phần mềm hỗ trợ giao thức ssh như putty, địa chỉ IP của Pi và tài khoản truy cập Pi (mặc định là
pi/raspberry) (Hình 3.18).
Hình 3.18: Giao diện tương tác dòng lệnh thông qua giao thức ssh với Putty
Sau khi truy cập được Pi cần thực hiện các cấu hình cơ bản thông qua tiện ích Software Configuration (Hình 3.19) bằng lệnh:
- Đổi mật khẩu mặc định cho an toàn; cấu hình IP tĩnh/wireless để dễ dàng truy cập cục bộ đến Pi hoặc nếu cần thực hiện định tuyến cho router chuyển hướng truy cập ra các mạng khác.
Hình 3.19: Tiện ích cấu hình Raspberry Pi đính kèm trong Pi OS
- Thực hiện mở rộng bộ nhớ của Pi OS trên toàn dung lượng thẻ nhớ; tùy chỉnh lại dung lượng chia sẻ Ram với GPU tối ưu với mục đích sử dụng trong tùy chọn
Advanced Options – Software Configuration (Hình 3.20).
Hình 3.20: Cấu hình nâng cao mở rộng bộ nhớ
- Kích hoạt giao tiếp 1-wire với cảm biến nhiệt DS18B20 bằng lệnh:
$modprobe w1-gpio $modprobe w1-therm
- Sau khi thiết lập một số cấu hình liên quan đến hệ thống, nếu cần, Pi OS sẽ yêu cầu khởi động lại.
Thiết lập ftp server để nhận file ghi chuyển động từ camera:
Khi hệ thống camera giám sát phát hiện chuyển động sẽ thực hiện đẩy sự kiện ghi hình thông qua giao thức ftp. Ta thực hiện thiết lập máy chủ ftp trên Pi như sau: - Bước 1: Cài đặt
$sudo apt-get install vsftpd
- Cấu hình trong file /etc/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022
chroot_local_user=YES
- Tạo user phục vụ công tác xác thực:
$useradd camera -d /home/camera -s /usr/sbin/nologin $passwd camera
$mkdir /home/camera/files/
Chọn và thiết lập môi trường lập trình trên Pi OS:
Python là ngôn ngữ lập trình chính thức của Raspberrry Pi (và hầu hết các hệ Linux OS hiện nay), điều này được thể hiện ở các bài giảng lập trình trực tuyến trên trang chủ của tổ chức này ở địa chỉ https://www.raspberrypi.org/training/online/ đều sử dụng ngôn ngữ Python, bên cạnh đó là việc cài đặt sẵn Python trên mọi phiên bản Pi OS (ngoài C và C++ cũng luôn có trên các hệ Linux).
Một số đặc điểm chính của Python như sau:
- Là ngôn ngữ thông dịch, tức lúc chạy code dạng text mới được xử lý tuần tự từng dòng như PHP, Javascript chứ không dịch toàn bộ code dạng text thành mã máy trước rồi chạy sau như C, C++...
- Là ngôn ngữ tương tác, ta có thể viết các mã lệnh trực tiếp trong Python Shell để trình thông dịch thực hiện lệnh ngay lập tức.
- Là ngôn ngữ hướng đối tượng, python là ngôn ngữ lập trình bậc cao hỗ trợ phong cách lập trình hướng đối tượng.
- Là ngôn ngữ dễ học, trở thành ngôn ngữ lập trình thông dụng nhất hiện nay và có cộng đồng hỗ trợ rất mạnh (Hình 3.21). Với python người phát triển có thể thực hiện các tác vụ đơn giản như xử lý text, các ứng dụng tự động hóa hệ thống trong, các ứng dụng web cho đến các công tác phân tích dữ liệu, thử nghiệm các giải thuật, mô hình dự đoán dữ liệu...
Hình 3.21: Mức độ quan tâm các ngôn ngữ lập trình dựa trên từ khóa tìm kiếm Google trends 01/2016-01/2021
Trong bài luận tôi cũng sẽ sử dụng ngôn ngữ lập trình Python để lập trình các module dịch vụ giám sát lẫn ứng dụng web để thiết lập các thông số ngưỡng cảnh báo cũng như cấu hình hệ thống.
Để lập trình python trên Pi OS, ta có thể sử dụng Python Shell viết code trực tiếp vào trình biên dịch hoặc sử dụng trình soạn thảo như vi hoặc nano để soạn thảo toàn bộ code vào file có phần mở rộng là py.
Ta thực hiện cài đặt thêm các thư viện khác phục vụ phát triển các module sau này. Bao gồm gói mqtt server và các gói thư viện python mqtt (cho client) cùng thư viện phát triển ứng dụng web django, bằng các lệnh lần lượt:
$apt-get install mosquitto $pip install paho-mqtt $pip install django
3.2.1.2 Khối Giám sát ra vào – Hệ thống kiểm soát cửa ra vào F18:
Hệ thống kiểm soát cửa ra vào phòng máy F18 có thể hoạt động độc lập, bao gồm