Professional Documents
Culture Documents
Thiết kế và tổ chức giao thức truyền thông trong mạng cảm biến không dây LoRa - 1436870
Thiết kế và tổ chức giao thức truyền thông trong mạng cảm biến không dây LoRa - 1436870
THIẾT KẾ VÀ TỔ CHỨC GIAO THỨC TRUYỀN THÔNG TRONG MẠNG CẢM BIẾN
KHÔNG DÂY LORA
Nguyễn Văn Thiện1, Quách Đức Cường2, Trịnh Trọng Chưởng3, Nguyễn Bá Nghiễn1
1
Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
2
Khoa Điện, Trường Đại học Công nghiệp Hà Nội
3
Viện Công nghệ HaUI, Trường Đại học Công nghiệp Hà Nội
nguyenthien@haui.edu.vn, cuongqd@haui.edu.vn, chuonghtd@haui.edu.vn, nguyenbanghien_cntt@haui.edu.vn
TÓM TẮT: Mạng LoRa ngày càng được ứng dụng rộng rãi trong hệ thống mạng cảm biến không dây WSNs (Wireless
Sensor Networks) bởi khả năng truyền xa, tiết kiệm năng lượng, hoạt động ổn định. Trong bài báo này, nhóm tác giả sẽ giới thiệu
quá trình từng bước xây dựng và tổ chức giao thức truyền thông của mạng LoRa cấu trúc hình cây đảm bảo các yếu tố tin cậy, bảo
mật, chuẩn công nghiệp. Quá trình thử nghiệm trên hệ thống WSNs thực hiện với chíp xử lý dòng họ PIC của Microchip đã đạt được
kết quả tốt.
Từ khóa: WSNs, LoRa network protocol, PIC microcontroller.
I. GIỚI THIỆU
Mạng cảm biến không dây WSNs (Wireless Sensor Network system) ngày càng được sử dụng phổ biến trong
các ứng dụng công nghiệp, nông nghiệp, y tế, giao thông, hệ thống thiết bị dân dụng,… WSNs đã đóng một vai trò
quan trọng trong việc kiểm soát dữ liệu diện rộng trên quy mô lớn. Từ đó hệ thống quản lý và người dùng có thể phân
tích, đánh giá dữ liệu một cách linh hoạt và thuận tiện. Chính vì những ưu điểm đó nên việc nghiên cứu và triển khai
ứng dụng mạng WSNs vào việc thu thập dữ liệu đã trở lên cấp thiết trong những năm gần đây. Nghiên cứu về WSNs
tập trung vào một số hướng chính: 1) Tổ chức mạng tối ưu, cải thiện tốc độ mạng; 2) Bảo mật, an toàn hệ thống mạng;
3) Tối ưu năng lượng trong mạng, đặc biệt là các hệ thống mạng sử dụng nguồn pin. WSNs có thể được xây dựng dựa
trên nhiều nền tảng mạng khác nhau như: Zigbee, LoRa, Wifi,… hoặc kết hợp giữa các mạng cục bộ và mạng diện
rộng để có được cấu trúc mạng WSNs phù hợp với nhu cầu thực tế sử dụng. Đã có rất nhiều các công bố liên quan đến
xây dựng cấu trúc mạng, kết quả thiết kế tổ chức mạng WSNs ứng dụng trong các trường hợp cụ thể. Nhưng hầu hết
các công bố trên chỉ thể hiện ở lý thuyết tổng quan hoặc các kết quả thử nghiệm. Những vấn đề kỹ thuật chi tiết trong
việc tổ chức cấu trúc mạng, định dạng cơ chế bắt tay, định dạng các gói/tập tin truyền nhận,… để thực hiện một mạng
dữ liệu không dây thực tiễn đều chưa được đề cập một cách cụ thể và chi tiết. Trong bài báo này chúng tôi sẽ giới thiệu
chi tiết việc tổ chức thực hiện một mạng WSNs có cấu trúc hình cây phục vụ việc đo lường các thông số môi trường.
Hệ thống WSNs này được thực hiện trên cơ sở phần cứng là các module LoRa 433 MHz và vi điều khiển PIC16F877A
của hãng Microchip.
Trong bài báo này chúng tôi tập trung vào việc tổ chức một mạng WSNs cục bộ hình cây dựa trên mạng LoRa.
Đây là mạng không dây có băng tần từ 430 MHz đến 915 MHz cho từng khu vực khác nhau trên thế giới được sử dụng
khá phổ biến do chúng có ưu điểm: khoảng truyền xa (từ vài trăm mét đến vài kilômét); công suất tiêu thụ nhỏ. Tuy
vậy mạng LoRa cũng có nhược điểm là tốc độ truyền tin chậm (nhỏ hơn 115200 bps) chỉ phù hợp với mạng thu thập
dữ liệu và điều khiển với chu kỳ lấy mẫu không quá nhỏ.
SN1 Mesh
Star Tree
GW SN3 GW GW
GW
LCD
RF433-E30
Wireless sensor
d=0 NC Node 2004
RS232
Power UART
PIC16F877A
Microcontroller
KEY
SN
d=1 RT1
1
d=3 SN SN
4 5
Hình 3. Cấu trúc lớp mạng Hình 4. Cấu trúc khối của nút cảm biến SN
Cấu trúc mạng thử nghiệm bao gồm 04 tầng lớp, 02 Router RT, 01 GW (bao gồm máy tính PC và module
LoRA) và 05 nút cảm biến SN như trên Hình 3. Thiết bị định tuyến RT (Hình 6) là module LoRA E32-433T20DT kết
nối với vi điều khiển PIC16F688 qua cổng nối tiếp UART. Các nút SN được thiết kế dựa trên MCU PIC16F877A của
Microchip được mô tả bằng sơ đồ khối như trên Hình 4. Mỗi SN kết nối với các cảm biến DS18b20, DHT22, MQ-7 và
MG811 để đo các thông số nhiệt độ, độ ẩm, nồng độ khí CO và nồng độ khí CO2. Module Wireless sử dụng loại E32-
433T20DT hoạt động ở dải tần 433 MHz, công suất 100 mW và khoảng truyền xa trong điều kiện lý tưởng là 3.000 m.
Ngoài ra. trên module SN còn tích hợp thêm màn hình LCD 2004 thuận tiện cho việc quan sát dữ liệu tại hiện trường
để so sánh với dữ liệu thu được trên GW.
572 THIẾT KẾ VÀ TỔ CHỨC GIAO THỨC TRUYỀN THÔNG TRONG MẠNG CẢM BIẾN KHÔNG DÂY LORA
433T20DT
433T20DT
E32-
E32-
NC
RS232
PIC16F688
Power
Microcontroller PC
UART
; khi Rm ≠ 1 (1)
1 − Rm
trong đó:
• Lm là độ sâu của tầng mạng.
• Cm là số lượng nút lớn nhất (bao gồm cả RT và SN) của tầng đang xét kết nối với tầng phía trên.
• Rm là số lượng nút RT lớn nhất kết nối tầng phía trên.
• Chỉ số n, Aparent, lần lượt là thứ tự nút cảm biến và địa chỉ gốc của GW.
B. Lưu đồ thuật toán của các phần tử trong mạng WSNs
Lưu đồ thuật toán tổng quát thực hiện trên các thiết bị GW, RT và SN như trên Hình 7 [2], [6]. Phát hiện quá
trình nhận dữ liệu của các Node thông qua sự kiện ngắt cổng UART trên MCU. Để tránh xảy ra lỗi trong quá trình thu
nhận chuỗi dữ liệu, cần thực hiện một số kỹ thuật: 1) mã hóa khung dữ liệu; 2) kết hợp giải thuật kiểm tra lỗi khung dữ
liệu; 3) thực hiện chế độ “thời gian chờ” tại cổng UART, nếu vượt quá khoảng thời gian chờ của 1 byte thì kết thúc quá
trình nhận chuỗi dữ liệu.
Receive data N Y
Data process
N from RT Data process
Receive data Y
Y from SN Send data to
Send data GW node Send data
to UART N to RT
N N N
Stop Stop Stop
Y Y Y
End End End
Hình 7. Lưu đồ thuật toán dạng tổng quát của WSNs [2], [6]
Nguyễn Văn Thiện, Quách Đức Cường, Trịnh Trọng Chưởng, Nguyễn Bá Nghiễn 573
Khi khởi động mạng, GW thực hiện việc truyền dữ liệu cài đặt tới tất cả các SN (bao gồm các thông số: địa chỉ
SN, các dữ liệu về tần số lấy mẫu các ngưỡng cảnh báo của SN,…) và thiết lập định khối định tuyến RT (địa chỉ RT và
quản lý những địa chỉ nào,…). NC sẽ nhận dữ liệu từ các địa chỉ gửi về và gửi lên PC thông qua UART. PC nhận dữ
liệu trong chế độ chờ và hỏi vòng. Đối với RT, khi RT nhận khung dữ liệu yêu cầu từ NC, RT sẽ phân tách khung dữ
liệu để tìm địa chỉ của SN. Sau đó so sánh địa chỉ này với danh mục địa chỉ mà RT đang quản lý. Nếu địa chỉ này thuộc
phạm vi RT quản lý thì RT sẽ truyền tiếp khung dữ liệu từ NC gửi tới SN, ngược lại nó sẽ không phát khung dữ liệu.
Quá trình nhận dữ liệu NS gửi về NC tương tự như trên. Đối với SN khi nhận được khung dữ liệu (có kèm địa chỉ), SN
sẽ phân tách dữ liệu trong khung (lọc địa chỉ, kiểm tra CRC, phân tích mã lệnh yêu cầu,…) nếu đúng là địa chỉ của SN
thì nó sẽ kiểm tra CRC bản tin và thực hiện lệnh truyền dữ liệu về NC.
Lưu đồ thuật toán tách/xử lý dữ liệu (khối Data process trong Hình 7) nhận được của một nút mạng được thể
hiện trên Hình 8. Nhiệm vụ chính của khối Data process là: 1) đọc dữ liệu, 2) kiểm tra tính đúng/sai của khung dữ liệu,
3) xác định yêu cầu nhiệm vụ của khung dữ liệu, 4) loại dữ liệu: thiết lập hệ thống, lệnh yêu cầu từ GW, hay dữ liệu
thông số từ cảm biến truyền lên. Kết thúc khâu này các nút mạng không dây sẽ ra quyết định truyền/xử lý dữ liệu. Ví
dụ đối với RT sau khi nhận diện khung dữ liệu, xác nhận khung dữ liệu đúng thì RT sẽ chuyển tiếp khung dữ liệu này
cho các nút mạng nó kiểm soát. Trường hợp khung dữ liệu này sai thì RT sẽ gửi khung dữ liệu báo sai về nút mạng
quản lý nó (ở tầng trên). Đối với SN sau khi ngắt nhận khung dữ liệu, MCU sẽ kiểm tra địa chỉ. Nếu đúng địa chỉ của
nó thì SN sẽ thực hiện lệnh (có thể là truyền dữ liệu về GW hoặc cài đặt chế độ SN). Trường hợp không phải địa chỉ thì
SN không thực hiện bất kỳ lệnh gì.
Begin
Read data_frame
Calculate Byte[i]
Y Y Execute
Address = true? CRC = true?
commands
N N
Send data
End
• Chuỗi dữ liệu DATA: là tập dữ liệu của nhiều thông số cần đo, mỗi thông số cần đo có 3 byte thông tin: Byte
1 là ID của dữ liệu; Byte 2, 3 là giá trị byte cao, byte thấp của dữ liệu thông số cần đo. Hệ thống có 04 thông
số cần đo là nhiệt độ môi trường, độ ẩm, nồng độ khí CO và nồng độ khí CO2. Bảng 1 là một ví dụ mô tả giá
trị của chuỗi dữ liệu DATA.
• CRC: Dữ liệu kiểm tra đối sánh sử dụng mã CRC-16 bit, giá trị này chứa đựng trong 2 byte n+5 và n+6. SN sẽ
tính giá trị CRC tương ứng với chuỗi dữ liệu và gửi lên GW. Và GW sẽ tính lại các giá trị này để đối sánh
phát hiện lỗi chuỗi dữ liệu. Khả năng phát hiện lỗi khung truyền khi sử dụng CRC-16 lên tới 99,9985 %. Tức
là trong một triệu lần truyền dữ liệu thì số lần truyền lỗi không phát hiện được tối đa là 15.
574 THIẾT KẾ VÀ TỔ CHỨC GIAO THỨC TRUYỀN THÔNG TRONG MẠNG CẢM BIẾN KHÔNG DÂY LORA
1 2 3, 4 5 6 7 8-9 10
0x8E STATE ADD ID H Byte L Byte CRC 0x8E
Hình 10. Khung dữ liệu từ PC xuống thiết bị.
Byte bắt đầu và byte kết thúc đều có giá trị 0x8E. Mã lệnh chỉ thị cấu hình SN: STATE = 0x18. ADD là địa chỉ
của SN. Từ lệnh cấu hình cảm biến (ID): Theo yêu cầu của các tham số cấu hình, có 7 loại lệnh cấu hình: 0xFF ~ 0xF9.
Các lệnh cấu hình chi tiết thể hiện trong bảng 3.
1 2 3, 4 5 …
0x8E STATE ADD ID1 … IDn CRC 0x8E
Hình 11. Khung dữ liệu từ PC xuống thiết bị
Hình 12. Phần mềm HMI thử nghiệm Hình 13. Giao diện đồ thị thông số theo thời gian
Thiết bị phần cứng thử nghiệm thể hiện trên Hình 13. Thiết bị SN hiện trường được trang bị màn hình LCD
phục vụ quan sát dữ liệu hiện trường để so sánh với giá trị dữ hiện thị tại trung tâm thu thập (GW).
Hình 14. Bản đồ thực địa bố trí mạng WSNs thử nghiệm
Khoảng cách truyền/nhận tối đa của LoRA E32-433T20DT trong điều kiện lý tưởng là 3.000 m. Trên thực tế
trong quá trình thử nghiệm trong môi trường thành phố với điều kiện thiết bị thu-phát đều đặt cách mặt đất 1m cho thấy
khoảng cách truyền/nhận tối đa khoảng 350 m. Thậm chí trong môi trường không gian với nhiều vật cản khoảng cách
576 THIẾT KẾ VÀ TỔ CHỨC GIAO THỨC TRUYỀN THÔNG TRONG MẠNG CẢM BIẾN KHÔNG DÂY LORA
này còn nhỏ hơn 200 m. Nguyên do địa hình thực địa có nhiều vật cản như: nhà cao tầng, các công trình công cộng,
cây xanh. Nếu mật độ vật cản lớn, không gian bị “che khuất” nhiều thì khoảng cách truyền/nhận của các module LoRA
sẽ ngắn lại.
Bảng 3. Thu thập dữ liệu ngày 1 tại thời điểm 9h05 ngày 10/7/2020