- Gerekli Bileşenler:
- RF Modülü:
- Çalışma Açıklaması:
- Devre Açıklaması:
- Raspberry Pi'de kablolama Pi Kitaplığı kurulumu:
- Programlama Açıklaması:
Bu oturumda, Cihazları kablosuz olarak kontrol etmek için kullanılabilecek Raspberry Pi kullanarak bir RF Uzaktan Kumanda geliştireceğiz. Bu RF uzaktan kumandayı kullanarak cihazları açıp kapatabiliriz. Daha önce RF Kontrollü Robot, El Hareketi Kontrollü Robot gibi RF Modülünü kullanarak birçok proje geliştirdik, RF Modülünün çalışmasını anlamak için kontrol edin.
Gerekli Bileşenler:
Verici Tarafı:
- RF Verici (ASK Hibrit Verici)
- HT12E IC
- 4 itme düğmesi
- 750k direnç
- 9 Volt batarya
Alıcı Tarafı:
- Ahududu Pi
- 16x2 LCD
- 10K Tencere
- Ekmek tahtası
- 1K Direnç (Beş)
- 33K direnç
- HT12D IC
- RF Alıcı (ASK Hibrit Alıcı)
- LED'ler (Beş)
- 10K direnç (Dört)
- Bağlantı teli
- Güç kaynağı
RF Modülü:
Bu bir ASK Hibrit Vericidir ve alıcı modülü 433Mhz frekansında çalışır. Bu modül, en iyi aralık için doğru frekans kontrolünü sürdürmek için kristalle stabilize edilmiş bir osilatöre sahiptir. Orada bu modül için harici olarak sadece bir antene ihtiyacımız var.
Bu Modül, uzun menzilli RF iletişiminin gerekli olduğu yerlerde çok düşük maliyetlidir. Bu modül, PC'nin veya mikro denetleyicinin UART iletişimini kullanarak verileri doğrudan göndermez çünkü bu frekansta ve onun Analog teknolojisinde çok fazla gürültü vardır. Bu modülü, gürültüden veri çıkaran kodlayıcı ve kod çözücü entegrelerinin yardımıyla kullanabiliriz.
Verici aralığı, maksimum besleme voltajında yaklaşık 100 metredir ve 5 volt için, tek kodlu 17 cm uzunluğunda antenin basit bir teli kullanılarak verici aralığı yaklaşık 50-60 metredir.
RF Verici Özellikleri:
- Frekans Aralığı: 433 Mhz
- Çıkış Gücü: 4-16dBm
- Giriş beslemesi: 3 ila 12 volt dc
RF Tx'in Pin Açıklaması:
- GND - Toprak kaynağı
- Veri Girişi - Bu pin, kodlayıcıdan seri verileri kabul eder
- Vcc - +5 Volt bu pime bağlanmalıdır
- Anten - Verilerin düzgün iletimi için bu pime sarılı bir bağlantı
RF Alıcı Özellikleri:
- Hassasiyet: -105dBm
- IF Frekansı: 1 MHz
- Düşük güç tüketimi
- Akım 3,5 mA
- Besleme gerilimi: 5 volt
RF Rx'in Pin Açıklaması:
- GND - Zemin
- Veri Girişi - Bu pin, Kod Çözücüye çıkış seri verilerini verir
- Veri Girişi - Bu pin, Kod Çözücüye çıkış seri verilerini verir
- Vcc - +5 Volt bu pime bağlanmalıdır
- Vcc - +5 Volt bu pime bağlanmalıdır
- GND - Zemin
- GND - Zemin
- Anten - Verilerin uygun şekilde alınması için bu pime sarılı bir bağlantı
Çalışma Açıklaması:
Bu projenin çalışması çok kolaydır. Bu projede, Alıcı tarafındaki dört LED'i kontrol etmek için verici tarafında (uzaktan kumanda görevi görür) dört düğme kullandık. Dört düğmeden herhangi birine bastığımızda Encoder IC sinyali kodlayarak RF vericisine gönderir ve RF Verici ortam içinde iletir. Şimdi RF Alıcı, iletilen sinyali alır ve Kod Çözücü IC HT12D'yi kullanarak kodunu çözer ve 4 bitlik çıktısını Raspberry Pi'ye gönderir. Ardından Raspberry Pi bu bitleri okur ve ilgili görevi yerine getirir ve ilgili LED'i yakar. Herhangi bir tuşa basıldığında bir saniyeliğine sesli uyarı çalar. Ayrıca, tüm LED'lerin 'AÇIK veya KAPALI' durumunu görüntülemek için 16x2 LCD kullanılır.
Bu projede sadece tanıtım amaçlı 4 adet led kullandık, 'RF Remote'ta ilgili butona basarak herhangi bir görevi tetikleyebiliriz. Röleyi kullanarak LED'lerin yerine AC Ev Aletlerini de bağlayabiliriz ve bu cihazları aynı 'RF Uzaktan Kumandayı' kablosuz olarak kullanarak kontrol edebiliriz. Dolayısıyla bu aynı devre, Raspberry Pi kullanan RF tabanlı bir Ev otomasyon Projesi olarak çalışabilir. Daha önce Bluetooth, DTMF, GSM vb. Kullanılarak kontrol edilen birçok Ev Otomasyon Projesi geliştirdik, tüm Ev Otomasyon Projelerini buradan inceleyebilirsiniz.
Devre Açıklaması:
Bu Raspberry Pi RF Uzaktan Kumandanın devresi basittir ve Raspberry Pi Kartı, basma düğmesi ve LCD, RF Çifti ve kodlayıcı / kod çözücü IC içerir. Raspberry Pi, LCD'yi kontrol eder, girişi okur ve girişe göre çıkış gönderir. Raspberry Pi 3'ü burada kullandık, ancak herhangi bir Raspberry modeli çalışmalı. Devre, biri RF Alıcı devresi ve diğeri RF verici devresi olmak üzere iki kısma ayrılmıştır. Her iki devre de aşağıdaki diyagramda gösterilmiştir.
Alıcı kısmında, LCD pin rs, en, d4, d5, d6, d7, 4-bit modunda Pi GPIO Pin 11, 10, 6, 5, 4, 1 kablolarına bağlanır. RF Alıcı sinyali RF Vericiden alır ve HT12D IC de şifresini çözer. HT12D kod çözücü IC'nin D8, D9, D10, D11 kablolarına doğrudan bağlanırPI GPIO pini 25, 24, 23 ve 22. Çıkış LED'leri kablo bağlantılarına bağlanırPi GPIO pin 26, 27, 28 ve 29. Ayrıca uyarı için bir zil kullanılır. Pi GPIO 0 kablolamasında tuşuna basıldı.
RF verici devresi, HT12E Kodlayıcı IC ve 4 LED'i kontrol etmek için 4 basma düğmesi içerir. Kodlayıcı ve Kod Çözücü IC'de tüm adres hatları toprağa bağlıdır.
Raspberry Pi'de kablolama Pi Kitaplığı kurulumu:
Python'da olduğu gibi , Raspberry Pi'nin GPIO Pinlerini kullanmak için RPi.GPIO'yu IO başlık dosyası olarak içe aktarıyoruz , burada C dilinde GPIO Pinlerini C Programımızda kullanmak için wiringPi Kitaplığı kullanmamız gerekiyor. Aşağıdaki komutları tek tek kullanarak kurabiliriz, bu komutu Terminal'den veya Putty gibi bazı SSH istemcilerinden (Windows kullanıyorsanız) çalıştırabilirsiniz. Raspberry Pi'nin kullanımı ve yapılandırılması hakkında daha fazla bilgi edinmek için Raspberry Pi ile Başlarken eğitimimizi inceleyin.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd wiringPi git orijinli cd wiringPi./build çekin
WiringPi kitaplığının kurulumunu test edin, aşağıdaki komutları kullanın:
gpio -v gpio readall
Programlama Açıklaması:
Öncelikle başlık dosyalarını ekliyoruz ve LCD için pinleri tanımlıyoruz, ardından giriş ve LED göstergelerini almak için bazı değişkenleri ve pinleri başlatıyoruz.
#Dahil etmek
Bundan sonra void setup () fonksiyonlarında kullanılan tüm GPIO Pinlerine yön veriyoruz.
geçersiz kurulum () {if (wiringPiSetup () == -1) {clear (); print ("Başlatılamıyor"); setCursor (0,1); baskı ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
Kodunda biz kullandık digitalRead Decoder ve çıktısını okumak için işlevini digitalWrite LED veya cihaza çıkış göndermek için.
…………….. while (1) {setCursor (0,0); baskı ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); eğer (bayrak1% 2 == 1) {baskı ("AÇIK"); digitalWrite (led1, YÜKSEK); }……………..
İşte bu projede kullanılmış olan bazı işlevler.
İşlev geçersiz lcdcmd LCD ve komutu göndermek için kullanılır boşluk yazma LCD veri göndermek için kullanılır fonksiyonu.
İşlev void clear () LCD'yi temizlemek için kullanılır, void setCursor ise imleç konumunu ayarlamak ve diziyi LCD'ye göndermek için yazdırmayı geçersiz kılmak için kullanılır.
Fonksiyon geçersiz başlatma , LCD'yi 4-bit Modunda başlatmak için ve sesli uyarıyı biplemek için buzzer'ı () geçersiz kılmak için kullanılır.
Bu Raspberry RF Uzaktan Kumanda için aşağıdaki Tam Kodu kontrol edin.