- Donanım Gereksinimleri
- XCTU kullanarak XBee Modüllerini Yapılandırma
- Alıcı Parçası için Devre Şeması
- Raspberry Pi'yi Seri iletişim için kurun
- XBee iletişimi için Raspberry Pi'yi programlama
- Raspberry Pi kullanarak kablosuz XBee iletişimini test etme
Önceki eğitimde XBee modülünü Arduino Uno ile arayüzledik ve XBee modülünü kullanarak kablosuz olarak iletişim kurmalarını sağladık. Şimdi XBee modülünü, alıcı görevi görecek ve dizüstü bilgisayara seri olarak bağlanan başka bir XBee modülü (XBee explorer board) ile kablosuz olarak iletişim kuracak Raspberry Pi ile arayüzleyeceğiz.
Donanım Gereksinimleri
- Raspbian yüklü 1 x Raspberry Pi
- 2 x XBee Pro S2C modülü (başka herhangi bir model kullanılabilir)
- 1 x XBee kaşif kartı (isteğe bağlı)
- 1 x Xbee Breakout kurulu (isteğe bağlı)
- USB kabloları
- LED'ler
Raspberry Pi'nizin bir işletim sistemi ile zaten parladığı varsayılmaktadır. Değilse, devam etmeden önce Raspberry Pi ile Başlarken öğreticisini izleyin. Burada Rasbian Jessie yüklü Raspberry Pi 3 kullanıyoruz.
Burada HDMI kablosu kullanan Harici Monitör, Raspberry Pi ile bağlantı kurmak için ekran olarak kullanılır. Monitörünüz yoksa, Raspberry pi'ye Dizüstü veya bilgisayar kullanarak bağlanmak için SSH istemcisi (Putty) veya VNC sunucusunu kullanabilirsiniz. Raspberry Pi'yi başsız olarak kurma hakkında buradan daha fazla bilgi edinin.
XCTU kullanarak XBee Modüllerini Yapılandırma
ZigBee Girişinin önceki eğitiminde öğrendiğimiz gibi, XBee modülünün bir Koordinatör, Yönlendirici veya bir Son cihaz olarak görev yapabileceğini ancak istenen modda çalışması için yapılandırılması gerektiğini öğrendik. Bu nedenle, XBee modüllerini Raspberry Pi ile kullanmadan önce, bu modülleri XCTU yazılımını kullanarak yapılandırmamız gerekiyor.
XBee modülünü dizüstü bilgisayara bağlamak için USB'den seri dönüştürücüye veya özel olarak tasarlanmış kaşif kartı kullanılır. XBee modülünü Explorer kartına bağlayın ve USB kablosunu kullanarak dizüstü bilgisayara takın.
Herhangi bir dönüştürücü veya kaşif kartınız yoksa, bir Arduino kartı, XBee ve dizüstü bilgisayar ile kolayca iletişim kurabilen bir USB-seri cihaz olarak kullanılabilir. Arduino kartına boş taslak yükleyin ve şimdi USB'den Seri dönüştürücüye gibi davranabilir.
XBee Modüllerini Yapılandırma:
Bu eğiticide, XBee modüllerini yapılandırmak için bir Explorer kartı kullanılır.
XCTU yazılımını bu bağlantıdan indirin ve kurun. XCTU yazılımını indirip kurduktan sonra açın ve XBee modülünüzün doğru şekilde bağlandığından emin olun. Aygıt yöneticisinde Arduino kartının COM bağlantı noktasını kontrol edin.
1. Şimdi, arama düğmesine tıklayın. Bu size dizüstü bilgisayarınıza bağlı tüm RF cihazlarını gösterecektir. Bizim durumumuzda, yalnızca bir XBee modülü gösterecektir.
2. Explorer kartının / Arduino kartının Seri portunu seçin ve İleri'ye tıklayın.
3. Sonraki pencerede, USB bağlantı noktası parametrelerini aşağıda gösterildiği gibi ayarlayın ve Bitir'e tıklayın.
4. Bulunan cihazı seçin ve Seçilen cihazı ekle üzerine tıklayın. Bu işlem, XBee modülünüzü XCTU kontrol paneline ekleyecektir.
5. Şimdi, XBee modülünüzü bu pencerede yapılandırabilirsiniz. AT komutlarını kullanabilir veya verileri manuel olarak yerleştirebilirsiniz. Gördüğünüz gibi , sol panelde R gösteriliyor, bu da XBee'nin yönlendirici modunda olduğu anlamına geliyor. Verici kısmı için Koordinatör yapmalıyız.
Önce, Firmware'i güncelle'ye tıklayarak Firmware'i güncelleyin.
6. XBee modülünüzün arkasında bulunan cihazınızın Ürün ailesini seçin. Aşağıda vurgulandığı gibi işlev seti ve aygıt yazılımı sürümünü seçin ve Güncelle'ye tıklayın.
7. Şimdi, diğer XBee ile bağlantı kurmak için ID, MY ve DL verilerini vermelisiniz. Kimlik her iki modül için de aynı kalır. Yalnızca MY ve DL veri değişimi, yani alıcı XBee için MY, XBee vericisinin (koordinatör) DL'si olur ve alıcı XBee için DL, verici XBee'nin MY'si olur. CE'yi Koordinatör yapın ve ardından Yaz düğmesine basın. Aşağıda gösterildiği gibi.
ATDL |
ATMY |
||
XBee 1 koordinatörü |
|||
XBee 2 uç cihazı |
8. Yukarıdaki verileri verici kısmına yazdıktan sonra, kaşif kartından çıkarın ve ikinci XBee modülünü buna takın. Yukarıdaki ile aynı işlemi tekrarlayın, yalnızca değişiklikler DL, MY ve CE'dir. İkinci XBee'yi End device olarak yapacağımız için CE açılır menüsünde End device'ı seçin ve Write butonuna basın.
9. Artık XBee modüllerimiz Raspberry Pi ile arayüz oluşturmaya hazır. Biz olacaktır Ahududu Pi ile dizüstü ve alıcı XBee için verici XBee bağlayın. Ardından dizüstü bilgisayar kullanarak alıcı kısmına komutlar verin. dizüstü bilgisayar.
Alıcı Parçası için Devre Şeması
ZigBee modülünün Raspberry PI ile arayüzlenmesi için bağlantılar devre şemasında gösterilmektedir.
Bağlantılar:
- XBee'nin Tx (pin2) -> Raspberry Pi pininin Tx'i
- Rx (pin3) XBee -> Rx of pin Raspberry Pi
- XBee'nin Gnd (pin10) -> pin Raspberry Pi'nin GND'si
- XBee'nin Vcc (Pin1) -> 3.3v pin Raspberry Pi
- Led, GPIO 23'e bağlı
Raspberry Pi'yi Seri iletişim için kurun
Şimdi, Raspberry Pi'yi Seri iletişim için kuracağız. Varsayılan olarak, Pi'nin donanım seri portu devre dışı bırakılmıştır. Yani, bağlantıya başlamadan önce onu etkinleştirmeliyiz.
1. Terminalde raspi-config komutunu çalıştırın.
2. Seçenek 5 Arayüz seçenekleri'ne gidin ve enter tuşuna basın. Şimdi, P6 Seri seçeneğini seçin ve Etkinleştirin ve ardından kaydedin.
Terminalden çıkın ve Raspberry Pi ile XBee arasında bağlantı kurmaya hazırsınız. GPIO14 ve 15, sırasıyla Tx ve Rx olarak hareket edecek ve bunlar ahududu pi'nin / dev / ttyS0 bağlantı noktasında mevcuttur.
Şimdi, XBee verici tarafından 'a' aldığımızda LED'in AÇIK konumuna bir python betiği yazacağız.
XBee iletişimi için Raspberry Pi'yi programlama
XBee ile Raspberry Pi arasında arayüz oluşturmak için eksiksiz bir python programı sonunda verilmiştir.
İlk olarak, içe aktarma işlevini kullanarak zaman, seri ve RPi.GPIO kitaplıklarını içe aktarmalıyız.
içe aktarma zamanı RPi.GPIO'yu GPIO olarak seri içe aktarma …
Şimdi seri bağlantının özelliklerini yazın, port, baud hızı ve pariteleri tanımlayın.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bayt boyutu = serial.EIGHTBITS, zaman aşımı = 1 )
Tüm gönderme ve alma öğelerini while döngüsüne yazın.
süre 1:
Mesajları verici tarafına göndermek için ser.write işlevini kullanabilirsiniz. Sayımları göndermek için aşağıdaki satırların açıklamasını kaldırın.
# ser.write (str.encode ('Yazma sayacı:% d \ n'% (sayaç))) # time.sleep (1) #counter + = 1
Mesajları almak için ser.readline () fonksiyonunu kullanmalıyız. Gelen mesajı bir değişkende saklayın ve durumu kontrol edin. Gelen mesaj 'a' ise, LED'i 3 saniye AÇIK konuma getirin ve ardından LED'i KAPATIN.
x = ser.readline (). strip () print (x) eğer x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Öğreticinin sonunda bir Gösteri Videosu ile eksiksiz Python kodu verilmiştir. Kodu Pi'nin herhangi bir metin düzenleyicisine yapıştırın ve kaydedin. Komut dosyasını sudo python script_name.py kullanarak terminalde çalıştırın VEYA komut dosyasını çalıştırmak için Python IDE ve Shell kullanabilirsiniz.
Raspberry Pi kullanarak kablosuz XBee iletişimini test etme
Şimdi, hepimiz XBee vericimizi ve alıcımızı test etmeye hazırız. Verici kısmına komut vermek için XCTU'nun konsol terminalini kullanacağız. Ayarlar seçeneğinin yanındaki Konsol simgesine tıklayın. Ardından, XBee'yi dizüstü bilgisayara bağlamak için Aç düğmesine tıklayın.
Konsol günlüğüne 'a' girin. LED'in 3 saniye yanacağını ve ardından söndüğünü göreceksiniz.
Bu şekilde, verici XBee'yi önceki eğitimde anlatıldığı gibi Arduino kartına bağlayabilir ve Raspberry Pi ile Arduino'nun birbirleriyle iletişim kurmasını sağlayabilirsiniz.