[EP.1] ใช้ MINILINK S93-DTU อ่าน Modbus เซนเซอร์วัดอุณหภูมิตู้แช่เย็นส่งค่าขึ้นคลาวด์ผ่านเครือข่าย LoRaWAN

ลงไม้ลงมือ : “แนะนำโปรดักส์ใหม่จาก SAIJAI TECH เป็นบอร์ด LoRa PtP Bridge พร้อมตัวอย่างโค๊ด Arduino Sketch”
บทความ โดย… วิสิทธิ์ เวียงนาค

“ไม่ต้องเขียนโค๊ด ไม่ต้องคอนฟิก ใช้งานได้ทันที ”

MINILINK รุ่น S93-DTU (AS923–485) สามารถสื่อสารกันเองได้ ไม่จำเป็นต้องใช้ LoRaWAN Gateway และ Network Server ใช้ความสามารถของ LoRa PtP สื่อสารทางไกลแบบไร้สาย ลดความยุ่งยากในการเดินสายสัญญาณ ลดต้นทุนการบำรุงรักษา ทำให้การรับส่งข้อมูลโปรโตคอล Modbus RTU (RS458) เป็นเรื่องง่ายๆ เหมาะสำหรับงานอุตสาหกรรม งานเกษตรแม่นยำ งาน SmartCity และงานไอโอทีทั่วไป

รูปแสดง MINILINK S93-DTU

หนึ่งในปัญหาที่ชวนปวดหัวของการนำโซลูชั่นไอโอทีมาประยุกต์ใช้ ก็คือการเดินสายสัญญาณ โดยเฉพาะอย่างยิ่งในโรงงานอุตสาหกรรม ต้นทุนการติดตั้งส่วนใหญ่ก็อยู่ในจุดนี้ และอีกปัญหาที่เจอกันบ่อยๆ คือการเพิ่มเติมและย้ายจุดติดตั้ง เพราะนอกจากจะต้องรื้อสายสัญญาณเดิมออกแล้ว ยังต้องเดินสายสัญญาณใหม่อีกด้วย

เซนเซอร์ที่ใช้โปรโตคอลสื่อสารแบบ Modbus RTU ผ่านพอร์ต RS485 ยังได้รับความนิยมใช้งานจากอดีตมาถึงปัจจุบัน ทั้งในงานอุตสาหกรรม งานเกษตรแม่นยำ และงานไอโอทีทั่วไป เพราะใช้งานง่ายมีเซนเซอร์ให้เลือกใช้หลากหลาย แต่การสื่อสารระหว่างกันยังต้องอาศัยใช้สายสัญญาณ (Wire Cable) อยู่

จะดีไหม ถ้าเซนเซอร์เหล่านี้สามารถสื่อสารแบบไร้สายได้ ?
โปรโตคอลสื่อสารยังเป็น Modbus RTU เหมือนเดิม ?
ใช้งานร่วมกันระหว่างสายสัญญาณและไร้สายได้อย่างต่อเนื่อง ?

จากคำถามที่กล่าวมา วันนี้เราจะมาทำความรู้จักโปรดักส์ใหม่ MINILINK S93-DTU (LoRa PtP) ที่ออกแบบมาแก้ปัญหาเรื่องการสื่อสารข้อมูลให้เป็นเรื่องง่ายๆ พร้อมทั้งทำงานได้อย่างเสถียร อุปกรณ์เกรดอุตสาหกรรมที่มีราคาคุ้มค่าต่อการนำไปใช้งาน

MINILINK S93-DTU คืออะไร?

MiniLink DTU เป็นอุปกรณ์โหนดไอโอที ที่ไม่ต้องเขียนโค๊ด ไม่ต้องคอนฟิก พร้อมใช้งานจริงได้ทันที สามารถสื่อสารข้อมูลจากพอร์ต RS485 ส่งสัญญาณผ่าน LoRa PtP มีระยะการส่งสัญญาณได้ไกลประมาณ 1 กิโลเมตร ถึงแม้กำลังส่ง EIRP จะตั้งค่าเพียงแค่ 14 dBm และใช้สายอากาศที่มีเกณฑ์ขยายไม่มาก 1.5 dBi

หลักการทำงานของ LoRa PtP คือการเปลี่ยนจากสายสัญญาณเคเบิ้ลทองแดง เป็นการสื่อสารไร้สายแทน ที่ยังรองรับโปรโตคอล Modbus RTU ทำให้ลดการเดินสายเคเบิ้ล ลดค่าใช้จ่ายไปได้มาก สะดวกสบายในการติดตั้ง สามารถติดตั้งเข้ากับรางแบบ DIN RIAL ได้ทันที

รูปแสดง MINILINK S93-DTU

ฟีเจอร์หลัก :

  1. มีโมดูล LoRa AS923 มาพร้อมบอร์ด
  2. พอร์ต RS485 โปรโตคอล Modbus RTU
  3. หัวคอนเนคเตอร์สายอากาศแบบภายนอก Female SMA
  4. รองรับการสื่อสารทางไกลแบบ LoRa Bridge
  5. วัสดุทำจากพลาสติกทนความร้อน ป้องกันไฟไหม้
  6. สามารถติดตั้งบนราง Din Rial ได้
ตารางฟีเจอร์ของ MINILINK S93-DTU
รูปแสดง ขนาดกล่อง MINILINK S93-DTU

Case Study

ในบทความนี้ ผู้เขียนจะแชร์ประสบการณ์จากการที่ได้นำเอา MINILINK S93-DTU ไปใช้งานจริงในโรงงานเพื่อวัดอุณหภูมิตู้แช่เย็น ตู้แช่แข็ง ห้องเย็น ส่งค่าขึ้นคลาวด์ผ่านเครือข่าย LoRaWAN โดยมี Network Diagram บางส่วนตามรูปข้างล่างนี้

รูปแสดง Network Diagram ของโครงการ Temperature Monitoring

โครงการนี้ เป็นการเฝ้าระวังการทำงานของตู้แช่เย็น มีจำนวนทั้งหมดมากกว่า 100 ตู้โดยการเก็บข้อมูลอุณหภูมิในตู้แช่เย็นทุกๆ 5 นาที แต่ละตู้มีอุณหภูมิแตกต่างกันออกไปแล้วแต่การใช้งาน บางตู้มีอุณหภูมิต่ำสุด -30 C ส่งข้อมูลไปเก็บยังคลาวด์ ถ้าพบว่าอุณหภูมิมีแนวโน้มผิดปกติจะทำการส่งการแจ้งเตือนโดย Line Notify ไปยังผู้ที่เกี่ยวข้องที่ได้ลงทะเบียนไว้ในระบบ

กล่อง IoT หนึ่งชุด ประกอบไปด้วย (1) MINILINK S93-DTU มีหัวคอนเน็กเตอร์สายอากาศชนิด RP SMA เชื่อมต่อกับสายอากาศ LoRa ภายนอก ยาว 1 เมตร Gain 1.5 dBm ฐานสายอากาศมีแม่เหล็กสามารถยึดจับกับโลหะได้ และ (2) Temperature Module มีพอร์ตให้เชื่อมต่อกับเซนเซอร์วัดอุณหภูมิสูงสุดจำนวน 8 พอร์ต และมีพอร์ต RS485 Modbus RTU เชื่อมต่อกับ MINILINK S93-DTU (3) แหล่งจ่ายไฟ (Power Supply) DC 12V 2.5A จ่ายพลังงานให้กับอุปกรณ์ทั้งคู่

รูปแสดง ชุดอุปกรณ์ MINILINK S93-DTU พร้อมเซนเซอร์

การเชื่อมต่อระหว่าง Temperature Module กับ MINILINK S93-DTU จะใช้การสื่อสารอนุกรม (Serial-based Protocol) แบบ Master/Slave โปรโตคอล Modbus RTU ผ่านพอร์ต RS485 ตั้งค่า baud rate 9600 bps (8N1) โดย Temperature Module จะถูกกำหนดให้เป็น Modbus Slave มีจำนวน 6 ตัว แต่ละตัวจะตั้งค่า Modbus id ไม่ให้ซ้ำกัน เร่ิมตั้งแต่ id=1 ถึง id=6 การสื่อสารข้อมูลระหว่าง MINILINK S93-DTU กับ IIoT MiniLink (Gateway) จะใช้โปรโตคอล Modbus RTU ผ่านพอร์ต RS485 เช่นเดียวกัน

จากรูป Network Diagram ของโครงการ Temperature Monitoring ที่แสดงด้านบน จะเห็นได้ว่า MINILINK S93-DTU จะเป็นเพียงแค่ทางผ่านข้อมูลโปรโตคอล Modbus RTU หรือเรียกได้ว่ามันคือ Bridge ที่ทำหน้าที่เพียงแค่ส่งข้อมูลไปกลับเท่านั้นเอง เปรียบได้เป็นสายเคเบิ้ลทองแดงเส้นหนึ่งที่ใช้การสื่อสารไร้สายผ่าน LoRa PtP แทน โดยข้อมูลยังคงอยู่ครบและโปรโตคอล Modbus RTU ยังใช้งานได้อย่างต่อเนื่อง

รูปแสดง ตัวอย่างตู้แช่เย็นบางส่วนที่ใช้ในโครงการ

Arduino Sketch

โค๊ดสำหรับ Arduino Sketch ของโหนด IIoT MiniLink (Gateway) ผู้เขียนจะเรียกใช้ Library (1) ModbusMaster สำหรับการสื่อสารโดยโปรโตคอล Modbus RTU และ (2) SaiJai สำหรับการสื่อสาร LoRaWAN

การดึงข้อมูลเซนเซอร์โดยโปรโตคอล Modbus RTU จะใช้ตาราง Register Address ตามรูปข้างล่างนี้

ตาราง Register Address ของ Temperature Module

การอ่านค่าเซนเซอร์วัดค่าอุณหภูมิ จะเขียนโปรแกรมสั่งการในฝั่งของโหนด IIoT MiniLink (Gateway) ที่ถูกกำหนดให้เป็น Modbus Master ส่ง Request แบบไร้สายผ่าน MINILINK S93-DTU ไปยัง Modbus Slave (Temperature Module) ทีละตัวโดยใช้ Function Code 3 อ่าน Read Holding Register อ่านที่ Starting Register Address = 0000 อ่านค่ามา 8 Registers แล้วส่ง Uplink Payload ผ่านเครือข่าย LoRaWAN ไปยังคลาวด์

ตัวอย่าง Arduino Sketch ที่ใช้ในโครงการนี้

//MiniLink-DTU - LoRaWAN uplink
//Modbus Temperature Sensor
//9-Oct-2022 by Mr.Visit W.
//www.saijai.tech

#include <ModbusMaster.h>
#include <HardwareSerial.h>
#include "SaiJai.h"
#define MAX485_DE 4

HardwareSerial ModbusSerial(1);
ModbusMaster node;
SaiJai lora;

uint32_t last;
uint8_t result, i, id;
char hex[8][5]; //8xsensors, 2xbytes
char id_hex[3]; //nodeid, 1xbyte
String payload;

void setup() {

Serial.begin(9600);
Serial2.begin(9600); //LoRaWAN module

pinMode(MAX485_DE, OUTPUT); //modbus direction
digitalWrite(MAX485_DE, LOW);

ModbusSerial.begin(9600 , SERIAL_8N1, 19, 18); //rx,tx modbus
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
}

void loop() {

if (millis() - last >= 300000) { //uplink every 5 minute
last = millis();

//6xnodes uplink payload
for (id = 1; id <= 6; id++) {
node.begin(id, ModbusSerial);
result = node.readHoldingRegisters(0, 8);

//wait read data
delay(1500);
Serial.println("modbus id: " + String(id));
if (result == node.ku8MBSuccess) {

//clear array
memset(hex, 0, sizeof(hex));

//convert payload to hex string
for (i = 0; i < 8; i++)
sprintf(hex[i], "%04x", node.getResponseBuffer(i));

//convert id to hex string
sprintf(id_hex, "%02x", id);

//combine payload
payload = "";
payload += id_hex;
for (i = 0; i < 8; i++)
payload += String(hex[i]);

Serial.println(payload);

//uplink payload to lorawan
lora.join();
lora.sendb(78, payload);
} else {
Serial.println("timeout!");
}
delay(2500);
} //for
} //if
}

void preTransmission() {
digitalWrite(MAX485_DE, 1);
}

void postTransmission() {
digitalWrite(MAX485_DE, 0);
}

หลังจากโหลด Arduino Sketch ไปยังโหนด IIoT MiniLink (Gateway) แล้ว โหนดจะร้องขอการเชื่อมต่อ OTAA JOIN ไปยัง LoRaWAN Gateway และ Network Server ถ้าการเชื่อมต่อสำเร็จ โหนดจะเริ่มอ่านข้อมูลจากเซนเซอร์ตามลำดับและตามรอบเวลาที่กำหนด แล้วส่ง Uplink Payload ไปยัง Network Server ที่อยู่บนคลาวด์

รูปแสดง Uplink Payload ที่ได้รับจาก IIoT MiniLink (Gateway) บน Network Server

หลังจากที่ Network Server ได้รับ Uplink Payload แล้ว จะทำการ Decode Payload ให้อยู่ในรูปแบบ JSON นำไปเก็บในฐานข้อมูลแบบเรียลไทน์ต่อไป ในการแสดงผลข้อมูลให้อยู่ในรูปของ Visualization ผู้เขียนเลือกใช้ Grafana พร้อมทั้งตั้งค่า Alert ในกรณีที่พบค่าอุณหภูมิ มีแนวโน้มที่ผิดปกติ พร้อมส่งการแจ้งเตือนผ่านทางช่องทาง Line Notify

รูปแสดง ตัวอย่างกระดานแสดงผลกราฟอุณหภูมิในโครงการ

ข้อสรุปโดนใจ

หลังจากที่ได้นำโหนด MINILINK S93-DTU ไปใช้งานจริง

  1. ไม่ต้องเดินสายสัญญาณระหว่างโหนด ทำให้ลดเวลาในการติดตั้ง ลดค่าใช้จ่ายในการเปิดฝ้า ร้อยท่อ และค่าบำรุงรักษา ไปได้มาก
  2. ไม่ต้องเขียนโค๊ด ไม่ต้องคอนฟิก เพียงแค่ต่อสายเซนเซอร์ A/B จากพอร์ต RS485 เข้ากับ MINILINK S93-DTU ก็ใช้งานได้ทันที สะดวกและง่ายมากๆ
  3. MINILINK S93-DTU รองรับโปรโตคอล Modbus RTU ทำให้ประยุกต์ใช้กับเซนเซอร์ได้หลากหลาย ทั้งงาน Monitor และงานควบคุมสั่งการ
  4. อุปกรณ์ออกแบบให้ใช้ในโรงงาน สามารถติดตั้งบน DIN RAIL ได้ทันที รองรับใช้ไฟ DC 12/24V และใช้พลาสติกแบบทนไฟ ทนความร้อนสูง มีหัวคอนเน็กเตอร์เชื่อมต่อแบบถอดเข้า ถอดออกได้ เพิ่มความสะดวกในการเชื่อมต่อสายสัญญาณ

ตัวอย่างโครงการที่นำ MiniLink DTU ไปใช้งานจริง

รูปแสดง ตัวอย่าง Diagram การนำ MiniLink DTU ไปประยุกต์ใช้งาน

IoT Energy Meter Monitoring

การนำ MiniLink DTU ไปประยุกต์ใช้สำหรับตู้ IoT เฝ้าระวังการใช้พลังงาน Smart Meter ทางไกลโดยโปรโตคอล Modbus RTU ผ่านเครือข่าย LoRa PtP Bridge

รูปแสดง ตู้ IoT เฝ้าระวังการใช้พลังงาน Smart

IoT Environment Monitoring and Control

การนำ MiniLink DTU ใช้สำหรับตู้ IoT วัดสภาพแวดล้อม คุณภาพอากาศและควบคุมคอนโทลทางไกลโดยโปรโตคอล Modbus RTU ผ่านเครือข่าย LoRa PtP Bridge

รูปแสดง ตู้ IoT วัดสภาพแวดล้อม คุณภาพอากาศและควบคุมคอนโทลทางไกล

IoT Water Quality Monitoring

การนำ MiniLink DTU ใช้สำหรับตู้ IoT วัดคุณภาพน้ำทางไกลโดยโปรโตคอล Modbus RTU ผ่านเครือข่าย LoRa PtP Bridge

รูปแสดง ตู้ IoT วัดคุณภาพน้ำทางไกล

มาถึงส่วนสุดท้ายของบทความแล้ว ผู้เขียนคิดว่าท่านคงพอเห็นภาพแล้วว่า ตอนนี้ท่านจะนำโหนด MiniLink DTU ไปประยุกต์ใช้งานในด้านใดบ้าง ท่านใดที่มองหาโซลูชันแนวนี้อยู่ สามารถเข้าไปดูรายละเอียดเพิ่มเติม และดาวน์โหลด data-sheet ได้ที่ลิงค์นี้ http://www.saijai.tech/minilinkdtu/

ผู้เขียนมีความตั้งใจที่จะนำเสนอการใช้ IoT-LoRaWAN-NBIOT สำหรับพัฒนา SMART CITY เพื่อให้ผู้ที่สนใจนำไปพัฒนาต่อยอดสร้างนวัตกรรมใหม่ๆ ขอเป็นส่วนหนึ่งเล็กๆ น้อยๆ ช่วยผลักดันประเทศของเราให้เข้าสู่ยุคดิจิตอล Thailand 4.0 อย่างแท้จริง

ติดตามข่าวสารทาง facebook ได้ที่ลิงค์นี้
Facebook กลุ่ม IoT-SmartCity
Website SaiJai Tech

--

--

No responses yet