- ข้อกำหนดฮาร์ดแวร์
- การกำหนดค่าโมดูล XBee โดยใช้ XCTU
- แผนภาพวงจรสำหรับส่วนรับ
- ตั้งค่า Raspberry Pi สำหรับการสื่อสารแบบอนุกรม
- การเขียนโปรแกรม Raspberry Pi สำหรับการสื่อสาร XBee
- ทดสอบการสื่อสาร XBee แบบไร้สายโดยใช้ Raspberry Pi
ในบทช่วยสอนก่อนหน้านี้เราได้เชื่อมต่อโมดูล XBee กับ Arduino Uno และทำให้พวกเขาสื่อสารแบบไร้สายโดยใช้โมดูล XBee ตอนนี้เราจะ เชื่อมต่อโมดูล XBee กับ Raspberry Piซึ่งจะทำหน้าที่เป็นตัวรับสัญญาณและทำให้มันสื่อสารแบบไร้สายกับโมดูล XBee อื่น (บอร์ด XBee explorer) ซึ่งเชื่อมต่อกับแล็ปท็อปแบบอนุกรม
ข้อกำหนดฮาร์ดแวร์
- 1 x Raspberry Pi พร้อม Raspbian ติดตั้งอยู่
- 2 x XBee Pro S2C โมดูล (สามารถใช้รุ่นอื่นได้)
- 1 x XBee explorer board (อุปกรณ์เสริม)
- 1 x Xbee Breakout board (อุปกรณ์เสริม)
- สาย USB
- ไฟ LED
สันนิษฐานว่า Raspberry Pi ของคุณมีแฟลชระบบปฏิบัติการอยู่แล้ว หากไม่เป็นเช่นนั้นให้ทำตามบทแนะนำการเริ่มต้นใช้งาน Raspberry Pi ก่อนดำเนินการต่อ ที่นี่เราจะใช้ Rasbian เจสซีติดตั้ง Raspberry Pi 3
ที่นี่ External Monitor โดยใช้สาย HDMI ใช้เป็นจอแสดงผลเพื่อเชื่อมต่อกับ Raspberry Pi หากคุณไม่มีจอภาพคุณสามารถใช้ไคลเอนต์ SSH (Putty) หรือเซิร์ฟเวอร์ VNC เพื่อเชื่อมต่อกับ Raspberry pi โดยใช้แล็ปท็อปหรือคอมพิวเตอร์ เรียนรู้เพิ่มเติมเกี่ยวกับการตั้งค่า Raspberry Pi อย่างไม่ต้องสงสัยที่นี่
การกำหนดค่าโมดูล XBee โดยใช้ XCTU
ดังที่เราได้เรียนรู้ในบทช่วยสอนก่อนหน้าของ ZigBee Introduction ว่าโมดูล XBee สามารถทำหน้าที่เป็นผู้ประสานงานเราเตอร์หรืออุปกรณ์ปลายทางได้ แต่จำเป็นต้องกำหนดค่าให้ทำงานในโหมดที่ต้องการ ดังนั้นก่อนที่จะใช้ โมดูล XBee กับ Raspberry Piเราต้องกำหนดค่าโมดูลเหล่านี้โดยใช้ซอฟต์แวร์ XCTU
ในการเชื่อมต่อโมดูล XBee กับแล็ปท็อปจะใช้ตัวแปลง USB เป็นอนุกรมหรือบอร์ดสำรวจที่ออกแบบมาโดยเฉพาะ เพียงต่อโมดูล XBee เข้ากับบอร์ด Explorer แล้วเสียบเข้ากับแล็ปท็อปโดยใช้สาย USB
หากคุณไม่มีตัวแปลงหรือบอร์ด explorer บอร์ด Arduino สามารถใช้เป็นอุปกรณ์ USB กับอนุกรม ซึ่งสามารถสื่อสารกับ XBee และแล็ปท็อปได้อย่างง่ายดาย เพียงอัปโหลดร่างเปล่าในบอร์ด Arduino และตอนนี้ก็สามารถทำงานเหมือนตัวแปลง USB เป็น Serial
การกำหนดค่าโมดูล XBee:
ที่นี่ในการกวดวิชานี้เป็น คณะกรรมการ Explorer ถูกใช้ในการกำหนดค่าโมดูล
ดาวน์โหลดซอฟต์แวร์ XCTU จากลิงค์นี้และติดตั้ง หลังจากดาวน์โหลดและติดตั้งซอฟต์แวร์ XCTU แล้วให้เปิดและตรวจสอบว่าโมดูล XBee ของคุณเชื่อมต่ออย่างถูกต้อง ตรวจสอบพอร์ต COM ของบอร์ด Arduino ในตัวจัดการอุปกรณ์
1. ตอนนี้คลิกที่ปุ่มค้นหา ซึ่งจะแสดงอุปกรณ์ RF ทั้งหมดที่เชื่อมต่อกับแล็ปท็อปของคุณ ในกรณีของเราจะแสดงโมดูล XBee เพียงโมดูลเดียว
2. เลือกพอร์ต Serial ของบอร์ด Explorer / บอร์ด Arduino แล้วคลิกที่ Next
3. ในหน้าต่างถัดไปให้ตั้งค่าพารามิเตอร์พอร์ต USB ดังที่แสดงด้านล่างและคลิกที่ Finish
4. เลือกอุปกรณ์ที่ค้นพบและคลิกที่ Add เลือกอุปกรณ์ กระบวนการนี้จะเพิ่มโมดูล XBee ของคุณไปยังแดชบอร์ด XCTU
5. ตอนนี้คุณสามารถกำหนดค่าโมดูล XBee ของคุณได้ในหน้าต่างนี้ คุณสามารถใช้คำสั่ง AT หรือใส่ข้อมูลด้วยตนเองก็ได้ อย่างที่คุณเห็นมีR แสดงที่แผงด้านซ้ายซึ่งหมายความว่า XBee อยู่ในโหมดเราเตอร์ เราต้องทำให้เป็น Coordinator สำหรับส่วนเครื่องส่ง
ขั้นแรกอัปเดตเฟิร์มแวร์โดยคลิกที่อัปเดตเฟิร์มแวร์
6. เลือกตระกูลผลิตภัณฑ์ของอุปกรณ์ของคุณซึ่งมีอยู่ที่ด้านหลังของโมดูล XBee ของคุณ เลือกชุดฟังก์ชันและเวอร์ชันเฟิร์มแวร์ตามที่ไฮไลต์ด้านล่างและคลิกที่อัปเดต
7. ตอนนี้คุณต้องให้ข้อมูล ID, MY และ DL เพื่อทำการเชื่อมต่อกับ XBee อื่น ๆ ID ยังคงเหมือนเดิมสำหรับทั้งสองโมดูล เฉพาะการแลกเปลี่ยนข้อมูล MY และ DL เช่น MY สำหรับเครื่องรับ XBee กลายเป็น DL ของเครื่องส่ง XBee (ผู้ประสานงาน) และ DL สำหรับเครื่องรับ XBee กลายเป็น MY ของเครื่องส่ง XBee กำหนดให้ CE เป็น ผู้ประสานงาน จากนั้นกด ปุ่มเขียน ดังแสดงด้านล่าง.
ATDL |
ATMY |
||
ผู้ประสานงาน XBee 1 |
|||
XBee 2 end อุปกรณ์ |
8. หลังจากเขียนข้อมูลข้างต้นไปยังส่วนของเครื่องส่งสัญญาณแล้วให้เสียบออกจากบอร์ดสำรวจและเสียบโมดูล XBee ตัวที่สองเข้าไป ทำซ้ำขั้นตอนเดียวกันกับข้างต้นการเปลี่ยนแปลงเท่านั้นคือ DL, MY และ CE เนื่องจากเราจะทำให้ XBee เครื่องที่สองเป็นอุปกรณ์ End ดังนั้นในเมนูแบบเลื่อนลง CE ให้เลือกอุปกรณ์สิ้นสุดและกดปุ่มเขียน
9. ตอนนี้โมดูล XBee ของเราพร้อมที่จะเชื่อมต่อกับ Raspberry Pi แล้ว เราจะเชื่อมต่อเครื่องส่ง XBee กับแล็ปท็อปและตัวรับ XBee กับ Raspberry Pi จากนั้นให้คำสั่งกับส่วนรับโดยใช้แล็ปท็อป แล็ปท็อป
แผนภาพวงจรสำหรับส่วนรับ
การเชื่อมต่อสำหรับการเชื่อม ต่อโมดูล ZigBee กับ Raspberry PI จะแสดงในแผนภาพวงจร
การเชื่อมต่อ:
- Tx (pin2) ของ XBee -> Tx ของพิน Raspberry Pi
- Rx (pin3) ของ XBee -> Rx ของพิน Raspberry Pi
- Gnd (pin10) ของ XBee -> GND ของพิน Raspberry Pi
- Vcc (Pin1) ของ XBee -> 3.3v ของพิน Raspberry Pi
- Led เชื่อมต่อกับ GPIO 23
ตั้งค่า Raspberry Pi สำหรับการสื่อสารแบบอนุกรม
ตอนนี้เราจะตั้งค่า Raspberry Pi สำหรับการสื่อสารแบบอนุกรม ตามค่าเริ่มต้นพอร์ตอนุกรมฮาร์ดแวร์ของ Pi จะถูกปิดใช้งาน ดังนั้นเราต้องเปิดใช้งานก่อนที่จะเริ่มการเชื่อมต่อ
1. ใน terminal, เรียกใช้คำสั่งraspi-config
2. ไปที่ตัวเลือก 5 ตัวเลือกการ เชื่อมต่อ และกด Enter ตอนนี้เลือกตัวเลือก P6 Serial และเปิดใช้งานจากนั้นบันทึก
ออกจากเทอร์มินัลและคุณพร้อมที่จะทำการเชื่อมต่อระหว่าง Raspberry Pi และ XBee GPIO14 และ 15 จะทำหน้าที่เป็น Tx และ Rx ตามลำดับและมีอยู่ที่ / dev / ttyS0 พอร์ตของ raspberry pi
ตอนนี้เราจะเขียนสคริปต์ python ไปที่ LED เมื่อใดก็ตามที่เราได้รับ 'a' จาก XBee ฝั่งเครื่องส่งสัญญาณ
การเขียนโปรแกรม Raspberry Pi สำหรับการสื่อสาร XBee
โปรแกรม python ที่สมบูรณ์สำหรับการเชื่อมต่อ XBee กับ Raspberry Pi จะได้รับในตอนท้าย
ขั้นแรกเราต้องนำเข้าไลบรารีเวลาอนุกรมและ RPi.GPIO โดยใช้ฟังก์ชันการนำเข้า
เวลา นำเข้าการนำเข้าแบบอนุกรม RPi.GPIO เป็น GPIO…
ตอนนี้เขียนคุณสมบัติของการเชื่อมต่อแบบอนุกรมกำหนดพอร์ต baudrate และพาริตีดังต่อไปนี้
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 1 )
เขียนองค์ประกอบการส่งและรับทั้งหมดในลูป while
ในขณะที่ 1:
คุณสามารถใช้ฟังก์ชัน ser.write เพื่อส่งข้อความไปยังฝั่งเครื่องส่ง ยกเลิกการใส่เครื่องหมายในบรรทัดด้านล่างเพื่อส่งการนับ
# ser.write (str.encode ('เขียนตัวนับ:% d \ n'% (ตัวนับ))) # time.sleep (1) #counter + = 1
สำหรับการรับข้อความเราจะต้องใช้ ser.readline () ฟังก์ชั่น จัดเก็บข้อความขาเข้าในตัวแปรและตรวจสอบเงื่อนไข หากข้อความขาเข้าเป็น 'a' ให้เปิดไฟ LED เป็นเวลา 3 วินาทีจากนั้นปิด LED
x = ser.readline (). strip () print (x) if x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
กรอกรหัส Python ด้วยวิดีโอสาธิตในตอนท้ายของบทช่วยสอน วางรหัสในโปรแกรมแก้ไขข้อความของ Pi แล้วบันทึก รันสคริปต์ในเทอร์มินัลโดยใช้sudo python script_name.pyหรือคุณสามารถใช้ Python IDE และ Shell เพื่อเรียกใช้สคริปต์
ทดสอบการสื่อสาร XBee แบบไร้สายโดยใช้ Raspberry Pi
ตอนนี้เราทุกคนพร้อมที่จะ ทดสอบเครื่องส่งและตัวรับ XBee ของเราแล้ว ในการให้คำสั่งกับส่วนเครื่องส่งสัญญาณเราจะใช้คอนโซลเทอร์มินัลของ XCTU คลิกที่ไอคอนคอนโซลใกล้ตัวเลือกการตั้งค่า จากนั้นคลิกที่ปุ่มเปิดเพื่อเชื่อมต่อ XBee กับแล็ปท็อป
ป้อน 'a' ในบันทึกของคอนโซล คุณจะเห็นว่า LED จะเปิดเป็นเวลา 3 วินาทีจากนั้นจึงดับลง
ด้วยวิธีนี้คุณสามารถเชื่อมต่อเครื่องส่ง XBee กับบอร์ด Arduino ตามที่อธิบายไว้ในบทช่วยสอนก่อนหน้านี้และทำให้ Raspberry Pi และ Arduino สื่อสารกันได้