XBee Kullanımı

Merhabalar arkadaşlar, eski blog sayfamı artık güncellemeyeceğimden, oradaki önemli bir yazıyı buraya taşımak istedim. XBee kullanımı üzerine yazdığım yazı, beklentilerimin ötesinde bir ilgi görmüştü ve zaman içerisinde özellikle resimlerin uçmasından ötürü çok sayıda kişi, resimleri güncellemem için benimle iletişime geçmişti. Bu vesileyle hem resimleri güncelleyeceğim hem de yazıyı buraya taşımış olacağım.

RF haberleşmesinin ne kadar sık kullanılan bir haberleşme teknolojisi olduğu su götürmez bir gerçek. Günümüzde RF haberleşme bir ham veri kümesini radyo dalgalarıyla aktarmaktan fazlasını ifade ediyor. Zigbee kavramı da burada ağırlığını ortaya koymuş, hatta ve hatta stratejik önemi haiz olmuş bir kavram olarak karşımıza çıkmaktadır (ne dedim !?  :D)

Zigbee aslında bir protololdür. Jennic firmasının Jennet protokolü gibi… xBee ise bu haberleşme protokolünü taşıyan bir donanımdır.

MaxStreamXBeeModules

 

Bu blog yazımda iki adet xBee’nin haberleştirilmesi işleminin nasıl yapıldığı ve gerekli alt yapı bilgilerini aktarmaya çalışacağım.
PAN ( Personal Area Network )
xBee modüllerinde tüm haberleşme işlemleri bir PAN üzerinden yapılmaktadır. Haberleşmenin gerçekleşebilmesi için mutlaka ama mutlaka bir PAN oluşturulmalıdır. PAN oluşturulmadığında hiç bir xBee cihazı faaliyet gösteremeyecektir. Bir PAN’ı ancak bir “Coordinator” oluşturabilir. PAN yönetimi ile ilgili bilgilere raporun ileri ki kısımlarında değineceğiz.
Bir PAN içinde bulunan tüm cihazların PAN ID’si aynı olmalıdır. Bunu daha teknik biçimde açıklayacak olursak aslında “coordinator” tarafından oluşturulan PAN’a katılmak isteyen tüm cihazların PAN ID’leri mutlaka “coordinator” cihazın PAN ID’si ile aynı olmalıdır. Aksi taktirde cihaz ağa kabul edilmez. Ağa kabul işlemleri ile ilgili daha geniş bilgilere ileri ki kısımlarında değineceğim.
Ağ Oluşturma:
xbee_create_pan
Yukarıda örnek bir PAN görmektesiniz. C, R ve E türü cihazların özelliklerini açıklayalım.
C , “Coordinator” :
Haberleşme kanalını ve PAN ID’sini belirler. Bir PAN’ın başlatılmasından C sorumludur. PAN’ı başlattıktan sonra C, E ve R’lerin PAN’a katılmasına izin verebilir. C veri alıp yollayabilir, ya da mesh network yapısında verinin bir sonrki cihaza iletilmesi işlemlerini gerçekleştirebilir. C tüm ağı yönettiğinden pil ile beslenmesi ve/veya düşük güç modlarında çalıştırılması kesinlikle uygun değildir. C sabit bir güç kaynağı ile beslenmeli ve “main power mode” dediğimiz standart güç modunda çalıştırılmalıdır. C’nin işlevini kaybetmesi, tüm ağın çökmesi anlamına gelmektedir.
R, “Router” :
Bir R’nin çalışabilmesi için öncelikle bir PAN’a katılması gerekir. PAN’a katıldıktan sonra R, diğer R’lerin ve E’lerin (End Point) PAN’a katılmasına izin verebilir. R veri alıp yollayabilir ya da mesh network üzerinde veri aktarımını sağlayabilir. R’ler diğer cihazların PAN’a katılmasına izin vereceklerinden düşük güç modlarında çalıştırılmaları uygun değildir.
E, “End Device”:
R’de olduğu gibi E’de çalışabilmek için öncelikle bir PAN’a katılmalıdır. E diğer cihazların PAN’a katılmasına izin veremez, ancak mesh network üzerinde veri iletimi yapabilir.
Cihazların işlevlerini okuduktan sonra, yukarıdaki iletişim diyagramının tekrar incelenmesi faydalı olacaktır.
Xbee Konfigürasyonu
xBee’lerin konfigüre edilmesi için bir çok araç bulunmamaktadır ancak bunlar içerisinde en çok kullanılan ve en güvenilir olan digi firmasının bizzat ürettiği x-ctu yazılımı-dır. Tamamen ücretsiz olan bu arayüz ile xBee ile ilgili hemen her işlemi gerçekleştirebiliyo-ruz. Bu program üreticinin web sitesinden indirilebilir.
C Konfigrasyonu:
C’yi broadcast modda çalıştırıyoruz. Bunun için yapmamız gerekenler:
PAN ID belirlenir, (ID)
Scan Channels belirlenir, (SC)
Scan Duration belirlenir (opsiyonel) (SD)
Destination Low Adress belirlenir: DL = 0xFFFF yapılır.
Destination High Adress belirlenir: DH = 0 yapılır.
NI belirlenir: NI = COORDINATOR
İlgili konfigrasyon ekranı aşağıdaki gibidir:
xbee_c_config
R Konfigrasyonu:
R unicast modda programlanmalıdır.
SC ve ID değerleri seçilir (PAN’a göre yani C’ye göre)
CH ve OP kontrol edilir
MY belirlenir, bu routerın 16 bitlik network adresidir.
DH = 0 yapılır.
NI = ROUTERNAME yapılır
Ekran aşağıdaki gibidir:
xbee_r_config
ÇOKLU AĞ KURMA
xBee’ler ile mesh network kurmak için yapılması gerekenlere değineceğimiz bu kısımdaki işlemler temelde 2 ana başlık altında toplanabilir. Bunlardan bir tanesi AT komutları, diğeri ise konfigürasyon.
AĞ 1:
Kurmak istediğimiz basit ağ yapısı, 1 koordinatör ve 3 router cihazdan oluşacak. Öncelikli olarak koordinatör cihazdan yayın yaparak tüm router cihazlar ile aktif veri alışverişi kuracağız.
xbee_nw1
Yukarıda çizmiş olduğumuz diyagramda görüleceği üzere koordinatör router cihazlara yayın yapmakta, bununla birlikte de router cihazlar koordinatöre veri yollayabilmektedir.
Cihazları yukarıdaki çalışma için konfigüre ederken, öncelikli olarak xctu yazılımında fonksiyon seti olarak ROUTER/END DEVICE AT seçilir. Daha sonra Show Defaults butonuna basılır. sonrasında da PANID belirlenir. Biz bu uygulamada PANID olarak 0x100 değerini girdik. 3 router’ı da konfigüre etttiğimizde operating PANID olarak gördüğümüz değer 0xFFFF olmalıdır. Bunun sebebi ise xBee’lerin aynı PANID’li bir koordinatör bulamaması ve ilgili PAN’ın açılmasını beklemesidir. Bu durumda Router’lara ilişkin konfigürasyon aşağıdaki gibidir:
xbee_cnf_nw1
Koordinatör cihazı konfigüre etmek için ise, function set kısmı COORDINATOR AT olarak seçilir. Daha sonra Show Defaults butonuna basılır. Bundan sonra da PAN ID seçilmelidir. PAN ID’yi yine 0x100 seçeceğiz. Daha sonra read butonuna bastığımızda operating channel’ın 0x0E olduğunu gördük. Bu değer farklılık gösterebilir.
xbee_cnf2_nw1
PAN oluşturulduktan sonra tekrar router cihazları xctu programı yardımıyla gözlemlemeliyiz. Bunun için yine ilgili modüle bağlandıktan sonra modem konfigrasyonu sekmesi açılmalıdır ve read butonuna basılmalıdır. Bunu yaptığınızda tüm modemlerin operating channel değerinin koordinatör cihaz ile aynı olduğunu göreceksiniz. Bu da router/end cihazların personal area network(PAN) içine başarıyla katıldığını göstermektedir.
Bu ayarları yaparken tüm modüllerin aynı seri haberleşme parametrelerini taşıdığından emin olmak gerekir, eğer bir modül handshaking isterken diğeri istemiyorsa ya da arada baudrate, parity, stop bit gibi farklılıklar varsa haberleşme gerçekleşmeyecektir. Bu haberleşmenin başarılı olduğunu aşağıda 1 defaya mahsus olarak gösteriyoruz, bundan sonraki ağ yapılarında bu şekilde olduğu gibi ekran çıktıları ile gösterim yapılmayacaktır. Benzer basamaklar kullanılarak tüm yapılar kolaylıkla test edilebilir.
 Koordinatör Xbee:
xbee_c_pan

Router 1 Xbee:

xbee_r_pan

Router 2 Xbee:
xbee_r2_pan
Router 3 Xbee:
xbee_r3_pan
Görüldüğü üzre planladığımız ağ yapısı beklentilerimize uygun olarak çalışmıştır. Yukarıda gördüğünüz mesajlardan kırmızı olanlar cihazın aldığı mesajlar, mavi olanlar ise cihazın gönderdiği mesajlardır. Buna göre koordinatör herkese mesaj göndermiş ve herkesten mesaj almıştır. Bu sayede ağ yapılarına ilişkin ilk uygulama tamamlanmış oldu.
AĞ 2 (Point to MultiPoint Bidirectional Network)
Bu ağ yapısı çoğunlukla kullanacağımız ağ yapısıdır. Bu ağ yapısı sayesinde bir merkezin kontrolünde istediğimiz haberleşme sistemini rahatlıkla kurabilmekteyiz. Ağ yapısı ise aşağıdaki gibidir:
xbee_cnf_nw2
Yukarıdaki sistemde koordinatör yayın yapmamaktadır. Router/End cihazlar doğrudan merkez ile haberleşmektedirler. Bu yapıda koordinatör bir anlamda server, router ise client gibi düşünülebilir. Her xBee ağında olduğu gibi burada da koordinatörün gücünün kesilmemesine dikkat edilmelidir.
Yukarıdaki yapı gibi bir çok farklı ağ yapısı düşünülebilir.Bu yapıların kurulmasında artık arayüzden ziyade AT komutlarından yararlanacağız. Bunun nedeni ise xBee modüllerini OHM’ler ile kontrol edecek olmamızdır. Dolayısıyla xBee modülüne ilişkin yapacağımız her türlü değişiklik seri haberleşme ile sağlanacaktır. Şimdi de yukarıdaki sistemi oluşturmak için yapmamız gerekenlere değinelim.
  1. Öncelikli olarak bir önceki uygulamada yani AĞ1’deki gibi bir yapı kurulur.
  2. Tüm router’lar için aşağıdaki işlemler yapılır
    1. Koordinatör cihaza terminal vasıtası ile “+++” komutu yollanır. Bu 2 saniyelik bir süre için xBee’yi komut moduna sokar.
    2. Zaman geçirilmeden “ATSH” komutu yollanır. Okunan değer not edilir.
    3. Hemen ardından “ATSL” komutu yollanır ve bu değer de not edilir.
    4. Daha sonra da “ATWR” komutu yollanır.
  3. Routerların tümü için sırayla aşağıdaki adımlar izlenir:
    1. “+++” komutu ile komut moduna geçilir.
    2. “ATDLkoordinatörSL” komutu işletilir. KoordinatörSL yazdığımız kısma 2. adımda not etmiş olduğumuz SL değeri yazılır. Örneğin “ATDL1A3252” gibi bir komut yollanabilir.
    3. “ATDHkoordinatörSH” komutu işletilir. KoordinatörSH yazdığımız kısma 2. adıma not etmiş olduğumuz SH değeri yazılır. “Örneğin ATDH402D5DA9” gibi bir komut yollanabilir.
    4. Bu adımlar tamamlanınca router koordinatöre veri yollamak üzere konfigüre edilmiş demektir. “ATWR” ile işlem sonlandırılır.
  4. Koordinatörden herhangi bir router cihaza veri yollamak için yapılması gerekenler 3. adımda router’a yaptığımız ile neredeyse aynıdır. Hangi router’a veri yollamak istiyorsak DH ve DL adreslerine onun adresini girebilir ve sırayla istediğimiz cihaza veri yollayabilir. Bu veri yollama rutininde xBee ağlarının tüm özellikleri devam eder.

 

Umarım işinize yarar 🙂

Yazıları beğendiyseniz eğer,  faydalanabilecek arkadaşlarınızla da paylaşabilirseniz sevinirim.

Şimdi devam…

29 thoughts on “XBee Kullanımı

  1. tamer

    Merhaba Özen Bey,
    Xbee cihazlar üzerine bir proje yapmak istiyorum. 3adet xbee yi haberleştirmek istiyorum. 2 xbee de buton ve led olacak(router), bir tane Xbee(coordinoter) arduinoya bağlı olacak routerlardan gelen veriyi işleyecek.
    Bu devre tasarımını gerçekleştirmek için hangi ürünleri satın almalıyım. Satıcılar bir çok şey satmak için uğraşıyorlar.
    Xbee s2 2mW 3 adet
    Xbee adafruit adaptör 2 adet
    Xbee arduino sheid 1 adet
    yeterli midir? Xbee ürünleri programlamak için?

    1. Merhaba Tamer Bey,

      Yazdığınız liste XBEE konusu için kesinlikle yeterlidir. Bunun dışında gerekli olursa pil,buton,led, belki pertinaks gibi ekipmanlara da ihtiyacınız olacaktır. Projenizin detayını bilmediğim için size tam bir ürün listesi öneremiyorum ancak xbee kısmı için yazdıklarınız yeterlidir. Shiel’e uygun bir Arduino seçmeniz de önemli bir konu. Belki dikkat edilebilecek bir konu şu olabilir; 2mW XBee’lerin haberleşme mesafesinin işinizi görüp görmeyeceğini kontrol etmeniz gerekecek. Eğer uzak mesafelerden (ya da arada duvarlar gibi engeller olan bir ortamdan) haberleşme düşünüyorsanız, belki master olan xbee’yi pro seçmekte fayda olabilir.

      Projenizde başarılar dilerim.

  2. tamer

    Merhaba Özen Bey,
    Xbee cihazlar üzerine bir proje yapmak istiyorum. 3adet xbee yi haberleştirmek istiyorum. 2 xbee de buton ve led olacak(router), bir tane Xbee(coordinoter) arduinoya bağlı olacak routerlardan gelen veriyi işleyecek.
    Bu devre tasarımını gerçekleştirmek için hangi ürünleri satın almalıyım. Satıcılar bir çok şey satmak için uğraşıyorlar.
    Xbee s2 2mW 3 adet
    Xbee adafruit adaptör 2 adet
    Xbee arduino sheid 1 adet
    yeterli midir? Xbee ürünleri programlamak için?

    1. Merhaba Tamer Bey,

      Yazdığınız liste XBEE konusu için kesinlikle yeterlidir. Bunun dışında gerekli olursa pil,buton,led, belki pertinaks gibi ekipmanlara da ihtiyacınız olacaktır. Projenizin detayını bilmediğim için size tam bir ürün listesi öneremiyorum ancak xbee kısmı için yazdıklarınız yeterlidir. Shiel’e uygun bir Arduino seçmeniz de önemli bir konu. Belki dikkat edilebilecek bir konu şu olabilir; 2mW XBee’lerin haberleşme mesafesinin işinizi görüp görmeyeceğini kontrol etmeniz gerekecek. Eğer uzak mesafelerden (ya da arada duvarlar gibi engeller olan bir ortamdan) haberleşme düşünüyorsanız, belki master olan xbee’yi pro seçmekte fayda olabilir.

      Projenizde başarılar dilerim.

  3. tamer

    Merhaba Özen Bey,
    Bir uzmanlık sorun olacaktı. Multipoint Xbee li bir sistemde aynı anda bilgi(butona basılıp basılmadığı bilgisi) geldiğinde bilgileri kaybetmemek için nasıl bir yol izlemeliyiz? Ne yapabilirim.

    İyi çalışmalar.

    1. Merhabalar Tamer Bey, bu durum için “collision detection” başlığı altında sunulmuş bir çok çözüm mevcut. LBT (listen befor talk) ve CCA (clear channel assessment) algoritmalarını inceleyip, onları Xbee’de kullanmak bir çözüm olacaktır.

  4. tamer

    Merhaba Özen Bey,
    Bir uzmanlık sorun olacaktı. Multipoint Xbee li bir sistemde aynı anda bilgi(butona basılıp basılmadığı bilgisi) geldiğinde bilgileri kaybetmemek için nasıl bir yol izlemeliyiz? Ne yapabilirim.

    İyi çalışmalar.

    1. Merhabalar Tamer Bey, bu durum için “collision detection” başlığı altında sunulmuş bir çok çözüm mevcut. LBT (listen befor talk) ve CCA (clear channel assessment) algoritmalarını inceleyip, onları Xbee’de kullanmak bir çözüm olacaktır.

  5. Oğuzhan

    Merhaba Özen Bey..
    Bir konuda fikrinizi sormak istiyorum daha doğrusu nasıl olacağını bilmiyorum.

    MMA7455L sensöründen Arduino uno r3+wirelees proto shield+Xbee 1mW üzerinden kablosuz olarak Usb Explorer Dongle+ 1mw Xbee ile bilgisayarıma gönderdiğim titreşim verilerini gözlemlemek istiyorum.
    Arduino programında sensör için yazdığım x,y,z koordinat bilgilerini gönderebiliyor ve XCTU programında veriyi alabiliyorum.

    Sıkıntıya düştüğüm kısım şu XCTU da aldığım verileri MATLAB veya bu tarz programlarda görsel olarak(grafik,büyüklük dB cinsinden vb.) nasıl kullanabilirim. Xctu’da bu verileri görsele dökmek mümkün mü?

    Teşekkür ederim.

    1. Merhaba Oguzhan Bey, XCTU uzerinden bu tur bir calisma yapmak mumkun degil ancak MATLAB vb programlarla istediginiz isi yapmak mumkun ve cok kolay. Usb explorer sayesinde, bilgisayariniz Xbee’den gelen bilgileri seri port uzerinden geliyormus gibi gorur. Dolayisiyla MATLAB’dan ya da baska bir programdan seri port acarak verileri okuyabilir ve grafige dokebilirsiniz.

      Asagidaki linki inceleyebilirsiniz:
      http://de.mathworks.com/help/matlab/matlab_external/writing-and-reading-data.html

      Herhangi bir sorunla karsilasirsaniz, sormaktan lutfen cekinmeyin.

      Iyi calismalar dilerim.

  6. Oğuzhan

    Merhaba Özen Bey..
    Bir konuda fikrinizi sormak istiyorum daha doğrusu nasıl olacağını bilmiyorum.

    MMA7455L sensöründen Arduino uno r3+wirelees proto shield+Xbee 1mW üzerinden kablosuz olarak Usb Explorer Dongle+ 1mw Xbee ile bilgisayarıma gönderdiğim titreşim verilerini gözlemlemek istiyorum.
    Arduino programında sensör için yazdığım x,y,z koordinat bilgilerini gönderebiliyor ve XCTU programında veriyi alabiliyorum.

    Sıkıntıya düştüğüm kısım şu XCTU da aldığım verileri MATLAB veya bu tarz programlarda görsel olarak(grafik,büyüklük dB cinsinden vb.) nasıl kullanabilirim. Xctu’da bu verileri görsele dökmek mümkün mü?

    Teşekkür ederim.

    1. Merhaba Oguzhan Bey, XCTU uzerinden bu tur bir calisma yapmak mumkun degil ancak MATLAB vb programlarla istediginiz isi yapmak mumkun ve cok kolay. Usb explorer sayesinde, bilgisayariniz Xbee’den gelen bilgileri seri port uzerinden geliyormus gibi gorur. Dolayisiyla MATLAB’dan ya da baska bir programdan seri port acarak verileri okuyabilir ve grafige dokebilirsiniz.

      Asagidaki linki inceleyebilirsiniz:
      http://de.mathworks.com/help/matlab/matlab_external/writing-and-reading-data.html

      Herhangi bir sorunla karsilasirsaniz, sormaktan lutfen cekinmeyin.

      Iyi calismalar dilerim.

  7. Oğuzhan

    Teşekkür ederim Özen Bey bu kısmı hallettim.
    Büyük sıkıntım şurada matlab ile arduino arasında bağlantıyı kurdum.İlk etapta led yakma söndürme işlemini gerçekleştirdim. Fakat benim arduinodan kablosuz olarak gönderdiğiöm koordinat verilerini matlaba aktaramadım.
    Bununla alakalı bir bilgi de edinemedim,net alemi çaresiz kaldı.
    Bu kısmı nasıl aşabilirim. Aslında matlabdan kodu yazıp arduinoyu kontrol edebiliyorum fakat arduinoda ki bilgileri çizdiremiyorum. Vereceğiniz en ıfak fikir, detay çok işime yarayacak.

    Şimdiden teşekkür ederim.

    1. Oğuzhan bey merhabalar, tam olarak probleminizi anlayamadım açıkçası. Sorununuz Matlab’dan Arduino’ya veri aktarıp, Arduino’dan matlaba aktaramamak mıdır? Yoksa aktardığınız verileri çizdirememek midir? Biraz daha detaylandırırsanız seve seve yardımcı olurum.

      İyi çalışmalar ve iyi günler dilerim.

  8. Oğuzhan

    Teşekkür ederim Özen Bey bu kısmı hallettim.
    Büyük sıkıntım şurada matlab ile arduino arasında bağlantıyı kurdum.İlk etapta led yakma söndürme işlemini gerçekleştirdim. Fakat benim arduinodan kablosuz olarak gönderdiğiöm koordinat verilerini matlaba aktaramadım.
    Bununla alakalı bir bilgi de edinemedim,net alemi çaresiz kaldı.
    Bu kısmı nasıl aşabilirim. Aslında matlabdan kodu yazıp arduinoyu kontrol edebiliyorum fakat arduinoda ki bilgileri çizdiremiyorum. Vereceğiniz en ıfak fikir, detay çok işime yarayacak.

    Şimdiden teşekkür ederim.

    1. Oğuzhan bey merhabalar, tam olarak probleminizi anlayamadım açıkçası. Sorununuz Matlab’dan Arduino’ya veri aktarıp, Arduino’dan matlaba aktaramamak mıdır? Yoksa aktardığınız verileri çizdirememek midir? Biraz daha detaylandırırsanız seve seve yardımcı olurum.

      İyi çalışmalar ve iyi günler dilerim.

  9. mhbalaman

    iyi günler,
    ben 1 end device,1 router,1 coordinator kullanarak bir ağ kurmak istiyorum.Router ve coordinatorun konfigurasyonlarını sizin yaptığınız gibi yaptım .end device ın konfigurasyonunu da router gibi mi yapılmalı yoksa bir farklılık var mıdır?
    teşekkürler

    1. İyi günler, router ve end device için aynı konfigurasyonu kullanmalısınız. Herhangi bir mesh hopping yapmayan router zaten end device oluyor. Kolaylıklar dilerim.

  10. mhbalaman

    iyi günler,
    ben 1 end device,1 router,1 coordinator kullanarak bir ağ kurmak istiyorum.Router ve coordinatorun konfigurasyonlarını sizin yaptığınız gibi yaptım .end device ın konfigurasyonunu da router gibi mi yapılmalı yoksa bir farklılık var mıdır?
    teşekkürler

    1. İyi günler, router ve end device için aynı konfigurasyonu kullanmalısınız. Herhangi bir mesh hopping yapmayan router zaten end device oluyor. Kolaylıklar dilerim.

  11. Ahmet vatansever

    Merhaba hocam;
    Kablosuz haberleşme için kullanacağım Xbee ile ilgili sorunlarım var. Şöyle ki;

    İki adet Xbee(XBEE Pro 63mW PCB Anten – Seri 2B), 2 adet Arduino Proto Wireless SD Shiel ve 2 adet Arduino Uno kullanarak kablosuz iletişim sağlamak istiyorum. Bunun için XCTU programı kullanarak 1. Xbee ‘yi Router AT, 2. Xbee’yi Coordinator AT yaptım. Pan id’lerini aynı verdim. Coordinator’in DH ‘ını sıfır, DL’sini FFFF verdim. Router’ın DH veDL sini sıfır olarak verdim. Bu işlemlerden sonra XCTU kullanarak birbirlerine veri gönderimi yaptım yani test ettim doğru çalışıp çalışmadıklarını. Her ikisi de birbirine veri gönderdi. Daha sonra Coordinator olarak belirlediğim xbee deki arduino yaya aşağıdaki kodu yükledim.
    ————————————————————
    void setup()
    { Serial.begin(9600); }
    void loop() {
    Serial.print(‘H’);
    delay(1000);
    Serial.print(‘L’);
    delay(1000);
    }
    —————————————————————————–
    Router olarak belirlediğim xbee deki arduino yaya da aşağıdaki kodu yükledim. Ancak led yanım sönmedi daha sonra kontrol ettiğimde Serial.available() değerinin sıfır döndüğünü ve Serial.read() ile okunan değerin -1 olduğunu gördüm.
    Eminim çok basit bir yerde hata yapıyorum ama nerede hata yaptığımı bulamıyorum. Bana bu konuda yardımcı olursanız sevinirim. Şimdiden teşekkürler.
    int incomingByte=0;
    const int ledPin = 7;
    // the pin that the LED is attached to int incomingByte;
    // a variable to read incoming serial data into int fs =0;
    void setup() {
    // initialize serial communication:
    Serial.begin(9600);
    // initialize the LED pin as an output:
    pinMode(ledPin, OUTPUT);
    }
    void loop() {
    // see if there’s incoming serial data:
    if (Serial.available() > 0) {
    // read the oldest byte in the serial buffer:
    incomingByte = Serial.read();
    // if it’s a capital H (ASCII 72), turn on the LED:
    if (incomingByte == ‘H’) {
    digitalWrite(ledPin, HIGH);
    //turn light on
    }
    // if it’s an L (ASCII 76) turn off the LED:
    else if (incomingByte == ‘L’) {
    digitalWrite(ledPin, LOW);
    //turn light off
    }
    }
    }

    1. Merhabalar Ahmet Bey, bahsettiğiniz durum, PAN’ın kurulamamasından kaynaklanıyor gibi duruyor. Buna istinaden size ilk önerim şu:

      Master XBEE’yi Arduino’ya bağlayın ve daha yüksek bir ilk bekleme ile başlatın. Buna istinaden ilk önerim MasterXbee’nin kodunun başlangıcına aşağıdaki gibi bir bekleme eklemeniz. Bu sayede XBEE PAN’ın kurulması esnasında bekleyebilir.

      void setup()
      {
      Serial.begin(9600);
      delay(5000);
      }
      void loop() {
      Serial.print(‘H’);
      delay(1000);
      Serial.print(‘L’);
      delay(1000);
      }

      Ardından diğer XBEE’yi USB üzerinden bilgisayara bağlayarak XCTU ile veri alıp almadığını kontrol edin. Eğer veri alıyorsa, artık yazdığınız kod ile de alması gerekmektedir. Eğer bu durumda veri almıyorsa Master XBEE’nin donanımsal bağlantılarını kontrol edin. Soruna çözüm bulamaz iseniz mail üzerinden size destek olmaya çalışırım.

      İyi çalışmalar.

  12. ferhat şirin

    iyi günler ,
    bir proje üzerinde çalışıyorum projem genel olarak şu şekilde bir yerin boşmu dolumu olduğu bilgisini tespit edeceğim bunu xbeeler ile aktararak bilgisayar ortamaında yer hakkında bılgı elde etmeyı hedeflıyorum .
    yer bilgisi için ultrasonic sensor (hc-sr04 ) kullandım ve su sekılde bır sorun ıle karsılastım
    sorunumu ; direk xbee ile ultrasonic sensor bağlantısı yapılıp , coordinatör konunundaki xbeeye veri aktarıldığında arduıno ıle veri ısleyebılırmıyız

    1. Merhabalar, Xbee ile analog girişleri doğrudan okumak mümkün ancak bu işinizi görür mü bilemiyorum. Söylediğiniz şey teorik olarak mümkün diye düşünüyorum.

  13. akın

    özen bey iyi günler bir proje ile ilgili bişiler sormak istiyorum
    projem ardunyo ile prizdeki akım ve gerilimi okuyup kablosuz haberleşme ile bir ekranda göstermek bunun için seri bir yeterli diye ögrendim kullandıgım ardunyo due olarak belirledim bunun disinda kullanmam gereken malzemeleri bilemiyorum bu konuda yardım edebilir misiniz? simdiden tesekkür ederim

    1. Merhaba Akın Bey,

      Öncelikle şebeke geriliminin seviyesini ölçmek için aşağıdaki blogdaki gibi bir yöntem kullanabilirsiniz:
      http://www.engineerexperiences.com/ac-voltage-measurement.html

      Akımı ölçmek için ise akım sensörü kullanarak ölçekleme yapabilirsiniz.
      Bu verileri xbee ile uzaktaki bir başka xbee’ye göndermek mümkün. Veriyi gösterebilmek için seri port haberleşmesi yapan bir uygulama yazmanız gerekiyor. Ya da herhangi bir seri terminal kullanarak verileri gözleyebilirsiniz.

      İyi çalışmalar dilerim.

  14. akın

    bilgileriniz için tesekkür ederim xbee kullanırken gereklı olacak yan malzemler neler acaba tam olarak onu bilmiyorum sarırsam bilgisayara baglamak için usb explorer var bunu dısında baka gerkeli seylerde var mı acaba

  15. selman

    merhabalar özen bey öncelikle bu şekilde bilgi alışverişini sağladığınız için teşekkürler
    ben arduino ile matlabı haberleştirecem ama arduinoya bağlı olan sensör bilgisini matlaba yollayamadım.
    örnek verecek olursak bir potasyometreden direnç değerini matlabta görmek istiyorum yada bir lm35 sıcaklık sensöründen gelen bilgiyi matlaba aktarmak istiyorum. bununla ilgili herhangi bir bilginiz varsa bana yardımcı olursanız benim için çok değerli bir bilgi olacaktır.
    Şimdiden teşekkürler. . .

Leave a Reply