สร้างเครือข่ายแบบ Mesh ด้วย XBee Series 1

สร้างเครือข่ายแบบ Mesh ด้วย XBee Series 1

หลายๆ คนคงเคยได้ทราบข้อมูลของ Xbee กันมาพอสมควรแล้ว และก็คงทราบกันดีว่า การสร้างเครือข่ายแบบ Mesh นั้นจะ Support อยู่ที่ตัวโมดูลที่เป็น Series 2 ซึ่งเป็นเครือข่าย Mesh ที่เป็นไปตามมาตรฐานของ Zigbee แต่เมื่อบริษัท Digi ซึ่งเป็นผู้ผลิต Xbee ได้ออกผลิตภัณฑ์ตัวใหม่ออกมาและได้ตั้งชื่อว่า “DigiMesh”  ซึ่งตัว DigiMesh เป็นการนำเอา Xbee Series 1 มาพัฒนาให้สามารถสร้างเครือข่ายให้เป็น Mesh ได้ ทำให้ผู้ที่มี Xbee Series 1 สามารถ Upgrade Firmware ให้กลายเป็น DigiMesh ได้

DigiMesh VS Zigbee Mesh

DigiMesh เป็นรูปแบบการสร้างเครือข่ายแบบ Mesh ที่พัฒนาโดย Digi (บริษัทผู้ผลิต) ซึ่งมีโครงสร้างที่แตกต่างไปจากโครงสร้าง Mesh ตามมาตรฐานของ Zigbee ซึ่งก็มีข้อดีและข้อเสียที่แตกต่างกันไป

Zigbee Mesh

จากในบทความก่อน ๆ ได้อธิบายถึงโครงสร้างของ เครือข่ายแบบ Mesh เอาไว้แล้วซึ่งเครือข่ายแบบ Zigbee Mesh จะต้องประกอบไปด้วย

1) Coordinator  ซึ่งมีหน้าที่เป็นเหมือนกับแกนหลักของ เครือข่าย

2) Router เป็นตัวที่คอยถ่ายโอน ส่งต่อข้อมูลไปยัง Node อื่นๆ

3) End Device เป็น Node สุดท้ายของเครือข่าย สามารเข้าสู่โหมดประหยัดพลังงานได้

จะเห็นได้ ว่าในหนึ่งเครือข่ายนั้นต้องประกอบไปด้วย Node ที่ทำหน้าที่ เป็น Coordinator และ Router หรือ End Device  ซึ่งแกนหลักของเครือข่ายในแบบ Zigbee Mesh ก็คือ Coordinator และ นั่นก็น่าจะเป็นจุดอ่อนของระบบ Mesh แบบนี้ เช่น เมื่อ Coordinator เกิดมีปัญหาไม่สามารถใช้งานได้ นั่นก็หมายถึงเครือข่ายของเราทั้งหมดจะใช้งานไม่ได้ไปด้วย และด้วยข้อกำหนดที่กำหนดว่า อุปกรณ์ที่เป็น Coordinator และ Router จะต้อง On อยู่ตลอดเวลา จะมีเพียง Node ที่ทำหน้าที่เป็น End Device เท่านั้นที่จะสามารถเข้าสู่โหมดประหยัดพลังงาน (Sleep Mode )ได้ จึงทำให้ระบบทั้งหมดยังต้องใช้พลังอยู่มากกว่า ระบบของ DigiMesh อยู่

Digi Mesh

สำหรับ DigiMesh นั้นจากรูปจะเห็นได้ว่า ทุก Node มีสถานภาพที่เหมือนกันทุก Node และทุก Node มีความสามารถที่จะ ส่งผ่านข้อมูลให้กับตัวอื่นๆได้เหมือน Router ใน Zigbee Mesh จึงทำให้ระบบเครือข่ายของ DigiMesh ไม่ขึ้นกับ Node ใด Node หนึ่ง เมื่อมี Node ใดเสียหายไปจึงไม่มีผลกับ ระบบโดยรวมของเครือข่าย ซึ่งก็สามารถสร้างความมั่นคงให้กับเครือข่ายได้พอสมควร และ ในทุก Node ยังสามารถเข้าสู่โหมดประหยัดพลังงงานได้จึงทำให้ช่วยลดพลังงานได้มากขึ้น และ ด้วยความที่ทุกตัวมีหน้าที่การทำงานที่เหมือนกันไม่มีการแยกเป็น Coordinator, Router, End Device ทำให้ลดความยุ่งยากในการ Set up หน้าที่ให้กับ Node ต่างๆ และ สามารถขยายเครือข่ายได้ง่ายขึ้น 

ที่มา : Digi White Paper – Zigbee Mesh VS DigiMesh  

ตารางความแตกต่างระหว่าง Zigbee Mesh และ DigiMesh

วิธี Upgrade Xbee Series 1 ให้กลายเป็น DigiMesh

ทดลองใช้งาน

การทดลอง ผมได้ ทดลอง ตั้ง Destination ให้กับ Xbee คู่หนึ่งดังนี้

1) DH, DL ของ Xbee (A) ให้เป็น SH, SL ของ Xbee (B) ตามลำดับ

2) DH, DL ของ Xbee (B) ให้เป็น SH, SL ของ Xbee (A) ตามลำดับ

จากนั้น พบว่าสามารถรับส่ง Data กันได้ตามปรกติ และได้ทดลองตาม Step ดังนี้

Step1 แยก Xbee (A) ให้อยู่ไกลจาก Xbee (B) จนไม่สามารถรับส่ง Data กันได้

Step2 นำเอา Xbee C และ Xbee D ซึ่งกำหนด DH=0, DL=0xFFFF (Default) มาวางตรงกลางระหว่าง Xbee (A) และXbee (B) พบว่า Xbee (A) และ XBee (B) สามารถส่งข้อมูลหากันได้อีกครั้ง

Step3 ปิด Xbee (C) จะพบว่า Xbee (A) และ Xbee (B) ยังส่งข้อมูลหากันได้โดยใช้ Xbee (D) เป็นตัวกลางส่งผ่านข้อมูล

Step4 เปิด Xbee (C) และ ปิด Xbee (D)  จะพบว่า Xbee (A) และ Xbee (B) ยังส่งข้อมูลหากันได้โดยใช้ Xbee (C) เป็นตัวกลางส่งผ่านข้อมูล

เบื้องหลังการทดสอบ

การทดลองนี้ ผมได้ใช้ Xbee ถึง 4 ตัวในการทดลอง โดยใช้ Computer 1 เครื่องต่อกับ Xbee (A)  เป็นตัวส่งข้อมูลโดยส่งข้อมูล แบบ Manual (ใช้ X-CTU พิมพ์ส่ง) ส่วน Xbee (B)  ได้ต่อกับ Board Mini2440 โดยเขียนโปรแกรมรับส่ง Serial แบบง่ายๆ ขึ้นมา เมื่อ รับ Data อะไรมาให้ Return Data นั้นกลับไป (ถ้าหากไม่มีอุปกรณ์ให้ Jump ขา Rx,Tx ของ Xbee  เข้าหากัน ก็สามารถได้ผลลัพธ์เหมือนกัน)   Xbee (C) , Xbee (D) ใช้ USB HUB ต่อกับ Adaptor จ่ายไฟให้ USB

Xbee (A) กับ Computer

Xbee (B) กับ Mini2440

Xbee (C), Xbee (D)

โปรแกรมที่ใช้ทดสอบบน Mini2440