BỘ GIÁO DỤC VIỆN HÀN LÂM KHOA HỌC VÀ ĐÀO TẠO VÀ CÔNG NGHỆ VIỆT NAM

HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ -----------------------------

TRẦN TẤN LỘC XÂY DỰNG 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

LUẬN VĂN THẠC SĨ NGÀNH MÁY TÍNH

Thành phố Hồ Chí Minh - 2021

BỘ GIÁO DỤC VIỆN HÀN LÂM KHOA HỌC VÀ ĐÀO TẠO VÀ CÔNG NGHỆ VIỆT NAM

HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ -----------------------------

TRẦN TẤN LỘC XÂY DỰNG 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

Chuyên ngành: Hệ thống thông tin Mã số: 8480104

LUẬN VĂN THẠC SĨ NGÀNH MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. TRẦN VĂN LĂNG

Thành phố Hồ Chí Minh - 2021

LỜI CAM ĐOAN

Tôi xin cam đoan những nội dung trình bày trong luận văn là những kiến thức của

tôi tích lũy trong quá trình học tập, làm việc, nghiên cứu.

Trong nội dung của luận văn có những phần tôi nghiên cứu, trích dẫn đều nêu trong phần các tài liệu tham khảo, có nguồn gốc, tên tuổi của các tác giả, nhà xuất bản rõ ràng.

Những điều tôi cam kết trên đây hoàn toàn là sự thật, nếu sai tôi xin chịu mọi hình

thức xử lý theo quy định.

Tp. Hồ Chí Minh, ngày 20 tháng 06 năm 2021 Học viên thực hiện

Trần Tấn Lộc

LỜI CẢM ƠN

Em xin gửi lời cảm ơn chân thành đến PGS.TS. Trần Văn Lăng, thầy đã tận tình

hướng dẫn giúp đỡ em trong quá trình thực hiện luận văn này.

Em cũng xin cảm ơn đến các thầy, cô trong khoa Công nghệ thông tin – Viễn

thông của Học viện Khoa học và Công nghệ, các quý thầy cô đã giảng dạy, truyền đạt

cho em những hệ thống kiến thức quý báu trong suốt những năm học.

Xin gửi lời cảm ơn đến tất cả mọi người bao gồm gia đình, bạn bè, đồng nghiệp

đã tạo điều kiện môi trường, hỗ trợ cũng như đóng góp các ý kiến và động viên tinh thần

để tôi có thể hoàn thành được luận văn này.

Xin chân thành cảm ơn!

i MỤC LỤC

MỞ ĐẦU ..................................................................................................................... 1 CHƯƠNG 1: TỔNG QUAN VỀ IOT ........................................................................ 2

1.1 LỊCH SỬ VÀ XU THẾ CỦA IOT TRÊN THẾ GIỚI: ...................................... 2 1.2 KHÁI NIỆM IOT: .............................................................................................. 4 1.3 TIỀM NĂNG ỨNG DỤNG IOT: ....................................................................... 7

1.3.1 Công nghiệp và sản xuất: ................................................................................ 7 1.3.2 Tiêu dùng: ....................................................................................................... 7 1.3.3 Bán lẻ, tài chính và tiếp thị: ............................................................................ 9 1.3.4 Y tế: .............................................................................................................. 10 1.3.5 Giao thông vận tải và chuỗi cung ứng hàng hóa: ......................................... 10 1.3.6 Nông nghiệp và môi trường: ......................................................................... 11 1.3.7 Thành phố thông minh: ................................................................................. 11

CHƯƠNG 2: CÁC GIAO THỨC TỪ THIẾT BỊ CẠNH BIÊN ĐẾN CLOUD .... 12

2.1 BỘ GIAO THỨC LIÊN MẠNG TCP/IP: ........................................................ 12 2.2 CÁC GIAO THỨC ỨNG DỤNG CHO IOT: .................................................. 13

2.2.1 Giao thức MQTT: ......................................................................................... 13 2.2.2 Giao thức MQTT-SN: ................................................................................... 20 2.2.3 Giao thức CoAP: ........................................................................................... 22

2.3 TỔNG KẾT: ..................................................................................................... 27

CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG VÀ XÂY DỰNG GIẢI PHÁP ............... 28

3.1 TỔNG QUAN: ................................................................................................. 28

3.1.1 Sự cần thiết: .................................................................................................. 28 3.1.2 Các giải pháp giám sát phòng máy: .............................................................. 31

3.2 XÂY DỰNG GIẢI PHÁP: ............................................................................... 37

3.2.1 Sơ bộ phần cứng các khối ............................................................................. 39 3.2.2 Kết nối các giao diện phần cứng, thiết bị: ..................................................... 53

3.3 XÂY DỰNG LƯU ĐỒ GIẢI THUẬT VÀ LẬP TRÌNH ................................ 56

3.3.1 Module thu thập dữ liệu từ các cảm biến môi trường .................................. 56 3.3.2 Module kết nối nhận sự kiện từ khối Giám sát ra vào .................................. 56 3.3.3 Module Giám sát an ninh, phát hiện chuyển động ....................................... 57 3.3.4 Module báo cáo trạng thái về Server qua giao thức MQTT ......................... 58 3.3.5 Website cho phép xem và thiết lập thông số để hệ thống kết nối vận hành . 58

3.4 TRIỂN KHAI VÀ THEO DÕI KẾT QUẢ: ..................................................... 62

ii CHƯƠNG 4: ĐÁNH GIÁ VÀ KẾT LUẬN ............................................................. 64

4.1 ĐÁNH GIÁ: ..................................................................................................... 64

4.1.1 Đánh giá kết quả thử nghiệm: ....................................................................... 64 4.1.2 Ưu điểm của hệ thống: .................................................................................. 64 4.1.3 Hạn chế của hệ thống:................................................................................... 64

4.2 KẾT LUẬN: ..................................................................................................... 64

PHỤ LỤC .................................................................................................................. 67 TÀI LIỆU THAM KHẢO ....................................................................................... 71

iii DANH MỤC BẢNG BIỂU

CHƯƠNG 1: Bảng 1.1. Một số tổ chức, sự kiện, sự vật kết nối với Internet trên thế giới ............... 2 Bảng 1.2. Một số thiết bị, sự kiện của Việt Nam ........................................................ 4 CHƯƠNG 2: Bảng 2.1. Cấu trúc gói tin Connect do client gửi ........................................................ 18 Bảng 2.2. Cấu trúc gói tin phản hồi Connect do server gửi ........................................ 18 Bảng 2.3. Cấu trúc gói tin Publish .............................................................................. 19 Bảng 2.4. Cấu trúc gói tin Subcribe ............................................................................ 19 Bảng 2.5. Kết quả thử nghiệm vài thông số giữa hai giao thức CoAP và HTTP ....... 22 CHƯƠNG 3 Bảng 3.1. Tính năng và thông số kỹ thuật của giải pháp EEM-RTU-01 .................... 32 Bảng 3.2. Thông số kỹ thuật của board mạch Raspberry Pi 3B+ ............................... 40 Bảng 3.3. Thông số kỹ thuật bộ điều khiển F18 ......................................................... 47 Bảng 3.4. Thông số kỹ thuật đầu ghi H264 ................................................................ 48 Bảng 3.5. Thông số kỹ thuật DHT22 .......................................................................... 50 Bảng 3.6. Kết nối chân Pi và DHT22 ......................................................................... 54 Bảng 3.7. Kết nối chân Pi và DS18B20 ...................................................................... 54 Bảng 3.8. Kết nối chân PI, AMS1117 và module MQ2 ............................................. 54 Bảng 3.9. Kết nối chân PI, rờ le và adapter 5VDC ..................................................... 55

iv DANH MỤC HÌNH VẼ

CHƯƠNG 1 Hình 1.1: Thống kê ứng dụng IoT tại Mỹ ................................................................... 4 Hình 1.2: Thống kê chủ đề tìm kiếm trên google liên quan đến IoT .......................... 4 Hình 1.3: IoT từ quan điểm nhìn các hệ thống nhúng ................................................ 5 Hình 1.4: Sự chênh lệch giữa tăng trưởng dân số của con người và tăng trưởng các thứ được kết nối ................................................................................................................. 7 Hình 1.5: Đồng hồ cho biết vị trí người nhà Weasley trong phim Harry Potter ......... 8 Hình 1.6: Thiết bị WhereDial của nhà phát triển Jc McKerrell .................................. 8 Hình 1.7: Gương thông minh sử dụng board Raspberry Pi ........................................ 9 Hình 1.8: Ứng dụng IBeacon trong bán lẻ, marketing ................................................ 9 Hình 1.9: Bảng thông tin tuyến xe bus trực tuyến tại Việt Nam ................................. 10 CHƯƠNG 2 Hình 2.1: Chồng giao thức mạng TCP/IP ................................................................... 13 Hình 2.2: Mô hình MQTT publish-subcribe ............................................................... 15 Hình 2.3: Cấu trúc gói tin MQTT ............................................................................... 17 Hình 2.4: Mô hình giao tiếp của MQTT-SN ............................................................... 21 Hình 2.5: Vai trò của MQTT-SN Gateway ghép và trong suốt .................................. 22 Hình 2.6: Mô hình giao tiếp của CoAP ....................................................................... 24 Hình 2.7: Quá trình gửi lại gói CON trong CoAP ...................................................... 25 Hình 2.8: RESTful request/reponse nằm trong nội dung của thông điệp CoAP ........ 25 Hình 2.9: Cấu trúc gói tin CoAP ................................................................................. 26 Hình 2.10: Ví dụ CoAP Observer ............................................................................... 26 CHƯƠNG 3 Hình 3.1: Nhiệt độ trong ngày ở TP. HCM thấp nhất không dưới 23 oC .................. 28 Hình 3.2: Điều kiện môi trường của hệ thống CMTS Casa C100G ........................... 29 Hình 3.3: Các tủ Rack thiết bị trong phòng máy phân phối tín hiệu mạng HFC ........ 29 Hình 3.4: Sơ đồ mạng cáp HFC ................................................................................. 30 Hình 3.5: Công tác xử lý sự cố outdoor và chăm sóc khách hàng ............................. 31 Hình 3.7: Khối sản phẩm EEM-RTU-01 của EMS Việt Nam .................................... 32 Hình 3.8: Cấu trúc hệ thống giám sát toàn diện .......................................................... 34 Hình 3.9: Giao diện chức năng giám sát Camera IP của Universal Alarm System .... 35 Hình 3.10: Mô hình hệ thống giám sát và cảnh báo phòng server ATSCADA .......... 36 Hình 3.11: Sản phẩm tủ giám sát và cảnh báo phòng server ATSCADA .................. 37 Hình 3.12: Sơ đồ kết nối các khối chức năng trong hệ thống ..................................... 38 Hình 3.13: Dòng sản phẩm Compute Module 3+ Development Kit .......................... 40 Hình 3.14: Board mạch Raspberry Pi 3 B+ ................................................................ 41 Hình 3.15: Sơ đồ chân cắm board mạch Raspberry Pi 3 B+ ...................................... 41 Hình 3.16: Giao diện ứng dụng Win32 Disk Imager trên Windows 10 ..................... 42 Hình 3.17: Giao diện desktop của Pi OS .................................................................... 43

v Hình 3.18: Giao diện tương tác dòng lệnh thông qua giao thức SSHvới Putty .......... 43 Hình 3.19: Tiện ích cấu hình Raspberry Pi đính kèm trong Pi OS ............................. 44 Hình 3.20: Cấu hình nâng cao mở rộng bộ nhớ .......................................................... 44 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 .............................................................................................. 46 Hình 3.22: Sơ đồ kết nối hệ thống kiểm soát cửa ra vào ............................................ 47 Hình 3.23: Sơ đồ kết nối hệ thống camera analog ...................................................... 48 Hình 3.24: Sơ đồ chân các dòng IC DS18B20 ............................................................ 49 Hình 3.25: Cảm biến DHT22 ...................................................................................... 50 Hình 3.26: Minh họa quá trình chuẩn bị gửi dữ liệu giữa MCU với DHT22 ............. 51 Hình 3.27: Minh họa toàn bộ quá trình truyền dữ liệu giữa MCU và DHT22 ........... 52 Hình 3.28: Sơ bộ đặc điểm cấu tạo module MQ-2 ..................................................... 52 Hình 3.29: Module chuyển mức điện áp 3V3 ............................................................. 53 Hình 3.30: Module rờ le kích mức thấp 5V DC.......................................................... 53 Hình 3.31: Kết nối mạch Raspberry Pi với DHT22 .................................................... 54 Hình 3.32: Kết nối giao tiếp giữa Raspberry Pi và DS18B20 .................................... 54 Hình 3.33: Giao diện trang đăng nhập ........................................................................ 60 Hình 3.34: Giao diện trang xem thông tin thiết bị ...................................................... 61 Hình 3.35: Giao diện trang xem trạng thái .................................................................. 61 Hình 3.36: Giao diện trang cấu hình thông tin phòng máy ......................................... 62 Hình 3.37: Giao diện trang cấu hình thông tin các thiết bị an ninh ............................ 62 Hình 3.38: Giao diện trang cấu hình các điều kiện kích hoạt chuông báo ................. 62

1

MỞ ĐẦU

Những năm trước 2009, để thực hiện kết nối Internet tại nhà, công nghệ ADSL được cung cấp bởi nhà mạng VNPT cho phép dữ liệu truyền tải trên đường dây điện thoại hai lõi RJ11 tốc độ chỉ từ vài chục đến vài trăm kbps, cước phí được tính theo lưu lượng sử dụng trên tháng. Từ năm 2009 đến nay, công nghệ truyền dẫn có sự tiến bộ vượt bậc dẫn đến việc nở rộ các dịch vụ Internet cáp quang tốc độ cao với cước phí trọn gói cho cả tháng rẻ hơn rất nhiều so với trước đây. Các công nghệ truyền dữ liệu không dây cũng phát triển từ các thế hệ GPRS đơn thuần đến 2G, 3G và tại thời điểm viết luận văn này, công nghệ 5G đã được phê duyệt thử nghiệm tại TP. Hà Nội và TP. Hồ Chí Minh. Về công nghệ vi cơ điện, một chiếc máy tính để bàn cồng kềnh sử dụng chip Pentium III tốc độ xử lý 800 MHz, bộ nhớ RAM 256 GB, không có kết nối không dây, có giá nửa lượng vàng vào năm 2008; ngày nay, hàng loạt các máy tính nhúng kích thước gần bằng chiếc thẻ tín dụng như Raspberry Pi, Beagle Bone, … chỉ có giá bằng 20% chỉ vàng; hay các board mạch tích hợp như ESP8266 chỉ vài chục ngàn cũng có đầy đủ các giao diện có dây và không dây như Bluetooth, Wifi cho phép kết nối Internet. Tất cả các công nghệ trên phát triển, kết hợp, hội tụ hình thành nền tảng công nghệ Internet of Things (IoT, vạn vật kết nối), một nền tảng công nghệ cốt lõi trong ba nền tảng thúc đẩy cuộc cách mạng công nghiệp lần thứ 4 trên thế giới.

Công tác tại Công ty TNHH Truyền hình cáp Saigontourist (SCTV), liên doanh giữa Đài truyền hình Việt Nam (VTV) và Tổng công ty Du lịch Sài Gòn (Saigontourist). Đến nay, SCTV là công ty hàng đầu về cung cấp đa dịch vụ truyền thông viễn thông với độ phủ sóng lên đến 57 tỉnh thành, số lượng phòng máy đến thời điểm hiện tại là 174. Thực tế, các khối giám sát điều kiện môi trường và an ninh các phòng máy của SCTV được đầu tư nhỏ lẻ, không đồng bộ giữa các phòng máy trực thuộc chi nhánh SCTV phân vùng quận hay tỉnh. Ngoài ra, các phòng máy cũng thường xuyên không có nhân sự trực do đặc thù công việc xử lý sự cố cũng như khi thực hiện các chiến dịch bảo trì, chăm sóc dịch vụ cho khách hàng. Trên cơ sở được phân công nhiệm vụ quản lý hạ tầng kỹ thuật phòng máy và định hướng của PGS.TS Trần Văn Lăng, đề tài luận văn "Xây dựng 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" với kì vọng sẽ xây dựng được một sản phẩm thiết thực để tối ưu công tác quản lý phòng máy tại Công ty.

2 CHƯƠNG 1: TỔNG QUAN VỀ IOT

1.1 LỊCH SỬ VÀ XU THẾ CỦA IOT TRÊN THẾ GIỚI:

Thuật ngữ Internet of Things (IoT) có từ năm 1999, được đặt ra bởi những người

sáng lập trung tâm Auto-ID ban đầu của MIT, Kevin Ashton vào năm 1999 và sau đó là

David L. Brock vào năm 2001 [1]. Tuy nhiên trước đó cũng đã có những mường tượng,

hình dung về các vật thể giao tiếp, thông minh ngay cả khi mạng Internet chưa ra đời.

Mãi cho đến năm 2000, các thiết bị, things được kết nối với Internet ở hình dạng các

máy tính có kích cỡ khác nhau. Ta có bảng sơ lược lịch sử kết nối things với Internet [1]

[2], từ đó cho chúng ta thấy Internet không phải chỉ của con người sử dụng (of Person)

mà của cả mọi thứ (of Things) (xem Bảng 1.1)

Bảng 1.1. Một số tổ chức, sự kiện, sự vật kết nối với Internet trên thế giới

US Patent US 3713148 A

Nguồn tham khảo Năm Thiết bị/Sự kiện

nhận dạng tần số vô tuyến đầu tiên (RFID)

Máy bán nước ngọt của khoa Khoa học máy tính trường đại học Carnegie Mellon được kết

1973 Mario W. Cardullo nhận bằng sáng chế cho thẻ

https://www.cs.cmu.edu/~coke/ history_long.txt

nối Internet Một chiếc máy nướng bánh mì tại hội nghị

1982

IEEE Consumer Electronics Magazine (Volume: 6, Issue: 1, Jan. 2017)

1989 Interop được kết nối Internet

http://hpmuseum.net/display

1991 _item.php?hw=350 HP giới thiệu máy in HP LaserJet IIISi có khả năng kết nối mạng IP qua giao diện Ethernet

1993 Máy pha cà phê của Đại học Cambridge

https://www.cl.cam.ac.uk/cof

fee/qsf/coffee.html được kết nối Internet

https://en.wikipedia.org/wiki/ Công ty General Motors Onstar cho ra đời 1996 OnStar dịch vụ chuẩn đoán từ xa

https://www.bluetooth.com/a 1998 Tổ chức phi lợi nhuận Bluetooth được hình bout-us/our-history thành

1999 LG cho ra đời chiếc tủ lạnh có kết nối Internet đầu tiên (Internet Digial DIOS) https://www.telecompaper.co m/news/lg-unveils-

3

internetready-refrigerator--

221266

Những giao diện đầu tiên của dự án https://www.youtube.com/wa Cooltown về máy tính phổ biến ở mọi nơi, tch?reload=9&v=U2AkkuIV khi đó công nghệ điện toán và truyền thông 2000 V-I

kết hợp tạo nên trải nghiệm web kết nối cho mọi người, mọi nơi và mọi đối tượng

http://edition.cnn.com/2001/ Sản phẩm Bluetooth đầu tiên được giới BUSINESS/asia/04/17/tokyo thiệu là chiếc điện thoại di động cho phép 2001 .kddibluetooth/index.html kết nối Bluetooth của KDDI

http://www.itu.int/osg/spu/pu blications/internetofthings/In 2005 Báo cáo của ITU lần đầu tiên về sự trỗi dậy của IoT ternetofThings_summary.pdf

2008 https://www.ipso- alliance.org

https://omaspecworks.org Liên minh IP cho các vật thể thông minh (IPSO, năm 2018 đã sát nhập với OMA tạo nên OMA SpecWorks) được thành lập, tập trung vào IoT đầu tiên

https://www.bu.edu/smartlig

2010 hting/files/2010/01/BobK.pdf Định nghĩa về Smart Lighting hình thành sau thành công của bóng đèn LED bán dẫn hay LED trạng thái rắn (Solid-State Led).

https://developer.apple.com/i beacon/Getting-Started-with- Apple tạo ra giao thức iBeacon cho việc iBeacon.pdf 2014 báo hiệu https://en.wikipedia.org/wiki/

IBeacon

Các ứng dụng IoT ngày nay được quan tâm nhiều thông qua các ứng dụng trong các lĩnh

vực tăng vọt (https://www.ipwatchdog.com) cũng như từ khóa này được quan tâm nhiều

trên Google (https://trends.google.com) những năm gần đây (Hình 1.1, 1.2).

4

Hình 1.1: Thống kê ứng dụng IoT tại Mỹ

Hình 1.2: Thống kê chủ đề tìm kiếm trên google liên quan đến IoT

Tại Việt Nam, tuy chưa thể theo kịp những nước đã phát triển nhưng IoT cũng đã có những bước tiến đáng kể trong nghiên cứu và ứng dụng với một số sự kiện đáng lưu ý [3] như Bảng 1.2.

Bảng 1.2. Một số thiết bị, sự kiện của Việt Nam

https://mic.gov.vn

Nguồn tham khảo Năm Thiết bị/Sự kiện

2019

https://inut.vn/

Bộ Thông tin và Truyền thông đã xây dựng bản dự thảo về "Thuật ngữ và định nghĩa cho Internet vạn vật"

2019

Nền tảng IoT thương mại của Việt Nam có tên iNut cho thiết bị ESP8266 giúp kết nối các cảm biến, thiết bị ra Internet.

1.2 KHÁI NIỆM IOT:

Internet of Things (IoT), còn được gọi là Internet vạn vật hay Internet công nghiệp, là một mô hình công nghệ mới được hình dung như một mạng lưới toàn cầu gồm các

5 máy móc và thiết bị có khả năng tương tác với nhau. IoT là một trong những lĩnh vực quan trọng nhất của công nghệ tương lai bên cạnh trí tuệ nhận tạo và dữ liệu lớn, thúc đẩy cuộc cách mạng công nghiệp lần thứ 4 trên thế giới.

"Thing" hiện diện trong thế giới thực, ở trong nhà, trong xe hơi, đeo trên người hay ở nơi làm việc của ta. "Thing" nhận thông tin từ thế giới, chuyển thành dữ liệu gửi lên Internet để thu thập, xử lý. Và, "Thing" cũng có thể hình thành phản ứng tác động ngược trở ra thế giới thực thông qua các bộ truyền động.

Tóm lại, IoT là khái niệm biến các thiết bị bình thường trở nên thông minh nhờ vào bộ xử lý, cảm biến, bộ truyền động và các kết nối dữ liệu để tạo thành một mạng lưới mà ở đó các thiết bị có thể tương tác với nhau mà không cần sự can thiệp trực tiếp của con người (Hình 1.3).

Hình 1.3: IoT từ quan điểm nhìn các hệ thống nhúng

Kiến trúc IoT trải rộng trên rất nhiều công nghệ nhưng vẫn có bốn thành phần

chính cấu thành nên hệ thống, bao gồm:

1. Thing: Là các vật thể, đại diện cho vật thể chính là các sensor, cảm nhận, thu thập thông tin từ thế giới thực chuyển đổi thành dữ liệu, hay chuyển đổi dữ liệu thành tác động ngược lại thế giới thông qua thiết bị thực thi như còi hú, đèn

báo….

2. Giao tiếp dữ liệu: Việc kết nối giữa thiết bị, các dịch vụ điện toán đám mây để thực hiện giải mã dữ liệu và thực thi hoạt động dựa trên dữ liệu bao gồm các kết

nối tầm gần trong phạm vi mạng cá nhân (PAN – Personal Area Networks) và

kết nối ra Internet thông qua thiết bị chuyển tiếp mạng (Gateway device). Các

công nghệ mạng không dây cho PAN có thông điệp truyền tải không dựa trên

nền IP, như Bluetooth 5.0, Zigbee, Z-wave hay dựa trên nền IP, như IEEE 802.11

Wi-Fi, 6LoWPAN.

6

3. Internet: Để đưa dữ liệu từ các cảm biến ra Internet cần hai công nghệ là các Gateway và các giao thức tối ưu cho IoT trên nền IP như MQTT, AMPQ và

CoAP thay cho các giao thức truyền thống chẳng hạn như SNMP, HTTP.

4. Backend services: Một khi dữ liệu được thu thập, nó được chuyển lên server doanh nghiệp hoặc cloud và được xử lý thông qua các dịch vụ. Các dịch vụ này

có thể là lưu trữ dữ liệu hay phân tích, khai phá các thông tin từ dữ liệu để ra

quyết định thực thi, hay giao diện giám sát hệ thống dành cho con người khi cần.

Ở thành phần này, tùy vào quy mô cũng như giải pháp được thiết kế, có thể cần

đến các công nghệ lưu trữ dữ liệu lớn cũng như việc phân tích, khai phá dữ liệu

sử dụng các mô hình học máy. Còn nếu dữ liệu cần xử lý, phân tích đơn giản

như nhiệt độ vượt ngưỡng nào đó được quy định trước có thể thực hiện bằng các giao thức if this, then that (IFTTT) và có thể dịch chuyển các công đoạn tính toán, xử lý từ server xuống các thiết bị cạnh biên, việc này hình thành nên thuật

ngữ edge computing và fog computing.

IoT còn có một số phiên bản tên gọi khi các công ty và tổ chức cố gắng thu hút sự chú ý, mỗi từ nêu bật các khía cạnh khác nhau của cùng một vấn đề cơ bản. Ví dụ: Web of Things (WoT) liên quan đến các công nghệ dựa trên web cho IoT, hay Internet of Everything là một cách nói quá của IoT vì không có cách nào để kết nối cảm xúc, mùi vị mà không có thứ gì sinh ra cảm giác đó, hay làm sao để kết nối được không gian hay nước? Còn Machine-to-Machine (M2M) là một khái niệm chung liên quan đến giao tiếp giữa một thiết bị với một thiết bị khác mà không cần sự can thiệp của con người. Nhiều loại giao thức và công nghệ khác nhau có thể được sử dụng trong các giải pháp M2M có thể bao gồm cả giao thức IP. Tuy nhiên, IP hay Internet ở đây chỉ đóng vai trò kênh giao tiếp giữa các thiết bị, máy móc chứ không phải một nền tảng mở cho khả năng tương tác.

Bằng việc chuyển dữ liệu của các cảm biến, bộ xử lý biên và các thiết bị thông minh lên Internet, các dịch vụ đám mây có thể được áp dụng cho những thiết bị đơn giản nhất. Trước khi công nghệ đám mây và truyền thông di động trở thành xu hướng và tiết kiệm chi phí, các cảm biến và các thiết bị điện toán nhúng trong lĩnh vực này không có phương tiện tốt để truyền dữ liệu trên toàn cầu trong vài giây, được lưu trữ thông tin vĩnh viễn và phân tích dữ liệu để tìm ra xu hướng và mô hình. Khi công nghệ đám mây phát triển, các hệ thống truyền thông không dây trở nên phổ biến, các công nghệ năng lượng mới trở nên hiệu quả hơn về chi phí và các mô hình học máy phát triển để tạo ra các thông tin đáng giá. Tất cả các điều này kết hợp lại tạo nên giá trị của một hệ thống IoT. Nếu không có những công nghệ này chúng ta vẫn chỉ biết đến các hệ thống M2M mà thôi [1].

7

1.3 TIỀM NĂNG ỨNG DỤNG IOT:

IoT sẽ tiếp cận vào gần như mọi phân khúc trong các sản phẩm công nghiệp, doanh nghiệp, y tế, tiêu dùng.v.v… Tỉ lệ số lượng thiết bị kết nối vào Internet được dự báo vượt xa mức tăng trưởng của con người như Hình 1.4

Hình 1.4: Sự chênh lệch giữa tăng trưởng dân số của con người và tăng trưởng các thứ được kết nối

Việc ứng dụng IoT sẽ mang lại nhiều lợi ích khi giảm thiểu các chi phí, thời gian vận hành sản xuất hay hạn chế tổn thất, hư hỏng. Ta sẽ đi xem xét sự ảnh hưởng của IoT đến từng lĩnh vực cụ thể.

1.3.1 Công nghiệp và sản xuất:

Đây là phân khúc mà IoT phát triển nhanh và mạnh mẽ nhất dựa vào số lượng kết

nối trong lĩnh vực và giá trị mà dịch vụ mang lại trong việc tự động hóa sản xuất.

Phân khúc này có truyền thống về các công nghệ vận hành, tức là áp dụng các công nghệ phần cứng và phần mềm để giám sát các thiết bị vật lý phục vụ các chỉ số về lợi nhuận, hoạt động thu thập và phản hồi dữ liệu theo thời gian thực cũng như sự an toàn của hệ thống. Ngoài ra giao diện phần cứng và phần mềm của phân khúc này thường không hiện đại, các công nghệ như RS232/485…

Ứng dụng IoT vào lĩnh vực này có thể ở một số trường hợp như sau:

- Bảo trì, phòng ngừa trên máy móc. - Tiết kiệm năng lượng. - Hệ thống an toàn như cảm biến nhiệt, cảm biến áp suất, rò rỉ khí.

- Các hệ thống chuyên gia.

1.3.2 Tiêu dùng:

Tiêu dùng là phân khúc đầu tiên có vật thể được kết nối mạng internet, là chiếc máy pha cà phê vào những năm 1990. Đây là thị trường mà các công nghệ mới được áp dụng, tuy nhiên lại là hạn chế khi có nhiều tiêu chuẩn, giao thức như WPAN, Bluetooth,

8 Zigbee, Z-wave. Phân khúc này bao gồm cả thị trường chăm sóc sức khỏe, khi các thiết bị đeo được có các tính năng theo dõi các chỉ số sức khỏe.

Ứng dụng IoT vào lĩnh vực này có thể ở một số trường hợp như sau:

- Nhà thông minh: Hệ thống tưới nước thông minh, cửa nhà xe thông minh, khóa thông minh, đèn thông minh, bộ điều nhiệt thông minh, và an ninh thông minh. - Thiết bị đeo được: Theo dõi nhịp tim, khoảng cách di chuyển, các thiết bị theo

dõi vị trí…

Nhiều sản phẩm IoT được lấy cảm hứng từ các đồ vật ma thuật. Xuất phát từ chiếc

đồng hồ treo tường cho biết vị trí hay trạng thái người nhà Weasley trong bộ truyện nổi

tiếng Harry Potter (Hình 1.5), thiết bị "Where Dial" được John McKerrell phát triển có

tính năng tương tự (Hình 1.6)

Hình 1.5: Đồng hồ cho biết vị trí người nhà Weasley trong phim Harry Potter

Hình 1.6: Thiết bị WhereDial của nhà phát triển Jc McKerrell Hay từ chiếc gương ma thuật của bà phù thủy trong phim Bạch Tuyết và bảy chú lùn, các biến thể của chiếc gương ma thuật cũng được hiện thực hóa khi tích hợp thiết bị vi xử lý có khả năng truy cập các dịch vụ qua Internet như Hình 1.7.

9

Hình 1.7: Gương thông minh sử dụng board Raspberry Pi

1.3.3 Bán lẻ, tài chính và tiếp thị:

Một vài trường hợp sử dụng như sau:

- Thiết bị Beacon, để xác định khách hàng lân cận, mật độ khách hàng… (Hình 1.8) - Theo dõi tài sản, kiểm soát hàng tồn kho, tổn thất và chuỗi cung ứng. - Giám sát kho lạnh, phân tích kho lạnh của hàng tồn dễ hư hỏng.

- Áp dụng các phân tích dự đoán để tối ưu cung cấp thực phẩm.

Hình 1.8: Ứng dụng IBeacon trong bán lẻ, marketing

10

1.3.4 Y tế:

Y tế cũng là lĩnh vực có thể ứng dụng IoT mạnh mẽ khi hỗ trợ cải thiện chất lượng cuộc sống và giảm thiểu chi phí y tế. IoT cho phép theo dõi bệnh nhân từ xa và linh hoạt từ bất cứ đâu. Kết hợp các công cụ phân tích và máy học sẽ quan sát bệnh nhân, chuẩn đoán và kê đơn cũng như đề xuất liệu trình điều trị. Hạn chế với các thiết bị trong lĩnh vực này là việc tuân thủ nghiêm ngặt tính bảo mật dữ liệu, sự an toàn, tin cậy (một vài trường hợp có thể phải hoạt động 24/7 và zero downtime) như các công cụ, thiết bị của bệnh viện.

Một vài trường hợp sử dụng IoT như sau:

- Chăm sóc sức khỏe tại nhà. - Dự đoán và phòng ngừa sức khỏe.

- Theo dõi, nghiên cứu thuốc…

1.3.5 Giao thông vận tải và chuỗi cung ứng hàng hóa:

Lĩnh vực giao thông vận tải và chuỗi cung ứng hàng hóa cũng là động lực ứng dụng hàng đầu trong IoT. Các cảm biến trên xe hỗ trợ cho người lái xe, hoặc khuyến nghị phòng ngừa thay mặt cho người lái. Các loại xe tự lái đầy rẫy các cảm biến để có thể kết nối giao tiếp với nhau.

Trong chuỗi cung ứng hàng hóa thì vị trí của các phương tiện vận chuyển đơn

hàng có thể được theo dõi đơn giản như sử dụng thông tin GPS để xác định hướng di chuyển dựa trên các dịch vụ xác định mật độ giao thông dựa trên phương tiện vận chuyển…(Hình 1.9)

Hình 1.9: Bảng thông tin tuyến xe bus trực tuyến tại Việt Nam

11

1.3.6 Nông nghiệp và môi trường:

Hiệu quả sản xuất của nông nghiệp có thể tăng lên đáng kể khi áp dụng IoT. Việc sử dụng ánh sáng thông minh để điều chỉnh tần số quang phổ dữa trên tuổi của gia cầm có thể làm tăng tỷ lệ tăng trưởng và giảm tử lệ tử vong do căng thẳng ở các trang trại gà đồng thời giúp tiết kiệm điện năng hơn so với sử dụng hệ thống sợi đốt thông thường. Hay ứng dụng phát hiện sức khỏe vật nuôi dựa trên chuyển động, thân nhiệt. Một trang trại chăn nuôi gia súc có thể tìm thấy các con vật có khuynh hướng đau ốm trước khi lây nhiễm cho cả đàn kết hợp các loại cảm biến và phương pháp phân tích dữ liệu hoặc máy học.

Về môi trường, IoT có thể hỗ trợ phân tích, dự đoán vi khí hậu, dự đoán thảm họa

trong các trường hợp thiên tai liên quan đến địa chất và thời tiết.

1.3.7 Thành phố thông minh:

Là cụm từ ám chỉ việc kết nối thông minh cho các thứ thuộc thành phố mà trước nay chưa hề được thông minh. Như việc triển khai các bảng thông tin tuyến xe bus trực tuyến như đã nêu ở lĩnh vự giao thông, việc giám sát thùng rác để cải thiện hiệu quả thu gom rác, triển khai các cảm biến nhiệt độ, sử dụng điện năng, chất lượng không khí, mức độ tiếng ồn, chỗ đậu xe, camera an ninh trong qui mô và phạm vi một thành phố. Việc triển khai IoT mang lại lợi ích đáng kể đồng thời tác động tích cực đến cuộc sống người dân thông qua sự cảm thấy an toàn, được quan tâm và tiện nghi cuộc sống. Nhìn chung, IoT mang đến lợi ích cho tất cả các ngành nghề. Tuy nhiên, qui mô và việc triển khai IoT có thể đơn giản cho đến phức tạp với mức chi phí khác nhau.

12 CHƯƠNG 2: CÁC GIAO THỨC TỪ THIẾT BỊ CẠNH BIÊN ĐẾN CLOUD

2.1 BỘ GIAO THỨC LIÊN MẠNG TCP/IP:

Mặc dù tiêu tốn nguồn tài nguyên, chi phí trong hệ thống IoT khi sử dụng Internet, đổi lại các lợi ích to lớn khi các thiết bị giao tiếp được trên TCP/IP. Việc thiết kế cần phải xem xét để cân bằng chi phí với các dịch vụ và tính năng của hệ thống IoT[1],[2].

TCP/IP trở thành chuẩn giao tiếp toàn cầu với nhiều lí do:

- Sự phổ biến: Bộ giao thức IP được hỗ trợ gần như mọi hệ điều hành. Các giao thức truyền thông IP có khả năng chạy trên các hệ thống PAN khác nhau, mạng

di động, dây đồng, cáp quang, PCI Express và hệ thống vệ tinh.

- Sự lâu đời: TCP ra đời vào năm 1974 và IPv4 được thiết kế vào năm 1978. Tuổi thọ là điều rất quan trọng đối với nhiều giải pháp IoT công nghiệp và lĩnh vực phải hỗ trợ các thiết bị và hệ thống trong nhiều thập kỷ. Cũng có nhiều giao thức độc quyền khác đã được thiết kế bởi các nhà sản xuất khác nhau, chẳng hạn như

AppleTalk, SNA, DECnet và Novell IPX, nhưng không có giao thức nào giành được thị trường như IP.

- Dựa trên các tiêu chuẩn: TCP/IP được điều hành bởi nhóm đặc nhiệm kỹ thuật Internet (IETF), IETF duy trì các bộ tiêu chuẩn mở tập trung vào giao thức Internet.

- Khả năng mở rộng: Mạng IP đã chứng tỏ khả năng mở rộng quy mô lớn tới hàng tỷ người dùng và nhiều thiết bị. Khi bộ địa chỉ IPv6 ra đời, đáp ứng mọi nhu cầu gán địa chỉ trên thế giới của các thiết bị, vật thể khi tham gia vào mạng Internet. - Sự tin cậy: IP là một giao thức đáng tin cậy cho việc truyền tải dữ liệu. Nó thực hiện việc này thông qua các hệ thống phân phối gói tin dựa trên các mạng không

kết nối. Việc không kết nối cho phép các gói tin được xử lý độc lập với nhau và

cho phép truyền tải qua phương thức truyền tải khác nhau (sự thay đổi ở lớp vật

lý và lớp liên kết dữ liệu) như Wifi, Ethernet.

- Khả năng quản lý: Có rất nhiều công cụ, ứng dụng được phát triển để phục vụ

công tác quản lý, bảo trì mạng và các thiết bị IP.

13 Hình 2.1 là mô hình các tầng trong chồng giao thức của bộ giao thức TCP/IP:

Hình 2.1: Chồng giao thức mạng TCP/IP

- Tầng ứng dụng: Các giao thức DNS, TFTP, FTP, HTTP, IMAP, IRC, NTP, POP3,

SIP, SMTP, SNMP, SSH, TELNET, RTSP, MQTT, COAP, XMPP,…

- Tầng giao vận: Chủ yếu là hai giao thức TCP và UDP. Trong đó, TCP là giao thức truyền thông có hướng, tin cậy sử dụng các thông điệp xác nhận khi nhận được gói và thực hiện truyền tải lại gói bị mất khi không nhận được gói. Ngược lại là UDP là giao thức truyền tải gói tin không tin cậy, không có thông điệp xác nhận đã nhận được gói do đó khi mất gói sẽ không biết và không thực hiện truyền tải lại gói bị mất.

- Tầng internet: Các giao thức là IPv4 và IPv6.

- Tầng mạng: Các giao thức như Ethernet, Wifi, PPP…

2.2 CÁC GIAO THỨC ỨNG DỤNG CHO IOT:

Như ta đã biết, giao thức truyền tải siêu văn bản HTTP, là nền tảng của truyền thông dữ liệu cho World Wide Web, nơi tài liệu siêu văn bản bao gồm các siêu liên kết đến các tài nguyên khác mà người dùng có thể dễ dàng truy cập, ví dụ bằng cái nhấp chuột hoặc bằng cách chạm vào màn hình trong một trình duyệt web [4]. HTTP được chuẩn hóa lần đầu tiên vào năm 1997, đến nay đã trải qua hơn 20 năm sử dụng, đã khẳng định được ý nghĩa và độ tin cậy của giao thức này. Vậy, tại sao lại cho ra đời các giao thức ứng dụng khác mà không sử dụng luôn HTTP cho IoT khi truyền dữ liệu qua WAN? Đó là do HTTP được thiết kế cho mô hình client/server hay request/respone, khi các thiết bị gửi yêu cầu thì server mới phản hồi các yêu cầu đó, mô hình này trong IoT là không hiệu quả vì các thiết bị IoT có năng lực xử lý cũng như băng thông giới hạn. Do đó, cần các giao thức khác để hiệu quả hơn, vẫn đảm bảo an toàn và khả năng mở rộng dễ dàng. Sau đây chúng ta sẽ đi tìm hiểu về một số giao thức ở tầng ứng dụng được thiết kế và phát triển cho IoT.

2.2.1 Giao thức MQTT:

14 Các khái niệm trong giao thức MQTT:

- Subcriber: Client ở đóng vai trò là nơi nhận thông điệp - Subcribe: Hành động đăng ký nhận thông điệp từ một chủ đề - Publisher: Client ở đóng vai trò là nơi phát thông điệp - Publish: Hành động gửi thông điệp lên một chủ đề - Broker: Server vai trò trung gian, nhiệm vụ chính của broker là nhận và chuyển các thông điệp đến từ publisher và đi đến các subcriber tương ứng. Có thể có thêm

các chức năng khác tùy nền tảng MQTT.

- Topic: Chủ đề, khi subcriber muốn nhận thông điệp, nó phải nêu rõ là nhận thông điệp từ topic nào. Tương tự, với publisher, khi muốn đăng thông điệp sẽ phải nêu

rõ thông điệp muốn đăng lên topic nào. Một publisher có thể đăng thông điệp lên bất kỳ topic nào, và nếu có subcriber đang theo dõi ở topic đó thì broker sẽ chuyển

thông điệp đến cho subcriber.

Giao thức Message Queue Telemetry Transport (MQTT) là giao thức truyền thông điệp theo mô hình publish/subcribe ra đời năm 1999 bởi Andy Stanfor-Clark và Arlen Nipper tại IBM để giải quyết những hạn chế cụ thể của việc kết nối các đường ống dẫn dầu và khí đốt từ xa qua vệ tinh [1]. Một số yêu cầu được đặt ra cho MQTT:

- Thực hiện đơn giản. - Cung cấp một dạng chất lượng dịch vụ. - Nhẹ để xử lý và hiệu quả về băng thông. - Là dữ liệu dạng bất khả tri. - Có để ý đến sự liên tục của phiên.

- Có tính bảo mật.

MQTT là giao thức nội bộ và độc quyền của IBM trong nhiều năm cho đến khi được phát hành trong phiên bản 3.1 năm 2010 dưới dạng một sản phẩm miễn phí bản quyền. Năm 2013, MQTT đã được tiêu chuẩn hóa và được chấp nhận vào tổ hợp OASIS (tổ chức tiêu chuẩn hóa các dự án phi lợi nhuận). Vào năm 2014, OASIS đã phát hành nó dưới dạng phiên bản MQTT 3.1.1. MQTT cũng là một tiêu chuẩn ISO (ISO/IEC PRF 20922).

2.2.1.1 Kiến trúc publish/subscribe:

Kiến trúc Publish/Subscribe là một cách để tách một ứng dụng máy khách (client) đang truyền thông điệp từ một ứng dụng client khác đang nhận thư. Không giống như mô hình client-server truyền thống, client không được nhận dạng bởi đặc tính vật lý nào như địa chỉ IP, điều này hữu ích vì trong việc triển khai IoT vì danh tính vật lý có thể

15 không xác định hoặc phổ biến. MQTT là giao thức có kiến trúc publish/subscribe, nhưng không phải là một hàng đợi tin nhắn. Hàng đợi tin nhắn theo bản chất lưu trữ tin nhắn trong khi MQTT thì không. Trong MQTT, nếu không có ai đăng ký (hoặc nghe) một chủ đề, chủ đề đó sẽ bị bỏ qua và mất đi.

Hình 2.2: Mô hình MQTT publish-subcribe

Hình 2.2 là một ví dụ minh họa về một cấu trúc liên kết MQTT publish-subcribe. Trong đó, các client chạy ở cạnh biên thự hiện publish hoặc subcribe các topic được quản lý bởi MQTT broker. Ở đây, có 2 topics đó là "humidity" và "temperature". Hình vẽ cũng cho thấy một cảm biến thông minh có đủ tài nguyên để trở thành một MQTT client trong khi đó các cảm biến khác phải cần đến các bộ định tuyến biên (edge router) để thực hiện chức năng này.

MQTT là dữ liệu dạng bất khả tri, bất kỳ kiểu dữ liệu nào cũng có thể chứa trong nội dung của thông điệp, điều này cho phép chuyển đi các cả dữ liệu như âm thanh, hình ảnh, nhị phân… miễn là publisher và subcriber đã thống nhất với nhau và hiểu được định dạng dữ liệu đó.

2.2.1.2 Cấu trúc giao thức MQTT:

MQTT được vận chuyển dựa trên giao thức TCP, điều đó giúp đảm bảo một phần

gói tin sẽ được chuyển đi đến đích.

MQTT có thể lưu giữ thông điệp trên broker vô thời hạn. Chế độ này được điều khiển bởi một cờ gửi kèm thông điệp. Khi một thông điệp được lưu giữ trên broker, nó sẽ được gửi đến bất subcriber nào đăng ký vào nhánh chủ đề đó. Điều này cho phép subcriber mới nhận được thông điệp ở chủ đề đăng ký mà không cần đợi.

16

Mặc dù MQTT dựa trên TCP, các kết nối vẫn có thể bị mất, đặc biệt là trong môi trường cảm biến không dây hay thiết bị mất nguồn điện. Lúc này, kết nối sẽ ở trạng thái nửa mở (half-open) và máy chủ tin rằng kết nối còn duy trì và vẫn chờ dữ liệu đến. Để khắc phục tình trạng này, MQTT sử dụng một cơ chế gọi là keep-alive. Trong đó, cả broker và client đều đảm bảo rằng kết nối vẫn còn ngay cả khi không thông điệp nào được truyền đi trong một khoảng thời gian. Cụ thể, khi không có thông điệp nào được truyền đi trong một khoảng thời gian định trước, cơ chế keep-alive kích hoạt client gửi một gói PINGREQ đến broker, gói này sẽ được xác nhận bằng một PINGRESP. Bộ định thời keep-alive được thiết lập ở cả client và broker. Cả gói tin keep-alive và thông điệp đều làm bộ định thời keep-alive bắt đầu đếm lại. Nếu bộ định thời keep-alive đếm vượt quá giá trị ngưỡng, broker sẽ đóng kết nối lại và gửi đi gói LWT tới các client.

Trong trường hợp không nhận được bản lưu còn tồn tại và bộ đếm thời gian hết hạn, nhà môi giới sẽ đóng kết nối và gửi gói LWT đến tất cả các máy khách. Sau đó, khách hàng có thể cố gắng kết nối lại. Trong trường hợp đó, một kết nối nửa mở sẽ được nhà môi giới đóng lại và mở ra một kết nối mới cho khách hàng. Cơ chế keep-alive hỗ trợ các kết nối bị gián đoạn, việc thiết lập lại các thông tin chủ đề theo dõi của client và các thông số QoS có thể dẫn đến việc tiêu tốn tài nguyên không cần thiết. Để hạn chế điều này, MQTT cho phép các dạng kết nối liên tục. Một kết nối liên tục sẽ lưu các thông tin trên broker như sau:

- Tất cả các thông tin theo dõi chủ đề của client. - Tất cả các thông điệp QoS chưa được xác nhận bởi client. - Tất cả các thông điệm QoS mới mà client chưa nhận được.

Broker cũng có thể thiết lập cấu hình không cho phép sử dụng các kết nối liên tục. Các client nào không muốn thất lạc bất kì thông điệp nào thì nên thiết lập kết nối liên tục, ngược lại đối với client chỉ thực hiện phát hành các thông điệp. Có ba cấp độ QoS trong MQTT:

- QoS-0: Đây là mức chất lượng thấp nhất, khi thông điệp gửi với QoS0 thì không

cần người nhận xác nhận hay người gửi gửi lại thông điệp.

- QoS-1: Chế độ này sẽ đảm bảo gửi thông điệp ít nhất một lần đến người nhận. Nó có thể được gửi nhiều lần và người nhận sẽ gửi lại xác nhận kèm theo phản

hồi PUBACK.

- QoS-2: Đây là mức chất lượng cao nhất, đảm bảo và thông báo cho cả người gửi và người nhận rằng một thông điệp đã được truyền đi một cách chính xác. Chế độ

này tạo ra nhiều lưu lượng truy cập hơn với khi thực hiện bắt tay nhiều bước giữa

người gửi và người nhận. Nếu người nhận nhận được một thông điệp với QoS-2, nó sẽ trả lời bằng gói PUBREC cho người gửi để xác nhận và người gửi sẽ trả lời bằng gói PUBREL. PUBREL cho phép người nhận loại bỏ mọi lần truyền lại

17 thông điệp một cách an toàn. PUBREL sau đó được xác nhận bởi người nhận

bằng PUBCOMP. Cho đến khi tin nhắn PUBCOMP được gửi đi, người nhận sẽ

lưu thông điệp gốc vào bộ nhớ cache cho an toàn.

2.2.1.3 Cấu trúc gói tin MQTT:

Gói MQTT bao gồm 2 mào đầu, một mào đầu 2 byte cố định, một mào đầu có

kích thước thay đổi và sau cùng là payload cũng có thể thay đổi (Hình 2.3).

Hình 2.3: Cấu trúc gói tin MQTT

Một liên kết truyền thông bằng giao thức MQTT bắt đầu với client gửi một thông điệp CONNECT đến một broker. Broker sẽ luôn trả lời một gói CONNECT bằng một gói CONNACK kèm mã trạng thái. Một khi kết nối được thiết lập, nó sẽ duy trì trạng thái mở. Dưới đây là các thông điệp MQTT và định dạng cấu trúc của nó:

- CONNECT (client gửi cho server): Client sẽ gửi gói tin Connect đến Server để

yêu cầu kết nối có cấu trúc như Bảng 2.1.

18 Bảng 2.1. Cấu trúc gói tin Connect do client gửi

Mô tả Trường Yêu cầu

Xác định client cho server. Mỗi client có một Bắt buộc clientID ID, chiều dài từ 1-23 byte UTF-8

0: server phải quay lại các liên kết với client.

Client và server phải lưu lại trạng thái phiên

sau khi ngắt kết nối. Tùy chọn cleanSession 1: Client và server phải hủy các trạng thái của

phiên liên kết trước và bắt đầu một phiên

mới.

Tên để server xác thực client. Tùy chọn username

Tùy chọn Password Mật khẩu độ dài từ 0-65536 byte kèm 2 byte cố định ở đầu.

Tùy chọn Chủ đề sẽ đẩy thông điệp khi mất kết nối lastWillTopic

Tùy chọn lastWillQoS 2 bit cho biết mức QoS khi xuất bản thông điệp

Tùy chọn Xác định loại tải trọng thông điệp gói Will lastWillMessage

Tùy chọn lastWillRetain Cho biết gói Will có được duy trì trên broker sau khi đã được xuất bản

Client sẽ phải gửi thông điệp hoặc gói PINGREQ trước khi bộ định thời keep-alive

Tùy chọn keepAlive

hết hạn. Server sẽ đóng kết nối sau 1.5 thời gian thiết lập của keep-alive. Giá trị 0 sẽ vô

hiệu hóa cơ chế này (không sử dụng).

- Gói trả lời yêu cầu CONNECT (server gửi cho client): Không phải broker sẽ chấp nhận tất cả các yêu cầu kết nối. Broker sẽ phản hồi các yêu cầu kết nối có

thể, gói tin trả lời của server có cấu trúc như Bảng 2.2.

Bảng 2.2. Cấu trúc gói tin phản hồi Connect do server gửi

Mô tả Mã trả về

Kết nối thành công 0

19

Kết nối bị từ chối – Phiên bản MQTT không phù hợp 1

Kết nối bị từ chối – Định danh của client đúng chuẩn 2 UTF-8, nhưng không được server chấp nhận

Kết nối bị từ chối – Server không khả dụng 3

Kết nối bị từ chối – Xác thực sai 4

Kết nối bị từ chối – Client không được phép kết nối 5

- PUBLISH (client gửi cho server): Một client muốn xuất bản dữ liệu đến một

topic. Mỗi gói tin PUBLISH phải có một topic có cấu trúc như Bảng 2.3.

Bảng 2.3. Cấu trúc gói tin Publish

Mô tả Yêu cầu Trường

Bắt buộc packetID

Định danh cho gói là duy nhất nằm trong phần mào đầu thay đổi. Đối với QoS-0 thì giá trị packetID luôn bằng 0.

Tùy chọn Nhánh chủ đề để thông điệp được đưa lên topicName

Tùy chọn Cấp QoS 0,1 hay 2 qos

Tùy chọn Cờ cho biết có duy trì thông điệp trên chủ đề retainFlag

Tùy chọn Nội dung thông điệp payload

Tùy chọn Có phải là thông điệp trùng và được gửi lại dupFlag

- SUBSCRIBE (client gửi cho server): Nội dung của một gói đăng ký chủ đề bao gồm tối thiểu thông tin về topic và mức QoS. Một gói đăng ký có thể có nhiều cặp topic và QoS nếu client có nhu cầu để giảm thiểu số lần gửi đăng ký, cấu trúc

như Bảng 2.4.

Bảng 2.4. Cấu trúc gói tin Subcribe

Mô tả Yêu cầu Trường

Định danh cho gói là duy nhất nằm trong Bắt buộc packetID phần mào đầu thay đổi.

Bắt buộc Đường dẫn chủ đề 1 muốn lắng nghe topic_1

Mức độ QoS mà thông điệp được gửi đến Bắt buộc qos_1 topic_1

20

Tùy chọn Đường dẫn chủ đề 2 muốn lắng nghe topic_2

Mức độ QoS mà thông điệp được gửi đến Tùy chọn qos_2 topic_2

- Tại đây cho phép thực hiện đăng ký nhiều topic sử dụng các ký tự đại diện. Chẳng

hạn, ta có đường dẫn chủ đề "{country}/{city}/{temperature,humidity}".

o Ký tự đại diện một cấp "+": Thay thế một cấp trong đường dẫn tên chủ đề. Ví dụ khi đăng ký chủ đề "VN/+/temperature" có nghĩa là client đăng

ký nhận thông điệp của tất cả các thành phố của Việt Nam.

o Ký tự đại diện nhiều cấp "*": Thay thế nhiều cấp trong đường dẫn tên chủ đề. Luôn là ký tự cuối cùng trong đường dẫn. Ví dụ khi đăng ký chủ

đề "VN/*", có nghĩa là client đăng ký nhận tất cả các thông điệp của nước Việt Nam.

o Ký tự đại diện cho các chủ đề đặc biệt "$": Đây là chế độ thống kê đặc biệt dành cho các MQTT server. Client không được xuất bản thông điệp

vào các chủ đề $.

2.2.2 Giao thức MQTT-SN:

MQTT có một phiên bản khác nhỏ gọn hơn được gọi là MQTT-SN, giao thức này được dùng cho các thiết bị cạnh biên và cấu trúc thiết kế đặc biệt cho các mạng cảm biến không dây. Các đặc điểm này bao gồm hỗ trợ các liên kết băng thông thấp, lỗi liên kết, độ dài tin nhắn ngắn và phần cứng hạn chế về tài nguyên. Trên thực tế, MQTT-SN nhẹ đến mức có thể chạy thành công qua mạng BLE và Zigbee.

MQTT-SN không yêu cầu chồng giao thức TCP/IP. Nó có thể được sử dụng qua liên kết nối tiếp, trong đó chi phí giao thức liên kết đơn giản (để phân biệt các thiết bị khác nhau trên đường truyền) thực sự nhỏ. Ngoài ra, nó có thể được sử dụng qua UDP, rõ ràng cũng tốn ít chi phí hơn TCP như MQTT.

2.2.2.1 Kiến trúc giao thức MQTT-SN:

Có 4 thành phần cơ bản trong kết nối MQTT-SN:

- Gateway: Một gateway có trách nhiệm chuyển đổi giao thức từ MQTT-SN sang MQTT và ngược lại. Các gateway cũng có thể là ghép gộp hoặc trong suốt. - Forwarder: Một tuyến đường giữa một cảm biến và một gateway MQTT-SN có thể gồm nhiều chặng và băng qua vài bộ định tuyến dọc đường. Các nút giữa client đang ở vai trò là nguồn phát tin và gateway MQTT-SN được gọi là các

forwarder và nó chỉ đơn giản đóng lại khung mới cho MQTT-SN và chuyển tiếp

tin đến được đúng gateway MQTT-SN.

21 - Client: Giống với MQTT, client có khả năng đăng ký và xuất bản thông điệp, dữ

liệu.

- Broker: Vai trò giống với trong giao thức MQTT.

Hình 2.4 minh họa một mô hình giao tiếp MQTT-SN.

Hình 2.4: Mô hình giao tiếp của MQTT-SN

2.2.2.2 Các gateway trong suốt và gateway ghép luồng:

Trong MQTT-SN, các gateway có thể đóng hai vai trò riêng biệt. Đầu tiên, một gateway trong suốt sẽ quản lý nhiều luồng MQTT-SN độc lập từ các thiết bị cảm biến và chuyển đổi mỗi luồng đó thành một thông điệp MQTT. Trong khi đó, một gateway ghép sẽ kết hợp một số lượng các luồng MQTT-SN thành một số luồng MQTT ít hơn để gửi đến MQTT broker. Một gateway có chức năng ghép sẽ phức tạp hơn về thiết kế nhưng sẽ giảm được số lượng mào đầu giao tiếp cũng nhưng kết nối đồng thời được mở trên máy chủ. Để xây dựng một gateway ghép thì các client cần publish và subcribe trên cùng một chủ đề. Hình 2.5 minh họa hai vai trò của gateway MQTT-SN.

22

Hình 2.5: Vai trò của MQTT-SN Gateway ghép và trong suốt

2.2.2.3 Một số điểm khác biệt giữa MQTT-SN và MQTT:

Các điểm khác biệt chính giữa MQTT-SN và MQTT như sau:

- Có ba thông điệp CONNECT trong MQTT-SN thay vì một trong MQTT. Hai gói

thêm vào dùng để đính kèm chủ đề và thông điệp Will.

- MQTT-SN chạy trên UDP thay vì TCP như MQTT. - Hỗ trợ chủ đề ngắn hơn, chủ đề dạng tên hay ID có độ dài hai byte. - Chủ đề có thể được định nghĩa trước mà không cần phải đăng ký. - Chu trình khai phá giúp cho client tìm được đường đến Gateway. - Cơ chế keepAlive hỗ trợ các thông điệp gửi đến một client đang nghỉ sẽ được giữ lại ở server hoặc router biên, các thông điệp này sẽ được chuyển lại cho client khi

client thức dậy.

2.2.3 Giao thức CoAP:

Constrained Application Protocol (CoAP) là sản phẩm của IETF (RFC7228), là giao thức được sử dụng trong giao tiếp giữa các thiết bị có tài nguyên hạn chế. Nó cũng hỗ trợ ánh xạ sang HTTP thông qua việc sử dụng các proxy, điều này giúp thiết bị có khả năng lấy dữ liệu từ internet.

CoAp cung cấp chức năng tương tự như HTTP nhưng với mào đầu gói tin và điện năng được giảm thiểu đáng kể, Bảng 2.4 thể hiện kết quả so sánh giữa CoAP và HTTP được thử nghiệm trên cùng phần cứng và các hoạt động thông tin:

Bảng 2.5. Kết quả thử nghiệm vài thông số giữa hai giao thức CoAP và HTTP

23 2.2.3.1 Kiến trúc CoAP:

Các tính năng CoAP được tóm gọn như sau:

- Giống HTTP. - Là giao thức không kết nối. - Bảo mật dùng DTLS. - Mào đầu gói tin được tối giản để tiết kiệm tài nguyên. - Hỗ trợ URI và content-types. - Giao thức sử dụng là UDP.

- Cơ chế ánh xạ HTTP cho phép chuyển tiếp đến các phiên HTTP.

CoAP có hai lớp cơ bản:

- Lớp Request/Response: Chịu trách nhiệm gửi và nhận các truy vấn

RESTful.

- Lớp Transaction: Kiểm soát thông điệp đơn lẻ được trao đổi giữa các đầu

cuối sử dụng 4 loại thông điệp cơ bản.

Cũng như HTTP, CoAP sử dụng URI và các request như GET, PUT, POST và DELETE. Tương tự, mã reponse cũng được bắt chước:

- 2.01: Đã tạo - 2.02: Đã xóa - 2.04: Đã thay đổi - 2.05: Nội dung - 4.04: Không tìm thấy trang

- 4.05: Không hỗ trợ method

coap://host[:port]/[path][?query]

Định dạng của một URI trong CoAP: Các thành phần trong một hệ thống CoAP:

- Endpoints: Điểm cuối, có thể là nơi gửi hoặc nơi nhận một thông điệp

CoAP.

- Proxies: Một điểm cuối được client ủy quyền thực hiện các request cho client. Điều này giảm tải đồng thời cung cấp một lớp bảo mật cho client.

Một proxy cũng có thể ánh xạ một CoAP request sang một CoAP request

khác hoặc sang một giao thức khác (như HTTP).

- Client: Nơi khởi tạo một request và là nơi nhận response. - Server: Nơi nhận request và là nơi tạo reponse.

24 - Intermediary: Một client hoạt động với vai trò như một server và client

đối với một origin server.

- Origin server: Các server có chứa một số tài nguyên nhất định. - Observer: Một client giám sát có thể đăng ký chính nó bằng một thông điệp GET. Nó sau đó được kết nối vào một nguồn tài nguyên và nếu tài

nguyên có sự thay đổi nào đó thì server sẽ gửi một thông báo về cho

observer.

Hình 2.6 minh họa một hệ thống HTTP cho phép các client CoAP liên lạc với nhau hoặc với các dịch vụ trên cloud.

Hình 2.6: Mô hình giao tiếp của CoAP

2.2.3.2 Các định dạng thông điệp CoAP:

Các giao thức dựa trên UDP thường không có cơ chế kiểm tra độ tin cậy. Để bù lại khiếm khuyết này, CoAP có hai loại thông điệp có và không có sự xác nhận. Đồng thời có thêm tính năng là truyền thông bất đồng bộ. Có tổng cộng 4 loại thông điệp trong CoAP:

- Confirmable (CON): Một thông điệp có yêu cầu ACK (xác nhận). Nếu một thông điệp CON được gửi đi thì yêu cầu một ACK phải nhận được trong khoảng

thời gian từ ACK_TIMEOUT đến (ACKTIMEOUT x

ACK_RANDOM_FACTOR). Nếu không nhận được ACK trong khoảng thời

gian trên, thiết bị gửi sẽ gửi lặp lại các thông điệp CON đó theo các khoảng thời

gian tăng lên theo cấp số nhân cho đến khi nhận được gói ACK hoặc RST. Số lần thử gửi lại tối đa cho gói CON được đặt bởi biến MAX_RETRANSMIT. Đây là

cơ chế phục hồi bù lại cho việc khiếm khuyết cơ chế phục hồi của giao thức lớp 4, UDP (Hình 2.7).

25

Hình 2.7: Quá trình gửi lại gói CON trong CoAP - Non-confirmable (NON): Một thông điệp không yêu cầu ACK. - Acknowledgment (ACK): Thông điệp xác nhận cho gói tin CON. Một gói tin

ACK có thể mang theo dữ liệu khác.

- Reset (RST): Cho biết rằng một thông điệp CON vừa nhận được nhưng không

đúng hoàn cảnh. Gói tin RST cũng có thể mang theo dữ liệu khác.

Hình 2.8 minh họa các trường hợp gửi và có thể nhận phản hồi của các gói CON và NON

Hình 2.8: RESTful request/reponse nằm trong nội dung của thông điệp CoAP

Trong khi các kiến trúc thông điệp khác yêu cầu server trung tâm để phân phối các thông điệp giữa các client, CoAP cho phép các thông điệp được gửi giữa bất kỳ CoAP client nào bao gồm cả các cảm biến và server. CoAP bao gồm một mô hình bộ nhớ đệm đơn giản. Bộ nhớ đệm được điều khiển bởi các mã phản hồi trong mào đầu của thông điệp. Tùy chọn Max_Age được sử dụng để điều khiển các tuổi thọ của các bộ nhớ đệm và đảm bảo độ mới của dữ liệu. Max_Age mặc định là 60 giây và giá trị tối đa có thể thiết lập lên đến 136.1 năm. Các proxy đóng vai trò là một bộ nhớ đệm; ví dụ, khi một cảm biến ở trạng thái nghỉ, nó có thể sử dụng một proxy để lưu tạm dữ liệu. Tiêu đề thông điệp CoAP được thiết kế tinh giảm có độ dài 4 byte, với một thông điệp request thông thường thì tổng chiều dài header chiếm khoảng 10-20 byte. Cấu trúc bao gồm các Message Type Identifiers (T) cho biết loại thông điệp luôn có trong mỗi tiêu đề

26 liên kết với trường Message-ID duy nhất. Trường Code được sử dụng để thông tin các lỗi hay các trạng thái thành công. Sau header, các trường còn lại là tùy chọn và có độ dài thay đổi là các Token, Option, và Payload (Hình 2.9).

Hình 2.9: Cấu trúc gói tin CoAP

UDP có thể gây nên các gói tin trùng lặp cho cả hai loại thông điệp CON và NON. Nhờ vào trường Message ID trong tiêu đề, nếu có một thông điệp với cùng Message ID được gửi lại trong khoảng thời gian định trước EXCHANGE_LIFETIME, bên nhận sẽ biết được thông điệp bị trùng. Tôi xét vai trò của Observer trong một hệ thống, điều này cho phép CoAP hành xử tương tự như MQTT. Quy trình giám sát cho phép một client đăng ký làm giám sát viên và server sẽ thông tin cho client mỗi khi tài nguyên giám sát có sự thay đổi trạng thái. Thời hạn giám sát có thể được định nghĩa trong quá trình đăng ký. Ngoài ra, quá trình giám sát có thể kết thúc khi client gửi thông điệp RST hay một thông điệp GET khác (Hình 2.10).

Hình 2.10: Ví dụ CoAP Observer Khi CoAP dựa vào DTLS để tăng cấp độ bảo mật dữ liệu truyền thông thì URI sẽ thay đổi tương tự như HTTP thông qua TLS là thêm "s" đằng sau giao thức, URI:

//Không mã hóa

27

coap://host[:port]/[path][?query] //Có mã hóa coaps://host[:port]/[path][?query]

CoAP cũng cung cấp cơ chế khám phá tài nguyên. Chỉ cần gửi một GET request đến /.Well-known/core sẽ tiết lộ danh sách các tài nguyên đã biết trên thiết bị. Ngoài ra, các chuỗi truy vấn có thể được sử dụng trong request để áp dụng các bộ lọc xác định.

2.3 TỔNG KẾT:

Ngoài ra còn nhiều các giao thức thông khác phục vụ cho lĩnh vực IoT và M2M như Simple Text Message-Oriented (STOMP), Advanced Message Queuing Protocol. Tuy nhiên, cho đến nay MQTT, CoAP, và HTTP vẫn chiếm ưu thế trong ngành và được hầu hết các nhà cung cấp dịch vụ đám mây hỗ trợ. Trong đó, MQTT và MQTT-SN cung cấp mô hình giao tiếp publish/subcribe có thể mở rộng và hiệu quả trong khi CoAP cung cấp các tính năng liên quan đến mô hình RESTful với chi phí thấp. Căn cứ vào các nghiên cứu ở chương này, tôi sẽ sử dụng MQTT làm giao thức truyền thông giữa các node trong giải pháp hệ thống giám sát.

28 CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG VÀ XÂY DỰNG GIẢI PHÁP

3.1 TỔNG QUAN:

3.1.1 Sự cần thiết:

Việt Nam có nhiệt độ trung bình cao, tại thành phố Hồ Chí Minh nhiệt độ trung bình cao trên 29 oC kéo dài từ tháng 2 đến tháng 9 hàng năm, nhiệt độ thấp nhất không dưới 23 oC (Hình 3.1).

Hình 3.1: Nhiệt độ trong ngày ở TP. HCM thấp nhất không dưới 23 oC

Các thiết bị điện khi hoạt động do có tổn hao năng lượng thường gây nóng cho thiết bị và môi trường. Mỗi thiết bị đều có ngưỡng nhiệt độ vận hành theo khuyến cáo của nhà sản xuất (Hình 3.2). Khi nhiệt độ vận hành cao vượt ngưỡng sẽ dẫn đến tình trạng thiết bị hoạt động mất ổn định như khởi động lại hay thậm chí có thể gây hư hỏng thiết bị.

29

Hình 3.2: Điều kiện môi trường của hệ thống CMTS Casa C100G

Tầm quan trọng của Internet ngày nay là không thể phủ nhận khi tạo ra một mạng truyền thông kết nối toàn bộ các quốc gia trên thế giới, kéo theo đó là các dịch vụ nền tảng như mạng xã hội, tìm kiếm, giáo dục trực tuyến, giải trí, lưu trữ, thương mại điện tử … Trong đó, các trung tâm dữ liệu (Data Center), các phòng máy phân phối tín hiệu (Hub) đóng vai trò là nơi tập trung các hệ thống server lưu trữ hay các thiết bị truyền dẫn (switch, router) thực hiện chuyển tiếp các luồng dữ liệu cho các thiết bị đầu cuối. Chỉ tiêu độ khả dụng dịch vụ Internet yêu cầu ≥ 99.5% (QCVN 34:2019/BTTTT), điều này đòi hỏi các nhà cung cấp dịch vụ internet (ISP) triển khai nhiều biện pháp để giảm thiểu các rủi ro có thể gây gián đoạn dịch vụ, bao gồm: Gián đoạn hạ tầng ngoài trời, gián đoạn hạ tầng trong nhà, gián đoạn do sự cố phòng máy, thiết bị.

Hình 3.3: Các tủ Rack thiết bị trong phòng máy phân phối tín hiệu mạng HFC

Trong đó, gián đoạn do sự cố thiết bị, phòng máy xảy ra có thể do: Sự cố gián đoạn điện, thiết bị bị lỗi đột ngột hay hỏng hóc do điều kiện vận hành, các sự cố xảy ra do thiên tai bão lũ, hỏa hoạn hay do chủ đích phá hoại của con người. Các biện pháp

30 giảm thiểu rủi ro cơ bản cũng được các ISP xây dựng thành tiêu chuẩn cho các phòng máy như đảm bảo không gian, thẩm mỹ, thiết kế hệ thống điện, tiếp đất, chống sét, điều kiện môi trường, hệ thống camera an ninh...

Trên cơ sở thiết kế cho việc tối ưu truyền dẫn - phân phối tín hiệu, các phòng máy được phân bổ theo mật độ tập trung đầu cuối trên miền địa lý (Hình 3.1), thông thường một Hub sẽ phủ sóng truyền dẫn cho phạm vi quận của các thành phố lớn như TP Hồ Chí Minh, Đà Nẵng và phạm vi tỉnh.

Hình 3.4: Sơ đồ mạng cáp HFC

Số lượng phòng máy trải rộng, nhân sự vận hành đa nhiệm (vận hành phòng máy, xử lý sự cố outdoor, xử lý sự cố indoor - chăm sóc khách hàng) (Hình 3.5) dẫn đến tình trạng phòng máy thường xuyên không có người; điều này đặt ra yêu cầu xây dựng một giải pháp giám sát thông minh, một hệ thống quản lý toàn diện cho các phòng máy.

31

Hình 3.5: Công tác xử lý sự cố outdoor và chăm sóc khách hàng

Một hệ thống quản lý phòng máy thông minh cho phép điều khiển và quản lý được các hệ thống kỹ thuật trong phòng máy như hệ thống điện, hệ thống giám sát điều kiện môi trường, cảnh báo khói cháy, hệ thống giám sát cửa ra vào, hệ thống camera an ninh… hệ thống giám sát phải hoạt động đồng bộ ở thời gian thực, có kết nối mạng để theo dõi từ trung tâm, các sự kiện giám sát, cảnh báo phải được chuyển tiếp chính xác giúp nhân sự quản lý phòng máy phản ứng kịp thời và có các động thái phù hợp để đảm bảo an toàn an ninh cho phòng máy, duy trì ổn định chất lượng dịch vụ.

Các tính năng cơ bản của hệ thống thông minh quản lý phòng máy:

- Cho phép các thiết bị trong phòng máy hoạt động một các đồng bộ, chính xác. - Giám sát được các thông số điều kiện môi trường phòng máy như như nhiệt độ,

độ ẩm, khói-cháy, tình trạng hệ thống điện.

- Giám sát, điều khiển các hệ thống kỹ thuật như an ninh ra vào, an ninh camera,

báo khói – cháy, qua các giao diện mở của hệ thống.

- Hệ thống có giao thức mở cho việc sẵn sàng mở rộng tính năng hay kết nối đến

các dịch vụ đám mây như lưu trữ, cảnh báo .v.v…

3.1.2 Các giải pháp giám sát phòng máy:

Hiện tại các giải pháp giám sát trên thị trường trong nước và quốc tế cũng đã có, chú

trọng đến tính năng tự động hóa trong giám sát điều kiện nhà trạm, sơ lược qua một số

giải pháp và tính năng giám sát phòng máy:

32

 EEM-RTU-01

Sản phẩm EEM-RTU-01 của EMS Việt Nam [5] với tên gọi Giám sát môi

trường cho trung tâm dữ liệu và trạm BTS” (Hình 3.7), có các tính năng được

mô tả như Bảng 3.1.

Hình 3.7: Khối sản phẩm EEM-RTU-01 của EMS Việt Nam

Bảng 3.1. Tính năng và thông số kỹ thuật của giải pháp EEM-RTU-01

STT Tính năng Thông số kỹ thuật

thiệu 1 Giới chung

- Thiết bị giám sát và quản trị tập trung cho trung tâm dữ liệu, phòng máy chủ, trạm BTS…, có khả năng dò tìm, đưa ra các loại cảnh báo như sau: + Cảnh báo nhiệt độ phòng máy cao + Cảnh báo cháy, khói + Cảnh báo phòng máy bị ngập nước + Cảnh báo cửa phòng máy mở + Cảnh báo phòng máy có độ ẩm cao - Tất cả các mức ngưỡng cảnh báo đều có thể điều chỉnh được theo yêu cầu sử dụng - Có màn hình HMI hiển thị các thông số hoạt động của thiết bị và hiển thị các cảnh báo - Tủ trung tâm điều khiển được thiết kế gọn nhẹ, đảm bảo mỹ quan và được sơn tĩnh điện, có khóa an toàn.

thức 2 Hình cảnh báo

- Với các loại cảnh báo như: cảnh báo cháy, cảnh báo khói, cảnh báo phòng máy bị ngập nước, cảnh báo phòng máy bị mở cửa thì ngoài việc truyền tín hiệu cảnh báo về trung tâm quản lý, thiết bị còn đưa ra được tín hiệu cảnh báo tại chỗ dưới dạng âm thanh (còi), ánh sáng (đèn báo hiệu);

33

3

Cảnh báo nhiệt độ phòng máy cao

- Có thể cài đặt để tắt hoặc bật việc xuất cảnh báo ra còi báo động. - Có thể cảnh báo qua SMS, Email hoặc Web nếu sử dụng module GSM/GPRS/ETHERNET. - Có thể điều chỉnh mức ngưỡng nhiệt độ cao (theo 10C/bước). Khi nhiệt độ phòng cao hơn mức ngưỡng này thì thiết bị sẽ đưa ra cảnh báo; - Có màn hình hoặc đèn hiển thị nhiệt độ phòng và ngưỡng cảnh báo nhiệt độ cao; - Dãy nhiệt độ đo: từ 00C ~ 700C; - Độ chính xác: ≤ 0.50C ( ở 250C) - Thời gian nhạy đáp ứng: ≤ 30 giây

báo 4 Cảnh cháy, khói

- Phù hợp tiêu chuẩn TCVN 5738:2000 về yêu cầu kỹ thuật của hệ thống báo cháy tự động - Phục vụ cho diện tích ≥ 15m2; - Nguồn 12VDC

5 Đầu báo khói

- Nguyên lý hoạt động: Theo nguyên lý ion hóa - Thời gian tác động ≤ 30s; - Có đèn chỉ thị trạng thái bình thường /có cảnh báo.

6 Loa báo động

- Có công tắc để tắt âm thanh của còi báo động trong trường hợp cần thiết; - Phát ra âm thanh khác nhau đối với cảnh báo cháy hoặc khói và các loại cảnh báo khác;

7

- Gửi thông báo qua SMS, email, phát chuông khi phát hiện rò rỉ nước - Nguồn 12VDC báo Cảnh phòng máy bị ngập nước

- Nhận biết mở cửa phòng máy bằng nam châm từ. 8 Cảnh báo cửa phòng máy mở

9 Đầu dò độ ẩm

- Dải độ ẩm đo: 0% đến 95%RH; - Độ chính xác: ≤ 5% RH (trong dãy từ 20% RH đến 90% RH); - Thời gian nhạy đáp ứng: ≤ 30 giây.

- Giám sát và cảnh báo các mức dầu tại bình chứa 10 Giám sát mức dầu

11 Giám sát UPS

- Giám sát điện áp, dòng điện, tần số, hệ số công suất đầu vào và đầu ra của UPS - Đưa ra các cảnh báo như mất nguồn, on battery, on bypass…

12 - Giám sát nhiệt độ, độ ẩm, công suất điều hòa - Đưa ra một số cảnh báo khi mất nguồn, mất khí, rò rỉ… Giám sát điều hòa

34

13 - Giám sát điện áp, dòng điện, tần số, hệ số công suất, công suất hữu ích, công suất phản kháng, công suất biểu kiến…

Giám sát đồng hồ điện

 Universal Alarm System:

Hình 3.8: Cấu trúc hệ thống giám sát toàn diện

Trung tâm VTC – Công ty CPCN viễn thông VITECO xây dựng hệ thống giám sát và cảnh báo toàn diện [6], cấu trúc như Hình 3.8, có các tính năng được mô tả như sau:

- Giám sát các thông số hoạt động của trạm:

o Nhiệt độ môi trường, nhiệt độ thiết bị. o Điện áp, dòng điện nguồn, điện áp, dòng điện sau bộ nguồn, điện áp dòng

điện tổ ácqui.

o Trạng thái cửa ra vào. o Cảnh báo khói, cháy, độ ẩm. o Ngập nước.

- Giám sát hệ thống đường dây. - Giám sát bằng hình ảnh thông qua IP Camera.

35 - Phát lệnh cảnh báo bằng chuông, còi, nhắn tin, gọi điện, cảnh báo qua mạng tới

trung tâm.

- Điều khiển các hoạt động khi có sự cố: chữa cháy, ngắt nguồn, đóng khoá … - Điều khiển các thiết bị tự động: ví dụ bật tắt điều hoà để đạt nhiệt độ, bật tắt quạt

thông gió để đạt độ ẩm.

- Kết nối mạng toàn bộ hệ thống: cho phép quan sát, điều khiển toàn bộ trạm từ xa. - Phương thức liên kết đa dạng: qua điện thoại, qua mạng LAN, qua internet … Độ

lớn của mạng tương đối cao.

- Độ an toàn cao. - Chi phí vừa phải.

- Dễ dàng mở rộng tính năng.

Giao diện ứng dụng như Hình 3.9.

Hình 3.9: Giao diện chức năng giám sát Camera IP của Universal Alarm System

 Giải pháp giám sát và cảnh báo phòng server ATSCADA [7]:

Giải pháp có mô hình tổng quát như Hình 3.10

36

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

- Đè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

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ừ,…

37

Hình 3.11: Sản phẩm tủ giám sát và cảnh báo phòng server ATSCADA

3.2 XÂ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.

38

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.

39

- 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.1 Khố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

40 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ố

Bộ xử lý

Bộ nhớ and IEEE 5GHz

Giao diện kết nối

Giao diện truy xuất

Thiết bị lưu trữ

Nguồn điện

Vòng đời Giá trị Broadcom BCM2837B0, Cortex- A53 (ARMv8) 64-bit SoC @ 1.4GHz 1GB LPDDR2 SDRAM 2.4GHz 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 40 chân vào ra số mở rộng Thẻ nhớ micro SD lưu trữ hệ điều hành và dữ liệu. 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 Còn được sản xuất tối thiểu đến tháng 03/2023

41

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…

Hình 3.15: Sơ đồ chân cắm board mạch Raspberry Pi 3 B+

42

 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

43 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

$raspi-config

Software Configuration (Hình 3.19) bằng lệnh:

44

- Đổ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ớ

$modprobe w1-gpio

$modprobe w1-therm

- Kích hoạt giao tiếp 1-wire với cảm biến nhiệt DS18B20 bằng lệnh:

45 - 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:

$sudo apt-get install vsftpd

- Bước 1: Cài đặt

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES

- Cấu hình trong file /etc/vsftpd.conf

$useradd camera -d /home/camera -s /usr/sbin/nologin

$passwd camera

$mkdir /home/camera/files/

- Tạo user phục vụ công tác xác thực:

 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.

46

- 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.

$apt-get install mosquitto

$pip install paho-mqtt

$pip install django

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:

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

các thành phần chính:

- Thiết bị điều khiển độc lập F18. - Nút Exit. - Khóa điện.

47 Và các thành phần phụ mở rộng như: Chuông, máy tính cài đặt phần mềm chấm công, bộ xác thực vân tay mở rộng, USB để truyền thông local như Hình 3.22.

Hình 3.22: Sơ đồ kết nối hệ thống kiểm soát cửa ra vào

Trong đó thiết bị điều khiển F18 là bộ não của hệ thống kiểm soát ra vào có

đặc tính kỹ thuật như Bảng 3.3:

Bảng 3.3. Thông số kỹ thuật bộ điều khiển F18

Thông số Giá trị

ZK 6001, 400 Mhz 64M Flash, 32MSDRAM Cảm biến quang 3.000 mẫu 100.000 LCD 2.4 inch Ethernet (10/100 M), RS485, USB-Host Ngõ vào và ra ≤ 2 giây 0-45 oC 20-80% Đa ngôn ngữ 12V DC, tối thiểu 3A Khóa điện, alarm, nút đi ra, chuông dây Vi xử lý Bộ nhớ Cảm biến vân tay Dung lượng vân tay Dung lượng giao dịch Màn hình Kết nối Tín hiệu wiegand Tốc đô nhận dạng Nhiệt độ vận hành Độ ẩm vận hành Ngôn ngữ Nguồn cấp Giao diện truy cập

Để thực hiện được chức năng của Khối giám sát ra vào, hệ thống kiểm soát cửa F18 cần thực hiện kết nối với Khối Giám sát và xử lý cục bộ thông qua kết nối Ethernet (ta có thể kết nối trực tiếp, hoặc thông qua các thiết bị trung gian như switch hoặc router IP).

48 3.2.1.3 Khối Giám sát an ninh, chuyển động – Hệ thống camera Analog:

Thay vì sử dụng cảm biến hồng ngoại để phát hiện có chuyển động trong phòng máy, tôi sử dụng tính năng phát hiện chuyển động tích hợp sẵn của đầu ghi camera để phát hiện chuyển động đồng thời cho người xem thấy được hình ảnh chuyển động mà camera ghi nhận được. Đầu ghi, sử dụng ở đây là loại đầu ghi Analog DVR H264 (Hình 3.23) phổ thông có thông số kỹ thuật như Bảng 3.4.

Bảng 3.4. Thông số kỹ thuật đầu ghi H264

Thông số Giá trị

H.264 720P/1080P AHD hoặc Analog 960H/D1 VGA, HDMI (max 1920x1080) 120fps @1280x720P/ 48 fps@ 1920x1080P 120fps @1280x720P/ 48 fps@ 1920x1080P Continuous / Schedule / Sensor / Motion 4 1 G711A

1 HDD x 4 TB Chuẩn nén Định dạng Video Ngõ ra hiển thị Độ phân giải ghi hình Tỉ lệ khung hình chiếu lại Các chế độ ghi hình Số ngõ vào âm thanh Số ngõ ra âm thanh Dạng nén âm thanh Hỗ trợ dung lượng ổ cứng lưu trữ tối đa

Lưu trữ dự phòng

USB, External HDDs, qua mạng thông qua CMS HTTP, DDNS, NTP, SMTP,RTP, RTSP, RTCP Ethernet 10/100 Mbps 4 nhóm: Admin, users 1,2,3 1-RS485 Hai luồng chính và phụ -5-70 oC Đa ngôn ngữ 12V DC, tối đa 24 W Có Các giao thức mạng Giao diện mạng Phân quyền quản lý Điều khiển Camera PTZ Xem trực tiếp từ xa Nhiệt độ vận hành Ngôn ngữ Nguồn tiêu thụ NTP Server

Camera

Analog

TCP/IP

Đầu ghi AHD

Hình 3.23: Sơ đồ kết nối hệ thống camera analog

49

Tương tự như Khối giám sát ra vào, để thực hiện chức năng của Khối giám sát an ninh, chuyển động thì đầu ghi của hệ thống camera cần thực hiện kết nối với Khối Giám sát và xử lý cục bộ , giao diện kết nối hỗ trợ của đầu ghi là chuẩn Ethernet.

3.2.1.4 Khối Giám sát Nhiệt độ - Cảm biến nhiệt độ DS18B20:

Cảm biến nhiệt độ DS18B20 giao tiếp với vi xử lý thông qua giao thức truyền

thông nối tiếp chỉ sử dụng 1 dây để truyền dữ liệu, ứng dụng của DS18B20 có thể dùng

trong các hệ thống điều khiển môi trường HVAC, các hệ thống giám sát nhiệt độ trong

tòa nhà, thiết bị, máy móc (Hình 3.24).

Hình 3.24: Sơ đồ chân các dòng IC DS18B20

DS18B20 có bộ nhớ chỉ đọc 64 bit lưu trữ chuỗi sê-ri duy nhất của thiết bị được hiểu như địa chỉ của thiết bị để phân biệt nó với thiết bị khác. Điều này cho phép bộ xử lý như Raspberry Pi nhận dữ liệu nhiệt độ từ nhiều cảm biến trên cùng 1 chân GPIO sử dụng giao thức Dallas 1-wire. Một vài thông số kỹ thuật và tính năng của cảm biến [13]:

- Nguồn hoạt động: 3.0 - 5.5 V DC - Khoảng đo: -55 oC đến +125 oC - Đô chính xác ±0.5 oC trong khoảng đo -10oC đến +85 oC - Chu kỳ lấy mẫu: 750 ms

3.2.1.5 Khối Giám sát Độ ẩm - Cảm biến nhiệt độ, độ ẩm DHT22:

DHT22 (Hình 3.25) là loại cảm biến nhiệt độ và độ ẩm (đầy đủ là độ ẩm tương đối) với dữ liệu được truyền trên 1 dây (nhưng giao thức khác với Dallas 1-wire của

50 DS18B20), kích thước nhỏ và giá thành thấp. Ta điểm qua một số đặc tính kỹ thuật của

cảm biến này như Bảng 3.5.

Bảng 3.5. Thông số kỹ thuật DHT22

Giá trị

3.3 – 6 V DC Đặc điểm Điện áp làm việc

Dòng tiêu thụ Trạng thái nghỉ: 40 – 50 μA Trạng thái làm việc: 1 – 1.5 mA

Tín hiệu số trên 1 chân

Hình 3.25: Cảm biến DHT22 Cảm biến điện dung Tín hiệu ngõ ra Thành phần cảm biến

Khoảng đo

Độ chính xác

Độ phân giải thang đo

thay đổi: ± 0.5 Tuổi thọ cao Độ ẩm: 0 đến 100% RH; Nhiệt độ: -40 đến +80 oC Độ ẩm: ±2 % RH (Có thể lên đến ±5 % RH); Nhiệt độ: ± 0.5 oC Độ ẩm: 0.1 %RH; Nhiệt độ: 0.1 oC Sai số %RH/năm

2s

14*18*5.5

Tối đa 100 m, tùy thuộc chất lượng dây dẫn và mối nối Chu kì lấy mẫu Kích thước (mm) Khoảng cách truyền tín hiệu

Cảm biến này cũng có một số khuyến cáo không nên dùng cho các ứng dụng liên

quan đến an toàn thiết bị hay các hệ thống đòi hỏi độ chính xác và an toàn cao. Đối với

phạm vi ứng dụng của hệ thống là Giám sát điều kiên môi trường phòng máy để cảnh

báo giảm thiểu rủi ro hao mòn thiết bị thì việc xảy ra lỗi là có thể chấp nhận được nhưng

cũng cần có cảnh báo khi lỗi xảy ra để thực hiện tác vụ kiểm tra xử lý [14].

 Chi tiết về hoạt động giao thức 1-wire của cảm biến DHT22:

Nguồn điện và chân:

51

Khi nguồn điện được cấp (áp 3.3 – 5.5 VDC), trong giây đầu tiên không gửi bất kỳ tín hiệu nào đến sensor để bỏ qua trạng thái khởi động. Nên chèn 1 cảm tụ 100nF giữa VCC và GND để lọc hài. Tín hiệu truyền thông và giao tiếp:

Dữ liệu truyền thông giữa vi xử lý (MCU) và DHT22 là dữ liệu trên một bus, cấu

trúc dữ liệu DHT22 gửi về cho MCU có độ dài 40 bit có cấu trúc như sau:

DATA = 16 bit RH + 16 bit nhiệt độ + 8 bit check-sum

Ví dụ:

- Data = 0000 0010 1000 1100 0000 0001 0101 1111 1110 1110 - Khi đó ta chuyển bin sang dec với hệ số 0.1 là được giá trị thực:

 RH = 0000 0010 1000 1100 = 652/10 = 65.2%  Nhiệt độ = 0000 0001 0101 1111 = 351/10 = 35.1 oC  Check-sum = 0000 0010 + 1000 1100 + 0000 0001 + 0101 1111 =

1110 1110

Khi MCU gửi tín hiệu khởi động, DHT22 chuyển trạng thái nghỉ sang làm việc. Khi MCU ngưng gửi tín hiệu khởi động, DHT22 sẽ gửi dữ liệu về độ ẩm và nhiệt độ 40-bit về cho MCU. Nếu MCU không gửi tín hiệu khởi động, DHT22 sẽ

chuyển về trạng thái nghỉ. Sau đây là minh họa chi tiết giao thức truyền thông giữa MCU và DHT22 (Hình 3.26, 3.27):

- Bước 1: MCU gửi tín hiệu khởi động cho DHT22 và DHT22 gửi tín hiệu

phản hồi cho MCU. Ở trạng thái tự do, bus dữ liệu được thả ở mức cao, MCU sẽ kéo mức tín hiệu xuống thấp khoảng dưới 20 ms để đảm bảo DHT22 nhận được tín hiệu sau đó MCU đẩy mức tín hiệu lên cao và đợi 20-40μs để chờ DHT22 phản hồi.

Khi DHT22 nhận được tín hiệu khởi động, DHT22 sẽ kéo mức tín hiệu

xuống 80μs để phản hồi, sau đó kéo lên mức cao 80μs nữa để chuẩn bị gửi

dữ liệu.

52 Hình 3.26: Minh họa quá trình chuẩn bị gửi dữ liệu giữa MCU với DHT22

- Bước 2: DHT22 gửi dữ liệu cho MCU

Khi DHT22 đang gửi dữ liệu cho MCU, mỗi bit truyền đi đều bắt đầu bằng

mức tín hiệu thấp kéo dài 50μs và mức tín hiệu đi sao sẽ quyết định bit dữ

liệu này là "0" hay "1" tùy vào độ dài của mức tín hiệu (26-28 μs sẽ là bit

"0", đối với bit "1" là 50μs).

Hình 3.27: Minh họa toàn bộ quá trình truyền dữ liệu

giữa MCU và DHT22

3.2.1.6 Khối Giám sát khói – Module cảm biến khí MQ2:

Module cảm biến khí MQ2 cho phép phát hiện khói, khí gây cháy trong phạm vi rộng, thời gian đáp ứng và độ nhạy cao được ứng dụng nhiều trong công nghiệp và dân dụng trong việc phát hiện các khí gây cháy hóa lỏng (LPG), propane, methano, cồn, hydro và khói (Hình 3.28).

Điểm qua một số thông số kỹ thuật và tính năng của module:

- Nguồn hoạt động: 5V DC - Giá trị dữ liệu trả về: Analog, Digital - Có biến trở điều chỉnh độ nhạy cảm biến, thay đổi ngưỡng cảnh báo cho giá trị

mức tín hiệu chân Digital.

Hình 3.28: Sơ bộ đặc điểm cấu tạo module MQ-2

53

Do mức điện áp tín hiệu chân dữ liệu của cảm biến MQ2 trả về là mức điện áp 5V, để không làm hỏng board mạch Pi ta cần thực hiện chuyển mức điện áp này về mức điện áp 3V3 (mức điện áp cao nhất mà chân GPIO của Pi chấp nhận).

Sơ lược một vài thông số kỹ thuật và tính năng của module chuyển mức điện áp

AMS1117 3V3 như sau (Hình 3.29):

- Điện áp vào: 4.5 – 12 V DC - Điện áp ra: 3.3V, 800 mA Hình 3.29: Module chuyển mức điện áp 3V3 - Sử dụng chip AMS1117

3.2.1.7 Khối Giám sát điện lưới – Adapter 5V DC:

Khối này có chức năng giám sát điện lưới có mất. Khối bao gồm: Một adapter chuyển từ 220V xuống 5 VDC bất kỳ, và một rờ le thường đóng (điện áp kích 5VDC) đóng ngắt tiếp điểm kết nối mức tín hiệu vào một chân GPIO của PI (hoạt động ở chế độ Input) để giám sát (Hình 3.30).

Thông số kỹ thuật yêu cầu của Adapter 5V:

- Điện áp vào: 220V AC

- Điện áp ra: 5V DC

Thông số kỹ thuật yêu cầu của Rơ le sử dụng:

- Điện áp nuôi: 5 V DC - Điện áp kích: 5V DC - Loại tiếp điểm: Thường đóng và thường Hình 3.30: Module rờ le kích mức thấp 5V DC mở.

3.2.2 Kết nối các giao diện phần cứng, thiết bị:

3.2.2.1 Kết nối các khối qua giao diện Ethernet:

Kết nối Ethernet được thực hiện giữa khối Giám sát và xử lý cục bộ với khối Giám sát ra vào, khối Giám sát an ninh và chuyển động thông qua Ethernet switch (thiết bị chuyển mạch IP lớp 2).

3.2.2.2 Kết nối khối Giám sát cục bộ với nhóm Cảm biến:

 Cảm biến nhiệt độ, độ ẩm DHT22:

54 Bảng 3.6. Kết nối chân Pi và DHT22

Chỉ số chân DHT22 Chức năng Tên gọi vật lý GPIO trên Pi

1 Vcc 1

2 Data 7

4 GND 6

Hình 3.31: Kết nối mạch Raspberry Pi với DHT22

Trong kết nối giao tiếp giữa Raspberry Pi và DHT22 có sử dụng thêm một điện trở mắc giữa chân Vcc và chân Data để khi không có tín hiệu truyền trên dây Data (thường là trạng thái nghỉ) thì Data được kéo lên mức tín hiệu cao (Hình 3.31, Bảng 3.6).

 Cảm biến nhiệt độ, độ ẩm DS18B20: Bảng 3.7. Kết nối chân Pi và DS18B20

Chức năng Chân DS18B20 Tên gọi vật lý GPIO trên Pi

3 Vcc 2

2 Data 7

1 GND 6

Hình 3.32: Kết nối giao tiếp giữa Raspberry Pi và DS18B20

Tương tự như kết nối với DHT22, một điện trở kết nối giữa hai chân Vcc và Data để thực hiện kéo mức tín hiệu chân Data lên cao khi không có tín hiệu truyền trên đó (Hình 3.32, Bảng 3.7).

 Cảm biến khói, khí gây cháy MQ2:

Việc kết nối giữa Raspberry Pi với cảm biến khí MQ2 có 2 phương thức: Lấy dữ liệu Digital hoặc dữ liệu Analog. Ở đây tôi sẽ thực hiện lấy dữ liệu Digital để làm việc với Pi. Kết nối chân như Bảng 3.8.

Bảng 3.8. Kết nối chân PI, AMS1117 và module MQ2

Mạch giảm áp 3v3 AMS1117

Chức năng Vcc Data GND Chân GPIO trên Pi 2 13 6 Vout GND Vin GND Chân MQ2 Vcc DO GND

55 Chân nhận tín hiệu số, chân 13 của Pi được cấu hình hoạt động ở chế độ Input và

mức tín hiệu ở mức cao nếu chân hở (PULL_DOWN). Nguyên lý làm việc của khối như sau:

- Khi có loại khí làm MQ2 bị kích thích vượt ngưỡng (ngưỡng được điều chỉnh bằng biến trở trên module MQ2) chân DO của MQ2 sẽ chuyển lên trạng thái mức

cao (5V DC). Chân DO được nối vào Vin của mạch AMS1117 sẽ cho Vout tương

ứng có mức điện áp 3.3V DC.

- Chân nhận tín hiệu số 13 của Pi nối vào chân Vout trên AMS 1117 khi MQ2 bị kích thích vượt ngưỡng, mức điện áp vào chân 13 là 3.3 V, Pi sẽ hiểu tín hiệu ở

mức "1", tương đương với trạng thái có khói hoặc khí gây cháy.

 Cảm biến điện lưới sử dụng Adapter 5 V DC kết hợp relay:

Sơ đồ chân kết nối giữa các thiết bị như Bảng 3.9.

Bảng 3.9. Kết nối chân PI, rờ le và adapter 5VDC

Rờ le thường đóng, kích mức thấp Adapter 5V Output Chân GPIO trên Raspberry Pi

Chức năng Data 11 COM DC+ Vcc

GND 6 NC DC- GND

NO IN GND Kích Rơ le

Tương tự cho chân nhận tín hiệu số, chân 11 của Pi được cấu hình hoạt động ở chế

độ Input và mức tín hiệu ở mức cao nếu chân hở (PULL_UP).

Nguyên lý hoạt động như sau: - Khi có điện lưới (điện xoay chiều 220 V):

o Adapter chuyển ra điệp áp 5V DC nuôi Rơ le đồng thời chân GND của Adapter nối vào chân tín hiệu của Rơ le. Do rơ le được cấu hình kích mức

thấp nên Rơ le ở trạng thái tích cực, tiếp điểm thường đóng (NC) được nối

với tiếp điểm COM.

o Chân nhận tín hiệu số 11 của Pi nối vào COM của Rơle sẽ thông với GND ở chân số 6 của Pi. Pi nhận mức tín hiệu "0" ở chân 11, tương đương với

trạng thái có điện lưới.

- Khi mất điện lưới:

o Không còn điện áp ra nuôi Rơ le, Rơ le ở trạng thái nghỉ, tiếp điểm NC

không được nối COM.

56 o Chân nhận tín hiệu số 11 của Pi lúc này hở mạch, tín hiệu nhận ở mức "1",

tương đương với trạng thái mất điện lưới.

3.3 XÂY DỰNG LƯU ĐỒ GIẢI THUẬT VÀ LẬP TRÌNH

3.3.1 Module thu thập dữ liệu từ các cảm biến môi trường

Bắt đầu

Start bộ định thời

Thu thập, xử lý dữ liệu nhiệt độ, độ ẩm, khói, điện lưới

Xác định trạng thái hiện tại dựa trên dữ liệu và ngưỡng giá trị cảnh báo

Không

Trạng thái có thay đổi

Đã 15' chưa

Rồi

Gửi Report lên Server

Chưa

Reset bộ định thời

Không

Có dừng chương trình?

Kết thúc

Các thông số môi trường về nhiệt độ và độ ẩm định, khói định kỳ được báo cáo về Server tập trung mỗi 15 phút. Trong quá trình thu thập dữ liệu, nếu trạng thái nhiệt độ, độ ẩm hay khói thay đổi thì ngap lập tức báo cáo về server. Lưu đồ giải thuật cơ bản như sau:

3.3.2 Module kết nối nhận sự kiện từ khối Giám sát ra vào

Yêu cầu đặt ra cho module giám sát ra vào đầu tiên là ghi nhận các sự kiện ra vào, tiếp theo là giám sát được trường hợp mất kết nối, một số hành vi xâm nhập trái phép. Lưu đồ giải thuật của module cơ bản như sau:

Bắt đầu

Kết nối thiết bị Ra vào

Có sự kiện nào không?

Không

Xử lý thông tin sự kiện

Gửi Report lên Server

Không

Có dừng chương trình?

Kết thúc

57

3.3.3 Module Giám sát an ninh, phát hiện chuyển động

Cấu hình cho đầu ghi camera cần làm các bước cơ bản:

- Cấu hình mạng - Thiết lập ghi theo chuyển động và trỏ đến server FTP trên RPi bằng tài khoản

người dùng camera đã tạo ở trên.

Lưu đồ giải thuật của module cơ bản như sau:

Bắt đầu

Có file chuyển động không?

Không

Xử lý thông tin sự kiện

Gửi Report lên Server

Không

Có dừng chương trình?

Kết thúc

58

3.3.4 Module báo cáo trạng thái về Server qua giao thức MQTT

Trong các lưu đồ giải thuật của các module chức năng có hàm Gửi Report lên Server, hàm này sẽ thực hiện gửi thông điệp trạng thái của module chức năng về cho server thông qua phương thức publish trên giao thức MQTT. Như vậy hàm "Gửi Report lên Server sẽ thực hiện vai trò là client, server sẽ đóng vai trò là broker nhận và phân phối lại các thông điệp. Module Report sử dụng như sau:

- Bước 1: Thực hiện gọi hàm kết nối connect, kết quả kết nối sẽ được trả về thông

qua hàm callback on_connect.

- Bước 2: Thực hiện gửi thông điệp về broker thông qua hàm send_report với giá

trị đầu vào là các tham số đặc trưng của một thông điệp MQTT:

o Topic: Chủ đề mà thông điệp publish đến. o Data: Thông điệp o Qos (Quality of service): Ở đây ta có thể hiểu là cấp xác nhận giữa broker

và client khi trao đổi thông điệp.

o Retain: Có giữ thông điệp trên topic hay không.

3.3.5 Website cho phép xem và thiết lập thông số để hệ thống kết nối vận hành

59

Ứng dụng web giám sát cục bộ được viết bằng ngôn ngữ Python trên nền tảng mã nguồn mở Django, một nền tảng web server nhẹ, phát triển nhanh [15]. Server được chạy ngay trên board Raspberry Pi và ứng dụng web này dành cho người quản lý phòng máy để xem một số thông tin:

- Tên thiết bị: Để khỏi nhầm lẫn giữa các thiết bị giám sát ở phòng máy khác. - Thời gian hoạt động của hệ thống: Để xem thiết bị có bị khởi động lại bất thường. - Trạng thái giám sát: Các thông số môi trường, an ninh hiện tại và trạng thái kết

nối về server quản lý tập trung.

Đồng thời, module cho phép người quản lý thực hiện thiết lập các thông số về:

- Tên thiết bị. - Thông tin mô tả vị trí các loại cảm biến trong phòng. - Ngưỡng cảnh báo của các loại cảm biến (Nhiệt, độ ẩm). - Địa chỉ IP của thiết bị giám sát và xử lý cục bộ. - Kích hoạt và thay đổi địa chỉ IP của thiết bị giám sát ra vào. - Kích hoạt và thay đổi địa chỉ IP của camera giám sát. - Kích hoạt và thay đổi các tổ hợp (nhiệt, khói, mất điện) trạng thái làm chuông báo

kêu.

Usecase của ứng dụng như sau:

Đăng nhập

Xem tên thiết bị

Đổi mật khẩu

Xem thời gian hệ thống hoạt động bao lâu

<>

<>

Xem nhiệt độ, độ ẩm, khói, điện

Xem thông tin

<>

Xem trạng thái ra vào, camera

<>

Người quản lý phòng máy

<>

Xem trạng thái

Xem trạng thái kết nối mạng

<>

Xem trạng thái chuông báo

<>

Cấu hình thông số

Thay đổi tên thiết bị

<>

<>

Thay đổi thông tin cảm biến

<>

Thay đổi thông tin IP

Thay đổi tổ hợp kích hoạt chuông báo

60

Giao diện trang web đáp ứng (responsive) hiển thị trên cả máy tính và các thiết bị

điện thoại:

 Trang đăng nhập:

Hình 3.33: Giao diện trang đăng nhập

61 Người dùng thực hiện xác thực để có thể truy cập các trang trạng thái và cấu

hình (Hình 3.33).

 Trang xem thông tin:

Hình 3.34: Giao diện trang xem thông tin thiết bị

Người dùng có thể xem một số thông tin thiết bị như: tên, phòng máy, giờ trên

hệ thống và tổng thời gian hoạt động của hệ thống từ lúc khởi động (Hình 3.34).

 Trang xem trạng thái:

Tại trang trạng thái ta có thể xem các giá trị cảm biến và trạng thái realtime của các khối chức năng. Các thông số trạng thái có màu sắc thay đổi theo trạng thái: Xanh (trạng thái bình thường – Normal), Cam (trạng thái hơi cao – Warning) và Đỏ (trạng thái báo động – Critical) như Hình 3.35.

Hình 3.35: Giao diện trang xem trạng thái

 Trang cấu hình thông số: - Thông tin điện lưới phòng máy: Có thể thiết lập tên phòng máy, số pha điện

sử dụng (Hình 3.36).

62

Hình 3.36: Giao diện trang cấu hình thông tin phòng máy - An ninh: Cấu hình kích hoạt kết nối giữa Pi với các khối giám sát ra vào và

an ninh camera (Hình 3.37).

Hình 3.37: Giao diện trang cấu hình thông tin các thiết bị an ninh - Chuông báo: Chuông báo động có thể được cấu hình kích hoạt khi xảy ra một trong các trạng thái mất điện lưới, nhiệt độ rất cao, phát hiện khói (Hình 3.38).

Hình 3.38: Giao diện trang cấu hình các điều kiện kích hoạt chuông báo

3.4 TRIỂN KHAI VÀ THEO DÕI KẾT QUẢ:

Sau khi kết nối các giao diện phần cứng, những công việc sau đây đã được thực hiện:

63

- Lập trình ứng dụng thu thập các thông số cảm biến, bao gồm toàn bộ các khối chức năng Giám sát. Các khối này đòi hỏi thời gian đáp ứng các sự kiện thời gian

thực, nhanh nên tôi sử dụng kỹ thuật xử lý đa luồng – multithreading.

- Lập trình ứng dụng giao diện xem trạng thái và cấu hình trên nền tảng Django, bao gồm các giao diện xem, khai báo và cấu hình các thông số của các khối Giám

sát.

- Thiết kế và dựng database lưu trữ nền tảng Sql Server. - Dựng Mqtt broker cho module Report. - Lập trình dịch vụ nhận sự kiện và lưu trữ vào database lưu trữ. - Lập trình dịch vụ cảnh báo cho nhân sự quản lý.

- Kết nối hoàn chỉnh các dịch vụ và theo dõi kết quả trong 2 tuần.

64 CHƯƠNG 4: ĐÁNH GIÁ VÀ KẾT LUẬN

4.1 ĐÁNH GIÁ:

4.1.1 Đánh giá kết quả thử nghiệm:

Sau thời gian thực nghiệm để kiểm tra độ ổn định của hệ thống và thực hiện một số giả lập sự kiện. Hệ thống cho kết quả hoạt động ở độ ổn định cao, các thông số định kỳ cũng như trạng thái sự kiện được báo cáo như kỳ vọng.

4.1.2 Ưu điểm của hệ thống:

Hệ thống giám sát điều kiện môi trường và an ninh phòng máy cho SCTV được xây dựng dựa trên kiến trúc công nghệ Internet of Things có nhiều ưu điểm được tóm gọn:

- Tính ứng dụng cao: Xuất phát từ nhu cầu vận hành, kết hợp các tiêu chuẩn kỹ thuật và kinh nghiệm quản lý thực tiễn, hệ thống được xây dựng có tính ứng dụng cao giúp tối ưu nhiều công đoạn trong qui trình vận hành, sản xuất.

- Tính mở rộng: Thiết bị phần cứng gateway là Raspberry Pi và giao thức truyền thông về phía cloud là MQTT làm cho hệ thống có tính mở không giới hạn (như

đã trình bày ở chương 3).

4.1.3 Hạn chế của hệ thống:

Hệ thống có rất nhiều ưu điểm nếu như hoàn thiện, tuy nhiên trong phạm vi luận

văn và tại thời điểm hiện tại hệ thống vẫn còn tồn tại nhiều hạn chế, cụ thể:

- Bảo mật: Trong kiến trúc Internet of Things, bảo mật là một trong các yếu tố được quan tâm hàng đầu. Hệ thống hiện tại chưa triển khai một số công nghệ, phương

pháp để tăng độ tin cậy cho hệ thống.

- Công nghệ: Công nghệ lớp vật lý hiện tại kết nối giữa các sensor và gateway là có dây, cũng như tính bảo mật, công nghệ không dây cũng là một công nghệ lõi

của Internet of Things, việc triển khai ứng dụng công nghệ này vào hệ thống giúp

tối ưu không gian, thẩm mỹ cũng như công đoạn đi dây trong phòng máy chật

chội.

- Mở rộng: Trong phòng máy hiện có rất nhiều thông số cần thu thập giám sát, dự

báo cũng như điều khiển như battery, UPS, tải điện, server, router…

4.2 KẾT LUẬN:

Sự hội tụ của các công nghệ lõi hình thành công nghệ Internet of Things, đặc biệt là công nghệ vi cơ điện tử giúp việc xây dựng các hệ thống tự động như 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 trở nên khả thi

65 hơn bao giờ hết. Với chi phí phải chăng và tính ứng dụng cao, hệ thống khi được phát triển hoàn chỉnh giúp các doanh nghiệp viễn thông như SCTV giảm thiểu được rất nhiều nguồn nhân lực vận hành các phòng, góp phần đảm bảo an ninh, an toàn truyền dẫn phát sóng.

66 PHỤ LỤC

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

13. 14. 15.

A. Chương trình mẫu lấy dữ liệu nhiệt độ và in tất cả nhiệt độ của các cảm biến nhiệt độ DS18B20 lên màn hình:

from subprocess import Popen,PIPE class Temp_Sensor(object): SensorList = [] def __init__(self,serial): self.serial = serial #serial: địa chỉ nhận dạng cảm biến self.value = 0 Temp_Sensor.SensorList.append(self) def get_temp(self): '''Lấy dữ liệu nhiệt độ theo độ Celsius từ cảm biến''' data = Popen('cat /sys/bus/w1/devices/' + self.serial + '/w1_slave'],shell=True,stdout=PIPE, stderr=PIPE) out,err = data.communicate() if err=='' and out !='': val = round(float(out.decode('utf- 8').split('\n')[1].split('=')[1])/1000,1) self.value = val def show_me(self): print (f"-{self.serial}:{self.value}") def get_sensor(): import os rootpath = '/sys/bus/w1/devices/' for temp_sensor in os.listdir(rootpath): if temp_sensor.startswith("28-"): Temp_Sensor(temp_sensor) def show_temp(): for sensor in Temp_Sensor.SensorList: sensor.get_temp() sensor.show_me() if __name__=="__main__": get_sensor() show_temp()

16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.

1. #Author: Loctt 2. #Released Date: 07/06/2020 3. 4. from Constants import StatusMessage,AccessStatusDict 5. import report_service 6. 7. def run(ip): 8. import zk 9. status=0 10. event_status = '' 11. attendance_status = None 12. needReport = False

B. Chương trình mẫu kết nối thiết bị An ninh ra vào để lấy sự kiện.

13. myClient = zk.ZK(ip,timeout=5) 14. if myClient.helper.test_ping(): 15. try: 16. myClient.connect() 17. needReport = False 18. if len(AccessControl.zkClient.get_serialnumber()): 19. status = AccessStatusDict.status_connect_sucessfully 20. for attendance,data in

AccessControl.zkClient.live_capture():#Theo dõi sự kiện

21. if attendance is None: 22. if len(data) == 16: 23. if data[9] == '1':#Quên đóng cửa 24. event_status = AccessStatusDict.status_open_door_alarm

25. elif len(data) == 8: 26. event_status = AccessStatusDict.status_hack_device

27. print("Phát hiện hành vi tác động vào thiết

bị")

28. elif len(data) == 0: 29. if not myClient.helper.test_ping(): break 30. else: 31. if attendance.status == 1: #Truy cập bằng vân tay 32. event_status =

AccessStatusDict.status_access_by_finger

33. elif attendance.status == 3: #Truy cập bằng pass 34. event_status = AccessStatusDict.status_access_by_pass

35. else: #Truy cập bằng RFID card 36. event_status = AccessStatusDict.status_access_by_card

37. except Exception as e: 38. print ("Có lỗi bất thường: {}".format(e)) 39. else: 40. status = AccessStatusDict.status_ping_not_ok 41. if __name__=="__main__": 42. run('192.168.1.102')

67

1. #Author: Loctt 2. #Released Date: 16/08/2020 3. import os, platform 4. import report_service 5. 6. list_files = [] 7. 8. def getFullPathOfAllFilesInFolder(rootpath): 9. '''Hàm đệ quy lấy toàn bộ đường dẫn File trong thư mục rootPath''' 10. import re,time 11. today = time.strftime("%Y-%m-%d",time.localtime()) 12. for item in os.listdir(rootpath): 13. itemFullPath = os.path.join(rootpath,item) 14. if re.search("\d{4}-\d{2}-\d{2}",item) and today != item: 15. os.system (f"rm -rf {itemFullPath}") 16. else: 17. if os.path.isdir(itemFullPath):

getFullPathOfAllFilesInFolder(itemFullPath)

C. Chương trình mẫu kiểm tra file chuyển động của camera trong thư mục cho trước:

18. elif itemFullPath.endswith('h264'):

list_files.append(itemFullPath)

19. list_files.sort() 20. return list_files 21. 22. def getbase64contentFile(contentFileInBytes): 23. '''Hàm convert dữ liệu từ Byte sang Base64 cho việc chuyển thông tin

về server trong MQTT'''

24. import base64 25. return base64.b64encode(contentFileInBytes).decode('ascii') 26. 27. def run(): 28. from Constants import CameraStatusDict 29. cameraName = "" 30. while True: 31. list_files = [] 32. getFullPathOfAllFilesInFolder(record_files_dir) 33. today = time.strftime("%Y-%m-%d",time.localtime()) 34. for recFileFullPath in list_files: 35. #Xem hom nay co file nao khong 36. if today in recFileFullPath: 37. cameraName = recFileFullPath.split('/')[-2]: 38. recFileName = recFileFullPath.split('/')[-1] 39. status = CameraStatusDict.status_motion_detect 40. contentFileInBase64 = "" 41. with open(recFileFullPath,'rb') as recFile: 42. contentFileInBytes = recFile.read() 43. contentFileInBase64 =

getbase64contentFile(contentFileInBytes=contentFileInBytes)

44.

report_service.reportStatusDataCamera(name=cameraName,recfilename=re cFileName,recdata=contentFileInBase64)

45. os.system('rm ' + recFileFullPath) 46. list_files.remove(recFileFullPath) 47.

68

48. #Author: Loctt 49. #Released Date: 26/01/2021 50. 51. import paho.mqtt.client as mqtt 52. import time 53. 54. clientId = '1' 55. client = mqtt.Client('1') 56. broker_address='server_domain/server_ip' 57. based_topic = "gs{0}/".format(clientId) 58. 59. def on_connect(client, userdata, flags, rc): 60. if rc==0: 61. print("Connected!",rc) 62. else: 63. print("Can't connect, returned code=",rc) 64. 65. def connect(): 66. global based_topic 67. global client

D. Code thực hiện kết nối và gửi thông điệp đến broker của hàm Gửi Report lên Server

68. #Thực hiện khai báo các thông số và kết nối 69. client.username_pw_set(username='username',password='password') 70. client.on_connect=on_connect 71. client.loop_start() 72. client.connect(broker_address,keepalive=15) 73. #Thiết lập thông điệp di chúc cho biết thiết bị không còn kết nối 74. client.will_set(based_topic + "connected"

69

,payload='0',qos=1,retain=True)

75. return client 76. 77. def disconnect(): 78. global client 79. client.loop_stop() 80. client.disconnect() 81. 82. def send_report(topic='',data='',qos=0,retain=False): 83. global based_topic 84. client.publish(based_topic +

topic,data=data,qos=qos,retain=retain)

70 TÀI LIỆU THAM KHẢO

[1]. Perry Lea (2018), Internet of Things for Architects, Packt, ISBN 978-1-78847-

059-9.

[2]. Adrian McEwen, Hakim Cassimally (2014), Designing the Internet of Things,

Wiley, ISBN 978-1-118-43063-7.

[3]. Bộ Thông tin và Truyền thông Việt Nam, Thuyết minh dự thảo tiêu chuẩn quốc IoT, chuẩn nghĩa thuật ngữ, định tiêu cho về

gia, http://mic.gov.vn/Upload_Moi/VanBan/Thuyet-minh-Du-thao-tieu-chuan- thuat-ngu-dinh-nghia-cho-IoT---25.01.2019.doc, truy cập ngày 17/06/2020.

[4]. Wikipedia, Http, https://vi.wikipedia.org/wiki/Hypertext_Transfer_Protocol,

truy cập ngày 17/06/2020.

[5]. EMS Việt Nam, Giải pháp giám sát môi trường cho trung tâm dữ liệu, http://www.emsvietnam.com.vn/gioi-thieu-ve-giai-phap-giam-sat-moi- truong-cho-trung-tam-du-lieu-va-tram-bts-cua-ems, truy cập ngày 17/03/2021. [6]. Universal Alarm System, https://sites.google.com/site/universalalarm/he-

thong-giam-sat-va-canh-bao-toan-dien, truy cập 17/03/2021.

[7]. ATPro, Hệ thống giám sát phòng máy chủ, https://atpro.com.vn/san-pham/he-

thong-giam-sat-phong-may-chu-trung-tam-du-lieu-2, truy cập 17/03/2021.

[8]. Hệ thống quản lý tòa nhà thông minh BMS, http://gsptech.vn/bms-systems-

thong-quan-ly-toa-nha-bms/, truy cập ngày 17/03/2021.

[9]. Huỳnh Thái Hoàng (2014), Hệ thống điều khiển thông minh, Nhà xuất bản đại

học Quốc gia TP. Hồ Chí Minh. Pi [10]. Raspberry Foundation, Raspberry What is

Pi, https://www.raspberrypi.org/help/what-%20is-a-raspberry-pi/, truy cập ngày 03/06/2020.

[11]. Raspberry Pi Foundation, Installing operating system images,

https://www.raspberrypi.org/documentation/setup/, truy cập ngày 03/12/2020. [12]. Colin Dow (2018), Internet of Things Programming Projects, Packt, ISBN

978-1-78913-480-3.

[13]. Maximim Intergrated, Programmable Resolution 1-Wire Digital Thermometer DS18B20, https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf, truy

cập, truy cập ngày 16/06/2020.

[14]. Thomas Liu, Digital relative humidity & temperature sensor AM2302/DHT22,

https://cdn-

71 shop.adafruit.com/datasheets/Digital+humidity+and+temperature+sensor+A

M2302.pdf, truy cập ngày 19/06/2020.

[15]. Django Software Foundation (2020), Django Documentation,

https://media.readthedocs.org/pdf/django/3.0.x/django.pdf, truy cập ngày

03/08/2020.