Arduino RF Haberleşme

Paylaş
Arduino RF Haberleşme

  Öncelikle herkesin geçmiş Ramazan bayramını kutluyorum. Bayramdan önce aldığım 434 MHz rf alıcı-verici modülleri ile ilgili bir yazı ile karşınızdayım. Eğer ben ebay?dan alırım 1.95$  veririm bir kuruşta fazla vermem diyorsanız yurtdışından gelmesini 1 ay bekleyebilirsiniz. Fakat ben bunları her zaman aldığım genelde Türkiye?de toptan fiyatı düzeyinde satış yaptığını düşündüğüm bluemavi.com?dan  aldım. Kabataştan tramvaya bindim, tophane durağında inerek bluemavi satış yerine gittim ve  kendim teslim aldım. Aşağıda fiyat listesinden aşağı yukarı kendinize göre bir hesap yaparak karar verirsiniz.

Başlangıç olarak yapmak istediğimiz  iki tane arduino arasında bu alıcı ve verici devrelerimizi kullanarak veri yolmamak. Kısaca RF dediğimiz radyo frekansı 3 Hz ile 30 GHz arası frekanslardır. Uzun mesafe haberleşmeleri için uygun değildir. 434 MHZ?lik alıcı-verici ile gerilim kaynağı, kullandığımız antene ve alıcı-verici arası engel olup olmadığına bağlı olarak yaklaşık 90-100 metre arasında haberleşebiliriz.  Bağlantılar için genelde verici bilgileri modül üzerinde yazar fakat aldığınız  vericinin datasheetine bakarak emin olabilirsiniz. Şekil-1 ?deki gibi bağlantıları gerçekleştirelim.

 

Şekil-1

Şekil-2

Alıcı bağlantılarını Şekil-2 ?deki gibi  yapalım. Benim aldığım alıcı PIN?leri şu şekildeydi.  1:GND 2:Digital output 3:Linear Out 4:VCC 5:VCC 6:GND 7:GND 8:Anten

Şimdi yazacağımız kod parçası vericiden gönderilen mesajı alıcıya gönderecek ve serial monitor üzerinden görüntüleyeceğiz. Kablosuz donanımımıza arayüzü sağlamak için VirtualWire kütüphanesini kullanacağız.

Kütüphaneyi http://www.open.com.au/mikem/arduino/VirtualWire-1.5.zip  adresinden indirebilir veya http://www.open.com.au/mikem/arduino/VirtualWire.pdf adresinden inceleyebilirsiniz.

Verici Kodu

/*
Bu kod verici ile virtualwire kütüphanesini
kullanarak alıcıya mesaj göndermemizi sağlar. 
*/
#include <VirtualWire.h> //kütüphanemizi ekledik.
void setup()
{
vw_set_tx_pin(12);// edit okoman: bu parametre programda yoktu sonradan eklendi
vw_setup(2000); //2sn?de bir çalıştırmak için (edit okoman: yaklaşık veri trahasfer hızıdır hatalı açıklama yapılmış) virtualwire?ı başlatır.
}
void loop()
{
   send("hello");//göndereceğimiz mesaj
    delay(1000); //1sn bekle
    }
   void send (char *message) /*mesajı ulaştırmak için 
   loop kodu send fonksiyonunu çağırır ve bu da mesajın ulaştırılması 
   için bekler.*/
    {
      vw_send((uint8_t *)message, strlen(message));
       vw_wait_tx(); // mesaj gidene kadar bekle.
    }

Alıcı Kodu

/*
Arduino?ya bağladığımız alıcıda görünen 
vericiden gönderilmiş mesajı serial monitorde
görüntülemek için 
*/
#include <VirtualWire.h> // Kütüphaneyi ekledik.
byte message[VW_MAX_MESSAGE_LEN]; // gelen mesajları tutmak için 
byte msgLength = VW_MAX_MESSAGE_LEN; // mesaj boyutu
void setup()
{
Serial.begin(9600);
Serial.println("Ready"); //Serial Monitor?de gözükecek mesaj 
vw_setup(2000); /*2sn?de bir çalıştırmak için (edit okoman: yaklaşık veri trahasfer hızıdır hatalı açıklama yapılmış)virtualwire?ı başlatır.*/ 
vw_rx_start(); // Alıcı başlat 
} 
void loop() { 
if (vw_get_message(message, &msgLength)) /*mesaj hazır ise tamam ve mesaj serial monitorde gözükür*/ 
{ Serial.print("Got: "); 
for (int i = 0; i < msgLength; i++){ 
Serial.write(message[i]); 
} 
Serial.println(); 
} 
}

Sonuçlar

Arduino ile RF modülleri kullanarak güzel projeler yapabiliriz. Pahalı olan wireless modüllere bir alternatif olarak gösterilebilir.  “Anne  benim neden iki tane arduinom yok, bana neden bir tane daha arduino almıyorsun” diyenler varsa .  Usb-serial converter kullanarak arduino ile bilgisayarınızı haberleştirebilir hatta sohbet ettirebilirsiniz. İki tane arduinom var  ben zaten yastığımın altında arduino olmadan yatamam diyorsanız bir arduino’ya verici , diğerine alıcı ile bir lcd bağlarsınız millette görsün ne yapabiliyor bu arduino diye yaptıklarınız serial monitöre gömülü kalmasın : ) Herkese iyi çalışmalar diliyorum.

 

 Kaynaklar

[1]  http://www.open.com.au/mikem/arduino/VirtualWire/

[2]  Micheal Margolis,  “Arduino Cookbook” ,2nd ed, O’Reilly Media, Aralık 2011,425- 429

 

 

Devamını oku

Project Aslan, Arduino DUE Kullanan Bir Robot İşaret Dili Çevirmeni

Project Aslan, Arduino DUE Kullanan Bir Robot İşaret Dili Çevirmeni

Genellikle robotikleri endüstriyel veya araştırma alanlarına uygulandığı zaman görüyoruz, ancak günlük yaşamda da yardımcı olabilecekleri çok yol var: Örneğin, görme engelli insanlar için kişisel rehber görevi gören mutfak botu, engellilerin yemek yapmasına yardımcı olabilir. Veya – ve bu gerçek – işaret dili çevirmeni işlevi gören robot kolu. Sınıflarda, mahkemelerde ve evde, bu

Arduino Turkiye tarafından
Arduino DUE ile Yaşayabileceğiniz Sorunların Çözümleri

Arduino DUE ile Yaşayabileceğiniz Sorunların Çözümleri

Elinizden hatırı sayılır miktarda Arduino DUE geçtiyse (veya sadece şanssız gününüzdeyseniz), düzgün çalışmayan en az bir tane cihazla karşılaşma olasılığınız yüksek. Bunun için her zaman cihazı çöpe atmanız gerekmeyebilir. Birçok Arduino DUE sorununu çözmek için çeşitli yöntemler var. Diyelim ki Arduino DUE ile çalışmaya başlayacaksınız. Bunun için Arduino’yu açtınız

Arduino Turkiye tarafından
STM32 Mikro Denetleyiciler Arduino

STM32 Mikro Denetleyiciler Arduino Dünyasında Ne Anlama Geliyor?

Arduino ile tanışanlar genellikle uzun bir yolun başlangıcında oluyor. Çünkü Arduino dünyası vazgeçmesi zor maceralarla dolu. Arduino’yu tanıdıkça bu heyecanınız da artacak. Bu nedenle Arduino dünyasıyla sizi buluşturmak için biz de heyecan duyuyoruz. Çok ucuza elde edebileceğiniz Arduino kiti ve ihtiyaç duyacağınız diğer malzemeler uzun soluklu projeler için yeterli

Arduino Turkiye tarafından