ทดสอบ AIS NBIOT Tracking
ลงไม้ลงมือ : “ทดสอบ AIS NBIOT Tracking”
บทความ โดย… วิสิทธิ์ เวียงนาค
เดือนที่ผ่านมา ผมมีโอกาสเดินทางไปจังหวัดเชียงใหม่ ตัดสินใจไม่นั่งเครื่องบินไป แต่จะขับรถไปเอง ทำให้มีเป้าหมายใหม่ในการเดินทางครั้งนี้ นั่นก็คือ การทดสอบสัญญาณ NBIOT ของ AIS นั่นเอง ด้วยความสงสัยว่าจากกรุงเทพไปเชียงใหม่จะมีสัญญาณ NBIOT คลอบคลุมแค่ไหนและเป็นเพื่อนตลอดเดินทางหรือไม่ บริเวณเขาแถวๆ เถิน ลำปาง ดอยขุนตาล สัญญาณมันจะเป็นอย่างไร เป็นคำถามที่อยากหาคำตอบ แต่คงไม่มีใครให้คำตอบได้ดีกว่าการได้ ลงไม้ลงมือ ด้วยตัวเอง ก่อนเริ่มเดินทางเพียงแค่ 2 วันก็ได้จัดเต็มงาน DIY สำหรับงานนี้กันโดยเฉพาะเลยทีเดียว
อุปกรณ์การทดสอบ
การทดสอบในครั้งนี้ ผมได้ไปขุดเอาบอร์ดทดลองมาปัดฝุ่นใช้งาน มันคือบอร์ด SaiJai รุ่นแรก เป็นบอร์ดที่มีความพิเศษมันเป็นบอร์ดมัลติฟังก์ชัน รองรับการทำงานได้หลากหลาย มีความสามารถหลักๆ ได้ดังต่อไปนี้
1.สามารถใส่ LoRaWAN / NBIOT Shield ได้
2.มีรีเลย์ 2 ตัวอยู่บนบอร์ดมาให้พร้อมเลย
3.สามารถเพิ่มเซ็นเซอร์ MPU-9250 วัดความเอียง วัดมุม วัดความเร่ง ได้
4.มีเซ็นเซอร์วัดอุณหภูมิบนบอร์ด
5.มีโมดูลชาร์จแบตเตอรี่แบบ Lithium และวงจรป้องกันในตัว
6.สามารถ monitor โวลต์ของแบตเตอรี่และแผงโซล่าเซล์ ได้
7.ต่อแผงโซล่าเซล์ภายนอกเพื่อชาร์จแบตเตอรี่ได้
8.สามารถเพิ่มโมดูล RTC Clock ได้
9.ใส่โมดูลสื่อสารได้
10.รองรับโมดูล Modbus RS485
บอร์ด SaiJai นี้ ทำมาตั้งแต่ต้นปี 2018 ใช้ MCU ออกจะรุ่นเก่าสักหน่อย แต่ก็ใช้งานได้เป็นอย่างดี นั่นก็คือ ATmega328 ความเร็ว 16MHz ทำงานอยู่บนบอร์ดขนาดเล็ก Arduino Pro Mini ภายในบอร์ดยังสามารถต่อแผงโซล่าเซล์ภายนอกได้อีกเพื่อเป็นแหล่งจ่ายพลังงานอีกทาง ซึ่งแผงโซล่าเซล์ที่ใช้สำหรับการทดสอบครั้งนี้ก็ขนาดไม่ใหญ่มากนักให้กระแสไฟ 1W ที่แรงดันไฟ 6VDC ใช้แบตเตอรี่ 18650 แบบ Lithium จำนวน 2 ก้อน ก้อนละ 2200 mAh แล้วก็ถอดโมดูลที่ไม่ได้ใช้งานออก เช่น Modbus RS485, RTC clock, G-Sensor และโมดูลสื่อสาร เพื่อประหยัดพลังงาน ส่วน GPS ผมได้เลือกใช้โมดูลยอดนิยมราคาถูก นั่นก็คือ u-blox NEO-6M นั่นเอง จริงๆ ก็มีอยู่หลายรุ่นแต่จะขอลองตัวนี้ดู จากนั้นนำ shiled NBIOT ของ AIS พร้อมเสาอากาศมาประกอบติดตั้ง
ซอฟต์แวร์
ผมได้พัฒนาโค๊ดใน Arduino IDE ให้บอร์ดรับค่าตำแหน่งพิกัดจาก GPS ทุกๆ 1 นาที จากนั้นให้ส่งต่อข้อมูลไปให้ Shield NBIOT แล้วกำหนดส่งข้อมูลด้วยโปรโตคอล UDP ไปยัง UDP Cloud Server ซึ่งผมได้ตั้งขึ้นมาใช้งานเอง พัฒนาด้วย NodeJS และยังสร้างเงื่อนไขในการแจ้งเตือน ถ้าส่งข้อมูลไปยัง UDP Cloud Server สำเร็จให้ buzzer ส่งเสียงดัง 0.5 วินาทีด้วย
นำข้อมูลตำแหน่งพิกัด GPS ที่ได้ไปเข้าฟังก์ชัน Decode Payload เพื่อแปลงข้อมูล String ที่ได้รับมาให้อยู่ในรูปแบบของ JSON และเพิ่มค่าพารามิเตอร์บางตัว เช่นสีของตัว marker ก่อนที่จะส่งไปเก็บใน TimeSeries Database
ข้อมูล (Payload) ที่ส่งจากบอร์ด SaiJai ไปให้ UDP Cloud Server ผ่านทาง AIS NBIOT จะอยู่ในรูปแบบ String แบบง่ายๆ ใช้เครื่องหมาย “,” คั่นระหว่างข้อมูลคล้ายๆ กับข้อมูลแบบ CSV ที่คุ้นเคยกัน มีรูปแบบข้อมูลดังนี้
“name, lat, lon, satellites, altitude, degree, speed” ยกตัวอย่างเช่น
“SMMS-1,18.3466,99.756607,5,500.1,10,60”
ใช้ JavaScript ทำการ Decode Payload โดยใช้เครื่องหมาย “,” เป็นตัวแยก String แล้วนำค่าที่แยกได้ไปสร้างเป็นตัวแปรใหม่แบบ Array ชื่อ data[]
จากตัวอย่างข้อมูล Payload ข้างบน ตัวแปร data[] จะมีค่าดังนี้
data[0] = “SMMS-1” //ชื่ออุปกรณ์
data[1] = “18.3466” //latitude
data[2] = “99.756607” //longitude
data[3] = “5” //satellites
data[4] = “500.1” //altitude
data[5] = “10” //degree
data[6] = “60” //speed
//Script for decode payloadvar str = msg.payload;
var data = str.slice(0).split(',');
var mytime = new Date().toString();
var mycolor = "#76D7C4";msg.payload = {"name": data[0] + "-" + mytime,
"lat": parseFloat(data[1]),
"lon": parseFloat(data[2]),
"satellites": parseInt(data[3]),
"altitude": parseFloat(data[4]),
"degree": parseFloat(data[5]),
"speed": parseFloat(data[6]),
"logtime": mytime,
"type": "NBIOT",
"icon": "taxi",
"iconColor": mycolor}return msg;
Script Decode Payload ข้างบน ได้เพิ่มข้อมูลใหม่บางตัวเข้าไปด้วย ก่อนที่จะสร้างเป็นตัวแปร JSON และส่งค่าตอบกลับไป นั่นก็คือ type , icon , iconColor, logtime นอกจากนี้ยังได้ทำการแปลงข้อมูล Latitude และ Longitude ให้อยู่ในรูปแบบ ของ “geohash” แล้วเก็บบันทึกไว้ใช้อีกด้วย
“geohash คือมาตรฐานการเข้ารหัสพิกัดภูมิศาสตร์ lat,lon ที่ได้จาก GPS ให้เป็นอักขระสั้น กระชับ เพื่อความสะดวกในการใช้งาน สามารถนำไปประยุกต์ใช้งานทางด้านไอที เช่นการทำแผนที่แสดง tracking ตำแหน่งพิกัด ความยืดหยุ่นของ Geohash คือ “ละหน้า ลดหลัง” ได้ สามารถดูรายละเอียดเพิ่มเติมได้ที่ http://geohash.org”
ส่วนการเก็บข้อมูลในการทดสอบครั้งนี้จะใช้ Time series database (TSDB) ซึ่งมันเปรียบเสมือนระบบจัดการข้อมูลจำนวนมากในช่วงของเวลา โดยจะเก็บข้อมูลอย่างต่อเนื่อง ซึ่งจะทำให้เห็นการเปลี่ยนแปลงของข้อมูลตลอดเวลา สามารถนำมาประยุกต์ใช้งานในด้านต่างๆ เช่น การเก็บข้อมูลที่มาจากเซ็นเซอร์ IoT แบบงานทดสอบครั้งนี้ รูปด้านล่างจะเป็นตัวอย่างของข้อมูลบางส่วนที่ปรับแต่งแล้ว และเก็บบันทึกไว้ใน Time series database (TSDB)
ส่วนการแสดงผล จะสร้างแผนที่รอไว้ ซึ่งจะมีมุมมองแบบแผนที่ถนนทั่วไปและแผนที่รูปถ่ายทางดาวเทียม สามารถ query ข้อมูลแล้วแสดงตำแหน่งพิกัด GPS ที่เก็บไว้ใน Database แสดงผลในรูปแบบ Tracking ผ่านทาง Web Browser
การแสดงจุดตำแหน่งพิกัด (marker) ถ้ามีการซูมออกไประยะหนึ่งแล้ว ตัว marker จะรวมตัวกันสร้างเป็น group ขึ้น แล้วแสดงจำนวนทั้งหมดที่อยู่ใน group การทำแบบนี้จะทำให้แผนที่ดูไม่รกจนเกินไป
การทดสอบ
ก่อนวันเดินทางได้ทำการชาร์จไฟแบตเตอรี่ให้เต็มก่อนด้วย AC adaptor จากนั้นนำกล่องอุปกรณ์ NBIOT Tracking ที่ได้โปรแกรมไว้เรียบร้อย วางไว้ที่หน้าคอนโซลรถยนต์ (Pajero Sport) ให้แผงโซล่าเซล์โดนแสงแดดเพื่อชาร์จไฟตลอดเส้นทางเดินทาง ไม่ได้ต่อแหล่งจ่ายไฟจากข้างนอก ใช้พลังงานจากแบตเตอรี่ภายในอย่างเดียว
หลังจากเปิดสวิตซ์ไฟให้บอร์ดทำงานแล้ว จะได้ยินเสียง buzzer ส่งเสียงยาว 1 วินาที จำนวน 2 ครั้งติดกัน หมายความว่า GPS โมดูลกำลังขอข้อมูลจากดาวเทียม ในช่วงขั้นตอนนี้ถ้าฟ้าโปร่งหน่อยจะใช้เวลาน้อยกว่า 1 นาที แต่ถ้าฟ้าปิด หรืออยู่ในที่มีสัญญาณจากดาวเทียมน้อยละก็ อาจใช้เวลามากถึง 5–20 นาทีเลยทีเดียว หลังจากที่โมดูล GPS ได้รับข้อมูลจากดาวเทียมเพียงพอแล้ว มันจะส่งเสียงดังยาว 0.5 วินาที จำนวน 1 ครั้ง หมายความว่าบอร์ดได้ส่งข้อมูลตำแหน่งพิกัดจาก GPS ผ่านเครือข่าย AIS NBIOT ไปยัง UDP Cloud Server สำเร็จ โดยบอร์ดจะส่งข้อมูลทุกๆ 1 นาทีตามที่ได้ตั้งค่าโปรแกรมไว้
ข้างล่างเป็นตัวอย่างข้อมูลที่ได้รับจากบอร์ด SaiJai ในรูปแบบ JSON และได้ปรับแต่งเพิ่มเติมแล้ว เป็นข้อมูลที่พร้อมเก็บในฐานข้อมูล Time series database (TSDB)
{"time": "2018-11-29T06:46:45.164Z",
"name": "SMMS-1-Thu Nov 29 2018 13:46:45 GMT+0700 (+07)",
"lat": 18.3466,
"lon": 99.756607,
"geohash": "w5qbq5bs9",
"satellites": 5,
"altitude": 500.1,
"degree": 10,
"type": "NBIOT",
"icon": "taxi",
"iconColor": "#76D7C4"}
ถ้าเปิดดูแผนที่ในตอนนี้ ท่านก็จะเห็นจุดตำแหน่งพิกัด (marker) แสดงบนแผนที่แบบเรียลไทน์ ทันทีที่ UDP Cloud Server ได้รับข้อมูลตำแหน่งพิกัด GPS ใหม่ ก็จะนำข้อมูลที่ได้ไปปรับแต่งใหม่ จากนั้นจะส่งไปแสดงผลบนแผนที่ทันที ผมตั้งค่าไม่ให้ลบจุดตำแหน่งพิกัด (marker) เก่า เก็บไว้เพื่อแสดงให้เห็นเส้นทางการเดินทาง ดังนั้นท่านจะเห็นจุดตำแหน่งพิกัด (marker) เป็นจำนวนมากในแผนที่ ซึ่งการทดสอบในครั้งนี้ได้เก็บจุดตำแหน่งพิกัด GPS (marker) มากกว่า 20,000 จุดเลย
ผลการทดสอบ
ผมเริ่มออกเดินทางจากกรุงเทพตั้งแต่เช้า เวลา 06:00 อากาศค่อนข้างเย็นวันนั้น เปิดสวิตซ์ NBIOT Tracking แล้วออกจากรังสิตปทุมธานีมุ่งหน้าไปยังจังหวัดเชียงใหม่ ขับรถไปตามถนนสายเอเชียเรื่อยๆ ตั้งแต่ออกเดินทางไปจังหวัดนครสวรรค์ผมได้ยินเสียง buzzer เป็นเพื่อนเดินทางดังตลอดเส้นทาง เรียกว่าแทนเสียงเพลงได้เลย ดีแล้วที่ผมตั้งให้ส่งเสียงแค่ 0.5 วินาทีต่อครั้ง ไม่งั้นหนวกหูเป็นแน่ 😅😅😅 แสดงให้เห็นว่ามีสัญญาณ NBIOT คลอบคลุมตลอดเส้นทางเดินทาง
ใช้เส้นทางเลี่ยงเมืองจากจังหวัดนครสวรรค์เพื่อไปจังหวัดกำแพงเพชรต่อ สัญญาณ NBIOT ในบริเวณนั้นยังคงมีตลอดเส้นทาง ในช่วงเวลาขณะนั้นยังมีรถไม่มากนัก ถนนโล่งแต่ก็พยายามรักษาความเร็วให้สม่ำเสมอใช้ความเร็วโดนเฉลี่ยไม่เร็วกว่า 110 กม/ชม ไม่ได้ห่วงเรื่องสัญญาณ NBIOT นะครับ แต่กลัวเรื่องกล้องจับความเร็วที่มีตลอดเส้นทางมากกว่า 😅😅😅
มาถึงจังหวัดตากแวะซื้อกาแฟและเติมน้ำมัน ก็ยังพบว่ามีสัญญาณ NBIOT คลอบคลุมดี ตลอดเส้นทางส่งเสียงกันตลอดเลย แต่ก็เร่ิมมีสัญญาณหายบ้างในบริเวณทางผ่านบริเวณอำเภอเถินไปจังหวัดลำปาง ซึ่งสองข้างทางก็เริ่มมีต้นไม้สูงขึ้นหนาแน่นและเป็นพื้นที่ภูเขาสูง
ก่อนถึงตัวเมืองลำปาง บริเวณตัวอำเภอเกาะคา เร่ิมรู้สึกมีเสียงหายถี่บ่อยขึ้น พอเลยตัวเมืองลำปางไปแล้วไม่มาก แถวๆ ก่อนถึง บ้านกู่ด้าย มีเสียงหายยาวหน่อยช่วงนี้ ถ้าดูจากแผนที่จะเห็นจุดบริเวณนั้นที่มีจุด marker อยู่แค่จุดเดียว ก่อนทางขึ้นตอนขุนตาลยังพอมีสัญญาณ NBIOT แต่ก็เริ่มมีเสียงหายถี่เพิ่มมากขึ้นและนานขึ้น
บริเวณที่พบปัญหาสัญญาณ NBIOT ขาดหายมากที่สุดสำหรับการทดสอบในครั้งนี้ ก็แถวบริเวณทางลงดอยขุนตาลไปจังหวัดลำพูน บริเวณนี้ทำให้เสียงหายนานที่สุด และเสียหายถี่บ่อยที่สุด จนบางครั้งเผลอคิดไปว่าแบตเตอรี่ตัว Traking มันหมดหรือเปล่า เพราะมันเงียบไปนาน แต่หลังขับรถผ่าน บ้านป่าเส้า จังหวัดลำพูนไปแล้ว สัญญาณ NBIOT ก็กลับมาปกติดีอีกครั้ง มีสัญญาณดีตลอดเส้นทาง เสียงดังตลอดเส้นทางจนถึงจังหวัดเชียงใหม่เลย
ลองขยายดูละเอียดแผนที่ลงไป จะพบว่าทางสายหลักก่อนเข้าจังหวัดเชียงใหม่มีสัญญาณดี เป็นไปอย่างคลอบคลุมตลอดเส้นทางเดินทาง
พอถึงจังหวัดเชียงใหม่ ก็ขับรถสำรวจรอบนอก แถวๆ บริเวณตลาดสามแยก อำเภอสันทรายใกล้กับสำนักงาน AIS เชียงใหม่บิสสิเนสพาร์ค เริ่มหิวเลยตระเวนหาร้านข้าวกินกันครับ มีสัญญาณดีตลอดเหมือนกันสำหรับบริเวณนี้
สำหรับในกรุงเทพและปริมณฑลรอบนอก ผมก็เคยได้นำเอา NBIOT มาทดสอบ Tracking ด้วยเหมือนกัน สัญญาณที่ได้คลอบคลุมพื้นที่ได้ดีครับ ไม่มีปัญหาเรื่องสัญญาณแต่อย่างใด ถ้ามีโอกาสจะไปทดสอบรอบในต่อด้วยแน่นอน
สำหรับโมดูล GPS u-blox neo-6m ที่ได้นำมาใช้รับข้อมูลจากดาวเทียม การทดสอบในครั้งนี้ถือว่าทำงานได้เป็นอย่างดี ตำแหน่งพิกัดที่ส่งมาแสดงบนแผนที่ไม่มีตกขอบ ตกถนน แต่อย่างใด ตำแหน่ง marker ที่แสดงบนแผนที่ก็อยู่บนเส้นทางตลอด วันที่เดินทางช่วงนั้นเป็นช่วงอากาศเย็นพอดี ท้องฟ้าก็ไม่ได้เปิดมากมายนัก บางช่วงมีเมฆครึ้มด้วยซ้ำ แต่โมดูล GPS u-blox neo-6m ก็ไม่ทำให้ผิดหวัง
การทดสอบครั้งนี้ได้เก็บข้อมูลตำแหน่งพิกัด GPS ไว้ในฐานข้อมูล InfluxDB ซึ่งเป็น TimeSeries Database สร้างความประทับใจให้ผมมาก เพราะทำงานได้อย่างรวดเร็ว ตอบสนองการ query ได้ดีมาก เหมาะสำหรับนำมาเก็บข้อมูลจากเซ็นเซอร์ IoT เป็นอย่างมาก ในฐานข้อมูลมี ข้อมูลตำแหน่งพิกัด GPS มากกว่า 20,000 แถว ทดสอบลองดึงข้อมูลจาก TimeSeries Database จำนวน 16,000 แถว ทั้ง (field และ tag) แล้วนำข้อมูลตำแหน่งพิกัด GPS ที่ได้ไปพล๊อตแสดงบนแผนที่ ใช้เวลาดำเนินการและประมวลผลทั้งหมด 8 วินาที ถือว่าเยี่ยมมากครับ
สรุปผลการทดสอบ
สัญญาณ NBIOT ของ AIS เป็นที่น่าพอใจย่ิง 😀 คลอบคลุมตลอดเส้นทางเดินทาง จะมีก็เพียงแต่บริเวณเขาแถว ตาก เถิน ลำปาง ดอยขุนตาล ลำพูน หรือบริเวณที่มีต้นไม้หนาแน่น ที่สัญญาณขาดหายไปบ้าง แต่โดยรวมแล้ว ผมคิดว่าสามารถนำมาใช้ Tracking ติดตามยานพาหนะได้เป็นอย่างดี
ในการทดสอบในครั้งนี้ ได้ทดสอบเฉพาะเส้นทางหลักในการเดินทางเท่านั้น ครั้งหน้าถ้ามีโอกาสจะไปทดสอบเส้นทางรอง พื้นที่ห่างไกล และเส้นทางอื่นๆ ดูอีกทีครับ 👍
ผู้เขียนมีความตั้งใจที่จะนำเสนอการใช้ IoT-LoRaWAN-NBIOT สำหรับพัฒนา SMART CITY เพื่อให้ผู้ที่สนใจนำไปพัฒนาต่อยอดสร้างนวกรรมใหม่ๆ ขอเป็นส่วนหนึ่งเล็กๆ น้อยๆ ช่วยผลักดันประเทศของเราให้เข้าสู่ยุคดิจิตอล Thailand 4.0 อย่างแท้จริง