Tuy nhiên, công nghệ LoRa chỉ tập trung vào lớp vật lý và không cung cấp khung truyền dữ liệu cụ thể, do đó giao thức LoRaWAN đã được phát triển để cung cấp cấu trúc mạng, quản lý giao t
GIỚI THIỆU
GIỚI THIỆU
Từ xưa đến nay, việc đo lường càng quan trọng do nhu cầu cung cấp dữ liệu chi tiết và chính xác cho các ứng dụng có thể bao gồm nông nghiệp, công nghiệp và quản lý hạ tầng đô thị,… Tuy nhiên, nhiều khu vực cần lắp đặt cảm biến để đo lường và giám sát lại có địa hình hiểm trở, khó tiếp cận hoặc yêu cầu giám sát từ xa với khoảng cách lên tới hàng kilomet Để giải quyết vấn đề này, công nghệ truyền dữ liệu không dây LoRa đã ra đời LoRa là giải pháp hiệu quả cho việc kết nối các thiết bị trên phạm vi rộng, với ưu điểm là công suất thấp, tiết kiệm năng lượng và chi phí bảo trì Điều này đặc biệt phù hợp với nhiều loại địa hình phức tạp
Mặc dù công nghệ LoRa hiện tại đã phổ biến, việc truyền dữ liệu vẫn chưa có một khung truyền dữ liệu cụ thể Để giải quyết vấn đề này, LoRa Alliance – một tổ chức phi lợi nhuận được nhiều chính phủ, bao gồm cả Việt Nam, công nhận – đã phát triển giao thức mạng chuẩn LoRaWAN Giao thức này không chỉ tối ưu hóa việc kết nối các thiết bị trong mạng mà còn mang đến nhiều sự tiện lợi lớn cho hệ thống
Nhiều nghiên cứu trước đây đã phát triển và tối ưu hóa việc sử dụng công nghệ LoRa và LoRaWAN trong các ứng dụng IoT, nhưng vẫn còn một số hạn chế về phạm vi, độ tin cậy và tính tương thích giữa các thiết bị khác nhau
Trước thực tế này, nhóm tác giả quyết định thực hiện đề tài "Thiết kế và thi công hệ thống LoRaWAN-IoT đo lường cảm biến từ xa" Hệ thống này có khả năng tích hợp nhiều chuẩn giao tiếp khác nhau (RS-232, RS-485, 4-20mA, 0-10V), và dễ dàng quản lý, thiết lập thông số qua giao diện trình duyệt web.
MỤC TIÊU ĐỀ TÀI
Mục tiêu đề tài là thiết kế và thi công thành công hệ thống thu thập và đo lường nhiều loại cảm biến với các chuẩn giao tiếp khác nhau gồm: RS-232, RS-485 (kết hợp với giao thức Modbus RTU), tín hiệu dòng điện 4-20mA và tín hiệu điện áp 0-10VDC sử dụng chuẩn giao thức mạng LoRaWAN Có giao diện web trực quan để người dùng
-2- xem dữ liệu trực tiếp hoặc cấu hình thiết bị Hệ thống có cơ sở dữ liệu lưu trữ và hiển thị dữ liệu ở nhiều dạng khác nhau.
PHẠM VI GIỚI HẠN ĐỀ TÀI
Do thời gian có hạn nên đề tài của nhóm tác giả còn những giới hạn như sau:
- Đề tài chỉ tập trung vào lớp giao thức class A và phương thức kích hoạt mạng OTAA của chuẩn giao thức mạng LoRaWAN 1.0.3
- Đề tài chỉ tập trung đến các chuẩn giao tiếp cảm biến thông dụng, không bao gồm việc hiệu chỉnh, đảm bảo giá trị đo được của cảm biến đạt mức chính xác cao
- Hệ thống bao gồm các thiết bị đầu cuối và Gateway hoạt động truyền dữ liệu trong khoảng cách 3000m trong đô thị.
PHƯƠNG PHÁP NGHIÊN CỨU
Đề tài sử dụng tổng hợp các phương pháp nghiên cứu sau:
- Phương pháp nghiên cứu lý thuyết
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
- Nghiên cứu các sản phẩm mẫu về các thiết bị đo lường cảm biến sử dụng LoRaWAN trên thị trường
- Nghiên cứu về mạng LoRa, cách thức hoạt động của LoRa và ứng dụng
- Nghiên cứu về giao thức mạng LoRaWAN 1.0.3, cách xây dựng máy chủ mạng LoRaWAN, xây dựng cơ sở dữ liệu và hiển thị sử dụng các mã nguồn mở có sẵn
- Nghiên cứu về giao thức truyền thông UART, các chuẩn giao tiếp RS-232, RS-
- Nghiên cứu về chuẩn giao thức Modbus RTU
- Nghiên cứu về tín hiệu dòng điện 4-20mA, tín hiệu điện áp 0-10VDC
- Nghiên cứu tài liệu về các vi điều khiển hỗ trợ LoRa, LoRaWAN, vi điều khiển hỗ trợ WiFi, các IC hỗ trợ các chuẩn giao tiếp trên
Thiết kế và thi công các mạch in PCB đọc từng cảm biến với chuẩn giao thức khác nhau như trên và có thể gửi dữ liệu lên server LoRaWAN Cùng với đó tích hợp thêm vi điều khiển hỗ trợ kết nối không dây WiFi để có thể phát ra điểm truy cập WiFi, người dùng có thể vào giao diện trình duyệt web khi kết nối vào mạng WiFi do vi điều khiển này phát ra và thực hiện việc quan sát dữ liệu, hay cấu hình các thông số liên quan đến chuẩn giao thức kết nối cảm biến hoặc thông số liên quan đến chuẩn giao thức LoRaWAN.
BỐ CỤC QUYỂN BÁO CÁO
Chương này trình bày về đề tài nghiên cứu, bao gồm lý do lựa chọn đề tài, phương pháp nghiên cứu, mục tiêu nghiên cứu, nội dung nghiên cứu và các giới hạn trong phạm vi của đề tài
- Chương 2: Cơ sở lý thuyết
Chương này sẽ đi sâu vào các lý thuyết liên quan đến công nghệ LoRa, LoRaWAN, các chuẩn giao tiếp và giao thức được sử dụng trong đề tài Bên cạnh đó, phần này cũng sẽ trình bày về các công cụ mã nguồn mở được sử dụng để thiết lập máy chủ mạng LoRaWAN, cơ sở dữ liệu InfluxDB và công cụ hiển thị dữ liệu Grafana Cuối cùng là lý thuyết về phần cứng, bao gồm các vi điều khiển và IC, các công cụ được sử dụng trong đề tài
- Chương 3: Thiết kế hệ thống
Trình bày chi tiết về yêu cầu và giải pháp của hệ thống Thiết kế phần cứng, trình bày sơ đồ phần cứng, layout PCB, thiết kế phần mềm, trình bày lưu đồ thuật toán về phần mềm Ngoài ra trình bày thiết lập các mã nguồn mở liên quan đến LoRaWAN và các mã nguồn mở liên quan đến cơ sở dữ liệu và công cụ hiển thị trên máy chủ
-4- Chương này cho thấy các kết quả đạt được của đề tài Thực nghiệm việc kết nối với các thiết bị cảm biến có sẵn trên thị trường, cấu hình các thông số liên quan đến cảm biến, thông số LoRaWAN và đưa thiết bị vào mạng LoRaWAN, thực nghiệm việc kết nối với khoảng cách xa
- Chương 5: Kết luận và hướng phát triển
Chương này tóm tắt các kết luận từ những kết quả đã đạt được và đề xuất các hướng phát triển trong tương lai
CƠ SỞ LÝ THUYẾT
CƠ SỞ LÝ THUYẾT VỀ CÔNG NGHỆ TRUYỀN THÔNG KHÔNG DÂY
Công nghệ truyền thông không dây LoRa được phát triển bởi một công ty khởi nghiệp của Pháp tên là Cycleo, công ty này đã phát triển công nghệ điều chế LoRa Đến năm 2012, tập đoàn Semtech đã mua lại Cycleo khởi đầu cho một kỷ nguyên về LoRa [1]
LoRa là một công nghệ dựa trên LPWAN-mạng diện rộng công suất thấp (Low Power Wide Area Network), loại hình truyền thông không dây này được thiết kế để gửi các dữ liệu nhỏ trong khoảng cách xa, và tiêu tốn công suất thấp có thể sử dụng pin với tuổi thọ cao [1]
Hình 2-1 So sánh các công nghệ truyền thông không dây [1]
Hình ảnh trên thể hiện một biểu đồ so sánh các công nghệ truyền thông không dây dựa trên hai tiêu chí chính: tốc độ dữ liệu (Data rate) và phạm vi truyền (Range)
Bảng 2.1 Thông số sự khác nhau giữa LoRa với các chuẩn giao thức không dây khác
Công nghệ kết nối Khoảng cách (m) Công suất phát(mW)
-6- LoRa sử dụng kỹ thuật điều chế Chirp Spread Spectrum Nhờ kỹ thuật điều chế này, LoRa có thể truyền tải dữ liệu hiệu quả ở khoảng cách xa với công suất thấp và chi phí mạch nhận giảm Những đặc điểm này làm cho LoRa trở thành một lựa chọn tuyệt vời cho các ứng dụng IoT và truyền thông không dây trong môi trường khó khăn và nhiều nhiễu
Một vài điểm đặc trưng về LoRa:
Tần số: LoRa linh hoạt trong việc hỗ trợ nhiều tần số nhưng tùy thuộc vào chính sách của từng khu vực Ví dụ như ở Việt Nam, theo QCVN 122:2020/BTTTT ngày 16/11/2020, tiêu chuẩn tần số được cho phép là AS923-2 tần số từ 920MHz-923MHz với công suất phát 25mW (14dBm) [2]
Hình 2-2 Quy định về tấn số sóng vô tuyến tần số 920-923MHz tại Việt Nam [2]
LoRa LPWAN 2000-5000 (khu vực thành thị),
- Bandwidth: LoRa thường sử dụng các dải BandWidth: 125KHz, 250KHz và 500kHz, tùy thuộc vào khu vực hoặc tần số mà BandWidth nào sẽ được sử dụng [3] Mối liên hệ giữa BandWidth và tần số:
+ Flow và Fhigh là khoảng giao động tần số thực tế (MHz)
+ F là tần số trung tâm (MHz)
+ BW là giá trị bandWidth (MHz)
Giả sử nếu tần số trung tâm là 923MHz, BandWidth là 125KHz Lúc này
Flow = 923 – 0.125/2 = 922.9375 MHz và Fhigh = 923 + 0.125/2 = 923.0625 MHz
- Time on air: Đây là khoảng thời gian mà gói tin được gửi đi trong không khí, nó tính bằng hiệu thời gian từ lúc gói tin được nhận bởi anten nhận và thời gian lúc anten gửi dữ liệu [4]
- Duty cycle: Đây là tỷ lệ thời gian mà thiết bị hoặc hệ thống hoạt động, ví dụ nếu time on air = 50ms Duty cycle = 1% thì sau thời gian 50ms đó, thiết bị phải chờ (100 – 1) * 50 = 4950 ms để bắt đầu lần gửi tiếp theo Điều này rất quan trọng khi người dùng muốn cài đặt giá trị tối thiểu giữa mỗi lần gửi của thiết bị, giá trị này tùy thuộc vào từng khu vực
- RSSI được viết tắt từ Received Signal Strength Indication là một chỉ số cường độ tín hiệu nhận được đo bằng dBm Giá trị này được sử dụng để thể hiện khả năng bên nhận có thể lắng nghe được dữ liệu hay không Giá trị của RSSi là âm và gần
0 sẽ là tín hiệu tốt nhất [4]
- SNR được viết tắt từ Signal-to-Noise Ratio là tỷ lệ giữa công suất tín hiệu được nhận và mức công suất của nhiễu nền–là tập hợp của tất cả các nguồn tín hiệu gây nhiễu không mong muốn có thể làm hỏng tín hiệu được truyền, do đó có thể gây ra các lần truyền lại Giá trị này thông thường nằm từ -20dB đến +10dB Giá trị càng gần +10dB tín hiệu nhận càng ít nhiễu hơn [4]
- Spreading factor: đây là hệ số trải số kiểm soát tốc độ truyền dữ liệu Hệ số lan truyền thấp hơn có nghĩa dữ liệu truyền cao hơn Về khoảng cách, hệ số trải phổ lớn hơn có thể được nhận với ít lỗi hơn so với tín hiệu có hệ số trải phổ thấp hơn và do đó truyền đi khoảng cách xa hơn Tuy nhiên, hệ số trải phổ càng lớn thì thời gian cần truyền song lâu hơn LoRa có tổng cộng 6 hệ số trải phổ từ SF7 đến SF12 [5].
CƠ SỞ LÝ THUYẾT VỀ GIAO THỨC MẠNG LORAWAN
LoRaWAN là một giao thức chuẩn tầng điều khiển truy cập phương tiện (Media Access Control – MAC) được xây dựng trên nền tảng điều chế LoRa Có nghĩa là mọi Thiết bị đầu cuối, gateway hoặc server đúng chuẩn LoRaWAN thì sẽ hoạt động được với nhau, bất kể sản xuất bởi công ty hay cá nhân nào Hình ảnh dưới đây minh họa cấu trúc giao thức (protocol stack) của LoRa và LoRaWAN, chia thành bốn lớp chính.Từng lớp trong cấu trúc này bao gồm [6]:
Hình 2-3 Cấu trúc giao thức LoRaWAN
- Application Layer (Lớp Ứng dụng):
+ Đây là lớp trên cùng của giao thức LoRaWAN
+ Chịu trách nhiệm cho các ứng dụng cụ thể sử dụng LoRaWAN để truyền và nhận dữ liệu Ví dụ: cảm biến môi trường, hệ thống quản lý năng lượng, các ứng dụng IoT khác
- Media Access Control (MAC) Layer (Lớp Kiểm soát Truy cập Phương tiện): + Lớp này thuộc về giao thức LoRaWAN và bao gồm ba lớp con:
• Class A: Cơ chế giao tiếp cơ bản, thiết bị có thể gửi dữ liệu bất kỳ lúc nào và sau đó nhận dữ liệu trong hai khoảng thời gian ngắn
• Class B: Ngoài các khoảng thời gian nhận dữ liệu giống như Class A, thiết bị còn có thêm các khoảng thời gian đồng bộ để nhận dữ liệu
• Class C: Luôn mở kênh nhận dữ liệu ngoại trừ khi đang gửi dữ liệu, phù hợp cho các ứng dụng cần nhận dữ liệu liên tục
- Physical (PHY) Layer (Lớp Vật lý):
+ Lớp này thuộc về LoRa và bao gồm các thành phần liên quan đến việc truyền tín hiệu vô tuyến và điều chế
+ Chịu trách nhiệm cho việc mã hóa và giải mã tín hiệu, sử dụng kỹ thuật điều chế Chirp Spread Spectrum (CSS) để đảm bảo truyền dữ liệu hiệu quả ở khoảng cách xa với công suất thấp
- Radio Frequency (RF) Layer (Lớp Tần số Vô tuyến)
+ Lớp này cũng thuộc về LoRa và liên quan đến các tần số vô tuyến được sử dụng để truyền dữ liệu
+ Bao gồm các băng tần ISM (Industrial, Scientific, and Medical) được quy định theo khu vực:
• CN (Trung Quốc): 779-787 MHz, 470-510 MHz
Giao thức mạng không dây LoRaWAN được thiết kế để kết nối các Thiết bị đầu cuối (end devices) với máy chủ mạng thông qua các Gateways sử dụng công nghệ LoRa (Long Range) LoRaWAN được biết đến với khả năng cung cấp một số tính năng quan trọng như bảo mật, tối ưu hóa năng lượng, khả năng mở rộng và tính hiệu quả trong việc truyền dữ liệu ở khoảng cách xa [6]
-10- Các mạng LoRaWAN được bố trí theo cấu trúc “star-of-stars”, trong đó các Gateway đóng vai trò trung gian giúp chuyển tiếp các gói tin từ Thiết bị đầu cuối đến máy chủ mạng và ngược lại [7]
Gateway sẽ kết nối với máy chủ mạng dựa vào kết nối IP tiêu chuẩn, còn các Thiết bị đầu cuối sẽ gửi dữ liệu đến Gateway bằng cách sử dụng giao tiếp không dây LoRa hoặc FSK tới một hay nhiều Gateway [6]
Các thiết bị đầu cuối và các Gateway giao tiếp với nhau thông qua nhiều tần số LoRa và tốc độ dữ liệu khác nhau [6]:
- Các Thiết bị đầu cuối có thể truyền trên bất kênh kênh nào miễn là Thiết bị đầu cuối thay đổi kênh một cách ngẫu nhiên giả định cho mỗi lần truyền Sự đa dạng tần số này làm cho hệ thống mạnh mẽ hơn trước việc nhiễu loạn Thêm vào đó là sự bắt buộc các Thiết bị đầu cuối phải tuân thủ vào dãi băng tần quy định của từng địa phương
- Việc thay đổi tốc độ dữ liệu phù thuộc vào phạm vi liên lạc và thời gian truyền thông điệp Để tối ưu hóa cả tuổi thọ pin của các Thiết bị đầu cuối, giao thức LoRaWAN sẽ tổ chức quản lý tốc độ dữ liệu và công suất phát RF của từng Thiết bị đầu cuối trên hạ tầng LoRa bằng phương pháp điều chỉnh tốc độ dữ liệu thích ứng (ADR)
End devices: một cảm biến hoặc thiết bị gửi tin nhắn không dây được điều chế bằng LoRa dến các gateway hoặc nhận tin nhắn trở lại từ các gateway này [8]
Gateways: nhận các tin nhắn từ end devices và chuyển chúng tới Network Server [8]
Network Server: Là một phần mềm chạy ở server, nó sẽ quản lý toàn bộ mạng LoRaWAN [8]
Application servers: Là một phần mềm chạy ở server, nó sẽ có trách nhiệm xử lý dữ liệu ứng dụng môt cách an toàn [8]
Join Server: Là một phần mềm chạy ở server, nó sẽ xử lý các gói tin nhắn yêu cầu tham gia vào mạng [8]
-11- Thiết bị đầu cuối sẽ kết nối với Gateway gần nhất, Gateway sẽ kết nối với Network Server Mạng LoRaWAN sử dụng giao thức dựa trên ALOHA, chính vì vậy Thiết bị đầu cuối không cần phải kết nối với Gateway cụ thể nào Tin nhắn gửi từ Thiết bị đầu cuối sẽ gửi đến tất cả những Gateway ở gần đó Tất cả tin nhắn được nhận bởi Network Server Nếu Network Server nhận nhiều tin nhắn giống nhau cùng lúc, nó sẽ chỉ giữ lại một tin nhắn và loại bỏ các tin nhắn giống nhau còn lại [8]
Thiết bị đầu cuối sử dụng class A
LoRaWAN bao gồm 3 class: class A, class B, class C Tùy vào ứng dụng mà người dùng có thể thiết lập hệ thống theo mong muốn, mỗi class sẽ có nhưng điểm đặc trưng về khung truyền, cách thức hoạt động Nhưng trong phạm vi đề tài, nhóm tác giả chỉ nêu cơ sở lý thuyết class A [6]
Hình 2-4 Quá trình hoạt động của thiết bị class A
Một Thiết bị đầu cuối class A có thể gửi một tin nhắn dữ liệu vào bất kì thời điểm nào Mỗi khi một dữ liệu được gửi đi, Thiết bị đầu cuối sẽ mở ra hai cổng nhận dữ liệu trong một khoảng thời gian ngắn để nhận dữ liệu gửi xuống từ máy chủ mạng LoRaWAN.Tính từ lúc bắt đầu gửi dữ liệu đến lúc thiết bị mở cổng nhận lần đầu tiên được gọi là RX1 Delay và từ lúc bắt đầu đến lúc mở cổng nhận lần thứ hai được gọi là RX2 Delay Nếu máy chủ mạng không phản hồi trong cả hai cổng nhận, ở lần gửi xuống tiếp theo sẽ được lập lịch ngay khi tin nhắn gửi đi được gửi lần tiếp theo [6]
Thông thường các thiết bị class A sẽ có khoảng thời gian ngủ sâu trước khi thức dậy và gửi tin nhắn dữ liệu lên gateway, trong khoảng thời gian RX1 Delay hoặc RX2 Delay ở trên thì thiết bị cũng sẽ vào trạng thái ngủ, điều này chúng có thể tiết kiệm năng lượng tốt nhất có thể [6]
Khung truyền dữ liệu class A
LoRa sử dụng hai kiểu gói tin khi truyền dữ liệu: explicit và implicit Theo như giao thức mạng LoRaWAN thì LoRa được sử dụng dưới kiểu gói tin là explicit, chính vì vậy ta có thể thấy lớp Radio PHY layer như sau [6] [9]:
CƠ SỞ LÝ THUYẾT VỀ MÁY CHỦ MẠNG CHIRPSTACK
ChirpStack là một máy chủ mạng LoRaWAN mã nguồn mở, được thiết kế để thiết lập và quản lý các mạng LoRaWAN công cộng hoặc riêng tư [11]
Hình 2-7 Một trong các kiến trúc của Chirpstack [11]
Dưới đây là một số chi tiết về kiến trúc của ChirpStack và cách thức kết nối với hệ thống này [11]:
- ChirpStack Gateway Bridge: Đây là một cầu nối mã nguồn mở, chịu trách nhiệm chuyển đổi các tin nhắn nhận được từ Semtech UDP Packet Forwarder thành định dạng MQTT Gateway Bridge có thể được triển khai trực tiếp trên gateway hoặc trên nền tảng đám mây, tùy theo yêu cầu cụ thể của hệ thống
- Giao diện quản lý web: ChirpStack cung cấp một giao diện web trực quan, cho phép quản lý các gateway, thiết bị và người dùng một cách hiệu quả Thông qua giao diện này, người dùng có thể dễ dàng cấu hình, giám sát và quản lý các thành phần trong mạng LoRaWAN của mình
- Tích hợp dữ liệu: ChirpStack hỗ trợ việc tích hợp dữ liệu với nhiều dịch vụ đám mây, cơ sở dữ liệu và các dịch vụ xử lý dữ liệu phổ biến khác Điều này giúp mở rộng khả năng xử lý và phân tích dữ liệu thiết bị, phục vụ cho nhiều ứng dụng khác nhau
- API gRPC: ChirpStack cung cấp các API dựa trên gRPC, giúp đơn giản hóa việc tích hợp và mở rộng các tính năng của hệ thống Các API này cho phép các nhà phát triển dễ dàng tích hợp ChirpStack với các ứng dụng hoặc dịch vụ khác, tạo ra các giải pháp tùy chỉnh phù hợp với nhu cầu cụ thể
CƠ SỞ VỀ GIAO THỨC ỨNG DỤNG UDP PACKET FORWARDER
UDP Packet Forwarder của Semtech cho LoRaWAN là một thành phần quan trọng trong cơ sở hạ tầng mạng LoRaWAN, một công nghệ mạng không dây dành cho ứng dụng IoT Từ phần cứng cho đến giao thức và cấu trúc gói tin, nó đóng một vai trò quan trọng trong việc kết nối thiết bị LoRa với mạng LoRaWAN và chuyển tiếp dữ liệu từ thiết bị đến các trạm cơ sở (gateway) [12]
UDP packet forwarder là một chương trình chạy trên máy chủ của LoRaWAN gateway để chuyển tiếp các gói tin RF mà gateway nhận được đến máy chủ thông qua kết nối IP/UDP và phát ra các gói RF được gửi bởi máy chủ Nó cũng có thể phát ra tín hiệu đồng bộ GPS trên toàn mạng được sử dụng để điều phối tất cả các nút của mạng [12]
Phần Cứng (Hardware): Phần cứng của UDP Packet Forwarder của Semtech thường được tích hợp trong các gateway LoRaWAN Nó bao gồm các phần cứng RF có khả năng xử lý hàng loạt gói tin đồng thời từ nhiều thiết bị LoRa khác nhau, bộ xử lý giúp điều phối hoạt động của gateway và kết nối internet Sự tích hợp chặt chẽ này giúp đảm bảo khả năng chuyển tiếp dữ liệu mạnh mẽ và hiệu quả [12]
Gói Tin (Packet): Gói tin LoRaWAN thường bao gồm nhiều phần, bao gồm các trường như địa chỉ nguồn và đích, thông tin về trạng thái pin, độ dài dữ liệu, và một số trường kiểm tra lỗi UDP Packet Forwarder chịu trách nhiệm đọc và chuyển tiếp các trường này, giữ nguyên tính toàn vẹn và đảm bảo rằng dữ liệu được truyền đến server mạng LoRaWAN một cách chính xác [12]
Một gói tin UDP packet forwarder semtech bao gồm 3 trường cơ bản [12]:
- Version: Phiên bản giao thức UDP packet forwarder semtech, hiện có 2 version phổ biến được hỗ trợ là 1.0 và 2.0
- Token: Giá trị thông số phiên gói tin, giúp theo dõi trạng thái của phiên truyền thông hoặc quy trình gửi nhận dữ liệu
- Packet ID (Code): Mã xác định loại gói tin trao đổi giữa server với gateway
Các loại gói tin cơ bản trong giao tiếp giữa gateway với server:
- Gói tin từ gateway gửi tới server (Pull data, push data, tx_ack) [12]:
Hình 2-8 Cấu trúc gói tin UDP gateway gửi lên server LoRaWAN [12]
+ Trong gói tin gateway gửi lên server, trường gateway ID là 8 bytes ID của gateway gửi gói tin, giúp server định danh chính xác gateway đang hoạt động
+ Pull data (Code 0x02): Gói tin này được gateway sử dụng để thăm dò dữ liệu từ server Việc trao đổi dữ liệu này được khởi tạo bởi gateway vì có thể server không thể gửi gói tin đến cổng nếu cổng sau một NAT Khi gateway khởi tạo trao đổi, mạng định tuyến tới server sẽ mở và cho phép các gói truyền theo cả hai hướng Gateway phải gửi định kỳ các gói pull data để đảm bảo mạng định tuyến vẫn mở để máy chủ có thể sử dụng bất cứ lúc nào Data của gói tin Pull data được để trống (Không có data)
+ Push data (Code 0x00): Gói tin này được gateway sử dụng để chuyển tiếp gói tin RF lên server và gửi dữ liệu trạng thái gateway lên server (send status) Data của gói tin push data là json bao gồm các trường dữ liệu về thông tin gói tin RF, các thông số phần cứng RF, gói tin RF được mã hóa Base64, kích thước gói tin RF, ) Trong trường hợp gửi trạng thái gateway, json bao gồm các trường số lượng gói tin RF, gói tin UDP packet forwarder đến và đi, thời gian thực trên gateway, tọa độ địa lý của gateway, )
+ Tx_Ack (Code 0x05): Gói tin tx_ack được gateway sử dụng để gửi phản hồi đến máy chủ để thông báo yêu cầu đường xuống đã được gateway chấp nhận hay từ chối
+ Datagram có thể tùy chọn chứa một chuỗi JSON để cung cấp thêm chi tiết về thừa nhận Nếu có lỗi sảy ra, json sẽ chứa trường thông tin lỗi Nếu không, data có thể để trống
- Gói tin server gửi xuống gateway (Pull resp, Pull ack, Push ack) [12]:
-18- Hình 2-9 Cấu trúc gói tin server gửi xuống gateway [12]
+ Pull resp (Code 0x03): Đây là gói tin được server sử dụng để chuyển tiếp gói tin xuống gateway
+ Pull ack (Code 0x04): Gói tin này được máy chủ sử dụng để xác nhận rằng kết nối mạng đã mở và máy chủ có thể gửi gói Pull resp tới gateway bất cứ lúc nào
+ Push ack (Code 0x01): Loại gói đó được máy chủ sử dụng để xác nhận ngay lập tức với gateway là đã nhận được gói Push data
+ LoRaWAN sử dụng giao thức truyền dữ liệu UDP để gửi các gói tin từ thiết bị đến gateway UDP Packet Forwarder của Semtech là thành phần trung gian chịu trách nhiệm chuyển tiếp các gói tin UDP từ thiết bị LoRa đến server mạng LoRaWAN Giao thức này chủ yếu giúp tối ưu hóa hiệu suất truyền dữ liệu, đặc biệt là trong môi trường IoT nơi yêu cầu tốc độ và tiết kiệm năng lượng Giao thức bao gồm 3 hoạt động chính:
• Gateway gửi thông tin trạng thái lên server:
-19- Hình 2-10 Quá trình gateway gửi thông tin trạng thái lên server [12]
• Gateway gửi gói tin RF uplink lên server:
Hình 2-11 Quá trình gateway gửi uplink lên server LoRaWAN [12]
• Gateway duy trì kết nối và thăm dò dữ liệu server, server gửi dữ liệu xuống gateway:
-20- Hình 2-12 Quá trình nhận gói tin downlink từ server LoRaWAN
Kiến trúc của UDP Packet Forwarder thường được thiết kế để tương thích với các loại gateway và môi trường triển khai khác nhau Nó có thể là một phần mềm chạy trên các hệ điều hành nhúng như Linux hoặc có thể tích hợp sẵn trên phần cứng của gateway Thiết kế này giúp tối ưu hóa khả năng mở rộng và linh hoạt của hệ thống [12].
CƠ SỞ LÝ THUYẾT VỀ INFLUXDB
InfluxDB 2.7 là một nền tảng được xây dựng để thu thập, lưu trữ, xử lý và hiển thị dữ liệu theo thời gian (time series data) Dữ liệu theo thời gian là một chuỗi các điểm dữ liệu được lập chỉ mục và sắp xếp theo thời gian Điểm dữ liệu thường bao gồm nhiều phép được thực hiện từ một nguồn và được sử dụng để theo dõi sự thay đổi theo thời gian [13]
Tổ chức dữ liệu: Mô hình dữ liệu InfluxDB tổ chức dữ liệu theo thời gian vào các nhóm (buckets) và các phép đo (measurements) Một nhóm có thể bao gồm nhiều phép đo Một phép đo thì có thể bao gồm nhiều thẻ (tags) và trường (fields) [13]
- Nhóm (Bucket): nơi để lưu trữ dữ liệu theo thời gian
- Phép đo (Measurement): Tất cả các điểm trong một phép đo phải có cùng thẻ (tags)
-21- + Thẻ (Tags) : Một cặp key-value có giá trị khác nhau nhưng không thay đổi Thẻ thường có ý nghĩa sẽ lưu một dữ liệu đặc trưng tại một điểm Ví dụ DevEUI của Thiết bị đầu cuối, ứng dụng đo tại điểm đó,…
+ Trường (Fields): Một cặp key-value với giá trị thay đổi theo thời gian Ví dụ như dữ liệu là nhiệt độ, độ ẩm,…
+ Mốc thời gian (Timestamp) : Thời gian ứng với dữ liệu Dữ liệu sẽ được lưu trữ trên đĩa và khi được truy vấn, tất cả dữ liệu được sắp xếp theo thời gian
Tổ chức (Organization) là nơi làm việc của một nhóm người dung Tất cả các dashboard, bucket,… đều thuộc về một tổ chức
API InfluxDB v2 cung cấp một giao diện lập trình dễ sử dụng để tương tác với cơ sở dữ liệu InfluxDB Bằng cách sử dụng các điểm kết nối API có sẵn tại /api/v2/, người dùng có thể thực hiện các thao tác như truy vấn dữ liệu, thêm, sửa, xóa các dữ liệu, và quản lý cấu hình của cơ sở dữ liệu Điều này giúp cho việc tích hợp InfluxDB với các ứng dụng và hệ thống khác trở nên dễ dàng hơn [13]
API tokens InfluxDB đảm bảo tương tác an toàn giữa InfluxDB và các công cụ bên ngoài API tokens thuộc về một ứng dụng cụ thể và người dùng có thể cấu hình các quyền hạn của InfluxDB trong organization của họ [13].
CƠ SỞ LÝ THUYẾT VỀ GRAFANA
Grafana là một công cụ mã nguồn mở được sử dụng phổ biến trong việc hiển thị và giám sát dữ liệu từ nhiều nguồn khác nhau thông qua các biểu đồ và bảng điều khiển Dưới đây là một số khái niệm cơ bản về cách Grafana hoạt động và các yếu tố lý thuyết liên quan [14]:
- Data Sources (Nguồn dữ liệu): Grafana có khả năng kết nối với nhiều nguồn dữ liệu khác nhau như InfluxDB, Prometheus, MySQL, và nhiều hệ thống khác Mỗi nguồn dữ liệu này cung cấp một cách thức để truy xuất và truy vấn dữ liệu
- Dashboards (Bảng điều khiển): Đây là nơi mà bạn có thể tổ chức và hiển thị dữ liệu Mỗi bảng điều khiển có thể chứa nhiều biểu đồ và các thành phần khác như bảng dữ liệu hoặc đồ thị đơn giản
- Panels (Bảng): Là các phần tử trong bảng điều khiển hiển thị dữ liệu từ nguồn dữ liệu đã được chọn Grafana cung cấp nhiều loại panel khác nhau như đồ thị, đồ thị dạng bảng, biểu đồ địa lý, v.v
- Queries (Truy vấn): Để hiển thị dữ liệu trong các panel, bạn cần thực hiện các truy vấn tới nguồn dữ liệu được chọn Grafana cung cấp một giao diện dễ sử dụng để xây dựng và tùy chỉnh các truy vấn này.
CƠ SỞ LÝ THUYẾT VỀ WEBSOCKET
WebSocket là một giao thức truyền thông hoạt động dựa trên kết nối TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") Được chuẩn hóa bởi IETF (Internet Engineering Task Force – “Lực lượng Chuyên trách về Kỹ thuật Liên mạng”) qua đề nghị duyệt thảo RFC 6455 vào năm 2011 WebSocket API tạo điều kiện cho việc mở các phiên giao tiếp hai chiều giữa máy khách và máy chủ Với giao thức này, máy khách có thể gửi và nhận tin nhắn từ máy chủ theo hướng sự kiện mà không cần phải gửi các gói tin thăm dò để nhận phản hồi [15]
Giao thức WebSocket truyền thông hai chiều sử dụng HTTP làm phương tiện truyền tải để tận dụng lợi thế hiện có (proxy, lọc, xác thực) Vậy nên nó được thiết kế để hoạt động qua cổng HTTP 80 và 443 [15]
Mặc dù sử dụng cổng giống như HTTP (Hyper text transfer protocol) nhưng WebSocket và HTTP là hai giao thức riêng biệt Cả hai đều hoạt động ở lớp 7 của mô hình OSI và phụ thuộc vào TCP ở lớp 4 RFC 6455 nêu rõ rằng WebSocket được thiết kế để hoạt động trên các cổng HTTP 443 và 80 nhằm hỗ trợ hoạt động thông qua các HTTP proxy và lớp trung gian khác [15]
Nguyên lý hoạt động của WebSocket
Websocket hoạt động với hai quá trình chính là thiết lập kết nối và truyền nhận dữ liệu Nó sử dụng URI (Uniform Resource Identifier) “ws://” để mở kết nối WebSocket không mã hóa (không bảo mật) giữa client và server qua cổng 80 và “wss://” trong trường hợp có sử dụng mã hóa bảo mật qua cổng 443 [15]
-23- Thiết lập kết nối (Handshake): Quá trình thiết lập kết nối bắt đầu bằng việc client gửi yêu cầu mở kết nối WebSocket và sau đó server chấp nhận mở kết nối bằng một phản hồi chưa thông tin xác nhận [16]
Client gửi yêu cầu kết nối: Khi một client muốn sử dụng giao thức WebSocket, nó sẽ phải gửi yêu cầu HTTP tới server, trong đó bao gồm các tiêu đề (header) yêu cầu thiết lập kết nối WebSocket [15]:
- “Connection: Upgrade\r\n”: Yêu cầu nâng cấp kết nối [15]
- “Upgrade: websocket\r\n”: Nâng cấp kết nối lên WebSocket [15]
- “Sec-WebSocket-Key: xxxxxxxxxxxxxxxxx\r\n”: Chuỗi ngẫu nhiên được mã hóa base-64 do client tạo ra cho server sử dụng trong quá trình xác thực kết nối [15]
- “Sec-WebSocket-Version: 13\r\n”: Phiên bản giao thức WebSocket mà client hỗ trợ [15]
+ Server chấp nhận yêu cầu kết nối: Server nhận yêu cầu và nếu nó chấp nhận, server sẽ gửi lại một phản hồi với mã trạng thái 101 Switching Protocols, đi kèm các tiêu đề Sec-WebSocket-Accept Sec-WebSocket-Accept chứa chuỗi được mã hóa base64 được tạo dựa trên Sec-WebSocket-Key chỉ ra kết nối có hợp lệ hay không [15]
+ Từ thời điểm này, kết nối WebSocket được thiết lập và cả server và client có thể bắt đầu truyền nhận dữ liệu với nhau [15]
Truyền nhận dữ liệu: Sau khi kết nối được thiết lập, client và server có thể truyền nhận dữ liệu cho nhau một cách chủ động theo thời gian thực thông qua kết nối WebSocket mà không cần chờ yêu cầu hay thăm dò dữ liệu liên tục [15].
CƠ SỞ LÝ THUYẾT VỀ GIAO THỨC TRUYỀN THÔNG UART
UART (Universal Asynchronous Receiver/Transmitter) là một giao thức truyền thông nối tiếp không đồng bộ Nó được sử dụng phổ biến trong việc giao tiếp giữa các vi điều khiển và các thiết bị ngoại vi Dưới đây là các khái niệm cơ bản và chi tiết kỹ thuật về UART [16]:
-24- + UART hoạt động dựa trên nguyên tắc truyền và nhận dữ liệu dạng bit nối tiếp Khi một thiết bị gửi dữ liệu, nó chuyển đổi các byte dữ liệu thành chuỗi các bit và truyền chúng từng bit một qua đường truyền Thiết bị nhận sau đó sẽ tái lập lại các bit này thành byte dữ liệu
+ Không đồng bộ: Không cần tín hiệu đồng hồ chung giữa thiết bị gửi và thiết bị nhận
+ Dữ liệu song công: UART cho phép truyền và nhận dữ liệu cùng lúc qua hai đường truyền riêng biệt (TX - Transmit, RX - Receive)
- Cấu trúc khung dữ liệu [16]:
Hình 2-13 Cấu trúc khung truyền dữ liệu của giao thức UART [17]
+ Một khung dữ liệu UART bao gồm các thành phần sau [16]:
+ Start Bit: Bit bắt đầu, thường là một bit 0 (low), báo hiệu sự bắt đầu của một khung dữ liệu
+ Data Bits: Thường là 5 đến 9 bit, chứa dữ liệu chính cần truyền
+ Parity Bit (tuỳ chọn): Dùng để kiểm tra lỗi, có thể là even parity (chẵn) hoặc odd parity (lẻ)
+ Stop Bit: Bit kết thúc, có thể là 1 hoặc 2 bit 1 (high), báo hiệu sự kết thúc của một khung dữ liệu
- Tốc Độ Baud (Baud Rate): là tốc độ truyền dữ liệu, đo bằng số bit truyền trong một giây Một số tốc độ baud thông dụng: 9600, 14400, 19200, 38400, 57600, và
- Quá Trình Truyền và Nhận Dữ Liệu [16]:
+ Truyền dữ liệu: UART chuyển byte dữ liệu thành chuỗi bit và gửi chúng theo trình tự từ LSB (Least Significant Bit) đến MSB (Most Significant Bit)
-25- + Nhận dữ liệu: UART nhận các bit dữ liệu, xác định vị trí của chúng dựa trên start bit và stop bit, rồi tái lập lại thành byte dữ liệu hoàn chỉnh
+ Giao tiếp giữa vi điều khiển và các module cảm biến, module RF (Radio Frequency), hoặc các thiết bị ngoại vi như RS-485, RS-232
+ Giao tiếp giữa máy tính và các thiết bị nhúng qua các cổng COM hoặc USB (thông qua các bộ chuyển đổi UART to USB).
CƠ SỞ LÝ THUYẾT VỀ CHUẨN GIAO TIẾP RS-232
RS-232 là một chuẩn giao tiếp truyền thông nối tiếp được sử dụng rộng rãi để truyền dữ liệu giữa các thiết bị điện tử RS-232 được phát triển bởi TIA (Telecommunications Industry Association) và EIA (Electronic Industries Alliance) vào những năm 1960 RS là viết tắt của “Recommended Standard” và 232 là số hiệu của chuẩn giao tiếp trong tiêu chuẩn của EIA [18] Đặc điểm kỹ thuật của chuẩn truyền thông nối tiếp RS-232 [18]:
Hình 2-14 Tín hiệu điện áp và logic của chuẩn RS-232 so với chuẩn TTL [19]
+ Giao tiếp RS-232 sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất (Ground) Điện áp dương (từ +3V đến +15V) xác định logic mức thấp và điện áp âm (từ -3V đến -15V) xác định trạng thái logic mức cao Điện áp trong khoảng -3V đến +3V được coi là không xác định Các hệ thống và thiết bị
-26- hiện nay chủ yếu sử dụng chuẩn logic TTL hoặc CMOS, do đó khi giao tiếp bằng chuẩn RS-232 thì sẽ phải dùng các mạch truyền nhận (RS-232 transceiver) để chuyển đổi giữa TTL/CMOS và RS-232
+ RS-232sử dụng các chân kết nối truyền dữ liệu (TX), nhận dữ liệu (RX) và tín hiệu đất (Ground) Chân truyền dữ liệu (TX) và nhận dữ liệu (RX) của hai thiết bị được mắc chéo với nhau, giữa hai thiết bị phải có chung đất (Ground) Ngoài ra còn có các chân tín hiệu điều khiển luồng dữ liệu (RTS, CTS, DTR, DSR, DCD, RI) tùy chọn
+ Cổng kết nối DB9 thường được sử dụng cho chuẩn RS-232cho quá trình truyền dữ liệu giữa máy tính tới thiết bị ngoại vi RS-232 hỗ trợ truyền nhận tối đa lên tới 15m
- Tốc độ truyền dữ liệu [19]:
+ Tốc độ truyền nhận dữ liệu, còn được gọi là tốc độ baud Tốc độ baud là số đơn vị dữ liệu có thể được truyền trong một giây Cả bộ truyền và bộ nhận RS-232 phải được thiết lập cùng một tốc độ baud để đảm bảo dữ liệu được truyền chính xác Chuẩn RS-232 hỗ trợ tốc độ truyền dữ liệu từ 300bps đến 115200bps
+ Khi tốc độ bit càng cao, thời gian truyền một bit càng ngắn và thời gian chuyển mạch càng phải giảm nhỏ lại Điều này giới hạn tốc độ Baud và khoảng cách truyền của chuẩn RS-232
- Định dạng khung dữ liệu [19]:
+ Một khung dữ liệu truyền nhận RS-232 bao gồm 1 bit bắt đầu (Start bit), theo sau đó là các bit dữ liệu (từ 5 đến 8 bits), bit chẵn lẻ (parity) nếu có và cuối cùng là bits kết thúc (1, 1.5 hoặc 2 bits)
+ Dữ liệu được truyền qua cổng nối tiếp RS-232theo cơ chế không đồng bộ, nghĩa là chỉ một bit được truyền tại mỗi thời điểm Ưu điểm và nhược điểm của chuẩn giao tiếp RS-232 [19]:
- Ưu điểm của RS-232: RS-232 có thiết kế đơn giản, không đòi hỏi phần cứng phức tạp hoặc các bộ xử lý tín hiệu đặc biệt Giá thành rẻ và rất phổ biến
- Nhược điểm của RS-232: RS-232 thường chỉ hỗ trợ truyền dữ liệu ổn định trong khoảng cách ngắn, tối đa khoảng 15 mét Tốc độ truyền dữ liệu cũng tương đối thấp, tối đa khoảng 115200 bps Tín hiệu RS-232 là tín hiệu không đối xứng, dễ bị ảnh hưởng bởi nhiễu, đặc biệt trong các môi trường công nghiệp Ngoài ra, RS-232 chỉ hỗ trợ kết nối giữa hai thiết bị
Chuẩn này đáp ứng nhu cầu truyền dữ liệu qua khoảng cách ngắn với tốc độ, ổn định và độ tin cậy cao RS-232 với ưu thế đơn giản, chi phí thấp và khả năng hoạt động ổn định trong các môi trường công nghiệp và ứng dụng đặc thù nên vẫn được sử dụng nhiều trong thực tế cho các thiết bị như máy tính, PLC, HMI, cảm biến, …
CHUẨN GIAO TIẾP RS-485 VÀ CHUẨN GIAO THỨC MODBUS RTU
RS-485 (Viết tắt của Recommended Standard 485) là một chuẩn giao tiếp truyền thông nối tiếp được sử dụng phổ biến trong truyền nhận dữ liệu giữa các thiết bị điện tử RS-485 được phát triển vào năm 1983 nhằm cải tiến chuẩn RS422 RS-485 được thiết kế để hỗ trợ cả kết nối điểm-điểm và đa điểm (tối đa 32 thiêt bị trên cùng một đường truyền) [20]
Chuẩn giao tiếp truyền thông này đáp ứng nhu cầu truyền dữ liệu qua khoảng cách dài với độ ổn định và tin cậy cao, đặc biệt là trong môi trường nhiễu Khả năng kết nối nhiều thiết bị một đường truyền làm tăng tính linh hoạt và giảm chi phí và tăng khả năng mở rộng hệ thống [20] Đặc điểm kỹ thuật của chuẩn truyền thông nối tiếp RS-485 [20]:
+ RS-485 sử dụng tín hiệu vi sai để truyền dữ liệu, nghĩa là nó dựa vào sự khác biệt về điện áp giữa hai dây dẫn (A và B) để xác định trạng thái bit dữ liệu Tín hiệu truyền đi là hiệu số điện áp giữa hai dây dẫn vi sai A và B, mức logic trên mỗi chân khi so với đất phải ngược với chân còn lại Trạng thái logic cao
-28- được xác định khi điện áp của dây A lớn hơn dây B tối thiểu là 200mV, và - 200mV xác định trạng thái logic thấp Nếu điện áp VAB nằm trong khoảng - 200mV đến 200mV thì tín hiệu được coi là không xác định Điện áp của mỗi dây tín hiệu so với đất nằm trong khoảng từ -7V đến +12V
Hình 2-15 Tín hiệu trên hai dây dẫn A-B và logic tương đương [21]
+ Tín hiệu vi sai của RS-485 được truyền qua cặp dây xoắn, là hai dây có chiều dài bằng nhau và được xoắn lại với nhau Việc sử dụng cặp dây xoắn giúp giảm thiểu nhiễu do tác động từ bên ngoài lên cả hai dây tín hiệu, vì chúng có cùng môi trường ảnh hưởng Bằng cách lấy hiệu điện áp trên hai dây A và B, nhiễu chung có thể loại bỏ, đặc biệt là khi truyền ở khoảng cách xa và với tốc độ cao Điều này cải thiện khả năng chống nhiễu, tăng tốc độ truyền và cho phép truyền dữ liệu ở khoảng cách xa hơn so với các chuẩn truyền thông sử dụng tín hiệu đơn Để ngăn chặn tín hiệu phản xạ và giao thoa, cần có điện trở đầu cuối (Terminating Resistor) trên mỗi hai đầu cặp dây vi sai của chuẩn truyền thông RS-485 Giá trị lí tưởng của điện trở đầu cuối là trở kháng đặc tính của đường dây vi sai, thường là từ 100 đến 120Ω
Các bộ điều khiển và chuyển đổi RS-485 (RS-485 Transceiver) được sử dụng phổ biến cho các ứng dụng giao tiếp các thiết bị sử dụng chuẩn logic TTL hoặc CMOS qua RS-485
-29- RS-485 đóng vai trò quan trọng và được sử dụng phổ biến trong nhiều ngành công nghiệp và các thiết bị điện nhờ vào khả năng truyền dữ liệu ổn định ở khoảng cách xa sự ổn định trong môi trường nhiễu
Chuẩn giao thức Modbus RTU
Modbus RTU, một giao thức truyền thông được sử dụng rộng rãi trong các hệ thống tự động hóa công nghiệp Giao thức này được phát triển bởi Modicon (nay là Schneider Electric) vào cuối những năm 1970, nhằm tạo điều kiện cho việc các thiết bị trên mạng truyền thông có thể giao tiếp với nhau qua một giao thức chuẩn, tăng tính tương thích và dễ dàng tích hợp hệ thống [22]
Modbus được xem như một giao thức truyền thông hoạt động ở tầng
"Application" của mô hình OSI, cung cấp khả năng truyền thông giữa các thiết bị dưới dạng Master-Slave [22] Đặc điểm kỹ thuật chuẩn giao thức Modbus RTU [22]:
- Đường truyền và tốc độ: Giao thức Modbus RTU hoạt động dựa trên đường truyền vật lý như RS-232 hoặc RS-485 theo mô hình Master-Slave Tốc độ truyền dữ liệu (baud rate) có thể được điều chỉnh từ 1200 bps đến 115200 bps hoặc thậm chí cao hơn, tùy vào yêu cầu cụ thể của hệ thống và khả năng đáp ứng của đường truyền vật lý
- Dữ liệu và định dạng khung dữ liệu trong Modbus RTU: Trong Modbus RTU, dữ liệu được mã hóa theo định dạng nhị phân và được truyền nhận thông qua các khung dữ liệu, bao gồm một chuỗi các byte
Hình 2-16 Khung truyền dữ liệu của giao thức Modbus RTU [23]
Khung dữ liệu được gọi là ADU (Application data unit) Trong đó, tập hợp mã chức năng và dữ liệu truyền nhận được gọi là PDU (Protocol data unit) Mỗi khung dữ liệu bao gồm các thành phần chính sau [22]:
- Địa chỉ thiết bị (Device Address): Xác định thiết bị nhận dữ liệu (đối với Master) hoặc địa chỉ của thiết bị gửi dữ liệu (đối với Slave) Địa chỉ thiết bị thuộc khoảng
- Mã chức năng (Function Code): Một byte dùng để xác định loại hành động mà thiết bị nhận sẽ thực hiện
+ Mã chức năng cho yêu cầu đọc dữ liệu:
• 01: Đọc trạng thái của các bit (coil) đầu ra (Read coils)
• 02: Đọc trạng thái của các đầu vào số (Read Discrete Inputs)
• 03: Đọc giá trị từ các thanh ghi giữ (Read Multiple Holding Registers)
• 04: Đọc giá trị từ các thanh ghi đầu vào (Read Input Registers)
+ Mã chức năng cho yêu cầu ghi dữ liệu:
• 05: Ghi giá trị (bật/tắt) cho một bit (coil) đầu ra (Write Single Coil)
• 06: Ghi giá trị cho một thanh ghi giữ đơn lẻ (Write Single Holding Register)
• 10: Ghi giá trị cho nhiều thanh ghi giữ cùng lúc (Write Multiple Holding Registers)
- Dữ liệu (Data): Bao gồm dữ liệu cụ thể cho chức năng yêu cầu, có thể có nhiều byte, xác định dữ liệu trao đổi giữa Master và Slave
• Master: 2 byte địa chỉ dữ liệu, 2 byte độ dài dữ liệu
• Slave: 2 byte địa chỉ dữ liệu, 2 byte độ dài dữ liệu, n byte dữ liệu được đọc
• Master: 2 byte địa chỉ dữ liệu, 2 byte độ dài dữ liệu, n byte dữ liệu cần ghi
• Slave: 2 byte địa chỉ dữ liệu, 2 byte độ dài dữ liệu
- Kiểm tra lỗi (Error Check - CRC): Hai bytes cuối của khung dữ liệu dùng để kiểm tra tính toàn vẹn của dữ liệu thông qua phương pháp kiểm tra tuần hoàn (Cyclic Redundancy Check - CRC) 16 bit
Bằng cách sử dụng cấu trúc khung dữ liệu này, Modbus RTU đảm bảo việc truyền thông tin một cách chính xác, tường minh và hiệu quả trong các hệ thống tự động hóa công nghiệp [22] Ưu điểm và nhược điểm của giao thức Modbus RTU:
- Ưu điểm: Modbus RTU có cấu trúc đơn giản và không đòi hỏi phần mềm phức tạp để vận hành Giao thức này được nhiều nhà sản xuất và thiết bị hỗ trợ, đảm bảo tính tương thích rộng rãi
CƠ SỞ LÝ THUYẾT VỀ TÍN HIỆU DÒNG ĐIỆN 4-20MA
Một trong những tín hiệu phổ biến nhất được sử dụng trong công nghiệp và thiết bị đo lường hiện nay là tín hiệu dòng điện 4-20mA Đây là một loại tín hiệu dùng để truyền dữ liệu từ các cảm biến, bộ truyền tín hiệu (transmitter) đến các thiết bị nhận như bộ điều khiển PLC, Datalogger hoặc các hệ thống giám sát Tín hiệu này thường được sử dụng để đại diện cho các giá trị đo lường vật lý như nhiệt độ, áp suất, lưu lượng, mức chất lỏng,… [24]
Tín hiệu dòng điện 4-20mA là dạng tín hiệu tương tự không có tần số nhưng dòng điện sẽ thay đổi biến thiên tuyến tính từ 4-20mA [24]
Có hai loại tín hiệu dòng điện 4-20mA được sử dụng cho các thiết bị cảm biến:
- Tín hiệu 4-20mA thụ động: Là các cảm biến đo chỉ có 2 dây tín hiệu, dây cấp nguồn và dây tín hiệu sẽ dùng chung dây dẫn [24]
- Tín hiệu 4-20mA chủ động: Là các cảm biến đo có ngõ ra 3 dây tín hiệu, bao gồm dây để cấp nguồn, dây đất (Ground) và một dây tín hiệu 4-20mA Việc truyền bằng tín hiệu 4-20mA chủ động dễ bị nhiễu hơn tín hiệu 4-20mA bị động do ảnh hưởng nhiễu từ nguồn điện lên tín hiệu 4-20mA [24]
-32- Nguyên lý hoạt động: Hệ thống sử dụng tín hiệu 4-20mA là một mạch kín bao gồm nguồn điện cung cấp, cảm biến hoặc bộ truyền tín hiệu 4-20mA và một thiết bị đọc tín hiệu Sau khi cảm biến đo lường giá trị vật lý, giá trị này sẽ được chuyển đổi thành một dòng điện nằm trong khoảng 4-20mA truyền tới bộ đọc tín hiệu Dòng điện này sau đó được chuyển đổi lại thành giá trị đo lường tương ứng tại thiết bị đọc tín hiệu [25]
- 4mA: Tín hiệu ở mức thấp nhất, thường tương ứng với giá trị đo lường bằng 0
- 20mA: Tín hiệu ở mức cao nhất, tương ứng với giá trị đo lường lớn nhất
- 0-4mA: Khoảng giá trị này được dùng cho việc xác định tín hiệu lỗi (input ERROR) hoặc mất kết nối (Sensor break, wire break) Ưu điểm và nhược điểm của tín hiệu 4-20mA:
+ Thiết bị sử dụng tín hiệu 4-20mA chống nhiễu tốt Điều này giúp tín hiệu truyền nhận ổn định và chính xác hơn, nhất là trong các môi trường nhiễu phức tạp
+ Có khả năng phát hiện lỗi đường truyền hoặc lỗi cảm biến khi giá trị dòng điện đọc về trong khoảng 0-4mA
+ Tín hiệu 4-20mA có thể truyền tín hiệu đi với khoảng cách khá xa mà không làm suy giảm độ chính xác, tuy nhiên vẫn bị giới hạn bởi nguồn cấp và điện trở dây dẫn
+ Mạch điện sử dụng tín hiệu 4-20mA thường đơn giản, dễ cài đặt và bảo trì Điều này làm giảm chi phí và thời gian triển khai hệ thống
+ Hệ thống dựa trên chuẩn tín hiệu 4-20mA cần được cung cấp bởi một nguồn điện ổn định Giá trị đo được có thể sai lệch nếu điện áp hoặc dòng điện của nguồn cấp không đủ hoặc nhiễu
-33- + Chuẩn 4-20mA chủ yếu chỉ truyền được một loại thông tin duy nhất như nhiệt độ, áp suất Tăng số kênh tín hiệu trong trường hợp muốn truyền nhận thêm thông tin.
CƠ SỞ LÝ THUYẾT VỀ TÍN HIỆU ĐIỆN ÁP 0-10VDC
Cùng với tín hiệu dòng điện 4-20mA, tín hiệu điện áp 0-10VDC cũng là một tín hiệu tương tự phổ biến được ứng dụng nhiều trong công nghiệp và đo lường Đây là một loại tín hiệu điện áp tương tự thay đổi tuyến tính theo thông tin truyền tải Tín hiệu điện áp 0-10V được dùng trong truyền tải dữ liệu từ các cảm biến hoặc bộ phát tín hiệu đến các thiết bị nhận như bộ điều khiển PLC, Datalogger, hoặc các hệ thống giám sát [26]
Nguyên lý hoạt động: Hệ thống sử dụng tín hiệu 0-10V là một mạch bao gồm cảm biến hoặc bộ truyền tín hiệu 4-20mA và nguồn cấp và một thiết bị đọc tín hiệu Sau khi cảm biến đo lường giá trị vật lý, giá trị này sẽ được chuyển đổi thành một điện áp thay đổi tuyến tính theo giá trị đo lường và trong khoảng 0-10V truyền tới bộ đọc tín hiệu Dòng điện này sau đó được chuyển đổi lại thành giá trị đo lường tương ứng tại thiết bị đọc tín hiệu [26]
+ 0V: Tín hiệu ở mức điện áp thấp nhất, thường tương ứng với giá trị đo lường bằng 0
+ 10V: Tín hiệu ở mức điện áp cao nhất, tương ứng với giá trị đo lường lớn nhất
- Ưu điểm và nhược điểm của chuẩn tín hiệu 0-10V:
+ Ưu điểm: Chuẩn tín hiệu 0-10V triển khai đơn giản, dễ dàng tích hợp, được sử dụng phổ biến trong công nghiệp và dân dụng
+ Nhược điểm: Tín hiệu điện áp dễ bị nhiễu điện từ (EMI) và nhiễu sóng (RFI), đặc biệt trên các khoảng cách truyền dài gây ra sai số Tín hiệu điện áp còn có thể bị suy hao khi được truyền qua dây dẫn dài hoặc dây chất lượng kém gây ảnh hưởng tới độ chính xác Ngoài ra, chuẩn tín hiệu 0-10V không cung cấp khả năng phát hiện lỗi giá trị hay lỗi kết nối giống như chuẩn tín hiệu 4-20mA
MẠCH KHUẾCH ĐẠI THUẬT TOÁN OP-AMP VÀ ỨNG DỤNG
Mạch khuếch đại thuật toán (operational amplifier) hay còn được gọi là op-amp là mạch khuếch đại lý tưởng với hai đầu vào và một đầu ra [27]
Một vài đặc tính lý tưởng của opamp [27]:
- Điện trở đầu vào vô hạn: Không có dòng điện vào các đầu vào
- Điện trở đầu ra bằng không: Đầu ra có thể cung cấp hoặc hút dòng điện vô hạn mà không ảnh hưởng đến điện áp đầu ra
- Gain vô hạn: Khuếch đại điện áp đầu vào đến mức vô hạn
Hình 2-17 Ký hiệu của một mạch khuếch đại thuật toán [27]
V+: Ngõ vào điện áp dương (đầu vào không đảo) V-: Ngõ vào điện áp âm (đầu vào đảo)
Vout: Điện áp đầu ra Vs+: Nguồn cung cấp điện dương cho opamp Vs-: Nguồn cung cấp điện âm cho opamp Một số mạch cơ bản sử dụng opamp [28]:
- Mạch khuếch đại vi sai
Mạch điện này được sử dụng để tạo ra một điện áp dựa trên hiệu giữa hai điện áp đầu vào, trong đó mỗi điện áp có thể được nhân với một số hằng số nhất định Các hằng số này được thiết lập thông qua các điện trở
-35- Hình 2-18 Mạch khuếch đại vi sai [28]:
+ V1 và V2 là điện áp hai đầu vào vi sai
+ Vout là điện áp đầu ra
+ A là hệ số khuếch đại của mạch
+ R2, Rg và R1, Rf là các giá trị điện trở cầu phân áp đầu vào và hồi tiếp của mạch
- Mạch khuếch đại không đảo
Mạch này dùng để khuếch đại một điện áp với hệ số khuếch đại của mạch A > 1 Khi điện áp đầu vào Vin tăng, điện áp đầu ra Vout cũng tăng lên và được khuếch đại theo hệ số khuếch đại A
-36- Hình 2-19 Mạch khuếch đại không đảo [28]:
+ Vin là điện áp đầu vào
+ Vout là điện áp đầu ra
+ A là hệ số khuếch đại của mạch
+ R1 và R2 là các giá trị điện trở cầu phân áp hồi tiếp của mạch
Mạch Op-Amp thường được sử dụng như một bộ khuếch đại đệm nhằm giảm thiểu tác động của tải và phối hợp tổng trở, đặc biệt hữu ích khi cần kết nối một linh kiện có tổng trở nguồn lớn với một linh kiện có tổng trở vào thấp Tuy nhiên, mạch này có thể trở nên không ổn định nếu tải có tính dung cao, do hồi tiếp âm sâu Để tránh tình trạng này, có thể thêm một điện trở nối giữa tải và mạch
-37- Hình 2-20 Mạch đệm điện áp [28]
MODULE LORA RAK3172
RAK3172 là một module thu phát LoRa tầm xa, công suất thấp và tiết kiệm năng lượng được thiết kế cho các ứng dụng LoRa và LoRaWAN RAK3172 dựa trên vi điều khiển STM32WLE5CC của STMicroelectronics [29]
Bảng 2.2 Thông số kỹ thuật của module LoRa RAK3172 [29]
Lõi vi điều khiển STM32WLE5CC ARM 32-bit Cortex-M4 với MPU, bộ nhớ flash 256 KB và 64 KB SRAM
Phạm vi nhiệt độ hoạt động -40°C đến +85°C Điện áp nguồn cung cấp 2.0 đến 3.6VDC
Dải tần số 150 MHz đến 960 MHz
Băng thông 7,8 kHz đến 500 kHz
Công suất phát tối đa +22dBm Độ nhạy -148dBm
Băng tần được hỗ trợ EU433, CN470, RU864, IN865, EU868, AU915, US915,
KR920 và AS923 Tiêu thụ năng lượng 1,69 μA ở chế độ ngủ
4.82mA ở chế độ nhận (RX)
-38- 87mA trong chế độ truyền (TX) tại công suất phát 20 dBm
Ngoại vi SPI, UART, I2C, ADC, TIMER, PWM, …
Module RAK3172 được ra chân ở bốn góc thuận tiện cho việc tích hợp vào các thiết kế SoM (System on Module) Ngoài ra còn có đầu kết nối anten rời thích hợp cho việc thay đổi các loại anten khác nhau theo băng tần [29]
RAK3172 cũng tuân thủ các thông số kỹ thuật của LoRaWAN 1.0.3 class A, B, và C Nó cũng có khả năng kết nối với các nền tảng máy chủ LoRaWAN như TheThingsNetwork (TTN), Chirpstack, Helium, Ngoài ra, nó hỗ trợ giao tiếp LoRa Point-to-Point (P2P) cho việc xây dựng và tùy chỉnh mạng LoRa theo các mục đích khác nhau [29]
RAK3172 có thể đảm nhiệm vai trò thiết bị độc lập hoặc sử dụng như một modem chức năng LoRa được điều khiển bởi thiết bị khác như vi điều khiển hoặc vi xử lý Module RAK3172 hỗ trợ tập lệnh AT cho mục đích thiết lập và lệnh điều khiển thông qua UART hoặc tùy chỉnh phần sụn sử dụng STM32CubeWL của hãng STMicroelectronics.
VI ĐIỀU KHIỂN ESP32-C3
ESP32-C3 là vi điều khiển SoC (System on Chip) tiết kiệm năng lượng tích hợp Wi-Fi và Bluetooth 5 (Low Enegy) sử dụng kiến trúc RISC-V 32-bits lõi đơn ESP32- C3 là một giải pháp kết nối không dây phổ biến cho các thiết bị IoT [30]
Bảng 2.3 Bảng thông số kỹ thuật vi điều khiển ESP32-C3 [30] Điện áp hoạt động 3.0 đến 3.6VDC
Lõi xử lý 32-bit RISC-V đơn nhân, xung nhịp lên tới 160 MHz
Bộ nhớ 384 KB Flash tích hợp, 400 KB SRAM (16 KB bộ nhớ
CACHE), 8KB SRAM RTC WiFi Hỗ trợ băng tần 2.4GHz, tiêu chuẩn IEEE 802.11b/g/n
Bluetooth Bluetooth 5.0, hỗ trợ Bluetooth low enegy, Bluetooth mesh Công suất phát RF Lên tới +21dBm
-39- Độ nhạy RF Lên tới -105dBm
Hỗ trợ các ngoại vi SPI, I2C, UART, I2S, PWM, ADC, USB, TIMER, …
Tiêu thụ năng lượng 6uA ở chế độ ngủ sâu (deep-sleep), lên tới 335mA trong chế độ truyền truyền RF (TX), lên tới 87mA trong chế độ nhận (RX)
MÁY TÍNH NHÚNG ORANGEPI
OrangePi Zero 3 là một bo mạch máy tính nhúng nhỏ gọn và mạnh mẽ OrangePi Zero 3 được trang bị bộ vi xử lý Allwinner H618 64-bits, mang lại sự cân bằng giữa hiệu năng, mức tiêu thụ điện năng thấp vừa phải và giá thành Bo mạch được tích hợp RAM vừa đủ để đáp ứng nhu cầu của các ứng dụng nhúng, module kết nối không dây, đồng thời hỗ trợ khe cắm thẻ microSD và các cổng kết nối thiết bị ngoại vi [31]
Bảng 2.4 Thông số kỹ thuật máy tính nhúng OrangePi Zero 3 [31]
CPU Allwinner H618 lõi tứ Cortex-A53, xung nhịp lên đến 1.5GHz
Bộ nhớ 1GB/1.5GB/2GB/4GB LPDDR4 RAM, 16MB SPI
Flash Kết nối mạng, kết nối không dây Gigabit ethernet, WiFi5, Bluetooth 5.0
Cổng kết nối USB 2.0, USB-TypeC, MicroSD card, RJ45, microHDMI
Ngoại vi GPIO, UART, SPI, I2C
OrangePi Zero 3 hỗ trợ nhiều hệ điều hành phổ biến được hỗ trợ rộng rãi, bao gồm các bản phân phối Linux và Android như Android 12 TV, Debian11, Debian12, Ubuntu22.04, Ubuntu20.04 [31].
MODULE LORAWAN GATEWAY ED-GW1302S-915M
ED-GW1302S-915M là module LoRaWAN Gateway của hãng EDATEC được thiết kế dạng thẻ mini PCle với giao diện SPI Nó được thiết kế dựa trên chip LoRa của
-40- hãng Semtech, đó là Chip LoRa Core Gateway SX1302 và Chip LoRa RF front-end SX1250 cho mục đích tiêu thụ điện năng cực thấp và hiệu suất [32]
Module LoRaWAN Gateway ED-GW1302S-915M hỗ trợ các dải tần, bao gồm US915, AS923, AS920, AU915, KR920 [32]
Cấu trúc bên trong module bao gồm khối nguồn cấp cho các thành phần linh kiện,
2 chip RF front-end SX1250 cho băng tần 150 - 960MHz giao tiếp với chip LoRa gateway SX1302 qua SPI và các bus GPIO [32] [33]
Trong quá trình phát sóng RF, dữ liệu được xử lý từ SX1302 được đưa tới SX1250, tín hiệu RF đầu ra của SX1250 được đi qua bộ lọc sóng âm bề mặt (SAW filter), sau đó đi qua mạch khuếch đại (PA - power amplifier) tăng cường công suất phát và mạch lọc thông thấp (LPF – low pass filter) để lọc đi các tín hiệu có tần số thấp Cuối cùng là đi qua bộ RF switch chuyển hướng tín hiệu ra anten Đường tín hiệu RF phát ra là tiếp điểm thường mở của RF switch [33]
Trong quá trình thu sóng RF, tín hiệu sóng RF từ anten được đi qua RF switch (tiếp điểm thường đóng) sau đó đi qua bộ lọc sóng âm bề mặt trước khi đưa tới mạch khuếch đại tạp âm thấp để khuếch đại cường độ tín hiệu và giảm nhiễu Sau đó tiếp tục đi qua bộ lọc sóng âm bề mặt rồi tới đầu vào tín hiệu của SX1250 Đầu ra của SX1250 được đưa vào SX1302 để xử lý [33]
Bảng 2.5 Bảng thông số kỹ thuật module LoRaWAN Gateway ED-GW1302S-915M
[32] Điện áp hoạt động 3.0V đến 3.6VDC
Phạm vi nhiệt độ hoạt động 0°C đến +60°C
Dải tần số 902MHz đến 928MHz
Công suất phát tối đa +27dBm Độ nhạy -141dBm
Kênh truyền nhận 8 kênh phát hiện và nhận gói tin
8 bộ giải điều chế LoRa
Dòng điện tiêu thụ Dòng tiêu thụ tối đa trong chế độ nhận (RX): 54mA
-41- Dòng tiêu thụ tối đa trong chế độ truyền (TX): 306mA Giao tiếp SPI thông qua kết nối miniPCIe
MODULE GPS L70-R
L70-R là module GPS do Quectel phát triển, sử dụng công nghệ định vị MTK của MediaTek Module này có kích thước nhỏ gọn, tiêu thụ năng lượng thấp và tốc độ định vị cao Công nghệ A-GPS tiên tiến EASY™ giúp tăng tốc độ định vị và cải thiện độ chính xác, ngay cả ở những nơi tín hiệu GPS yếu hoặc bị cản trở L70-R sử dụng dữ liệu lịch thiên văn lưu trữ trong RAM tích hợp (lên đến 3 ngày) để xác định vị trí nhanh, ngay cả trong nhà, với mức tiêu thụ điện năng thấp [34]
Bảng 2.6 Bảng thông số kỹ thuật của module GPS L70-R [34] Điện áp hoạt động 2.8V đến 4.3VDC
Phạm vi nhiệt độ hoạt động -40°C đến +85°C
Băng tần L1 (1575.42MHz) Độ nhạy lên tới -165dBm ỏ chế độ theo dõi (tracking)
Dòng điện tiêu thụ 13mA ở chế độ theo dõi (tracking), 500uA ở chế độ chờ
(standby) Tần số cập nhật định vị 1Hz đến 5Hz
Giao tiếp hỗ trợ UART
IC QUẢN LÝ NGUỒN-SẠC PIN BQ24075
IC BQ24075 là bộ sạc tuyến tính cho pin Li-Ion và Li-Po, tích hợp quản lý đường dẫn nguồn động (DPPM) cho thiết bị di động kích thước nhỏ Nó hỗ trợ nguồn vào và sạc pin qua bộ chuyển đổi AC-DC hoặc USB với dòng tối đa 1.5A, dải điện áp đầu vào rộng, bảo vệ quá áp và quản lý công suất đầu vào BQ24075 cung cấp nguồn cho hệ thống trong khi sạc, độc lập với pin, giảm số chu kỳ sạc/xả và cho phép hoạt động ngay cả khi pin lỗi hoặc không có pin Nó cũng tự động sạc lại pin khi đạt ngưỡng điện áp [35]
Bảng 2.7 Thông số kỹ thuật IC BQ24075 [35]
Hãng sản xuất Texas Instruments
Kiểu đóng gói VQFN-16 3x3mm Điện áp nguồn vào 4.35 đến 6.4VDC Dòng điện vào tối đa 1.5A Điện áp pin 0 đến 5V
Dòng điện đầu ra tối đa 4.5A Dòng sạc pin tối đa 1.5A Ngưỡng điện áp tự động sạc lại 4.1V
IC CHUYỂN ĐỔI NGUỒN DC-DC TPS63000
IC TPS63000 là bộ chuyển đổi nguồn hỗ trợ cả công nghệ BUCK và BOOST, thiết kế để cấp nguồn từ một hoặc nhiều cell pin Nó cung cấp dòng điện đầu ra lên đến 1.2A, hoạt động ở tần số cố định và điều chỉnh điện áp đầu ra theo phương pháp PWM TPS63000 tự động chuyển đổi giữa chế độ BUCK và BOOST dựa trên điện áp đầu vào và đầu ra, và chuyển sang chế độ tiết kiệm năng lượng khi dòng tải thấp, duy trì hiệu suất chuyển đổi cao lên đến 96% [36]
Bảng 2.8 Thông số kỹ thuật IC TPS63000 [36]
Hãng sản xuất Texas Instruments
Kiểu đóng gói VSON-10 3x3mm Điện áp nguồn vào 1.8 đến 5.5VDC Điện áp đầu ra 1.2 đến 5.5VDC
Dòng tải tối đa trong chế độ BOOST 800mA Dòng tải tối đa trong chế độ BUCK 1200mA Hiệu suất chuyển đổi tối đa 96%
Dòng tiêu thụ tĩnh tối đa Dưới 50uA
IC HẠ ÁP DC-DC XL1509-5.0
XL1509 là bộ chuyển đổi nguồn DC-DC công nghệ BUCK có khả năng chịu tải đầu ra lên tới 2A với gợn sóng thấp Nó yêu cầu rất ít thành phần linh kiện bên ngoài khiến nó có thể được sử dụng một cách đơn giản XL1509 cũng bao gồm mạch bù tần số bên trong và dao động ở tần số cố định Mạch điều khiển PWM có khả năng điều chỉnh điện áp đầu ra tuyến tính Chức năng bảo vệ quá dòng được tích hợp bên trong, khi vượt quá giới hạn dòng điện thì tần số hoạt động sẽ giảm XL1509 có các phiên bản được hiệu chỉnh bên trong cho ra điện áp cố định như 3.3V (XL1509-3.3), 5V (XL1509- 5.0), 12V (XL1509-12) hoặc phiên bản có khả năng điều chỉnh điện áp đầu ra thông qua điện trở chia áp hồi tiếp (XL1509-ADJ) [37]
Bảng 2.9 Thông số kỹ thuật IC XL1509 [37]
Hãng sản xuất XL Semiconductor Kiểu đóng gói SOP-8 3.9x4.9mm Điện áp nguồn vào 4.5 đến 40VDC Điện áp đầu ra 1.23 đến 37VDC Điện áp rơi tối thiểu 1.5V
Dòng tải đầu ra tối đa 2A Tần số chuyển mạch 150KHz
IC TĂNG ÁP MT3608
MT3608 là bộ chuyển đổi nguồn DC-DC công nghệ BOOST dành cho các thiết bị tiêu thụ năng lượng thấp Chức năng khởi động mềm được tích hợp để hạn chế dòng tiêu thụ đầu vào, tính năng tự động điều chỉnh tần số chuyển mạch khi tải nhẹ, bảo vệ quá nhiệt trong trường hợp quá tải đầu ra Hiệu quất chuyển đổi lên tới 93% (Vin = 5V, Vout = 12V), điện áp đầu ra có thể điều chỉnh thông qua điện trở chia áp hồi tiếp [38]
Bảng 2.10 Thông số kỹ thuật IC MT3608 [38]
Hãng sản xuất AERO Semiconductor Kiểu đóng gói SOT-23-6
-44- Điện áp nguồn vào 2 đến 24VDC Điện áp đầu ra tối đa 28VDC Dòng tải đầu ra tối đa 2A Tần số chuyển mạch 1.2MHz
IC HẠ ÁP TPS5430-TPS5450
TPS5430 và TPS5450 có cấu trúc và thiết kế gần như tương tự nhau, là bộ chuyển đổi điện áp DC-DC công nghệ BUCK Bộ khuếch đại lỗi điện áp hồi tiếp cung cấp khả năng điều chỉnh điện áp với độ chính xác cao, mạch bảo vệ điện áp đầu vào thấp, chức năng khởi động mềm được tích hợp để hạn chế dòng khởi động quá lớn, ngoài ra còn có các tính năng bảo vệ quá tải, quá nhiệt Vòng điện áp hồi tiếp được thiết kế bộ bù trừ bên trong giúp giảm thiểu số lượng thành phần linh kiện bên ngoài TPS5430 và TPS5450 chỉ khác nhau về khả năng cấp dòng điện đầu ra liên tục [39] [40]
Bảng 2.11 Thông số kỹ thuật IC TPS5430 – TPS5450 [39] [40]
Hãng sản xuất Texas Instruments
Kiểu đóng gói SOT-8 Điện áp nguồn vào 5.5 đến 36VDC Điện áp đầu ra 1.22 đến 35V
Dòng tải đầu ra liên tục tối đa 3A (TPS5430) và 5A (TPS5450)
Tần số chuyển mạch 500KHz
Hiệu suất chuyển đổi tối đa 95%
IC ĐIỀU KHIỂN VÀ TRUYỀN NHẬN RS-232 MAX3232
IC MAX3232 hỗ trợ hai đường điều khiển và truyền nhận RS-232 độc lập Nó được tích hợp hai mạch tăng áp công nghệ bơm sạc (charge-pump) tạo điện áp chuẩn cho giao tiếp RS-232 Mạch bảo vệ phóng tính điện (ESD) bên trong giúp bảo vệ thiết bị đầu cuối RS-232, lên tới +-15kV Tốc độ truyền nhận cao, có thể hoạt động ở đa dạng mức nguồn cấp Cho phép mức điện áp logic tín hiệu đầu vào cao hơn điện áp nguồn cấp [41]
-45- Bảng 2.12 Thông số kỹ thuật IC MAX3232 [41]
Hãng sản xuất Texas Instruments
Kiểu đóng gói SOIC-16 Điện áp nguồn vào 3 đến 5.5VDC Dòng điện tiêu thụ 300uA
Tốc độ tối đa 250kbit/s Điện áp logic đầu vào 0 đến 5.5VDC
IC TRUYỀN NHẬN RS-485 MAX3485
MAX3485 là các bộ thu phát truyền nhận công suất thấp dành cho giao tiếp RS-
485 Mỗi IC chứa một bộ điều khiển và một bộ thu tín hiệu MAX3485 cho phép truyền với tốc độ lên tới 10Mbps và có chế độ tiết kiệm năng lượng Nó có chức năng bảo vệ ngắn mạch và chống tiêu hao năng lượng quá mức, đầu ra của trình điều khiển được đặt vào trạng thái trở kháng cao MAX3485 có tính năng bảo vệ an toàn đảm bảo đầu ra trạng thái cao nếu cả hai đầu vào đều được để mở mạch MAX3485 được thiết kế để giao tiếp RS-485 bán song công [42]
Bảng 2.13 Thông số kỹ thuật IC MAX3485 [42]
Hãng sản xuất Analog devices
Kiểu đóng gói SOIC-8 Điện áp nguồn vào 3 đến 7VDC
Dòng điện tiêu thụ 2mA
Dòng điện tiêu thụ chế độ tiết kiệm năng lượng 2nA
Tốc độ tối đa 10Mbps Điện áp logic đầu vào 0 đến 7VDC
CÁC PHẦN MỀM VÀ KHUNG PHẦN MỀM (FRAMEWORK) SỬ DỤNG
Altium designer là một phần mềm thiết kế điện tử chuyên nghiệp, được sử dụng rộng rãi trong ngành điện tử Nó cung cấp một môi trường thiết kế tích hợp, cho phép
-46- người dung tạo ra các bản vẽ schematic, bố trí PCB,… Điểm mạnh của altium là hỗ trợ nhiều công cụ giúp người dùng triển khai việc thiết kế nhanh chóng và thuận lợi, tuy nhiên phần mềm tương đối nặng và phải trả phí
KiCad là một bộ công cụ mã nguồn mở cho thiết kế mạch điện tử, bao gồm thiết kế schematic hay bố trí PCB Kicad được cộng đồng ưa chuộng bởi vì tính miễn phí và khả năng mở rộng linh hoạt tuy nhiên việc mở rộng này thường sẽ gây ra lỗi sau mỗi lần nâng cấp lên phiên bản mới
STM32CubeWL là một nền tảng phần mềm tích hợp được phát triển bởi STMicroelectronics, dành riêng cho dòng vi điều khiển STM32WL, một trong những dòng vi điều khiển đầu tiên trên thế giới tích hợp công nghệ LoRa® và Sub-GHz RF STM32CubeWL cung cấp một bộ công cụ toàn diện bao gồm trình điều khiển phần cứng, thư viện phần mềm, ví dụ ứng dụng và môi trường phát triển tích hợp (IDE)
Nền tảng phần mềm này không chỉ hỗ trợ các tính năng cốt lõi của vi điều khiển STM32WL như quản lý năng lượng, bảo mật và điều khiển giao tiếp RF, mà còn tích hợp các giao thức truyền thông phổ biến như LoRaWAN®, SigFox STM32CubeWL giúp tối ưu hóa thời gian phát triển và tăng cường hiệu suất sản phẩm, mang lại lợi ích lớn cho các ứng dụng IoT (Internet of Things), mạng cảm biến không dây và các hệ thống nhúng thông minh khác [43]
ESP-IDF (Espressif IoT Development Framework)
Espressif IDF là một môi trường phát triển tích hợp của Espressif, nó được xây dựng trên nền tảng Eclipse và dành cho việc phát triển các ứng dụng IoT khi sử dụng các dòng SoC ESP32, ESP32-S và ESP32-C Nó cung cấp SDK, thư viện và công cụ cần thiết để phát triển các ứng dụng IoT sử dụng ngôn ngữ lập trình như C và C++ [44]
STM32CubeIDE là môi trường phát triển tích hợp miễn phí dành cho các vi điều khiển STM32, cung cấp công cụ để thiết kế, lập trình, và gỡ lỗi các ứng dụng cho dòng vi điều khiển STM32 Nó được tích hợp đầy đủ công cụ từ STMicroelectronics bao gồm
-47- cả công cụ cấu hình phần cứng CubeMX, hỗ trợ thiết kế, lập trình, gỡ lỗi và kiểm thử các ứng dụng nhúng STM32CubeIDE hiện hỗ trợ nhiều nền tảng như Windows, macOS, Linux [45]
Espressif IDE là môi trường phát triển tích hợp của Espressif, được xây dựng trên nền tảng Eclipse IDE và dành cho việc phát triển các ứng dụng sử dụng vi điều khiển ESP32 và ESP8266 Espressif IDE cung cấp một bộ công cụ đầy đủ cho việc lập trình, biên dịch, và gỡ lỗi các ứng dụng [46]
THIẾT KẾ HỆ THỐNG
GIỚI THIỆU CHUNG
- Các Thiết bị đầu cuối và Gateway phải tuân thủ tiêu chuẩn mạng LoRaWAN 1.0.3 để đảm bảo khả năng tham gia mạng LoRaWAN
- Thiết bị đầu cuối phải có khả năng đọc nhiều loại cảm biến qua các chuẩn giao tiếp như RS-232 hay RS-485 qua giao thức Modbus RTU hay tín hiệu dòng điện 4-20mA hoặc tín hiệu điện áp 0-10Vdc
- Xây dựng máy chủ mạng LoRaWAN, máy chủ ứng dụng LoRaWAN sử dụng mã nguồn mở
- Thiết bị đầu cuối có thể sử dụng nguồn ngoài hoặc pin có khả năng sạc Năng lượng tiêu thụ của mạch phải được tối ưu tốt để có thể duy trì hoạt động trong thời gian dài sử dụng pin
- Người dùng có thể thiết lập các thông số về LoRaWAN hoặc các thông số về các chuẩn giao tiếp qua giao diện web để cấu hình một cách dễ dàng, các thông số và dữ liệu được hiển thị một cách trực quan
Giải pháp Để phù hợp với yêu cầu trên, trước hết về phần cứng:
- Thiết bị đầu cuối: Sử dụng các module LoRa để đảm bảo khả năng kết nối LoRaWAN, tích hợp các chuẩn giao tiếp như 4-20mA, 0-10V, RS-232 hoặc RS-
485, ngoài ra thiết kế sẽ tích hợp thêm module không dây WiFi để hỗ trợ phát điểm truy cập WiFi để người dùng dễ dàng cấu hình qua giao diện web và quan sát dữ liệu từ cảm biến trực tiếp Ngoài ra thiết bị sẽ được thiết kế sao cho tối ưu hóa về năng lượng tiêu thụ khi sử dụng pin
- Thiết bị gateway: Sử dụng module LoRaWAN Gateway cùng với máy tính nhúng OrangePi Zero 3 đảm bảo đáp ứng yêu cầu là một Gateway LoRaWAN, cầu nối giao tiếp giữa các thiết bị đầu cuối và máy chủ mạng LoRaWAN
- Thiết bị đầu cuối: Firmware phải đảm bảo thiết bị này phải đúng chuẩn giao tiếp mạng LoRaWAN 1.0.3 dạng class A, có thể kết nối được với máy chủ mạng LoRaWAN thông qua gateway, ngoài ra thiết bị đầu cuối sẽ phải đọc được nhiều chuẩn giao tiếp như đã nêu ở trên và phải điều khiển được module WiFi để hỗ trợ web nhằm cấu hình các thông số và xem dữ liệu cảm biến qua kết nối WiFi
- Thiết bị gateway: Firmware phải đảm bảo thiết bị này tuân thủ tiêu chuẩn về mạng LoRaWAN
- Thiết bị máy chủ mạng: Thiết kế máy chủ mạng với mã nguồn mở ChirpStack.
THIẾT KẾ MÔ HÌNH
Thiết kế phần cứng a Sơ đồ khối và lựa chọn thành phần linh kiện
Thiết kế phần cứng LoRaWAN Gateway:
Dựa vào yêu cầu thiết kế, sơ đồ khối phần cứng LoRaWAN Gateway được thiết kế như sau:
USB Type-C Console USB Type-A host
Hình 3-1 Sơ đồ khối phần cứng LoRaWAN Gateway
Từ yêu cầu thiết kế, nhóm tác giả quyết định sử dụng các thành phần sau cho phần cứng của LoRaWAN Gateway:
- IC nguồn TPS5450 được sử dụng để tạo nguồn 5V-5A ổn định cho OrangePi Zero 3 TPS5430 tạo nguồn 3V3-3A cho module LoRaWAN Gateway ED-GW1302-915M và module GPS L70-R
- Máy tính nhúng OrangePi Zero 3 (1GB RAM): Đảm nhiệm vai trò chạy mã nguồn LoRa packet forwarder và LoRaWAN server
- Module LoRaWAN Gateway ED-GW1302S-915M: Đảm nhiệm vai trò thu nhận, xử lý và chuyển tiếp tín hiệu LoRa, quản lý các kênh tần số
- Module GPS L70-R: Được tích hợp cho mục đích lấy tọa độ GPS của Gateway
Lựa chọn máy tính nhúng Orangepi Zero 3 dựa trên yêu cầu về chi phí, khả năng tính toán, tích hợp và khả năng mở rộng tốt Module LoRaWAN ED- GW1302-915M với thiết kế dạng module với đầu nối miniPCIe, giao tiếp SPI dễ dàng kết nối và lắp đặt Dải tần số hoạt động của module này cũng thích hợp để hoạt động tại Việt Nam theo quy định ED-GW1302-915M được kết nối và giao tiếp với OrangePi Zero 3 thông qua bộ SPI1 Module L70-R được sử dụng do tốc độ lấy định vị nhanh và nhỏ gọn OrangePi Zero 3 kết nối với module L70-R thông qua giao tiếp UART, bộ UART5
Thiết kế phần cứng các Node cảm biến LoRaWAN:
Dựa vào yêu cầu thiết kế, nhóm đề ra sơ đồ khối phần cứng node cảm biến
Cổng nguồn và sạc pin
3V3 Điều khiển nguồn Điều khiển nguồn
Mạch chuyển đổi chuẩn giao tiếp (Tùy thiết kế)
Cổng kết nối cảm biến
Nguồn cho cảm biến ESP32-C3
Nạp chương trình cho ESP32-C3
Hình 3-2 Sơ đồ khối chung của các node cảm biến LoRaWAN
Về phần nguồn cung cấp cho các thành phần linh kiện trên mạch, nhóm đã sử dụng các thành phần như:
- Khối mạch chống ngược cực nguồn vào: Dùng MOSFET kênh P được sử dụng để tránh trường hợp người dùng cấp ngược cực nguồn vào gây hỏng hóc hoặc cháy nổ
- Mạch chuyển đổi hạ áp buck XL1509: Được sử dụng cho mục đích hạ điện áp từ 7V tới 40VDC xuống 5VDC cấp cho mạch khi muốn sử dụng chức năng sạc pin hoặc đường cấp nguồn chính
- IC quản lý đường nguồn và sạc pin BQ24075: Được sử dụng cho chức năng sạc pin từ điện áp 5VDC, ngoài ra còn có thể tự động chuyển đổi nguồn cấp cho mạch từ pin khi đường nguồn chính 7 đến 40VDC bị mất
- IC chuyển đổi điện áp buck-boost TPS63000: Được sử dụng để tạo điện áp chính 3.3VDC cấp cho mạch từ đầu ra của BQ24075 nhờ khả năng chuyển đổi chế độ hoạt động buck và boost linh hoạt cho ra điện áp 3.3VDC ổn định, cho dù điện áp pin lớn hơn hay nhỏ hơn 3.3VDC, dòng tĩnh thấp TPS63000 được điều khiển chế độ hoạt động tiết kiệm điện hay chế độ thông thuờng bởi RAK3172
Nhờ vào các ưu điểm đã nêu ở chương 2, module thu phát LoRa RAK3172 được nhóm lựa chọn sử dụng với vai trò vận hành giao thức LoRaWAN và điều khiển các thiết bị ngoại vi khác Vi điều khiển ESP32-C3 cũng được lựa chọn cho mục đích tích hợp kết nối không dây WiFi
RAK3172 được đảm nhiệm vai trò vi điều khiển chính do nó cần được cấp nguồn liên tục để chạy giao thức LoRaWAN, do đó nó cũng nên đảm nhiệm việc chủ động quản lý các thành phần khác trên board mạch Việc xem dữ liệu trực tiếp hay cấu hình không diễn ra thường xuyên mà phụ thuộc vào người dùng, vậy nên ESP32-C3 chỉ đảm nhiệm duy nhất một vai trò, phần lớn thời gian sẽ ở trong trạng thái không được cấp nguồn để tiết kiệm năng lượng và chỉ được bật nguồn khi người dùng nhấn nút chuyển chế độ hoạt động Vậy nên RAK3172 sẽ là vi điều khiển chính trong thiết kế, kiểm soát hầu hết các thành phần trên board mạch kể cả ESP32-C3
Ngoài các thành phần chính, trên mạch còn được bố trí các nút nhấn chức năng cho RAK3172, ESP32-C3 như nút RESET, nút chọn chế độ hoạt động Hai đèn báo
-52- được tích hợp bao gồm đèn báo sạc (đỏ), đèn báo trạng thái và chế độ hoạt động (xanh dương)
Cả bốn loại thiết bị Node cảm biến LoRaWAN đều được sử dụng chung các khối như khối nguồn, khối module RAK3172, khối ESP32-C3 do có các yêu cầu và mục đích chung Chúng chỉ khác nhau ở mạch giao tiếp và nguồn cấp cho cảm biến, cụ thể là:
- Node dùng chuẩn giao tiếp RS-485
+ IC giao tiếp truyền nhận RS-485 MAX3485 được sử dụng để chuyển đổi chuẩn giao tiếp UART sang chuẩn giao tiếp RS-485 Nguồn cấp cho IC chuyển đổi giao tiếp được điều khiển đóng mở để giảm năng lượng tiêu thụ không cần thiết
+ Nguồn cấp cho cảm biến là nguồn 9VDC do mạch tăng áp boost tạo ra, thích hợp cho đa số các cảm biến có điện áp nguồn cấp trên 7VDC
- Node dùng chuẩn giao tiếp RS-232
+ IC giao tiếp truyền nhận RS-232 MAX3232 được sử dụng để chuyển đổi chuẩn giao tiếp UART sang chuẩn giao tiếp RS-232 Nguồn cấp cho IC chuyển đổi giao tiếp cũng được điều khiển đóng mở để tiết kiệm năng lượng + Nguồn cấp cho cảm biến được thiết kế tương tự node cảm biến RS-485
- Node đọc tín hiệu 4-20mA
+ Mạch khuếch đại thuật toán dạng vi sai và khuếch đại không đảo được kết hợp để đọc giá trị dòng điện 4-20mA, sau đó chuyển thành khoảng giá trị điện áp 0-3.3VDC phù hợp cho bộ ADC của module RAK3172
+ Nguồn cấp cho cảm biến là nguồn 24VDC từ mạch tăng áp boost
- Node đọc tín hiệu 0-10VDC
+ Được thiết kế tương tự node đọc tín hiệu 4-20mA, chỉ khác về thông số linh kiện của mạch khuếch đại thuật toán cho mục đích đọc tín hiệu 0-10VDC b Sơ đồ nguyên lý Gateway
- Sơ đồ nguyên lý khối nguồn vào:
-53- Hình 3-3 Sơ đồ nguyên lý khối nguồn vào
Nguồn vào là bộ chuyển đổi nguồn AC-DC 12VDC cấp cho mạch thông qua đầu nối nguồn DC 5.5mm Mạch có bảo vệ quá dòng thông qua cầu chì, bảo vệ quá áp tức thời thông qua varistor Nguồn điện đầu ra được ổn định bằng một tụ điện phân cực
- Sơ đồ nguyên lý khối nguồn 5V và 3V3
Hình 3-4 Sơ đồ nguyên lý mạch nguồn hạ áp BUCK
KẾT QUẢ
KẾT QUẢ MÔ HÌNH THI CÔNG
Sau khoảng thời gian kiểm tra và chỉnh sửa phần cứng, nhóm thực hiện đề tài đã thi công được mạch gateway của hệ thống
Hình 4-1 Hình ảnh thực tế thiết bị LoraWAN Gateway Mạch chạy ổn định trong khoảng thời gian dài và đáp ứng được tiêu chí LoRaWAN Gateway
Các Thiết bị đầu cuối (Node)
Sau khoảng thời gian kiểm tra và chỉnh sửa phần cứng, nhóm thực hiện đề tài đã thi công các thiết bị đầu cuối ứng với từng chức năng đọc cảm biến bằng các chuẩn giao tiếp sau: a Node đọc cảm biến chuẩn giao tiếp RS-485
Hình ảnh sau là hình ảnh thực tế của board Node đọc cảm biến chuẩn giao tiếp RS-
485 sau khi thi công thành công:
-100- Hình 4-2 Hình ảnh thực tế board đọc cảm biến chuẩn giao tiếp RS-485
Node hoạt động ổn định và có khả năng kết nối và đọc dữ liệu được với các cảm biến sử dụng giao tiếp RS-485 và có thể sử dụng chuẩn giao thức Modbus RTU
Hình 4-3 Hình ảnh khi đóng gói thiết bị Node đọc cảm biến RS-485 đo SHT31 và cảm biến RS-485 đo AM1000-3-BV
-101- Đây là hình ảnh thiết bị Node khi được đóng hộp và kết nối với hai cảm biến RS-
485 sử dụng giao thức ModbusRTU là cảm biến đo nhiệt độ, độ ẩm SHT31 và cảm biến gió AM1000-3-BV b Node đọc cảm biến chuẩn giao tiếp RS-232
Hình ảnh sau là hình ảnh thực tế của board Node đọc cảm biến chuẩn giao tiếp RS- 232sau khi thi công thành công:
Hình 4-4 Hình ảnh thực tế board đọc cảm biến chuẩn giao tiếp RS-232
Node hoạt động ổn định và có khả năng kết nối và đọc dữ liệu được với các cảm biến sử dụng giao tiếp RS-232
-102- Hình 4-5 Hình ảnh khi đóng gói thiết bị Node đọc cảm biến RS-232với cảm biến nhiên liệu LiGo SP RS-232 c Node đọc cảm biến tín hiệu dòng điện 4-20mA
Hình ảnh sau là hình ảnh thực tế của board Node đọc cảm biến sử dụng tín hiệu dòng điện 4-20mA sau khi thi công thành công:
Hình 4-6 Hình ảnh thực tế board đọc cảm biến sử dụng tín hiệu dòng điện 4-20mA
-103- Node hoạt động ổn định và có khả năng kết nối và đọc dữ liệu được với các cảm biến sử dụng tín hiệu dòng điện 4-20mA
Hình 4-7 Hình ảnh khi đóng gói thiết bị Node đọc cảm biến nhiệt độ PT100 từ module chuyển đổi PT100 sang 4-20mA d Node đọc cảm biến tín hiệu điện áp 0-10Vdc
Hình ảnh sau là hình ảnh thực tế của board Node đọc cảm biến sử dụng tín hiệu điện áp 0-10Vdc sau khi thi công thành công:
Hình 4-8 Hình ảnh thực tế board đọc cảm biến sử dụng tín hiệu điện áp 0-10VDC
-104- Node hoạt động ổn định và có khả năng kết nối và đọc dữ liệu được với các cảm biến sử dụng tín hiệu điện áp 0-10VDC
Hình 4-9 Hình ảnh khi đóng gói thiết bị Node đọc cảm biến nhiệt độ PT100 từ module chuyển đổi PT100 sang 0-10VDC
KẾT QUẢ PHẦN MỀM THIẾT KẾ
Gateway làm được nhiệm vụ trung chuyển gói tin giữa các thiết bị node và máy chủ mạng LoRaWAN Ngoài ra thiết bị có thể gửi các gói tin theo chu kì để cập nhật tình trạng hiện tại của Gateway
Mỗi khi gateway được cấp nguồn, nó tự động khởi chạy chương trình LoRa packet forwarder để chuyển tiếp gói tin từ thiết bị đầu cuối lên server và ngược lại:
Jun 03 09:28:59 orangepizero3 lora_pkt_fwd[14003]: JSON up: {"rxpk":[{"jver":1,"tmst":3306430981,"chan":6,"rfch":1,"freq":922.600000,"mid": 8,"stat":1,"modu":"LORA","datr":"SF7BW125","codr":"4/5","rssis":-
44,"size":69,"data":"gG439QGACwACW+LdNu10RUZnnvuKYt+8ZmqDabkwtxk eaS2CSCjxFFCoLfaK3lIqQCQ85TTLNM1FQM58ug0RL2JqqUQm"}]}
Các log JSON up chứa thông tin về gói tin UDP packet forwarder gateway gửi lên server Nó bao gồm trường dữ liệu “rxpk” với các thông số của gói tin uplink nhận
-105- được từ thiết bị đầu cuối như RSSI, SNR, frequency, channel,… và dữ liệu nhận được từ thiết bị đầu cuối đã được mã hóa base-64
Jun 03 09:29:29 orangepizero3 lora_pkt_fwd[14003]: JSON down: {"txpk":{"imme":false,"rfch":0,"powe":16,"ant":0,"brd":0,"tmst":3335841654,"freq
":922.8,"modu":"LORA","datr":"SF7BW125","codr":"4/5","ipol":true,"size":12,"dat a":"YOXjpACgCADYOgmg"}}
Các log JSON down chứa thông tin về gói tin UDP packet forwarder do server gửi xuống gateway Nó bao gồm trường dữ liệu “txpk” với các thông số của gói tin downlink như power, frequency, imme, datr, codr,… và dữ liệu gửi xuống thiết bị đầu cuối đã được mã hóa base-64
Sau mỗi 30s, gateway gửi thông tin và trạng thái của nó lên server để server có thể giám sát và hiển thị thông tin đó cho người dùng
Jun 03 09:30:29 orangepizero3 lora_pkt_fwd[686]: JSON up: {"stat":{"time":"2024-
GMT","lati":10.84481,"long":106.79657,"alti":3,"rxnb":4,"rxok":4,"rxfw":4,"ackr": 100.0,"dwnb":4,"txnb":3,"temp":37.5}}
Các log JSON up bao gồm trường dữ liệu “stat” chứa thời gian gửi của gói tin, tọa độ định vị của gateway, các thông số về số gói tin truyền – nhận, tỉ lệ nhận ACK
Gateway gửi các gói tin PULL_DATA lên server để duy trì kết nối và thăm dò dữ liệu từ server mỗi 10s
Jun 03 09:29:59 orangepizero3 lora_pkt_fwd[14003]: INFO: [down] PULL_ACK received in 0 ms
Sau khi gói tin PULL_DATA được gửi, gateway nhận gói tin PULL_ACK Ngoài ra có thể kèm theo gói tin PULL_RESP nếu server có dữ liệu gửi xuống
Thiết bị đầu cuối (Node) a Đọc giá trị các cảm biến ứng với từng loại thiết bị đầu cuối
Sau khi có các thông số được cập nhật từ trình duyệt web Để có thể coi được giá trị của cảm biến, bấm nút “Configure”, chờ đợi khi đèn nháy liên tục và kết nối vào USB
-106- TypeC để đọc dữ liệu mà thiết bị trả về Thiết bị cuối có thể đọc được các cảm biến như sau:
Cảm biến RS-485: Nhóm tác giả chọn cảm biến AM1000-3-BV để đọc giá trị gió và cảm biến SHT31 để đọc giá trị nhiệt độ, độ ẩm Cả hai cảm biến này sử dụng giao thức Modbus RTU, dưới đây là hình ảnh các giá trị gió, nhiệt độ, độ ẩm đo được từ các cảm biến:
Hình 4-10 Hình ảnh đọc các giá trị từ cảm biến AM1000-3-BV và SHT31
Cảm biến RS-232: Nhóm tác giả chọn cảm biến mức nhiên lưu LIGO SP-RS- 232sử dụng chuẩn giao tiếp RS-232, dưới đây là hình ảnh giá trị mức đầu, nhiệt độ đo được từ cảm biến:
Hình 4-11 Hình ảnh đọc các giá trị từ cảm biến LIGO SP-RS-232
Cảm biến 4-20mA và 0-10VDC: Nhóm tác giả chọn module đọc cảm biến nhiệt độ PT100 sử dụng 4-20mA hoặc 0-10VDC, kết nối module được chọn với thiết bị Node,
-107- hai module đều trả về nhiệt độ, nên dưới đây là hình ảnh giá trị nhiệt độ đọc được từ cảm biến PT100:
Hình 4-12 Hình ảnh đọc các giá trị từ cảm biến PT100 qua module chuyển đổi PT100 sang 4-20mA hoặc 0-10VDC b Thiết bị đầu cuối tham gia vào mạng LoRaWAN
Sau khi được cấp nguồn và khởi động, để đọc dữ liệu trả về như đã đề cập giống mục (a) ở trên, ta tiến hành bấm nút “configure”, chờ đợi đèn nháy liên tục và cắm USB Type C sẽ đọc được thông số deveui của thiết bị, các thông số về mạng LoRaWAN đã cài đặt và các thông số phụ thuộc vào từng ứng dụng Như hình ảnh dưới đây là thông số của một node đọc cảm biến SHT31 đo nhiệt độ, độ ẩm sử dụng Modbus:
Hình 4-13 Hình ảnh dữ liệu ban đầu được thiết lập của một thiết bị đầu cuối sử dụng giao tiếp RS-485 RAK3172 tiến hành gửi chuỗi JSON chứa DevEUI đọc từ phần cứng, sau đó ESP32-C3 nhận được và phản hồi lại chuỗi JSON chứa hai trường dữ liệu quan trọng, đó là:
- “wan”: Chứa các thông số cấu hình LoRaWAN như deveui, appeui, appkey cho quá trình tham gia vào mạng và truyền nhận dữ liệu “class” chứa thông số lớp thiết bị, và period chứa giá trị chu kỳ gửi gói tin uplinks lên server
- Và một trường dành cho Thiết bị đầu cuối tùy vào ứng dụng:
-108- + Dành cho thiết bị đầu cuối chuẩn giao tiếp RS-485: “mbdesc”, chứa thông tin mô tả các thiết bị cảm biến RS-485 dưới dạng danh sách Thiết bị đầu cuối sẽ tiến hành giao tiếp với cảm biến theo danh sách này trong mỗi lần đọc dữ liệu cảm biến
+ Dành cho thiết bị đầu cuối đọc tín hiệu tương tự: “calib”, chứa các giá trị giới hạn đo của cảm biến phục vụ cho quá trình hiệu chỉnh quà quy đổi giá trị cảm biến
HOẠT ĐỘNG CỦA HỆ THỐNG
a Các chức năng của hệ thống
Khi thiết bị đầu cuối đang hoạt động, tiến hành bấm nút CONFIG đến khi đèn báo trạng thái chớp nhanh báo đã chuyển qua chế độ xem dữ liệu và cấu hình Người
-111- dùng tiến hành kết nối với điểm truy cập WiFi do thiết bị phát ra Khi đã kết nối thành công, tiến hành truy cập vào địa chỉ trang giao diện web 192.168.1.1
Trong giao diện web, thiết bị đầu cuối sẽ hiển thị các dữ liệu, trạng thái “NO LIVE” thể hiện thiết bị chưa vào mạng LoRaWAN và nếu vào mạng LoRaWAN thành công trình duyệt web sẽ hiển thị trạng thái “LIVE”, khi bấm vào nút đăng nhập, thực hiện đăng nhập để cấu hình thiết bị với tài khoản và mật khẩu mặc định là “admin” và
Hình 4-21 Hình ảnh trình duyệt web trang login và dữ liệu hiển thị
Tùy vào ứng dụng mà trang hiển thị cài đặt sẽ khác nhau khi bấm vào trang login thành công Hình ảnh bên dưới sẽ hiển thị ra thông số cài đặt khi thiết bị là RS-485:
-112- Hình 4-22 Hình ảnh trình duyệt web trang cài đặt các thông số cảm biến thiết bị RS-
Tiến hành hiệu chỉnh cảm biến (Đối với thiết bị cảm biến đọc tín hiệu tương tự), chọn loại cảm biến (Đối với thiết bị chuẩn giao tiếp RS-232) hoặc thêm – xóa thiết bị (Đối với thiết bị chuẩn giao tiếp RS-485) Nếu không, nhấn Next để bỏ qua bước này đến bước cấu hình LoRaWAN
-113- Hình 4-23 Hình ảnh trình duyệt web trang cài đặt các thông số LoRaWAN DevEUI là thông số cố định theo phần cứng, người dùng không thể chỉnh sửa Với JoinEUI và AppKey, tiến hành truy cập LoRaWAN server để lấy hai giá trị này
-114- Hình 4-24 Hình ảnh các thông số DevEUI, JoinEUI hiển thị trên chirpstack
Hình 4-25 Hình ảnh các thông số AppKey hiển thị trên chirpstack
Thực hiện thêm thiết bị mới với DevEUI trong giao diện web Bấm nút tạo
JoinEUI và AppKey trên server và sao chép nó vào giao diện web, sau đó bấm submit trên server
Ngoài ra, người dùng cũng có thể thay đổi chu kỳ gửi gói tin uplinks nếu muốn
Sau đó bấm Submit LoRaWAN trên giao diện web để thiết bị reset lại và lưu cấu hình, lúc này màn hình sẽ hiện thị thông báo như sau:
-115- Hình 4-26 Hình ảnh trình duyệt web trang cài đặt các thông số thành công b Năng lượng tiêu thụ của các thiết bị đầu cuối
Nhóm đã sử dụng thiết bị đo dòng điện Power Profiler Kit II từ hãng Nordic Semiconductor để tiến hành đo dòng điện của từng loại thiết bị đầu cuối Dưới đây là hình ảnh ví dụ khi đo một thiết bị đầu cuối từ loại thiết bị này:
-116- Hình 4-27 Hình ảnh đo dòng điện tiêu thụ thiết bị đầu cuối RS-485 khi không cắm cảm biến sử dụng Power Profiler Kit II
Nhóm tác giả tiến hành đo từng loại thiết bị đầu cuối ứng với các cảm biến tương ứng, từ đó nhóm đã thống kê năng lượng tiêu thụ của từng loại thiết bị theo bảng sau:
Bảng 4.1 Bảng thông số dòng điện tiêu thụ của từng thiết bị đầu cuối ứng với các cảm biến Thiết bị đầu cuối
Dòng điện tiêu thụ khi làm việc (không cảm biến)
Dòng điện tiêu thụ khi làm việc (có cảm biến)
Dòng điện tiêu thụ khi ngủ
RS-485 AM1000-3-BV 95mA 152mA 750uA
RS-232 LiGo SP-RS232 105mA 230mA 750uA
108mA 120mA 750uA c Khoảng cách truyền nhận của các thiết bị đầu cuối và Gateway
Sau khi phân tích vị trí địa lý khu vực sinh sống hiện tại, nhóm nghiên cứu đã quyết định đặt thiết bị đầu cuối (end device) lên tầng thượng của Viện Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, chọn những điểm thông thoáng theo đường chim bay Sau đó, nhóm tiến hành đặt thiết bị Gateway tại vị trí tầng thượng và đặt các thiết bị đầu cuối tại những vị trí đã xác định Qua quá trình khảo sát, nhóm đã chọn lựa và đặt từng thiết bị cuối tại các vị trí phù hợp Các vị trí này được thể hiện qua hình ảnh sau:
Hình 4-28 Vị trí thực hiện khảo sát với khoảng cách 1300m
-118- Hình 4-29 Vị trí thực hiện khảo sát với khoảng cách 3000m
Hình 4-30 Vị trí đặt gateway trong quá trình thực nghiệm
-119- Hình 4-31 Vị trí đặt thiết bị đầu cuối thực nghiệm ở khoảng cách 1.3km
Hình 4-32 Vị trí đặt thiết bị đầu cuối thực nghiệm ở khoảng cách 3km