TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ NĂNG LƯỢNG TRƯỜNG ĐẠI HỌC ĐIỆN LỰC (ISSN 1859 4557) Số 24 9 THIẾT KẾ IoT GATEWAY CHO HỆ THỐNG GIÁM SÁT VÀ QUẢN LÝ TỦ ĐIỆN HẠ THẾ DESIGN AN IoT GATEWAY FOR MONITORING AND[.]
TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ NĂNG LƯỢNG - TRƯỜNG ĐẠI HỌC ĐIỆN LỰC (ISSN: 1859 - 4557) THIẾT KẾ IoT GATEWAY CHO HỆ THỐNG GIÁM SÁT VÀ QUẢN LÝ TỦ ĐIỆN HẠ THẾ DESIGN AN IoT GATEWAY FOR MONITORING AND MANAGING SYSTEM OF LOW-VOLTAGE DISTRIBUTION CABINET Lê Anh Ngọc, Nguyễn Khánh Tùng Trường Đại học Điện lực Ngày nhận bài: 16/06/2020, Ngày chấp nhận đăng: 27/08/2020, Phản biện: TS Nguyễn Hữu Quỳnh Tóm tắt: Bài báo đề xuất phương pháp thiết kế cài đặt IoT Gateway để ứng dụng cho hệ thống giám sát điều khiển tủ điện hạ qua mạng Internet Giải pháp gateway sử dụng hệ điều hành mở phần cứng mở Single Board Computer (SBC) hỗ trợ nhiều giao tiếp mạng khác nhau, cho phép giao tiếp thiết bị khác tủ điện hạ Internet Giải pháp gateway có chi phí thấp, có khả dễ dàng mở rộng phần mềm dựa hệ điều hành mã nguồn mở Linux, đồng thời cho phép dễ dàng cài đặt nhiều kiến trúc giao thức cho công nghệ kết nối khác Kết cải đặt thử nghiệm gateway cho hai giao thức MODBUS MQTT cho kết đáp ứng yêu cầu thực tế đặt Từ khóa: Internet vạn vật (IoT), gateway, SCADA, Modbus RTU, MQTT, tủ điện hạ Abstract: This paper proposed a method to design and implement an IoT Gateway to apply for monitoring and controlling low-voltage distribution cabinet via the Internet This gateway uss an open source operating system and Single Board Computer (SBC) that supports various network interfaces, allowing communication of various devices in low-voltage distribution cabinet and the Internet This gateway solution is therefore low-cost, likely easy to extendsoftware based on the open source Linux operating system, and easy to implement network protocol architectures Results of implementing and testing gateway for MODBUS and MQTT protocols give outcomes that meet practical requirements Keywords: Internet of Thing (IoT), gateway, SCADA, modbus RTU, MQTT, low-voltage distribution cabine GIỚI THIỆU CHUNG Hàng năm, lưới điện phân phối đầu tư phát triển không ngừng để đáp ứng nhu cầu cung cấp điện cho khách hàng Hệ thống quản lý tủ điện hạ có chức thu thập liệu lưới điện, giám sát Số 24 trạng thái thiết bị điều khiển tự động điểm nút đóng/cắt quan trọng lưới, từ tăng hiệu vận hành, giảm tổn thất lưới điện, giảm cố, tăng tính an tồn vận hành, tạo tiền đề để phát triển lưới điện thông minh [1] TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ NĂNG LƯỢNG - TRƯỜNG ĐẠI HỌC ĐIỆN LỰC (ISSN: 1859 - 4557) Các tủ điện hạ lắp đặt nhiều nơi quận/huyện, với số lượng từ 50-100 tủ khu vực có bán kính tầm 3-11 km Nhân viên vận hành phải tận trường để thao tác đóng/cắt điện Trong tủ điện có thành phần (hình 1): Các đo điện (Power Meter-PM) để đo thông số U, I, cosØ; Các cảm biến nhiệt độ, độ ẩm, trạng thái đóng mở cửa Máy đóng cắt để thực đóng cắt điện báo điều khiển máy cắt từ xa Bên cạnh gateway phải có chi phí thấp khả dễ dàng mở rộng kiến trúc giao thức cho kết nối mạng khác tương lai Để giải vấn đề này, gateway phải có khả giao tiếp với PM để đọc thông số dòng điện, giao tiếp với cảm biến: nhiệt độ, độ ẩm, đóng/mở cửa, giao tiếp với máy cắt (breaker) để đọc trạng thái điều khiển Trạng thái máy cắt (ON/OFF) thể tiếp điểm, cần kết nối gateway với tiếp điểm để lấy trạng thái, từ biết tủ có điện hay điện (hình 2) Gateway sau đọc thông số gửi lên máy chủ giao thức MQTT để xử lý, lưu trữ Dựa trạng thái máy cắt, gateway nhận lệnh điều khiển từ trung tâm để đóng/cắt điện Hình Tủ điện hạ có PM máy cắt Những khó khăn quản lý hệ thống tủ điện: Số lượng tủ điện/trạm hạ lớn, phân bố rải rác, vận hành thủ công: cần nhân viên trực tiếp đến trạm, ghi sổ sách Các cố điện (mất điện, dòng, áp…), cắp, cháy nổ,… người vận hành không giám sát thường xuyên Yêu cầu toán đặt cần thiết kế thiết bị gateway để thu thập thông số cảm biến hoạt động tủ điện chuyển tiếp qua Internet tới trung tâm vận hành nhằm mục đích để phân tích, cảnh 10 Hình Giao tiếp gateway với thành phần tủ điện hạ Chi tiết thông số cần thu thập phân loại bảng 1, Bảng Các thông số PM Tên Mục đích thu thập U Điện áp Biết điện áp tức thời 15 s/lần I Cường độ dòng điện Biết cường độ dòng tức thời 15 s/lần Độ lệch pha Biết độ lệch pha 15 s/lần Thông số CosØ Tần suất lấy mẫu Số 24 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ NĂNG LƯỢNG - TRƯỜNG ĐẠI HỌC ĐIỆN LỰC (ISSN: 1859 - 4557) Bảng Các thông số cảm biến Thơng số Mục đích thu thập Tần suất lấy mẫu Độ ẩm Biết độ ẩm tủ phút/lần Nhiệt độ Biết nhiệt độ tủ phút /lần Trạng thái đóng/mở cửa tủ điện An ninh (xem có bị trộm cắp không) Mỗi lần thay đổi trạng thái Bảng Các thông số máy cắt Thông số Trạng thái máy cắt (ON/OFF) Mục đích thu thập Biết có điện hay điện Tần suất lấy mẫu Mỗi lần thay đổi trạng thái MỘT SỐ CÁC GIẢI PHÁP THIẾT KẾ IoT GATEWAY Nhiều nghiên cứu giải pháp IoT SCADA cộng đồng nhà khoa học công ty công nghệ quan tâm gần Trong báo [2], tác giả đề xuất xây dựng hệ thống SCADA có chi phí thấp, sử dụng thiết bị ESP32 OLED để thu thập thông số trường gửi qua Internet sử dụng giao thức MQTT Tuy nhiên thiết bị hạn chế lực phần cứng khả mở rộng khơng có hệ điều hành Tác giả Shopov [3] đề xuất kiến trúc IoT gateway dựa hệ điều hành mã nguồn mở Ubuntu để thực tập hợp công việc bao gồm giao tiếp với thiết bị điện trường, truyền thông với đám mây Hạn chế đề xuất không đề cập đến giả thiết kiến trúc phần cứng, khả mở rộng thiết kế phần mềm chưa thật rõ ràng Các tác giả [4] đề xuất giải Số 24 pháp thiết kế cài đặt IoT gateway cho giám sát điều khiển bể bơi Giải pháp sử dụng máy tính nhúng Raspberry chạy hệ điều hành mở Raspberian đóng vai trò gateway, Arduino Uno phần cứng mở rộng để kết nối cảm biến Giải pháp làm tăng độ phức tạp hệ thống độ trễ xử lý Dragan Mlakić tác giả [5] đề xuất giải pháp phần cứng phần mềm cho IoT gateway nhằm thu thập thông số tủ điện hạ thế, với ưu điểm chi phí thấp, nhiên phần cứng sử dụng mạch Arduino UNO R3 có nhiều hạn chế việc hỗ trợ lập trình khả xử lý Mohammad Hossein Yaghmaee tác giả [7] đưa đề xuất giải pháp quản lí lượng hiệu dựa điện toán sương mù với home gateway sử dụng giao thức HTTP CoAP tảng phần cứng Raspberry Tuy nhiên, kết phân tích [8] cho thấy ưu điểm giao thức MQTT so với giao thức khác HTTP, CoAP Các kết nghiên cứu [8-10] sử dụng giao thức IEC 104 cho việc thu thập liệu từ tủ điện hạ thế, nhiên kiến trúc truyền thơng địi hỏi chi phí triển khai hệ thống tương đối cao Để thiết kế IoT gateway cho tốn tủ điện hạ thế, ngồi việc phải có khả giao tiếp thiết bị khác tủ điện hạ internet, gateway phải có chi phí thấp tính dễ dàng mở rộng Dựa phân tích ưu nhược điểm giải pháp thiết kế gateway cho thấy giải pháp phù hợp sử dụng 11 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ NĂNG LƯỢNG - TRƯỜNG ĐẠI HỌC ĐIỆN LỰC (ISSN: 1859 - 4557) phần cứng mở Single Board Computer (SBC) hỗ trợ nhiều giao tiếp mạng khác nhau, chạy hệ điều hành mã nguồn mở để dễ dàng tùy biến Giải pháp cho phép dễ dàng cài đặt nhiều kiến trúc giao thức khác có giao thức MODBUS MQTT THIẾT KẾ GATEWAY Phần đề cập đến giải pháp thiết kế IoT gateway cho hệ thống quản lí tủ điện hạ Chúng sử dụng giải pháp phần cứng mở Raspberry, chạy hệ điều hành Raspbian mã nguồn mở nhân Linux Gateway hỗ trợ nhiều giao tiếp mạng khơng dây kết nối có dây Đặc biệt gateway có chân giao tiếp GPIO analog digital lập trình Do gateway chạy hệ điều hành nhân Linux, nên hỗ trợ ngôn ngữ lập trình khác C++, Python Bên cạnh đó, gateway cho phép dễ dàng cài đặt giao thức khác có giao thức MODBUS MQTT 3.1 Thiết kế giao tiếp với PM thông qua giao thức MODBUS RTU Các PM thường nhà sản xuất hỗ trợ giao tiếp vật lý RS485 sử dụng giao thức MODBUS RTU [11], đóng vai trị slave, lưu giá trị U, I, cosØ ghi Do gateway cần hỗ trợ giao tiếp RS485, lập trình cài đặt chức MODBUS master (hình 3) Hình Kiến trúc hệ thống với IoT gateway 12 Hình Cấu trúc tin Modbus RTU Gateway lập trình để gửi tin MODBUS request tới slave yêu cầu đọc giá trị ghi nhận tin reply chứa giá trị cần thu thập Cấu trúc tin modbus hình 4, đó: Slave address: số ID thiết bị slave, có giá trị từ 1-255, người sử dụng cấu hình PM Trong tủ điện đấu nối tiếp PM theo topo dạng bus, PM cần có số ID khác Function code: chứa lệnh yêu cầu mà master gửi cho slave Thông thường mã hàm master yêu cầu đọc liệu ghi slave 03 Data: liệu trao đổi master slave Trong tin request, phần data phải có địa ghi slave, số lượng ghi cần đọc Trong tin reply, data chứa giá trị thông số điện trả Lưu ý kiểu liệu trả tài liệu mô tả PM hãng sản xuất CRC: mã kiểm tra lỗi Sau master gửi tin request tới PM, khởi động đồng hồ chờ slave phản hồi (response time-out) Thời gian cài đặt lập trình, phụ thuộc vào Nếu thời gian time-out mà slave chưa trả lời master thơng báo lỗi tiến hành gửi lại request Nếu slave phản hồi về, master kiểm tra gói tin nhận được, có lỗi thơng báo Thời gian time-out tham khảo theo khuyến nghị tài liệu thiết bị PM Các bước cần thực gateway để đọc thông số PM: Số 24 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ NĂNG LƯỢNG - TRƯỜNG ĐẠI HỌC ĐIỆN LỰC (ISSN: 1859 - 4557) Bước Cài đặt thông số kết nối cổng serial RS485 PM bao gồm: data bits, baud rate, parity, stop bit địa slave Các thông số lấy tài liệu hãng sản xuất thiết bị Bước Cài đặt vai trò modbus master bao gồm thông số: địa slave, function code, thời gian time-out, kiểu liệu, địa ghi, số lượng ghi Bước 3: Cài đặt tần suất lấy mẫu 15 s/lần 3.2 Thiết kế giao tiếp với Sensor máy cắt qua cổng I/O Các thông số độ ẩm, nhiệt độ tủ đo cảm biến analog, đấu nối với gateway thông qua chân I/O analog Trạng thái máy cắt đóng mở cửa lấy thông qua cảm biến digital đấu nối với gateway thông qua chân I/O digital THIẾT KẾ GIAO TIẾP TRUYỀN THÔNG SỬ DỤNG GIAO THỨC MQTT Phần trình bày phương pháp thiết kế cài đặt giao thức MQTT gateway Bên cạnh tham số chất lượng dịch vụ (QoS) khác giới thiệu cài đặt cho giao thức MQTT nhằm đáp ứng yêu cầu thời gian thực 4.1 Giao thức MQTT Phía trung tâm vận hành trang bị máy chủ để nhận yêu cầu kết nối từ gateway, xử lý lưu trữ thông số điện Tại gateway, để gửi thông số tới máy chủ, cần lựa chọn giao thức truyền thơng có đặc điểm nhanh, hướng kiện tin cậy Trong báo lựa chọn giao thức MQTT (Message Queuing Telemetry Số 24 Transport) - giao thức gửi dạng PublishSubscribe Giao thức MQTT sử dụng giao thức TCP/IP để truyền liệu MQTT sử dụng phổ biến cho thiết bị IoT (Internet of Things) Lý lựa chọn MQTT vì: MQTT ban đầu thiết kế cho hệ thống thu thập liệu điều khiển từ xa (SCADA) MQTT trở nên phổ biến gần phát triển IoT Là giao thức hướng kiện theo mơ hình publish/subscribe (xuất - theo dõi), phù hợp cho việc truyền thông theo định kỳ Thủ tục truyền tin nhanh, độ tin cậy cao thông qua chế MQTT QoS Kiến trúc mức cao MQTT gồm hai phần broker clients Client publisher (gửi tin) subscriber (nhận tin) Broker có vai trị hub trung tâm, làm nhiệm vụ kết nối client cách nhận tin từ publisher, chuyển chúng đến subscriber, topic Broker mở rộng thêm vài tính liên quan tới q trình truyền thơng như: bảo mật tin, lưu trữ tin, ghi log [12] Hình minh họa việc sử dụng giao thức MQTT để gửi thông số điện áp (U) Gateway đóng vai trị publisher, thiết lập phiên kết nối với broker cách gửi tin CONNECT nhận phản hồi CONNACK Sau publisher gửi tin PUBLISH chứa giá trị điện áp thời U=220V vào topic GW/PM/U máy chủ broker Máy client người vận hành đóng vai trị subscriber, đăng ký nhận liệu từ topic GW/PM/U tin SUBSCRIBE, nhận thông tin điện áp 13 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ NĂNG LƯỢNG - TRƯỜNG ĐẠI HỌC ĐIỆN LỰC (ISSN: 1859 - 4557) Username Password: thông tin sử dụng để xác thực gateway broker Tài khoản tạo broker cài đặt gateway Hình Gửi thơng số dịng điện giao thức MQTT Sau gateway gửi tin CONNECT, phía broker gửi lại tin CONNACK, tin có trường thơng tin returnCode Nếu trường có giá trị phiên MQTT thiết lập thành công 4.2 Thiết lập phiên MQTT 4.3 Gửi tin PUBLISH Gateway bật lên kết nối với broker thông qua tin CONNECT chứa số thông tin quan trọng sau: Bản tin PUBLISH mà gateway gửi lên chứa trường sau: ClientID: định danh gateway ClientID lựa chọn dựa kết hợp: Serial phần cứng; Thời gian sản xuất ra; Tên GW, địa điểm lắp đặt (thay đổi được, người dùng nhập) CleanSession: cờ báo hiệu phiên kết nối từ gateway đến broker có lưu thơng tin gateway hay không Nếu CleanSession=true, broker không lưu thông tin gateway, CleanSession=false, broker lưu lại số thơng tin gateway thiết lập lại phiên cách nhanh chóng trước có cố Trên gateway, nhóm tác giả để mục cho người dùng tùy chọn, nhiên cài đặt mặc định CleanSession=false để broker lưu thông tin gateway KeepAlive: thời gian (s) dài mà gateway broker trì kết nối mà khơng cần gửi gói tin MQTT Trên giao diện gateway mục tùy chọn người dùng, mặc định 120 s 14 PacketID: ID gói tin TopicName: tên topic broker Gateway cần biết tên topic broker để gửi thơng số lên Bài báo đưa 04 topic có đường dẫn theo cấu trúc hình ClientID/PM/[thơng số điện]; ClientID/Sensors/[thông số cảm biến]; ClientID/Breaker/[trạng thái]; ClientID/Breaker/[lệnh điều khiển] QoS: xác định mức độ tin cậy gửi tin PUBLISH, mức QoS áp dụng cho gateway phân tích sau RetainFlag: cờ đặt giá trị true để subscriber (máy người vận hành) nhận thông tin từ broker sau đăng ký Payload: liệu đọc từ PM, Sensors máy cắt Payload lập trình mã hóa, sử dụng khóa chia sẻ client broker (pre-share key) Hình Gửi tin MQTT với QoS=0 Số 24 TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ NĂNG LƯỢNG - TRƯỜNG ĐẠI HỌC ĐIỆN LỰC (ISSN: 1859 - 4557) 4.4 Vấn đề QoS lưu trữ tin Bản tin PUBLISH có trường QoS với mức 0, 1, Mức (hình 6): mức publisher đơn giản gửi tin cho broker, sau xóa tin Broker khơng gửi báo nhận cho publisher, mà chuyển tiếp tin cho subscriber Ưu điểm thủ tục truyền tin nhanh, đơn giản Nhược điểm khơng đảm bảo tính tin cậy tin gửi bị Mặc dù MQTT dựa giao thức TCP, nhiên tình gateway kết nối 3G/4G, dẫn đến phiên TCP (do port nguồn gateway đổi thiết lập lại phiên TCP mới), gói TCP khơng truyền lại Q trình thử nghiệm cho thấy mức QoS phù hợp để: Truyền thông số điện, thông số cảm biến từ gateway lên broker từ broker subscriber, đảm bảo thời gian thực Truyền lệnh điều khiển từ máy người vận hành lên broker, từ broker xuống gateway Mức (hình 7) mức bảo đảm tin đến đích lần chế báo nhận Phía broker nhận tin từ publisher, lưu lại, sau gửi trả tin báo nhận PUBACK Sau nhận PUBACK publisher xóa tin gửi Quá trình trao đổi tin broker subscriber diễn tương tự Có thể xảy tình PUBACK bị mất, publisher gửi lại tin PUBLISH với cờ DUP (duplicate) bật, để thông báo cho broker biết tin gửi lại Căn vào phía broker xử lý gói tin có cờ DUP theo logic nghiệp vụ ứng dụng Ưu điểm mức QoS phía broker Số 24 nhận tin lần, nhược điểm cần xử lý tin trùng lặp Điều làm tăng cơng việc phía máy chủ broker số lượng gateway lớn (50-100 bộ) tần suất lấy mẫu dày Do Gateway không sử dụng mức QoS=1 để gửi tin PUBLISH Hình Gửi tin MQTT với QoS=1 Mức (hình 8): mức bảo đảm tin đến đích đến lần, cách dùng thêm tin báo nhận PUBREC, PUBREL PUBCOMP Chính nhờ đặc tính tin cậy nên phù hợp để truyền trạng thái máy cắt Nhược điểm mức QoS trình thủ tục truyền tin phức tạp, gateway cần phải chờ nhận đủ tin PUBREC PUBCOM cho tin PUBLISH gửi Bản tin PUBLISH trạng thái máy cắt gửi lên cần đặt cờ Retain=true để phía máy vận hành nhận trạng thái máy cắt sau subscribe Hình Gửi tin MQTT với QoS=2 15 ... nhận lệnh điều khiển từ trung tâm để đóng/cắt điện Hình Tủ điện hạ có PM máy cắt Những khó khăn quản lý hệ thống tủ điện: Số lượng tủ điện/ trạm hạ lớn, phân bố rải rác, vận hành thủ công: cần... gateway cho toán tủ điện hạ thế, ngồi việc phải có khả giao tiếp thiết bị khác tủ điện hạ internet, gateway phải có chi phí thấp tính dễ dàng mở rộng Dựa phân tích ưu nhược điểm giải pháp thiết kế gateway. .. Các kết nghiên cứu [8-10] sử dụng giao thức IEC 104 cho việc thu thập liệu từ tủ điện hạ thế, nhiên kiến trúc truyền thông địi hỏi chi phí triển khai hệ thống tương đối cao Để thiết kế IoT gateway