Xbee Zigbee dinamik programlama - Tundra blog

Feel the cooling sensation of knowing things...


It is a programming blog btw

Hot

23 Kasım 2013 Cumartesi

Xbee Zigbee dinamik programlama

Tekrar merhabalar,
Xbee modüllerini Explorer aracılığıyla programlamak işin gerekli bir kısmı. Ama her programlama esnasında, Xbee'yi devreden çıkarıp Explorer'a bağlamak gerekiyor.


Arduino kartları kullanarak Xbee ile ilgili işler yaparken, modülleri detaç etmeden de programlamasını yapabiliriz. Nasıl mı?
Nasıl?
şöyle:
Xbee modülleri, 'DIn' pinlerine gönderdiğimiz verileri direkt olarak network'e gönderiyor. Ama bu pinlere 'AT' komutlarını gönderirsek de modülü programlamaya başlarız. Bu kadarını bilmek yeterli.
Bu iş için 'arduino mega' kartını kullanmak daha iyi olur. Çünkü 3 adet Serial inout'u vardur.
Yapacağımız iş, Serial1'e göndereceğimiz komutların Serial2'ye bağlı olan Xbee modülüne ulaşmasını sağlamaktır. Böylece modülü devreden sökmeden programlama işini yapabiliriz.

void setup(){
Serial1.begin(9600);//serial1 ve serial2 yi kullanacağız
Serial2.begin(9600);
}

String command= ""; //göndermekte olduğumuz komut
String response= ""; //Xbee'den bize gelen cevap
char dummy; //read işlemi için bir tampon
void loop(){
command= "";//command stringini temizlemek
if(Serial1.available()){//Eğer bir komut göndermişsek
do{
dummy= Serial1.read();//komutu al, "command"stringine at
delay(20);
command+= dummy;
}while(Serial1.available());
pushCommand();//komutu Xbee modülüne gönderme fonksiyonu
}//end of if
delay(500);
}//end of function
void pushCommand(){
response= "";//response u temizleme
Serial2.print(command);//komutu xbee'e gönderir
for(int i= 0; i<10; i++){//xbee modülünden gelecek cevabı bekler
delay(200);//maksimum 2 saniye boyunca cevap bekler;
if(Serial2.available()){//cevap gelirse
do{
dummy= Serial2.read();//cevap stringini okumaca
response+= dummy;
}while(Serial2.available());//tüm response'u almaca
if(response.equalsIgnoreCase("OK"))Serial1.print("OK");//bize OK mesajı gönderir
}//end of if
}//end of for
}//end of function
Evet. Programı düzenleyebilirsiniz, düzeltebilirsiniz. Açık kaynak kodu olmaktadır. Umarım işinize yarar.

Hiç yorum yok:

Yorum Gönder