Learning XBee With XBee Series 2 Starter Kit

XBee Learning Practice with XBee Series 2 Starter Kit

1. XBee คืออะไร

        XBee โมดูล RF Transceiver (อุปกรณ์รับ-ส่งสัญญาณคลื่นความถี่วิทยุ) ผลิตโดยบริษัท Digi International® Inc. รับส่งแบบ Half Duplex ความถี่ย่าน 2.4 GHz เป็นอุปกรณ์ที่มี Microcontroller และ RF IC อยู่ภายใน มีการจัดการโดยใช้พลังงานต่ำ ใช้งานง่าย มี interface ที่ใช้รับและส่งข้อมูลเป็น UART (LVTTL) ซึ่งเหมาะสำหรับทางด้านไมโครคอนโทรลเลอร์ ต่อเข้ากับ UART ของไมโครคอนโทรล เลอร์ได้เลย

        โมดูล XBee สามารถใช้งานตามมาตรฐาน ZigBee ได้ตั้งแต่ Series2 เป็นต้นไป โดยไม่ต้องเขียนโปรแกรมสร้างเครือข่าย ZigBee เลย เพราะทางผู้ผลิตได้จัดทำเฟิร์มแวร์ที่โหลดเข้าไปในตัว XBee ให้สามารถเซตพารามิเตอร์ผ่าน Software Interface ที่เรียกว่าโปรแกรม X-CTU ผ่านทาง AT command (เหมือนกับการควบคุม GSM Module) หรือผ่านทางการรับ-ส่งข้อมูลด้วยไมโครคอนโทรลเลอร์ได้อย่างง่ายดาย โดยเมื่อเซต XBee ให้ทำงานเป็นอุปกรณ์ในเครือข่าย ZigBee แล้วเราจะเรียก XBee แต่ละตัวว่าเป็น Node

2. ZigBee คืออะไร
        ZigBee เป็นมาตรฐานสากลในการสื่อสารแบบไร้สายสำหรับงานประเภท Personal Area Networks กำหนดโดยกลุ่ม ZigBee Alliance เป็นมาตรฐานที่มีอัตราการรับ-ส่งข้อมูลสูงสุดไม่เกิน 250 kbit/s ใช้พลังงานต่ำ เหมาะสำหรับงานที่ไม่ต้องการอัตราการรับ-ส่งข้อมูลที่สูงมาก แต่มีจุดเด่นที่ประหยัดพลังงาน และมีระยะรับ-ส่งที่ไม่ไกล เช่น Monitoring Wireless Sensor Network Smart Home เป็นต้น มีข้อแตกต่างกับมาตรฐานไร้สายอื่นดังภาพ


        ZigBee กำหนดย่านความถี่ใช้งานตามมาตรฐานไว้ 3 ย่านความถี่คือ ย่าน 2.4 GHz ย่าน 915 MHz และย่าน 868 MHz โดยแต่ละย่านจะมีช่องสัญญาณ 16 ช่อง 10 ช่อง และ 1 ช่อง ตามลำดับ ส่วน อัตรารับส่งข้อมูล (ทางอากาศ) จะอยู่ที่ 250 Kbps 40 Kbps และ 20 Kbps ตามลำดับเช่นกัน


        ZigBee นำ Physical Layer และ MAC Layer ของ IEEE 802.15.4 ซึ่งเป็นมาตรฐานการกำหนดการสื่อสารไร้สายแบบ WPAN (Wireless Personal Area Network) มาทำงานใน 2 Layer ล่างสุดในเรื่องของ ระดับกำลังสัญญาณ Link Quality Access Control Security แต่ใน Layer ถัดขึ้นไปจะเป็นรูปแบบของ ZigBee

3. ขนาดและขาต่างๆของโมดูล XBee 
        ขนาดของโมดูล XBee มาตรฐานกว้าง 0.96”(24.38 mm) ยาว ยาว 1.087”(27.61 mm) มีขาเชื่อมต่อ 20 ขา แต่ละขาห่างกัน 0.079”(2.0 mm) แต่ถ้าใน XBee รุ่น Pro ความยาวของโมดูลจะยาวขึ้นเป็น 1.297”(32.94 mm) แต่ตำแหน่งและจำนวนของขาเท่าเดิม

        ขนาดของโมดูล XBee S2C มาตรฐานกว้าง 0.96”(24.38 mm) ยาว 1.1”(27.94 mm) มีขาเชื่อมต่อ 20 ขา แต่ละขาห่างกัน 0.079” (2.0 mm) แต่ถ้าใน XBee S2C รุ่น RPSMA ความยาวของโมดูลจะยาวขึ้นเป็น 1.6”(40.64 mm) แต่ตำแหน่งและจำนวนของขาเท่าเดิม

รายละเอียดขาต่างๆ ของ XBee S2C มีดังนี้

4. ประเภทของโมดูล XBee
           Digi แบ่ง XBee แบ่งออกเป็นรุ่นที่มีคุณสมบัติที่ต่างกันออกไป เช่น XBee DigiMesh 2.4, XBee ZB, XBee-PRO, XSC, S2C เป็นต้น การเชื่อมต่อ XBee ในเครือข่ายเดียวกันต้องใช้ XBee รุ่นเดียวกัน* จากนั้นในแต่ละรุ่นจะมีรุ่นย่อยที่มีกำลังส่งหรือเชื่อมต่อสายอากาศต่างกัน เช่น XBee-PRO DigiMesh 2.4, XBee-PRO ZB รุ่นย่อยเหล่านี้สามารถสื่อสารกับรุ่นย่อยอื่นที่มีกำลังส่งต่ำกว่าหรือสูงกว่าได้ เช่น XBee ZB สามารถสื่อสารกับ XBee-PRO ZB หรือ XBee-PRO ZB Wire Antenna ได้ แต่ไม่สามารถสื่อสารข้ามรุ่นกับ XBee-PRO XSC ได้ มีรายละเอียดดังนี้

*ในรุ่น S2C สามารถกำหนด Firmware ให้สามารถใช้งานกับ XBee ใน Series อื่นๆได้

XBee 802.15.4 (หรือเรียกว่า XBee Series 1)
           เป็นโมดูล XBee 802.15.4 ใช้ความถี่ 2.4 GHz บนมาตรฐาน IEEE 802.15.4 แต่ไม่มีชั้น Stack Layer ของ ZigBee อยู่ การเชื่อมต่อแบบ Mesh จึงใช้ firmware ของทาง Digi ชื่อว่า DigiMesh โดยใน Series 1 ก็จะแบ่งรุ่นตามกำลังส่งดังนี้


            *ระยะ (Line-of-Sight) โดยระยะที่ทำได้ขึ้นอยู่กับสภาพแวดล้อมของระบบและสายอากาศที่ใช้ เนื่องจากความถี่ 2.4 GHz เป็นย่านความถี่สูง ทำให้อัตราการลดทอนสัญญาณสูงและสิ่งกีดขวางมีผลอย่างมากกับระยะทางที่ใช้งานได้

Series 2 (หรือเรียกว่า XBee Series 2)
            เป็นโมดูล XBee ใช้ความถี่ 2.4 GHz บนมาตรฐาน IEEE 802.15.4 และมี Stack Layer ของ ZigBee โดยใน Series 2 แบ่งรุ่นตามกำลังส่งดังนี้


XBee S2C

        เป็นโมดูลสื่อสารไร้สายย่าน ISM Band ใช้ความถี่ 2.4 GHz ตามมาตรฐาน ZigBee และมีความยืดหยุ่นในการใช้งานมากขึ้น ทำให้สามารถใช้งานร่วมกับโมดูล XBee Series อื่นๆได้ โดยจะมี Firmware กำหนดการทำงานต่างๆ ให้เลือกใช้อยู่ 3 แบบคือ 802.15.4 TH(ใช้งานร่วมกับ XBee Series 1),  DigiMesh 2.4 TH(ใช้งานร่วมกับ XBee DigiMesh) และ Zigbee TH Reg(ใช้งานร่วมกับ XBee Series 2)

XBee 900MHz
         เป็นโมดูล XBee ความถี่ 900 MHz ทำให้ระยะการรับส่งได้ไกลกว่าทั้ง Series 1 และ 2 โดยจะมีรุ่นย่อย 2 รุ่นที่เป็นเฟิร์มแวร์ที่มีการเชื่อมต่อแบบ Point to Multipoint และ DigiMesh อัตราการรับส่งข้อมูลสุงสุดที่ 200 Kbps กำลังส่ง3.3V ที่ 250 mW โดยยังมีรุ่นย่อยออกเป็นประเภทของสายอากาศต่างๆ สำหรับ XBee 900MHz ทางร้านไม่ได้นำมาจำหน่ายเนื่องจากเป็นช่วงความถี่ที่ต้องขออนุญาตในการใช้งานจาก กสทช. เป็นการเฉพาะ

5. เริ่มต้นการใช้งาน XBee
          ในงานต้องมีการกำหนดรูปแบบการเชื่อมต่อ (Topology) ก่อนโดยต้องทราบหน้าของ XBee แต่ละตัวที่จะอยู่บนเครือข่ายก่อน ซึ่งมี 3 แบบคือ

        1. Coordinator มีหน้าที่เชื่อมโยงเครือข่ายในการสื่อสาร จัดการเรื่องการ Routing เส้นทาง และ ตรวจสอบสถานะอุปกรณ์ XBee ตัวอื่นๆใน PAN (Personal Area Network) เรียกว่าเป็น Full-Function Device (FFD) สำหรับทุก PAN จะมี Coordinator เพียง 1 ตัวเท่านั้น โดยที่ Coordinator จะเชื่อมโยงกับ XBee ตัวอื่นๆ เช่น Coordinator กับ Router หรือ Coordinator กับ End Device หาก Coordinator เกิดการเสียหายจะส่งผลต่อระบบทั้งระบบ

        2. Router สามารถเชื่อมต่อเข้ากับ PAN ใดๆ และสามารถเซ็ตให้ทำงานแบบ FFD มีฟีเจอร์ดังนี้

        – รับข้อมูล/ส่งข้อมูล

        – สามารถใช้งานแบบ Stand Alone ได้โดยไม่ต้องมีไมโครคอนโทรเลอร์ควบคุม

        – สามารถตั้งค่าให้เข้าสู่โหมดประหยัดพลังงาน(Sleep Mode)ได้ (ในบางกรณี)

        – Routing เส้นทาง (เช่นทำหน้าที่เป็นผู้ส่งสารเพื่อการติดต่อสื่อสารระหว่าง XBee สองโหนดที่อยู่ไกลเกินกว่าที่จะสื่อสารโดยตรง)

        3. End Device เป็นอุปกรณ์ระดับถัดลงมาจาก Router และสามารถเชื่อมต่อเข้ากับ PAN ใดๆ มีฟีเจอร์ดังนี้

        – รับข้อมูล/ส่งข้อมูล

        – สามารถใช้งานแบบ Stand Alone ได้โดยไม่ต้องมีไมโครคอนโทรเลอร์ควบคุม

         – สามารถตั้งค่าให้เข้าสู่โหมดประหยัดพลังงานได้

6. รูปแบบ Topology
Point to Point
การเชื่อมต่อแบบตัวต่อตัวโดยกำหนดให้ตัวแรกเป็น Coordinator ส่วนอีกตัวกำหนดเป็น Router

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

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

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

7. โหมดการสื่อสารของ XBee
XBee รองรับการใช้งานได้ 2 โหมด คือ AT mode และ API mode
            – AT mode ตัว XBee มีการติดต่อกันและรับ-ส่งข้อมูลกันตลอดเวลา (Transparent) ข้อมูลที่ส่งจาก XBee ตัวหนึ่งจะส่งไปยัง XBee อีกตัวหนึ่งตามที่อยู่ปลายทาง (Destination Address) ที่กำหนดไว้ในรีจิสเตอร์ของโมดูลนั้นๆ โดยสามารถเปลี่ยนเป็นโหมดคำสั่งเพื่อปรับเปลี่ยนค่าพารามิเตอร์บนโมดูล XBee ได้เรียกว่าการใช้คำสั่ง AT
            – API mode เป็นการส่งข้อมูลที่มียืดหยุ่นมากกว่า แต่ก็ซับซ้อนกว่าด้วยเล็กน้อย โดยต้องรับ-ส่งข้อมูลตามโปรโตคอลที่กำหนดไว้

ทดลองเชื่อมต่อ XBee Module ด้วยชุด XBee Series 2 Starter Kit

(ดูรายละเอียดสินค้า PROMO03 : XBee Series 2 Starter Kit)

             ในการทดลองนี้เชื่อมต่อ XBee Module จำนวน 2 ตัวเข้าด้วยกัน (ใช้อุปกรณ์ในชุดของ XBee Starter Kit) โดยเลือกการเชื่อมต่อแบบ Point to Point โหมด AT ซึ่งในชุด XBee Series 2 Starter Kit ประกอบด้วยอุปกรณ์ต่างๆ ที่ทำหน้าที่

             1. Mini XBee USB Dongle V2 จำนวน 1 ตัว พร้อมสาย Mini USB จำนวน 1 เส้น ใช้สำหรับกำหนดค่า Config ต่างๆ ให้กับ XBee ผ่านโปรแกรม X-CTU หรือเชื่อมต่อ XBee เพื่อสือสารกับเครื่องคอมพิวเตอร์เมือเสียบโมดูลเข้าที่พอร์ต USB ของเครื่องคอมพิวเตอร์จะมองเห็นเป็น Serial Communication (COM) พอร์ต

2. โมดูล XBee Series 2 จำนวน 2 ตัว รุ่น XBee ZigBee TH (RPSMA Antenna) Series 2 (S2C)

3. เสาอากาศ 2.4GHz Duck Antenna 3 dBi with RP-SMA (Male) จำนวน 2 ต้น

4. บอร์ด Arduino Uno R3 จำนวน 1 บอร์ด สำหรับใช้ทดลองติดต่อกับโมดูล XBee

5. สาย USB type B จำนวน 1 เส้น สำหรับใช้โหลดโปรแกรมและจ่ายไฟให้กับบอร์ด Arduino

6. XBee Shield ใช้เชื่อมต่อโมดูล XBee ต่อเข้ากับบอร์ด Arduino โดยบน Shield มีวงจรลดแรงดันแยกจากบอร์ด Arduino เนื่องจากโมดูล XBee ระดับแรงดันขา I/O เป็น 3.3 โวลต์ แต่ Arduino Uno R3 เป็น 5 โวลต์จึงต้องแปลงแรงดันก่อน มีไฟ LED แสดงสถานะของโมดูลทั้ง 4 (PWR RSSI ASSOC ON/SLEEP) ปุ่ม Reset ทั้งโมดูล Arduino และ XBee และคอนเน็คเตอร์เพื่อเลือกขาเชื่อมต่อกับ XBee

การกำหนดค่าใน X-CTU มีขั้นตอนดังนี้ 
1. ติดตั้งโปรแกรม X-CTU โดยดาวน์โหลดไฟล์ติดตั้งได้จาก http://www.digi.com/products/wireless-wired-embedded-solutions/ZigBee-rf-modules/xctu

จากนั้นเลือกไฟล์ติดตั้งที่ตรงกับ OS ที่ติดตั้ง ในตัวอย่างนี้เลือกเป็น XCTU v. 6.3.5 Windows x86/x64

2. ติดตั้ง Driver USB to Serial สำหรับบอร์ด Mini XBee USB Dongle โดย download ไฟล์ติดตั้ง ได้ที่ http://www.ftdichip.com/Drivers/VCP.htm จากนั้นเลือกไฟล์ติดตั้งที่ตรงกับ OS ที่ติดตั้ง ในตัวอย่างนี้เลือกเป็น Windows X86 (32-bit)

3. ติดตั้ง Driver Mini XBee USB Dongle โดยเสียบสาย USB เข้ากับบอร์ด และ PC เมื่อเข้าไปที่ Device Manager ในหัวข้อ Other Device คลิกขวา ที่ USB Serial Port เลือกหัวข้อ Update Driver Software … จากนั้นเลือกที่อยู่ไฟล์ Driver ในข้อ 2

หลังจากติดตั้ง Driver เสร็จเรียบร้อยแล้ว PC จะเห็นบอร์ดเป็น USB Serial Port หนึ่งพอร์ตในระบบ

4. ตรวจสอบ Serial Number โดยใน XBee ทุกตัวจะมีหมายเลข Serial Number อยู่ มีตัวเลขอยู่ 2 ชุด คือ SH (Serial Number High) และ SL (Serial Number Low) ใช้ค่านี้เพื่อกำหนดให้ XBee ทั้งสองติดต่อกัน

5. กำหนดค่าให้กับ XBee ที่ต้องการเซตเป็น Coordinator ก่อน โดยต่อโมดูล XBee เข้ากับบอร์ด Mini XBee USB Dongle และต่อเข้ากับ PC

6. เปิดโปรแกรม XCTU กดปุ่ม Add a Radio module … ดังภาพ

7. เลือกหมายเลข Serial Port ของ Mini XBee USB Dongle กำหนด Baud Rate เป็น 9600 bps Data Bits เท่ากับ 8 Parity เป็น None Stop Bits เท่ากับ 1 และ Flow Control เป็น None จากนั้นกดปุ่ม Finish

8. รอซักครู่ให้โปรแกรมค้นหาโมดูล XBee

9. จากนั้นโปรแกรมจะแสดงชื่อรุ่น XBee ขึ้นมาดังภาพ ให้คลิกที่โมดูล เพื่อดูรายละเอียดพารามิเตอร์ต่างๆ ของโมดูล (*สังเกตใน Function จะเป็นชื่อเฟิร์มแวร์ที่ใช้ถ้าไม่ใช่ ZIGBEE TH Reg ให้ทำการอัพเดทเฟิร์มแวร์ก่อน สามารถดูการอัพเดทเฟิร์มแวร์ได้ในตอนท้ายของบทความ)

10. รอซักครู่โปรแกรมจะอ่านค่าบนโมดูล

11. จากนั้นที่ด้านขวาของหน้าต่างโปรแกรมในหัวข้อ Radio Configuration จะแสดงค่าพารามิเตอร์ของ XBee ดังภาพ

12. กดปุ่ม Collapse All Setting Section เพื่อแสดงเฉพาะหัวข้อใหญ่เท่านั้น

13. ไปที่หัวข้อ Networking > PAN ID (Personal Area Network identifier) แสดงหมายเลข ID ของ Network ที่ XBee ใช้ ในตัวอย่างนี้กำหนดเป็น 10

14. ไปที่หัวข้อ Networking >Coordinator Enable กำหนดให้เป็น Enabled [1] เพื่อกำหนดให้ XBee เป็นCoordinator

15. ไปที่หัวข้อ Addressing > DH Destination Address High และ DL Destination Address Low กำหนด Serial Number ของ XBee ที่ต้องการ (ดูได้จากด้านหลังของ XBee ตัวที่ต้องการติดต่อ) ในตัวอย่างนี้ กำหนดเป็น DH เป็น 13A200 และ DL เป็น 41662AFD

16. ไปที่หัวข้อ Serial Interfacing > AP API Enable กำหนดให้เป็น Transparent mode [0] (AT Command)

17. กดปุ่ม Write ดังภาพ เสร็จขั้นตอนการเซตโมดูล XBee เป็น Coordinator

ต่อไปเซต XBee อีกตัวเป็น Router ดังนี้
18. ถอด XBee ที่เซตเป็น Coordinator ออกแล้วใส่ XBee ที่ต้องการเซตเป็น Router เข้าไปแทน จากนั้นค้นหาโมดูลเช่นเดิมเหมือนขั้นตอนที่ 6-12

19. ไปที่หัวข้อ Networking > PAN ID กำหนดค่าเดียวกับ Coordinator คือ กำหนดเป็น 10

20. ไปที่หัวข้อ Addressing ส่วนของ DH และ DL กำหนดเลข Serial Number ของ Coordinator ลงไป ในตัวอย่างนี้ กำหนดเป็น DH เป็น 13A200 และ DL เป็น 41662AF8

21. ไปที่หัวข้อ Serial Interfacing > AP API Enable กำหนดให้เป็น Transparent mode [0] (AT Command)

22. กดปุ่ม Write ดังภาพ เสร็จขั้นตอนการเซตโมดูล XBee เป็น Coordinator

ทดสอบการเชื่อมต่อเบื้องต้น
          ถ้าการเซต XBee ไม่มีข้อผิดพลาด Coordinator สามารถส่งข้อมูลไปยัง Router ได้ และในทางกลับกัน Router ก็สามารถส่งข้อมูลไปยัง Coordinator ได้ สามารถทดสอบได้ 2 วิธีคือ

1. ทดสอบโดยเชื่อมต่อ Router ต่อเข้ากับ Shield ส่วนทางด้าน Coordinator เข้ากับ PC ส่งข้อมูลผ่านโปรแกรม XCTU โดยมีขั้นตอนย่อยดังนี้

        – กด Open หลังจากนั้น ใน Console log ใส่ “+++” จะมี “OK” ตอบกลับมา

        – ใส่ “ATND” แล้วกด Enter รอสักครู่จะมีค่า DL กับ DH ของ XBee ที่เชื่อมอยู่ตอบกลับมา

2. ทดสอบโดยเชื่อมต่อ Coordinator เข้ากับ PC ส่งข้อมูลผ่านโปรแกรม XCTU ที่ฝั่ง Router จั้มขา Tx กับ Rx ของโมดูลเข้าด้วยกันหมายความว่าข้อมูลทั้งหมดที่ส่งจาก Coordinator จะถูกส่งกลับไปยัง Coordinator ดังภาพ

ใช้โปรแกรม XCTU ส่งข้อมูลเข้าไปที่ Coordinator จากภาพจะเห็นได้ว่าข้อมูลทั้งส่งและรับ เป็นข้อมูลเดียวกัน

>> XBee Learning Practice with XBee Series 2 Starter Kit ( Part 2 ) <<