Zigbee and Xbee BASIC ตอน การใช้งาน Xbee เบื้องต้น

Zigbee and Xbee BASIC ตอน การใช้งาน Xbee เบื้องต้น

รู้จัก X-CTU

X-CTU เป็น software interface บนคอมพิวเตอร์ที่จะช่วยในการ update firmware หรือ ทดสอบการใช้งาน หรือ ปรับ parameter กับ Xbee โดยท่านสามารถ download software มาได้ฟรีจาก Digi (X-CTU Software) สำหรับการใช้งาน ท่านสามารถอ่านจากคู่มือ X-CTU Configuration & Test Utility Software User Guide

หลังจากที่ Download ตัว Software มาแล้ว การ Install จะใช้เวลานานพอสมควรเนื่องจาก จะมีการ Download Firmware ล่าสุดจาก Digi ผ่าน internet (ควรต่อ internet ไว้ด้วย) กรุณารอจนติดตั้งเสร็จครับ จะได้ firmware ครบถ้วน

รูปหน้าตา Software X-CTU ที่ใช้ร่วมกับ Xbee (Free Download)

รู้จัก Firmware
สำหรับ Xbee นั้น ในแต่ละรุ่นที่ซื้อ จะมี firmware ที่โปรแกรมมาแล้วจากทางโรงงาน ซึ่งเราสามารถดึงค่ามาดูได้โดยไปที่ Tab Modem Configuration แล้วกดปุ่ม Read 


หากซื้อ Xbee Pro Series 1 มา เราจะต้องเลือก firmware versionที่ใช้ร่วมกัน คือ 1081, 1082, 1083, 1084 , ….   ซึ่ง firmware ล่าสุดจะถูก set ให้โดยอัตโนมัติ (หาข้อมูลเรื่อง firmware ที่ใช้ในแต่ละรุ่น ได้จาก www.digi.com หรือจาก Datasheet )
หากเลือก Xbee รุ่นธรรมดา (ไม่ Pro) จะต้องเลือก group XB24xxxx เป็นต้นไป ส่วนถ้าเลือกรุ่น Pro มา ต้องเลือก XBP24xxxx สำหรับ ในแต่ละ series นั้น จะลงท้ายไม่เหมือนกัน เช่น series2 ZB จะเป็น XB24-ZB

ท่านสามารถ Set Parameter ใน Tab Modem Configuration ได้ง่าย ๆ ครับ แล้ว กด write Firmware เราสามารถทดลองใช้งานง่าย ๆ ด้วยการใช้อุปกรณ์ Dongle และ Xbee 1 คู่ สร้างเครือข่ายแบบ Point-to-Point ร่วมกับ X-CTU เพื่อกำหนด Parameter ให้กับ Xbee ผ่าน firmware และ X-CTU สามารถ เปิดออกมาใช้กี่หน้าต่างก็ได้ครับ สำหรับ การทดสอบในบทความนี้จะเปิดใช้ X-CTU 2 หน้าต่าง

การ Set อุปกรณ์
การทดสอบจะใช้อุปกรณ์ดังรูปด้านล่างคือประกอบด้วย Xbee Pro Series 1 และ Mini Xbee USB Dongle V2 สำหรับเสียบอุปกรณ์กับคอมพิวเตอร์ (การทดสอบใช้เป็นคู่ ดังนั้นต้องใช้ Xbee Pro Series 1 และ Mini Xbee USB Dongle V2 ทั้งหมด 2 ชุด) ทำการเปิด X-CTU 2 หน้าต่าง แล้วไปที่หน้า Tab Modem Configuration แล้วกด Read จะพบว่า X-CTU จะทำการ Load Firmware ของ Xbee Pro Series 1 ออกมาซึ่งจะเป็นค่าที่ Set ไว้แบบ Default 

อุปกรณ์ที่ใช้งานในการทดสอบ


Mini Xbee USB Dongle V2 (ETEE028A)
เป็น Tool ที่ใช้สำหรับทำงานร่วมกับ สำหรับ update firmware หรือ การ Config Parameter หรือ Update Firmware ผ่านคอมพิวเตอร์ ร่วมกับ Software X-CTU สามารถต่อ Xbee ร่วมกับ Mini Xbee USB Dongle ผ่าน USB Port ได้โดยตรง ซึ่งคอมพิวเตอร์จะมองเป็น Com Port (Serial UART) เนื่องจากใช้ IC FT232RL ซึ่งเป็น USB to Serial ในบอร์ดเดียว ไม่ต้องต่ออุปกรณ์ใด ๆ เพิ่มเติม สามารถใช้ร่วมกับ Xbee ได้ทุกรุ่น

Xbee Convert PIN to 2.54 Pitch (ETEE019A)

PCB สำหรับแปลงขาของ Xbee Series 1 และ Series 2 ให้สามารถเสียบกับ Protoboard ได้โดยตรงครับ 

Bluebee – Xbee Breakout board (ETEE017)
BlueBee เป็น Xbee Breadboard ที่สามารถต่อสายใช้งานได้, สามารถเพิ่ม sensor ที่ต้องการได้เอง ตามที่ BlueBee จัด Footprint ไว้ให้ เหมาะกับการต่อโดยตรงเข้ากับ MCU

BlueBee Dongle (ETEE017D)
เป็น BlueBee – Xbee Breadboard ที่ใช้งานเป็น Xbee Dongle โดยต่อใช้งานร่วมกันกับ USB to Serial สำหรับ update firmware หรือ การ config parameter ผ่าน คอมพิวเตอร์

ทดสอบการใช้งาน Xbee และ Software X-CTU
1. ทำการ set parameter ให้ติดต่อกันแบบ Point to Point เมื่อทำการต่อ Xbee Pro Series 1 และ Mini Xbee USB Dongle V2 เข้ากับ PC ทั้ง 2 ชุดเรียบร้อยแล้วให้เปิดโปรแกรม X-CTU ขึ้น 2 ชุดเช่นกัน แล้วทำการเลือก COM Port (UART) ในแต่ละชุดให้ถูกต้อง

2. ที่โปรแกรม X-CTU ให้เลือก Tab “Modem Configuration” แล้วทำการ set parameter โดยให้ฝั่งหนึ่งเป็น End Device ด้วยการ Set Parameter ในหมวด Networking & Security >> CE=0 และ ค่า MY = 1 และ ฝั่งอีกหนึ่ง เป็น Coordinator ด้วยการ Set Parameter ในหมวด Networking & Security >> (CE=1) และ ค่า MY = 2  ทั้งนี้ ได้ set baud rate ที่ตัว Xbee ทั้ง 2 ตัวที่ 9600 bps (BD=3)


3. ทำการ set ให้ parameter DH และ DL ของแต่ละฝั่งให้มีค่าเท่ากับ SH และ SL ของฝั่งตรงข้าม โดย SH SL เป็นค่า address ที่เราเปลี่ยนไม่ได้ (Read Only) เป็นค่าที่ใส่มาจากโรงงาน 

*** วิธีการดูว่า Xbee ของเรามีค่า SH และ SL เท่าไหร่ สามารถดูได้ 2 วิธีคือ ให้กด Read เพื่อ Load ค่าของ Xbee เข้ามา จะทำให้เรา Click ดูค่า SH และ SL ได้ และวิธีที่ 2 คือดูจากทางด้านใต้ของตัว Xbee จะมี Sticker แปะหมายเลข SH , SL มาให้แล้ว 

4. กด write firmware แล้วทดสอบใช้งาน

นอกจากนี้ใน Internet ยังมีตัวอย่างของการใช้งาน X-CTU แบบ Step by Step ให้ได้ชมกันตามด้านล่างครับ

ปัญหาพบบ่อย ๆ เกี่ยวกับการใช้งาน X-CTU

1. หากมีการ set parameter อย่าลืม กด write firmware ทุกครั้ง


2. กำหนดให้เป็นเครือข่าย เช่น Point-to-Point อย่างน้อยจะต้อง set firmware ให้ Xbee ฝั่งหนึ่งเป็น End device อีกฝั่งเป็น Coordinator หรือ Router

3. ทุกครั้งที่มีการเปลี่ยน Baud Rate ใน Parameter ของ Xbee นั่นหมายถึงคุณกำลังเปลี่ยน Baud Rate ที่ Xbee อย่าลืม มาที่ Tab PC Setting (การ set Baud Rate ที่ คอมพิวเตอร์) แล้วกด Test/Query ให้ตรงกับ Baud Rate XBee มิเช่นนั้น จะเสมือนว่า เราตั้ง Baud Rate ที่ Xbee และ ที่คอมพิวเตอร์ไม่ตรงกัน 


4. จากข้อ 3 เมื่อนำมาต่อกับ Microcontroller ก็เช่นกัน เราต้องตั้ง Baud Rate ระหว่าง Xbee กับ Microcontroller ให้ตรงกัน

5. หากทำการ re-write firmware หลังจากที่ set ค่า parameter เข้าไปแล้ว แต่ write ไม่เข้า แล้วเกิดอาการ ไม่เจอ firmware และ ไม่สามารถหา baud rate ใช้งานปัจจุบันได้  ให้ทำการเลือก Modem Xbee , Function set และ version ใหม่ เพื่อทำการ write firmware ที่เป็นค่า default ลงไป หาก write ไม่ได้ ให้ check box ที่ always update firmware ครับ ให้ดูวิธีการจาก Clip ตัวอย่างด้านล่างครับ

ยังมีอีก Tab หนึ่งที่น่าสนใจของ X-CTU คือ Tab Range Test เราสามารถเช็ค Packet Lost ซึ่งแสดงให้เห็นว่าข้อมูลมีการสูญหายในการรับส่ง ซึ่งมักจะเกิดจากมีระยะที่ไกลเกิินที่สัญญาณจะติดต่อสื่อสารกันได้ หรือ มีสิ่งกีดขวางมากเกินไป

Tab Range Test ฝั่งหนึ่งกด strat เพื่อส่ง 
อีกฝั่งกด start เพื่อรับ

นอกจากนี้ยังมี Tab Terminal ซึ่งถือว่าเป็น Tab ที่สามารถใช้่ประโยชน์ในการ Debug กับสัญญาณข้อมูลที่รับส่งกันได้ เปรียบเสมือนโปรแกรม Serial Monitor

X_CTU นับข้อมูลแสดงเป็นตัวเลขให้ด้วย 
(สีแดงคือข้อมูลที่รับได้ สีน้ำเงินคือข้อมูลที่ส่งออกไป)


การใช้ AT Command กับ X-CTU

เข้าไปที่ tab terminal แล้ว ส่ง +++ แล้วไม่ต้อง Enter จะมีการตอบ “OK” กลับมาทันที (ให้รอการตอบกลับ) การส่ง +++ เป็นการบอกว่าเราจะเริ่มทำการ Config  แต่ถ้าไม่ส่ง +++ ไปก่อน Xbee จะเข้าใจว่าเป็นข้อมูลครับ ซึ่งจะมี Time out ประมาณ 10 วินาที หากไม่พิมพ์คำสั่ง ต้องส่ง +++ ใหม่ เราสามารถ set ได้จาก parameter CT

ต่อไปเป็นการกำหนด parameter ผ่าน AT Command โดย Parameter พื้นฐานเช่น ID , DH , DL , MY , WR , CN , VR , ND , DN , RO , BD


*** โปรดสังเกตว่า command ต่อไปจะพิมพ์ติด ๆ กันเสร็จแล้ว enter ***

สีน้ำเงินเป็นคำสั่ง AT command ที่เราส่งไป 
สีแดง เป็นการตอบกลับมาจาก Xbee
ในรูป ใช้ Xbee Series 2 (Znet2.5) จะมี Parameter แตกต่างกันออกไป

ATIDxxxx[ENTER] เป็นการกำหนด ID การสื่อสาร (PAN ID) ซึ่งทั้ง 2 ตัวจะต้องตั้งให้เหมือนกัน ไม่เช่นนั้น Xbee จะเข้าใจว่าเป็นคนละเครือข่าย โดย xxxx เป็นได้ตั้งแต่ 0 – FFFF  
ATDHxxx[ENTER] เป็นการกำหนดหมายเลขของ Xbee ปลายทางเป้าหมาย (บิตสูง) 
ATDLxxx[ENTER] เป็นการกำหนดหมายเลขของ Xbee ปลายทางเป้าหมาย  (บิตต่ำ)
ในตัวอย่างนี้ สำหรับ DH และ DL มองว่า Xbee คู่นี้ ฝั่งหนึ่งจะต้องชี้ DH กับ DL parameter ไปที่ตัวตรงข้าม (หากใช้ Xbee ร่วมกัน หลายตัว เราจะใช้ set destination address ที่ต้องการจะติดต่อกัน)

ATMYxxx[ENTER] เป็นการกำหนดหมายเลขของตัวมันเอง 

ATWR[ENTER] เป็นการสั่งให้บันทึกค่าที่เรากำหนดไว้ลองบน XBee ถ้าไม่ใช้คำสั่งนี้ XBee ก็ยังจะสามารถทำงานได้ปกติ แต่เกิดไฟดับขึ้นมา XBee จะกลับไปเป็นค่าที่ทำการบันทึกไว้ครั้งสุดท้าย 
ATCN[ENTER] จบการ Config  
ATVR[ENTER] ดู firmware version ของ Xbee ตอนนี้
ATND[ENTER] สั่งให้ค้นหา node อื่น ๆ และทำการายงานสถานะ
ATDN[STRING][ENTER] ให้กำหนด Destination Node ตาม หมายเลข SH , SL ของ [STRING] ซึ่งเป็นชื่อ Node ที่สามารถตั้งได้ไม่เกิน 20 ตัวอักษร ASCII 
ATROxxx[ENTER] กำหนดค่า Packetization Timeout (ได้ 255 ค่า ตั้งแต่ 0-0xFF)
ATBDx[ENTER] กำหนดค่า Baud Rate ของ Xbee ที่ใช้ติดต่อกับ ไมโครคอนโทรลเลอร์ หรือ คอมพิวเตอร์
เมื่อหมดเวลา Time Out ของ Command โหมด หรือ เมื่อใช้คำสั่ง ATCN[ENTER]  หลังจากนี้ทดลองรับส่งข้อมูลได้เลย ใน Tab Terminal ของ X-CTU สำหรับรายละเอียดเกี่ยวกับ parameter ท่านสามารถอ่านความหมายของแต่ละ parameter โดยละเอียด และ การ set ค่าได้จาก Datasheet