Zigbee API Mode with AT Mode Project

ในที่สุดดด…

โปรเจ็กต์ครึ่งเทอมแรก ก็น่าจะเริ่มต้นไปได้ด้วยดี

หลังจากที่ ใช้เวลางมกับ Zigbee API Packet มาเป้นเวลา 3 อาทิตย์เต็มๆ

อันนี้คือภาพรวมของระบบที่ออกแบบไว้ เอา Xbee มาทำงานเป็นลักษณะระบบควบคุมอะไรซักอย่าง ซึ่งเป็นลักษณะ Prototype แน่นอนว่า จากในรูปปลายภาคจะต้องมี GUI ซึ่งจะต้องพึ่ง C# อีกแน่นอน = =’

แต่เทอมแรกนี้ ก็เป็นการส่งข้อมูลจาก Zigbee จาก Router ทั้งหลาย ส่งกลับมาที่ Coordinator อ่ะนะ แล้วทำ Packet ที่ได้ เนื่องจากใช้พวกพอร์ต GPIO และ ADC ของ Xbee อ่ะ ก็เลยใช้เวลานานมาก ในการอ่านข้อความ Packet ศึกษาเรื่องนี้ประมาณ 1 อาทิตย์เต็มๆอ่ะนะ

ก็ถ้า Coordinator ได้ข้อมูล Packet ขนาด 22-30 bytes ที่ตัว Zigbee Router แต่ละโหนดส่งมาให้ ก็เขียน ARM7 ให้แปรความหมายต่างๆใน Packet เหล่านั้น ซึ่งจะต้องผ่านขบวนการแปลงเช็คต่างๆ เช่นเช็ค Length หรือพวก Checksum ว่าข้อมูลที่ได้รับมานั้นถูกรึเปล่า แค่ส่วนนี้ก็เสียเวลาไปประมาณ 2-3 วันได้อีกอ่ะนะ

ในที่สุดก็ทำได้ซะที คือ การทดลองจะเป็นลักษณะ Coordinator เชื่อมต่อ Xbee Router 3 ตัว ซึ่งคุยกันแบบ API Command ทั้งหมดอ่ะนะ เวลาได้รับ Package ออกมาแล้วก็ให้มันมาโชว์ที่ ARM7 อ่ะ ซึ่ง xbee ตัวแรกต่อกับ PIR Sensor ของ Inex ต่อกับขา DIO0 ซึ่งถูกตั้งค่าเอาไว้ว่า เมื่อมีการเปลี่ยนแปลง Logic ให้ส่งข้อมูล Packet กลับมาที่ Coordinator ทันที ส่วนอีกอันนึงจะเป็นการต่อกับ R ปรับค่าได้ เปลี่ยนแปลง Analog 0-1.2V ซึ่งจะได้ค่า Analog ตั้งแต่ 0×0000 จนถึง 0x03FF อ่ะนะ ทั้งหมดก็ 10 bit ทำการส่งข้อมูลกลับมาที่ Coordinator ทุกๆ 30 วินาที

รูปข้างบนนี้เป็นส่วนของที่ทำในเทอมนี้อ่ะนะ

สิ่งที่ได้ความรู้เพิ่มขึ้นเกี่ยวกะ ARM ตอนนี้คือ สามารถใช้ไอตัวลำโพงมันได้หละ คือตอนแรกไม่รู้เว้ยว่ามันใช้อะไรยังไง แต่พอปรึกษาอาจารย์ว่าลำโพงแบบนี้ทำงานยังไง ก็ทำจนออกเลย คือต้องใช้ PWM ส่ง Pulse ออกไปที่ตัว IC drive ลำโพงของบอร์ด ARM อ่ะ ซึ่งความถี่ที่มันใช้ Support ในการส่ง Pulse ออกไปนั้นอ่ะ รองรับตั้งแต่ 100Hz จนถึง 10kHz รู้สึกว่าลำโพงแบบนี้ใช้เปิดเพลงพวก MP3 ไม่ได้อ่ะนะ มันเป็นพวกเปียโซ ธรรมดานี่เองแหละ

มาดูชิ้นงานกันดีกว่า

รูปแรกนี่เป็น Coordinator ตัวนึงที่ต่ออยู่กับ ARM7 แสดงผลผ่านจอ LCD ซึ่งก็จะมีข้อมูลส่งมาจาก Xbee โหนดต่างๆอ่ะนะ เห็นได้จากไฟแวบๆ

อุปกรณ์ที่ทำออกมาทั้งหมด สำหรับเทอมนี้

ก็ใช้ Xbee ทั้งหมด 4 ตัวอะนะ มีเยอะกว่านี้ได้จนแน่ๆ 55+

จริงๆมันมีฝาปิดด้านบนอีกนะ รู้สึกว่าอาจารย์บอกว่าปิดได้เลยไม่เป็นไร การลดทอนของมันไม่ค่อยมีผลกับพวกพลาสติดเท่าไหร่ เพราะว่ามันเป็นไดอิเล็กตริกอะนะ สนามไฟฟ้าผ่านได้สบายๆ

อะไรจะเยอะแยะ ขนาดเน้

ถ้าถามว่า ทำออกมายากที่อะไร

บอกได้เลยว่า ยากที่ Zigbee API เนี่ยแหละ แต่พอได้ทำจริงๆแล้วสนุกดีอ่ะนะ

คือข้อมูลที่ได้มามันจะยาวเป็นขบวนรถไฟจริงๆ มีหลายๆส่วน ทั้งเชค ทั้งบอกหน้าที่ ทั้งบอก address ทั้งหมดข้อมูล อะไรแบบนี้ ซึ่งจะเป็นหน้าที่ของ ARM7 ที่จะรับค่าข้อมูลเหล่านี้มาตีความ ปลอกเปลือก ให้เหลือเฉพาะ Raw Data จริงๆ เพื่อที่จะนำไปตีความและแสดงผลอีกทีนึง

ปัญหาต่อไปที่เจอแน่ๆก็คือ เทอมสอง ต้องมีการโต้ตอบระหว่าง GUI กับ ARM กับ Xbee แต่ละโหนด ซึ่งตอนนี้จาก PC ส่งไปคุยกับ Xbee ได้แล้วในรูปแบบ API Packet Frame แต่ว่า ยังคิดไม่ออกว่า จะให้มันเป็นทางผ่าน ส่งไปที่ ARM7 ก่อนยังไง ต้องมีปัญหาในเรื่อง function ของ ARM อ่ะนะ function uart ของมันส่งเป็นพวก char กับ string แต่ที่เราจะส่งเนี่ย เป็นข้อมูล 8 บิตล้วนๆเลย ซึ่งจะส่งในรูปแบบของ เลขฐาน 16 อ่ะ

คงไม่น่ายากมาก อาจจะกังวลไปเอง คงทำได้แหละ ไม่น่ามีปัญหา

คนไทย ไม่ค่อยมีคนทำ API Packet เลย ที่เป็นของ Xbee Series2 หาไม่ได้เลยอ่ะ ต้องไปอ่านจากหลายๆเวบ แต่ก็ไม่ค่อยมีเท่าไหร่ ต้องอ่านเองใน datasheet ของมันเลย เซงมากๆ กว่าจะแกะได้ เหอๆ นั่งงมหลายวันเลย = =’

วันนี้อัพแค่นี้แหละ ไว้ถ้ามีอะไรเพิ่มเติมจะมาอัพเพิ่ม

3 thoughts on “Zigbee API Mode with AT Mode Project
  1. สวัสดีครับ พอดีกำลังทำโปรเจ็ค BAS(Building Automation System) เห็นโปรเจ็คพี่น่าสนใจมากๆค่อนข้างไกล้เคียงกัน แค่ต่างกันตรง CPU ฮ่ะ ผมใช้ Cortex-A8 พอดีกำลังงงๆๆมากมายกับ Xbee ต่อแบบ Mesh Topology แบบนี้เลยฮ่ะ และต่อ Device รับค่าหรือส่งออกเป็น Logic ฮ่ะ เลยจะอยากคุยหรือติดต่อได้ไหมครับผม อยากถามเรื่อง Xbee ฮ่ะ งง มากมาย

  2. สวัสดีครับพอดีผมกำลังทำโปรเจ็ค Zigbee ถ้าไม่เป็นการรบกวนเกินไป ผมขอ code ในส่วนของ A/D และ D/A ได้มั้ยครับ

  3. สวัสดีคับ พอดีผมทำXbee อยู่เหมือนกัน

    ถ้าไม่รบกวนช่วยอธิบาย การตั้งการสง่ขอมูล packet อัตโนมัตมื่อมีสัญ high

    เพิ่มเติมได้มั้ยครับ ว่าsetค่า อย่างไร

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>