Xbee Basic Configuration in Network Application

Xbee Basic Configuration in Network Application

XBee เป็นอุปกรณ์ที่ใช้ รับส่งข้อมูลแบบไร้สาย และ สามารถสร้างระบบเครือข่ายขึ้นมาได้ โดย ZigBee ได้อ้างอิง มาตรฐานตาม IEEE 802.15.4 โดยสามารถแบ่ง หน้าที่การทำงานของ XBee ตามรูปแบบการสื่อสารในลักษณะต่างๆ ได้ อาทิ Coordinator, Router, End Device ในบทความนี้ทีมงาน ThaiEasyElec ขอนำเสนอการตั้งค่า Network แบบ Star, Cluster และ Mesh ด้วย Xbee ครับ

XBee Topology

ในการสร้างโครงข่ายไร้สายของ ZigBee นั้น จะต้องประกอบด้วย โหนด จำนวนอย่างน้อยที่สุด 2 ชนิด คือ Coordinator node และ node ลูกข่าย ชนิดใดชนิดหนึ่ง (Router/End device) จึงจะสามารถสื่อสารและทำงานในรูปแบบของ PAN (Personal area network) ได้ โดย ZigBee สามารถแบ่งรูปแบบ เครือข่ายได้เป็น 3 รูปแบบ ดังนี้

1) Star (Broadcast)

รูปที่ 1 Star (Broadcast) Network
2) Cluster Tree (Tree)

รูปที่ 2 Cluster Tree (Tree) Network  
3) Mesh

รูปที่ 3 Mesh Network

1) Star (Broadcast)
การเชื่อมต่อแบบ Star หรือแบบ Broadcast เป็นการรับส่งข้อมูลแบบ ไม่เฉพาะเจาะจง จุดหมายปลายทางหรือ XBee ทุกตัวที่อยู่ในระบบเครือข่ายเดียวกันสามารถ รับข้อมูลทุกข้อมูลได้ทุกตัว

รูปที่ 4 Star (Broadcast) Network

ตัวอย่างการใช้งานแบบ Star (Broadcast)
จากรูป ด้านบน การใช้งานแบบ Star จะประกอบไปด้วย XBee ที่ทำงานเป็น 2 รูปแบบคือ แบบที่1 เป็น Coordinator   ทำหน้าที่ สร้างเครือข่าย และ แบบที่ 2 เป็น End Device ทำหน้าที่เป็นลูกข่าย
การตั้งค่า XBee ให้ทำงานเป็น Coordinator
1) เข้าไปที่ Modem Configuration
2) เลือก Modem XBee ให้ตรงตามรุ่นที่ใช้ 
3) เปลี่ยน Firmware ให้เป็น ZIGBEE COORDINATOR AT (ใช้กับ XBee รุ่น XB24-ZB) หรือ ZNET 2.5 COORDINATOR AT  (ใช้กับ XBee รุ่น XB24-B)
(*** จากข้อ 2 , 3 และ 5 ท่านสามารถดูข้อมูลได้จากด้านใต้โมดูล ในแต่ละตัว)
4) ตั้ง PAN (Personal Area Network) สามารถตั้งได้ตามแต่ผู้ใช้จะกำหนด แต่ในที่นี้ผมจะตั้ง เป็น 100 (*** ท่านสามารถดูรายละเอียดการตั้งค่าต่างๆได้ จาก Datasheet หรือ คลิกบริเวณที่ต้องการรู้จะมีข้อมูลขึ้นมาแสดงด้านล่าง)
5) กำหนด Destination (จุดหมายที่ต้องการ รับส่งข้อมูลด้วย) โดย ตั้งค่า DH = 00 , DL =  FFFF

รูปที่ 5 ตัวอย่างการใช้งานแบบ Star (Broadcast) การตั้งค่า XBee ให้ทำงานเป็น Coordinator (ข้อ 1-5)

6) เลือกเครื่องหมายถูก ที่ Always Update Firmware แล้ว คลิก Write (*** XBee ที่ถูกกำหนดให้เป็น Coordinator จะไม่สามารถทำงานในโหมด ประหยัดพลังงานได้)

รูปที่ 6 ตัวอย่างการใช้งาน  แบบ Star (Broadcast) การตั้งค่า XBee ให้ทำงานเป็น Coordinator (ข้อ 6)

การตั้งค่า XBee ให้ทำงานเป็น End Device
1) เข้าไปที่ Modem Configuration
2) เลือก Modem XBee ให้ตรงตามรุ่นที่ใช้ 
3) เปลี่ยน Firmware ให้เป็น ZIGBEE END DEVICE AT   (ใช้กับ XBee รุ่น XB24-ZB) หรือ ZNET 2.5 ROUTER/END DEVICE AT (ใช้กับ XBee รุ่น XB24-B) (*** จากข้อ 2 , 3 และ 5 ท่านสามารถดูข้อมูลได้จากใต้โมดูล ในแต่ละตัว)
4) ตั้ง PAN (Personal Area Network) จะต้องตั้งให้เหมือนกับ Coordinator (*** ท่านสามารถดูรายละเอียดการตั้งค่าต่างๆได้ จาก Datasheet หรือ คลิกบริเวณที่ต้อนการรู้จะมีข้อมูลขึ้นมาแสดงด้านล่าง)
5) กำหนด Destination (จุดหมายที่ต้องการ รับส่งข้อมูลด้วย) โดยตั้งค่า DH = 00, DL = 00
6) กำหนด รูปแบบ การ Sleep ให้กับ End Device  ในที่นี้ได้กำหนดให้ใช้  SM = 4  คือ การ Sleep แบบ CYCLIC SLEEP จะหลับ และ ตื่น สลับกันไปอยู่ตลอดเวลา และ จะตื่นขึ้นมาทำงาน เมื่อถูกกระตุ้น ผ่าน ทาง UART หรือ ได้รับข้อมูลจาก Coordinator หรือ โหนดอื่นๆที่ทำการส่งข้อมูลผ่าน สามารถ กำหนดรายละเอียดต่างๆได้เพิ่มเติม เช่น  ST = หากไม่มีการทำงาน นานเท่าไรจึงจะเข้า sleep mode, SP = เวลาในการ หลับและตื่น สลับกัน

รูปที่ 7 ตัวอย่างการใช้งาน  แบบ Star (Broadcast) การตั้งค่า XBee ให้ทำงานเป็น End Device (ข้อ 1 – 6)

2) Cluster Tree
เป็นการ รับส่งข้อมูล แบบ ส่งผ่าน เช่น  A ต้องการติดต่อ กับ C แต่ C อยู่ไกลจาก A จน A ไม่สามารถ ติดต่อกับ C ได้ แต่พอดีมี B ที่อยู่ระหว่าง A กับ C ดังนั้น Cluster Tree จะใช้ B เป็นเหมือน ตัวกลาง เชื่อมการติดต่อ (Repeater) ระหว่าง A กับ C  

รูปที่ 8 Cluster Tree (Tree) Network
ตัวอย่างการใช้งานแบบ Cluster Tree
จากรูปภาพด้านบน จะพบว่า มีการใช้งาน XBee อยู่ 3 ลักษณะด้วยกันคือ 
1) Coordinator
2) End Device
3) Routers
การตั้งค่า XBee ให้ทำงานเป็น Coordinator
1) เข้าไปที่ Modem Configuration
2) เลือก Modem XBee ให้ตรงตามรุ่นที่ใช้ 
3) เปลี่ยน Firmware ให้เป็น ZIGBEE COORDINATOR AT(*** จากข้อ 2, 3 และ 5 ท่านสามารถดูข้อมูลได้จากใต้โมดูล ในแต่ละตัว  )
4) ตั้ง PAN (Personal Area Network) สามารถตั้งได้ตามแต่ผู้ใช้จะกำหนด แต่ในที่นี้ผมจะตั้ง เป็น 100 (*** ท่านสามารถดูรายละเอียดการตั้งค่าต่างๆได้ จาก Datasheet หรือ คลิกบริเวณที่ต้อนการรู้จะมีข้อมูลขึ้นมาแสดงด้านล่าง)
5) กำหนด Destination (จุดหมายที่ต้องการ รับส่งข้อมูลด้วย) และตั้งชื่อ Node โดย ตั้งค่าดังนี้
DH = 13A200 , DL = 405CA39D (13A200 405CA39D คือ เลข SH, SL ของ End Device ที่ใช้ในการทดลอง)
NI = CO   (ตั้งชื่อ Node ว่า CO)

6) เลือกเครื่องหมาย ถูก ที่ Always Update Firmware แล้ว คลิก Write

รูปที่ 9 ตัวอย่างการใช้งานแบบ Cluster Tree   การตั้งค่า XBee ให้ทำงานเป็น Coordinator (ข้อ 1-6)

การตั้งค่า XBee ให้ทำงานเป็น End Device
1) เข้าไปที่ Modem Configuration
2) เลือก Modem XBee ให้ตรงตามรุ่นที่ใช้ 
3) เปลี่ยน Firmware ให้เป็น ZIGBEE END DEVICE AT   (ใช้กับ XBee รุ่น XB24-ZB) หรือ ZNET 2.5 ROUTER/END DEVICE AT (ใช้กับ XBee รุ่น XB24-B) (*** จากข้อ 2, 3 และ 5 ท่านสามารถดูข้อมูลได้จากใต้โมดูล ในแต่ละตัว )
4) ตั้ง PAN (Personal Area Network) จะต้องตั้งให้เหมือนกับ Coordinator (*** ท่านสามารถดูรายละเอียดการตั้งค่าต่างๆได้ จาก Datasheet หรือ คลิกบริเวณที่ต้อนการรู้จะมีข้อมูลขึ้นมาแสดงด้านล่าง)
5) กำหนด Destination (จุดหมายที่ต้องการ รับส่งข้อมูลด้วย) และตั้งชื่อ Node โดย ตั้งค่าดังนี้
DH = 13A200 , DL = 405CA39C (13A200 405CA39C คือ เลข SH, SL ของ Coordinator ที่ใช้ในการทดลอง )
NI = END   (ตั้งชื่อ Node ว่า END)

รูปที่ 10 ตัวอย่างการใช้งานแบบ Cluster Tree   การตั้งค่า XBee ให้ทำงานเป็น End Device (ข้อ 1-5)
6) กำหนด รูปแบบ การ Sleep ให้กับ End Device ในที่นี้ได้กำหนดให้ใช้ SM = 4 คือ การ Sleep แบบ CYCLIC SLEEP จะหลับ และ ตื่น สลับกันไปอยู่ตลอดเวลา และ จะตื่นขึ้นมาทำงาน เมื่อถูกกระตุ้น ผ่าน ทาง UART หรือ ได้รับข้อมูลจาก Coordinator หรือ โหนดอื่นๆที่ทำการส่งข้อมูลผ่าน สามารถ กำหนดรายละเอียดต่างๆได้เพิ่มเติม เช่น ST = หากไม่มีการทำงาน นานเท่าไรจึงจะเข้า sleep mode, SP = เวลาในการ หลับและตื่น สลับกัน

รูปที่ 11 ตัวอย่างการใช้งานแบบ Cluster Tree การตั้งค่า XBee ให้ทำงานเป็น End Device (ข้อ 6)
การตั้งค่า XBee ให้ทำงานเป็น Router
1) เข้าไปที่ Modem Configuration
2) เลือก Modem XBee ให้ตรงตามรุ่นที่ใช้ 
3) เปลี่ยน Firmware ให้เป็น ZIGBEE ROUTER AT (ใช้กับ XBee รุ่น XB24-ZB) หรือ ZNET 2.5 ROUTER/END DEVICE AT (ใช้กับ XBee รุ่น XB24-B)
(*** จากข้อ 2, 3 และ 5 ท่านสามารถดูข้อมูลได้จากใต้โมดูล ในแต่ละตัว )
4) ตั้ง PAN (Personal Area Network) จะต้องตั้งให้เหมือนกับ Coordinator (*** ท่านสามารถดูรายละเอียดการตั้งค่าต่างๆได้ จาก Datasheet หรือ คลิกบริเวณที่ต้อนการรู้จะมีข้อมูลขึ้นมาแสดง ด้านล่าง)
5) กำหนด Destination (จุดหมายที่ต้องการ รับส่งข้อมูลด้วย) และตั้งชื่อ Node โดย ตั้งค่า DH = 00, DL = 00                 
NI = RO (ตั้งชื่อ Node ว่า RO)

รูปที่ 12 ตัวอย่างการใช้งานแบบ Cluster Tree   การตั้งค่า XBee ให้ทำงานเป็น Router (ข้อ 1-5)
การทดลองรับส่งข้อมูลผ่าน ระบบเครือข่ายแบบ Cluster Tree
ในการทดลองนี่เราจะรับส่งข้อมูลผ่าน   ระบบเครือข่ายแบบ Cluster Tree ซึ่งในช่วงแรกเราจะทำการเซตให้ Coordinator รับส่งข้อมูลกับ End Device โดยวิธีการรับส่งแบบ Peer to Peer แล้วจึงค่อยๆ เคลื่อนที่ End Device ออกห่างจาก Coordinator จน XBee ทั้งสองตัวไม่สามารถ รับส่งข้อมูลกันได้อีก จากนั้นจึงนำ XBee ที่ตั่งค่าให้ทำหน้าที่เป็น Router มาคั่นกลางระหว่าง Coordinator และ End Device และสังเกตผลจะพบว่าสามารถติดต่อได้
(***ท่านสามารถใช้ AT Command เช็คจำนวนสมาชิกที่อยู่ในเครือข่ายได้ด้วยคำสั่ง ATND )
ตัวอย่าง

รูปที่ 13 การ ทดลองรับส่งข้อมูลผ่าน ระบบเครือข่ายแบบ Cluster Tree

จากรูป 13 จะแสดงรายละเอียดของ Xbee แต่ละตัวที่อยู่ในเครือข่าย ซึ่งในรูปจะแสดงอยู่ 2 ตัว แต่ไม่รวมตัวที่ออกคำสั่ง ตัวที่ออกคำสั่ง ใช้คำสั่ง ATND[ENTER] (สีน้ำเงิน, เป็นการส่งคำสั่ง) ซึ่งเป็นการสั่งให้ค้นหา node อื่น ๆ และทำการายงานสถานะ หากท่านอยากทราบการใช้งานคำสั่งเบื้องต้น กรุณาอ่านเพิ่มเติมจากบทความ Zigbee and Xbee BASIC ตอน การใช้งาน Xbee เบื้องต้น
รายละเอียดแต่ละบรรทัด (ตอบกลับ, สีแดง) ดังนี้
MY<CR> 
SH<CR> 
SL<CR> 
NI<CR> (Variable length) 
PARENT_NETWORK ADDRESS (2 Bytes)<CR> 
DEVICE_TYPE<CR> (1 Byte: 0=Coord, 1=Router, 2=End Device) 
STATUS<CR> (1 Byte: Reserved) 
PROFILE_ID<CR> (2 Bytes) 
MANUFACTURER_ID<CR> (2 Bytes)

3) Mesh
การเชื่อต่อเครือข่ายแบบ Mesh เป็นโครงข่ายที่มีประสิทธิภาพสูงเนื่องจาก ข้อมูลสามารถส่งไปถึงเป้าหมายได้หลายทาง ทำให้ ระบบนี้สามารถรับส่งข้อมูลไปยังจุดหมายปลายทางได้ แม้จะเกิดความเสียหายของระบบในบางส่วนก็ตาม (ขึ้นอยู่กับ การออกแบบระบบของผู้ใช้ด้วย) ระบบนี้จึงเป็นระบบที่ได้รับความนิยมเป็นอย่างมาก

รูปที่ 14 Mesh Network

ตัวอย่างการใช้งานแบบ Mesh
จากรูปภาพด้านบน จะพบว่า มีการใช้งาน XBee อยู่ 2 ลักษณะด้วยกันคือ 
1) Coordinator
2) Routersการตั้งค่า XBee ให้ทำงานเป็น Coordinator
1) เข้าไปที่ Modem Configuration
2) เลือก Modem XBee ให้ตรงตามรุ่นที่ใช้ 
3) เปลี่ยน Firmware ให้เป็น ZIGBEE END DEVICE AT (ใช้กับ XBee รุ่น XB24-ZB) หรือ ZNET 2.5 ROUTER/END DEVICE AT (ใช้กับ XBee รุ่น XB24-B) (*** จากข้อ 2, 3 และ 5 ท่านสามารถดูข้อมูลได้จากใต้โมดูล ในแต่ละตัว  )
4) ตั้ง PAN (Personal Area Network) สามารถตั้งได้ตามแต่ผู้ใช้จะกำหนด แต่ในที่นี้ผมจะตั้ง เป็น 100 (*** ท่านสามารถดูรายละเอียดการตั้งค่าต่างๆได้ จาก Datasheet หรือ คลิกบริเวณที่ต้อนการรู้จะมีข้อมูลขึ้นมาแสดงด้านล่าง)
5) กำหนด Destination (จุดหมายที่ต้องการ รับส่งข้อมูลด้วย) โดย ตั้งค่า DH = 00, DL = FFFF
6) เลือกเครื่องหมาย ถูก ที่ Always Update Firmware แล้ว คลิก Write (*** XBee ที่ถูกกำหนดให้เป็น Coordinator จะไม่สามารถทำงานในโหมด ประหยัดพลังงานได้)

รูปที่ 15 ตัวอย่างการใช้งานแบบ Mesh การตั้งค่า XBee ให้ทำงานเป็น Coordinator (ข้อ 1-6)
การตั้งค่า XBee ให้ทำงานเป็น Router
1) เข้าไปที่ Modem Configuration
2) เลือก Modem XBee ให้ตรงตามรุ่นที่ใช้ 
3) เปลี่ยน Firmware ให้เป็น ZIGBEE ROUTER AT (ใช้กับ XBee รุ่น XB24-ZB) หรือ ZNET 2.5 ROUTER/END DEVICE AT (ใช้กับ XBee รุ่น XB24-B)
(*** จากข้อ 2, 3 และ 5 ท่านสามารถดูข้อมูลได้จากใต้โมดูล ในแต่ละตัว)
4) ตั้ง PAN (Personal Area Network) จะต้องตั้งให้เหมือนกับ Coordinator (*** ท่านสามารถดูรายละเอียดการตั้งค่าต่างๆได้ จาก Datasheet หรือ คลิกบริเวณที่ต้อนการรู้จะมีข้อมูลขึ้นมาแสดงด้านล่าง)
5) กำหนด Destination (จุดหมายที่ต้องการ รับส่งข้อมูลด้วย) และตั้งชื่อ Node  โดย ตั้งค่า DH = 00, DL = 00, NI = ตั้งชื่อ Node ตามต้องการ

รูปที่ 16 ตัวอย่างการใช้งานแบบ Mesh การตั้งค่า XBee ให้ทำงานเป็น Router (ข้อ 1-5)
การทดลอง รับส่งข้อมูลผ่าน ระบบเครือข่ายแบบ Mesh
Step 1 นำ XBee ที่ตั้งค่าแล้ว คือ Coordinator (A) และ Router (B) สองตัวมาทดลองส่งข้อมูลหากันโดยตั้ง DH, DL ของทั้ง 2 ตัวให้สามารถส่งข้อมูลหากันได้ จากนั้นแยก XBee ทั้ง2 ตัวออกจากกันจนไม่สามารถติดต่อกันได้อีก
Step 2 จากนั้น นำเอา XBee อีก 2 ตัวที่ตั้งค่าเป็น Router (C, D) มาวางคั่นกลาง จะพบว่า เราจะสามารถ ติดต่อระหว่าง Coordinator (A) และ Router (B) ได้อีกครั้ง
Step 3 ปิดแต่ C แล้ว a ยังสามารถคุยกับ b ได้ โดยผ่าน (mesh) D 
Step 4 เมื่อปิดแต่ D แล้ว a ก็ยังสามารถคุยกับ b โดยผ่าน (mesh) C
จากการทดลองนี้ จะพบว่า ระบบเครือข่ายแบบ Mesh สามารถค้นหาและเปลี่ยนแปลงเส้นทางการส่งข้อมูลได้เอง ทำให้เสถียรภาพของการรับส่งข้อมูลในรูปแบบนี้จึงมีประสิทธิภาพมาก

รูปที่ 17 ภาพประกอบการอธิบาย การทดลองรับส่งข้อมูลผ่าน ระบบเครือข่ายแบบ Mesh

ตัวอย่างโครงข่ายแบบผสม

ตัวอย่างรูปการหา SH, SL, MODEM

MODEM XBee XB24-ZB
SH =13A200
SL = 405CA39B

MODEM XBee XB24-B
SH =13A200
SL = 403DC757
การเพิ่มความปลอดภัยให้กับระบบเครือข่าย
1) เชื่อมต่อ module XBee เข้ากับ PC
2) เรียกใช้ โปรแกรม X-CTU ขึ้นมา ตั้งค่า Com Port ที่เชื่อมต่ออยู่กับ Module ตั้งค่า Baud, Flow Control, Data Bit, Parity, Stop Bit 

3) เข้าไปที่แถบเมนู Modem Configuration คลิก READ อ่านค่าจาก Module ขึ้นมา
4) ตั้งค่า ดังนี้
EE (Encryption Enable) = 1 Encryption enabled
KY (Link Key) = A1 A2 A3 A4 A5 A6 ใส่ข้อมูลที่เราต้องการนำไปใช้เข้ารหัส เป็นเลขฐานสิบหก จำนวน 16 byte 
5) จากนั้น ทำการตั้งค่าเช่นนี้กับ XBee ทุกๆตัวที่อยู่ในเครือข่ายเดียวกัน