[EP.3] ทดสอบระยะทางการรับส่งข้อมูลของ MINILINK S93-DTU ผ่านโปรโตคอล Modbus RTU โดยเครือข่าย LoRa PtP Bridge ในพื้นที่กลางแจ้ง
ลงไม้ลงมือ : “แนะนำโปรดักส์ใหม่จาก SAIJAI TECH เป็นบอร์ด LoRa PtP Bridge”
บทความ โดย… วิสิทธิ์ เวียงนาค
“ไม่ต้องเขียนโค๊ด ไม่ต้องคอนฟิก ใช้งานได้ทันที ”
MINILINK รุ่น S93-DTU (AS923–485) สามารถสื่อสารกันเองได้ โดยไม่จำเป็นต้องใช้ LoRaWAN Gateway และ Network Server ใช้ความสามารถของ LoRa PtP สื่อสารทางไกลแบบไร้สาย ลดความยุ่งยากในการเดินสายสัญญาณ ลดต้นทุนการบำรุงรักษา ทำให้การรับส่งข้อมูลโปรโตคอล Modbus RTU (RS458) เป็นเรื่องง่ายๆ เหมาะสำหรับงานอุตสาหกรรม งานเกษตรแม่นยำ งาน SmartCity และงานไอโอทีทั่วไป
วัตถุประสงค์การทดสอบ
การทดสอบในครั้งนี้ เพื่อศึกษาการรับส่งข้อมูลในระยะทางไกล สำหรับการออกแบบและประยุกต์ใช้ในงาน Industrial Internet of Things (IIoT) โดยมีเป้าหมายคือการรับส่งข้อมูลเซนเซอร์ผ่านโปรโตคอล Modbus RTU ระหว่างโหนด มีระยะทางมากกว่า 500 เมตร
ผู้เขียนไม่ได้เน้นจะทดสอบหาระยะทางการรับส่งข้อมูลที่ไกลที่สุด แต่เลือกเน้นศึกษาถึงความแม่นยำ ความเสถียรในการสื่อสารข้อมูล ระหว่างโหนด Master และโหนด Slave ที่มีการโต้ตอบ (Send/Recive) อยู่ตลอดเวลา มันเป็นการสื่อสารข้อมูลแบบสองทาง (2 Ways) บนโปรโตคอล Modbus RTU มีระยะทางประมาณ 500 เมตร ซึ่งถ้ามองเป็นพื้นที่การสื่อสารที่มีรัศมีคลอบคลุม 500 เมตรแล้ว ก็จะเท่ากับ 785,000 ตารางเมตร กันเลยทีเดียว ซึ่งผู้เขียนมองว่า เป็นระยะทางที่น่าสนใจ มีเคสใช้งานจริงในปัจจุบันมาก ไม่ว่าจะใช้งานในโรงงานอุตสาหกรรม งานเกษตรแม่นยำ ภายในอาคารและอื่นๆ
วิธีการทดสอบ
ผู้เขียนจะทดสอบการอ่านค่าเซนเซอร์วัดอุณหภูมิและความชื้นสัมพัทธ์ทางไกล โดยใช้โปรโตคอล Modbus RTU รับส่งข้อมูลระหว่างโหนด MINILINK รุ่น S93-DTU โดยโหนด Slave ได้ถูกติดตั้งไว้บนสะพาน ส่วนโหนด Master จะอยู่ใกล้ริมฝั่งแม่น้ำ
โหนด Master ตัวแรก จะใช้โปรแกรม Modbus Poll อ่านค่าเซนเซอร์ แล้วเปิดดู Log Communication (Send and Receive Command) แสดงค่าที่อ่านได้จาก Modbus Register ส่วนโหนด Master ตัวที่สอง จะใช้โปรแกรม Node-RED อ่านค่าความแรงของสัญญาณ RSSI แล้วแสดงผลใน Debug ควบคู่กันไป
การทดสอบในครั้งนี้ มีระยะทางระหว่างโหนด Master และ Slave ประมาณ 500 เมตร ส่วนข้อมูลการทดสอบจะถูกจัดส่งขึ้น Cloud Stroage ผ่านเครือข่าย WiFi เพื่อนำไปวิเคราะห์ต่อไป
อุปกรณ์ที่ใช้ประกอบการทดสอบ
- คอมพิวเตอร์จำนวน 2 ตัว
- โหนด MINILINK รุ่น S93-DTU จำนวน 3 ชุด
- เซนเซอร์วัดอุณหภูมิและความชื้นสัมพัทธ์แบบ RS485 รุ่น XY-MD02 จำนวน 1 ตัว
- สายอากาศแบบภายนอกมีฐานเป็นแม่เหล็กและหัวคอนเนกเตอร์เป็นแบบ SMA มีอัตราการขยายสัญญาณ (Gain) 1-1.5 dBi จำนวน 3 ชุด
- แหล่งจ่ายไฟสำหรับโหนด Slave ใช้แบตเตอรี่ลิเธียมฟอสเฟต LiFePo4 มีแรงดันไฟประมาณ 13 Vdc
- แหล่งจ่ายไฟสำหรับโหนด Master ใช้ Power Bank แบตเตอรี่ชนิด Lithium — Ion 20000mAh/3.7V ที่สามารถจ่ายแรงดันไฟ DC 4–24V ได้
- USB to RS485 Serial Converter Cable รุ่น USB-RS485-WE-5000-BT จากผู้ผลิต Future Technology Devices International, Ltd. ดูรายละเอียดเพิ่มเติม ดาวน์ โหลด Data-sheet ได้ที่ลิงค์ข้างล่างนี้ https://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_USB_RS485_CABLES.pdf
โหนด Slave ผู้เขียนได้เตรียมกล่องใส่อุปกรณ์เพื่อใช้ในการทดสอบ กำหนดให้เป็นโหนดสำหรับวัดค่าอุณหภูมิและความชื้นสัมพัทธ์ พร้อมทั้งติดตั้งโหนด MINILINK รุ่น S93-DTU จากนั้นได้เชื่อมต่อสายเคเบิ้ลสื่อสารจากพอร์ต RS485 เข้าด้วยกัน
ซอฟต์แวร์ที่ใช้ประกอบการทดสอบ
- โปรแกรม Modbus Poll สำหรับทดสอบโปรโตคอล Modbus RTU
- โปรแกรม Nod-RED สำหรับสื่อสารกับโหนด MINILINK รุ่น S93-DTU ผ่านพอร์ต RS485 อ่านค่าความแรงของสัญญาณ (RSSI)
วิธีการทดสอบ
โหนด Slave
ผู้เขียนได้ให้ทีมงานจัดเตรียมโหนด Slave วางไว้บนสะพานริมทางเดิน พร้อมทั้งวางสายอากาศแบบภายนอกที่มีฐานเป็นแม่เหล็กเกาะไว้บนราวสะพาน การทำงานของโหนด Slave จะรอรับ Request จากโหนด Master ซึ่งเป็นไปตามโปรโตคอล Modbus RTU จะส่งข้อมูลตอบกลับไปถ้ามีการร้องขอมา ความถี่ที่ใช้ในการสื่อสารเป็นแบบ LoRa PtP Bride ใช้คลื่นความถี่ 922.0 MHz โหนดตั้งค่ากำลังส่ง RF ที่ไว้ 14dBm ถ้ารวม Gain ของสายอากาศแล้วจะมีกำลังส่งรวม E.I.R.P. ไม่เกิน 50mW
เซนเซอร์วัดอุณหภูมิและความชื้นสัมพัทธ์แบบ RS485 รุ่น XY-MD02 ที่ใช้ทดสอบ ใช้โปรโตคอลสื่อสารแบบ Modbus RTU ถูกตั้งค่า Modbus ID ให้เป็น 1 ใช้ Function Code 4 (Input Register) เพื่ออ่านค่า Analog Input จำนวน 2 Register ได้แก่ ค่าอุณหภูมิ (0x1) และค่าความชื้นสัมพัทธ์ (0x2) โดยค่าที่อ่านได้จะเป็นข้อมูลแบบ WORD ขนาด 2 Bytes (16 bits) หรือที่คุ้นเคยกัน เรียกว่า Unsigned 16-bit integer มีค่าตั้งแต่ 0 ถึง 65535 เป็นตัวเลขแบบจำนวนเต็ม การนำไปใช้งานต้องคูณด้วย 0.1 ก่อน ถึงจะเป็นค่าที่ถูกต้อง
ตัวอย่างข้อมูลที่อ่านได้
ค่าอุณหภูมิ 0x01 0x30 แปลงเป็นตัวเลขฐานสิบจำนวนเต็ม (UINT) ได้ 304 นำไปคูณ 0.1 จะได้ค่า 30.4 (°C)
ค่าความชื้นสัมพัทธ์ 0x02 0x1F แปลงเป็นตัวเลขฐานสิบจำนวนเต็ม (UINT) ได้ 543 นำไปคูณ 0.1 จะได้ค่า 54.3 (%RH)
แหล่งจ่ายไฟสำหรับโหนด Slave จะใช้พลังงานจากแบตเตอรี่ลิเธียมฟอสเฟต LiFePo4 3.2V 10Ah/32Wh จำนวน 4 ก้อน ต่ออนุกรมกัน จะได้แรงดันไฟประมาณ 13Vdc จ่ายไฟให้กับโหนด MINILINK รุ่น S93-DTU และเซนเซอร์วัดอุณหภูมิและความชื้นสัมพัทธ์แบบ RS485 รุ่น XY-MD02
โหนด Master
ผู้เขียนได้จัดเตรียมคอมพิวเตอร์จำนวน 2 ตัว เพื่อใช้ในการทดสอบ มีระยะทางการทดสอบจากโหนด Slave ถึงโหนด Master ประมาณ 500 เมตร
คอมพิวเตอร์ตัวแรก ใช้ระบบปฏิบัติการ Windows 11 ลงโปรแกรม Modbus Poll ตั้งค่าการเชื่อมต่อกับโหนด MINILINK รุ่น S93-DTU ที่ Baud Rate 9600 bps (8N1) กำหนดให้อ่านค่าเซนเซอร์วัดอุณหภูมิและความชื้นสัมพัทธ์แบบ RS485 รุ่น XY-MD02 ทุกๆ 10 วินาที จาก Input Register
ตัวอย่างชุดข้อความที่โหนด Master ส่งไปถาม (Request)
0x01 0x04 0x00 0x01 0x00 0x02 0x20 0x0B
ตัวอย่างชุดข้อความที่โหนด Slave ตอบกลับมา (Response)
0x01 0x04 0x04 0x01 0x30 0x02 0x1F 0xBA 0xDF
คอมพิวเตอร์ตัวที่สอง ใช้ระบบปฏิบัติการ macOS Ventura เวอร์ชั่น 13.0.1 ลงโปรแกรม Node-RED เวอร์ชั่น 3.0.2 ติดตั้งปลั๊กอิน “node-red-node-serialport” เพื่อเรียกใช้งานพอร์ต Serial ตั้งค่าการเชื่อมต่อกับโหนด MINILINK รุ่น S93-DTU ที่ Baud rate 9600 bps (8N1) ระหว่างเครื่อง Mac กับโหนด MiniLink สื่อสารข้อมูลผ่านพอร์ต RS485 โดยสาย USB to RS485 Serial รุ่น USB-RS485-WE-5000-BT
ค่าข้อมูลที่อ่านได้จาก Modbus Register บนพอร์ต RS485 จะเป็นแบบ Buffer แล้วถูกแปลงค่าโดย JavaScript ที่โหนด Function ให้เป็นค่าความแรงสัญญาณที่รับได้ Receive Signal Strength Indicator (RSSI) มีหน่วยเป็น dBm (decibels milliwatt) แสดงใน Debug โปรแกรม Node-RED
//Decode Script by Mr.Visit Wiangnak
//Convert Buffer to RSSI
//Dec 18, 2022
var b = msg.payload;
var rssi = -(256 - parseInt(b[0]));
msg.payload = {
rssi: rssi
}
return msg;
บทสรุป
การรับส่งข้อมูลระหว่างโหนด Master และ Slave ในระยะทางประมาณ 500 เมตร เป็นไปอย่างต่อเนื่อง สม่ำเสมอ มีความแรงของสัญญาณ (RSSI) อยู่ในช่วงระหว่าง -79 ถึง -109 dBm ถือว่าสัญญาณอยู่ในเกณฑ์ที่ดีมาก
การรับส่งข้อมูลโปรโตคอล Modbus RTU บนเครือข่าย LoRa PtP Bridge ระหว่างโหนด MINILINK S93-DTU แบบ Transparetn Mode สามารถสื่อสารกันได้อย่างถูกต้อง แม่นยำ ไม่พบข้อผิดพลาดใดๆ
กำลังส่ง RF ของโหนด MINILINK S93-DTU ที่ 14dBm บนคลื่นความถี่ 922.0 MHz กับสายอากาศที่มีอัตราการขยายสัญญาณไม่มากนัก (Gain 1–1.5 dBi) ที่เป็นไปตามข้อกำหนดของ กสทช เพียงพอต่อการนำไปใช้งาน
ข้อเสนอแนะเพิ่มเติม
ระดับความสูงที่ติดตั้งโหนด Slave อาจมีผลต่อค่าความแรงของสัญญาณ (RSSI) และตำแหน่งที่ทดสอบของโหนด Master หน้างานจริงอาจมีปัญหาสัญญาณรบกวน (Noise) เกิดขึ้นได้ ถ้าในบริเวณนั้นมีระบบการสื่อสารอื่นใช้งานอยู่ การทดสอบครั้งต่อไป จะนำทั้งสองประเด็นนี้มาเป็นตัวแปรร่วมให้การทดสอบด้วย
มาถึงส่วนสุดท้ายของบทความแล้ว ผู้เขียนคิดว่าท่านคงพอเห็นภาพแล้วว่า ตอนนี้ท่านจะนำโหนด MiniLink DTU ไปประยุกต์ใช้งานในด้านใดบ้าง ท่านใดที่มองหาโซลูชันแนวนี้อยู่ สามารถเข้าไปดูรายละเอียดเพิ่มเติม และดาวน์โหลด data-sheet ได้ที่ลิงค์นี้ http://www.saijai.tech/minilinkdtu/
ผู้เขียนมีความตั้งใจที่จะนำเสนอการใช้ IoT-LoRaWAN-NBIOT สำหรับพัฒนา SMART CITY เพื่อให้ผู้ที่สนใจนำไปพัฒนาต่อยอดสร้างนวัตกรรมใหม่ๆ ขอเป็นส่วนหนึ่งเล็กๆ น้อยๆ ช่วยผลักดันประเทศของเราให้เข้าสู่ยุคดิจิตอล Thailand 4.0 อย่างแท้จริง