RF işaret çözümleme
Merhaba bu derste size 433 MHz ASK türünde oluşturulmuş işaretlerin nasıl çözüldüğünü anlatmaya çalışacağım.
Bu bilgileri kullanarak ilginç uygulamalar yapabilirsiniz. Örneğin kablosuz prizleri örüt ağdan kontrol edebilirsiniz ya da kablosuz iklim istasyonlarının verilerini okuyabilirsiniz.
Burada 434 MHz RF alıcı kullanarak iz süreceğiz. İzi kaydetmek için basitçe ses kartını ve ses kayıt yazılımını kullanabiliriz. Ses kartı iz üzerinden yüksek bir hızda (örneğin 48.000 Hz) örnek alabilir ve bu sinyali bir dalga gözlere (“osiloskop”) göre daha uzun süre kaydedebilir.
Bu nedenle dalga gözler yerine ses kartını tercih edebiliriz.
Burada dikkat ederseniz alıcının iki numaralı ucuna bağlı dirençler bir gerilim bölücü oluşturuyor. RF alıcının veri çıkışında genellikle 0-5V arası bir gerilim oluşuyor, gerilim bölücüyü kullanarak bu işareti yaklaşık 1V seviyelerine indiriyoruz. Ses kablosunda 2 tane kanal, 2 tane toprak var. Devre şemasında yeşil ve maviyle gösterilen bu kanalları birleştirdik. Daha sonra bu işareti ses kartının genellikle maviyle gösterilen "Line In"
hat girişi ucuna veriyoruz.
Ses kablosunu kullanmadan önce üzerindeki yalıtım malzemesini yakarak kabloların ucunu açabilirsiniz. Kablonun toprak uçlarını da birleştiriyoruz.
Verici devremiz oldukça basit. Sadece vericinin veri kapısını Arduino'nun 10 numaralı ikili ucuna bağlıyoruz.
Programımız RC Switch kütüphanesini kullanıyor. RC Switch kütüphanesini buradan indirip kurabilirsiniz.
Verici programımız şu şekilde:
#include <RCSwitch.h>
RCSwitch verici = RCSwitch();
void setup()
{
verici.enableTransmit(10); // 10 numaralı dijital kapıyı kullanıyoruz
}
void loop()
{
verici.send("010101010101010101010101");
delay(1000);
}
Alıcıya yükleyeceğimiz program:
#include <RCSwitch.h>
RCSwitch alici = RCSwitch();
void setup()
{
Serial.begin(9600);
alici.enableReceive(0); // İki numaralı dijital kapı oluyor
}
void loop()
{
if (alici.available())
{
int okunanDeger = alici.getReceivedValue();
if (okunanDeger == 0)
{
Serial.print("Bilinmeyen kodlama");
}
else
{
Serial.print("Okunan değer : ");
Serial.print( alici.getReceivedValue() );
Serial.print(" ");
Serial.print( alici.getReceivedBitlength() );
Serial.print("bit ");
Serial.print("İletişim kuralı : ");
Serial.println( alici.getReceivedProtocol() );
}
alici.resetAvailable();
}
}
Alıcı ve verici arasındaki iletişimin sorunsuz olduğunu Linux'ta
$ screen /dev/ttyACM0 9600
komutuyla görebilirsiniz. Ya da Arduino geliştirme ortamında Araçlar→Seri Port Ekranı
nı kullanabilirsiniz.
Okunan değer : 5592405 24bit İletişim kuralı : 1
Her şey sorunsuz çalışıyorsa yukarıdaki gibi ya da benzer bir çıktı görüyor olmalısınız.
Artık alıcıyı bilgisayarın “Line In”
hat girişi ucuna takabiliriz. Ses ayarlarında giriş sesinin açık olup olmadığını kontrol edin.
RF işaretlerini kaydetmek için Linux altında açık kaynak kodlu Audacity yazılımını kullanabilirsiniz. Aşağıda bir ekran görüntüsü bulabilirsiniz.
Şimdi resimdeki gibi biraz aşağı çekelim ve yakınlaşalım.
Oynat tuşuna basarak RF işaretlerini dinleyebilirsiniz. Görsel olarak da verinin nerede olduğunu aşağıda görebilirsiniz. Yukarıdaki gibi ilk önce veri kısmını dinleyin sonra gürültüyü dinleyin. Sanırım siz de duyarak verinin nerede olduğunu artık anlamışsınızdır ;-)
Bu kısmı içeriği sığdır düğmesine tıklayarak biraz daha büyütelim.
Artık radyo elektroniğinde 0 ve 1'leri de öğrenmiş oldunuz.
RF işaretlerinin süresini ölçmek istersek nasıl bir yöntem kullanabiliriz?
Audacity programında işaretlere iyice yaklaştığınızda örnek noktaları görebilirsiniz. Örnekleme hızının 48000 Hz olduğunu biliyoruz.
Hertz bir işin sıklığını belirtiyor. Örneğin 1 Hz derken bir işin saniyede 1 kere yapıldığını belirtiyoruz. Audacity programı 1 saniyede 48.000 örnek alıyorsa bir örnek için geçen süre 1/48.000 olacaktır.
Audacity programı seçilen bir bölgede kaç örnek olduğunu gösterebiliyor. Baktığımızda uzun açık işaretinde 50 tane örnek varmış. Bir örnek için 1/48.000 saniye ise, 50 örnek için geçen süre 50/48.000 saniye oluyor. Bu da yaklaşık olarak 1040 mikro saniyeye tekabül ediyor. Benzer şekilde kısa açık için geçen süreyi ise 333 us olarak hesapladım.
Bundan sonraki aşamada kaydettiğiniz bu işaretleri Arduino ile oluşturmayı deneyebilirsiniz. En başta bahsettiğimiz gibi kablosuz güç prizlerini örüt ağdan kontrol edebilirsiniz. Ya da kablosuz iklim istasyonlarının verilerine erişebilirsiniz.
Yorumlar