- Zahtevane komponente:
- RF modul:
- Delovna razlaga:
- Pojasnilo vezja:
- Namestitev knjižnice ožičenja Pi v Raspberry Pi:
- Pojasnilo programiranja:
V tej seji bomo razvili RF daljinski upravljalnik z uporabo Raspberry Pi, ki ga lahko uporabljamo za brezžično upravljanje naprav. Naprave lahko vklopimo in izklopimo s tem RF daljinskim upravljalnikom. V preteklosti smo že razvili številne projekte, ki uporabljajo RF modul, kot so RF nadzorovani robot, Ročni krmiljen robot itd., Preverite jih, da razumejo delovanje RF modula.
Zahtevane komponente:
Stran oddajnika:
- RF oddajnik (ASK hibridni oddajnik)
- HT12E IC
- 4 Potisni gumbi
- 750k upor
- 9-voltna baterija
Stran sprejemnika:
- Raspberry Pi
- 16x2 LCD
- 10K LONČEK
- Deska za kruh
- 1K upor (pet)
- 33K upor
- HT12D IC
- RF sprejemnik (ASK hibridni sprejemnik)
- LED (pet)
- 10K upor (štirje)
- Priključna žica
- Napajanje
RF modul:
To je hibridni oddajniški in oddajniški modul ASK, ki deluje na frekvenci 433 MHz. Ta modul ima kristalno stabiliziran oscilator za vzdrževanje natančnega nadzora frekvence za najboljši domet. Tam moramo za ta modul imeti samo eno anteno od zunaj.
Ta modul je zelo stroškovno učinkovit, kadar je potrebna RF komunikacija na velike razdalje. Ta modul ne pošilja podatkov prek UART komunikacije osebnega računalnika ali mikrokrmilnika, ker je na tej frekvenci in njeni analogni tehnologiji veliko hrupa. Ta modul lahko uporabimo s pomočjo IC-kodirnikov in dekoderjev, ki iz hrupa pridobivajo podatke.
Doseg oddajnika je približno 100 metrov pri največji napajalni napetosti, pri 5 voltih pa je oddajnik približno 50-60 metrov z uporabo preproste žice enojne antene dolžine 17 cm.
Značilnosti RF oddajnika:
- Frekvenčni razpon: 433 MHz
- Izhodna moč: 4-16dBm
- Vhodno napajanje: 3 do 12 voltov enosmernega toka
Pin opis RF Tx:
- GND - Oskrba s tlemi
- Podatki v - Ta zatič sprejema serijske podatke dajalnika
- Vcc - +5 Volt mora biti povezan s tem zatičem
- Antena - ovita povezava s tem zatičem za pravilen prenos podatkov
Značilnosti RF sprejemnika:
- Občutljivost: -105dBm
- ČE frekvenca: 1 MHz
- Nizka poraba energije
- Tok 3,5 mA
- Napajalna napetost: 5 voltov
Pin opis RF Rx:
- GND - Tla
- Data In - ta zatič daje izhodne serijske podatke Decoder-ju
- Data In - ta zatič daje izhodne serijske podatke Decoder-ju
- Vcc - +5 Volt mora biti povezan s tem zatičem
- Vcc - +5 Volt mora biti povezan s tem zatičem
- GND - Tla
- GND - Tla
- Antena - ovita povezava s tem zatičem za pravilen sprejem podatkov
Delovna razlaga:
Delo s tem projektom je zelo enostavno. V tem projektu smo uporabili štiri gumbe na strani oddajnika (služi kot daljinski upravljalnik) za nadzor štirih LED na koncu sprejemnika. Ko pritisnemo katerega koli od štirih gumbov, potem kodirnik IC signal kodira in pošlje RF oddajniku, RF oddajnik pa ga odda v okolju. Zdaj RF-sprejemnik sprejme oddani signal in ga dekodira z uporabo Decoder IC HT12D in pošlje svoj 4-bitni izhod Raspberry Pi. Nato Raspberry Pi prebere te bite in izvede s tem povezano nalogo ter zasveti vsako LED. Zvočni signal za sekundo zapiska vsakič, ko pritisnete katero koli tipko. LCD 16x2 se uporablja tudi za prikaz stanja 'VKLOP ali IZKLOP' vseh LED.
V tem projektu smo uporabili štiri LED diode samo za predstavitev. Vsako nalogo lahko sprožimo s pritiskom na ustrezen gumb na 'RF Remote'. Tako kot lahko tudi AC gospodinjske aparate namesto LED priklopimo z uporabo releja in lahko te naprave brezžično nadzorujemo z istim RF daljinskim upravljalnikom. Torej lahko to isto vezje deluje kot projekt za avtomatizacijo domov na osnovi RF, ki uporablja Raspberry Pi. Pred tem smo razvili številne projekte avtomatizacije domov, ki jih nadziramo Bluetooth, DTMF, GSM itd., Vse tukaj lahko preverite tukaj.
Pojasnilo vezja:
Vezje tega daljinskega upravljalnika Raspberry Pi RF je preprosto, ki vsebuje ploščo Raspberry Pi, gumb in LCD, RF par in IC kodirnik / dekoder. Raspberry Pi nadzoruje LCD, bere vhod in pošilja izhod glede na vhod. Tu smo uporabili Raspberry Pi 3, vendar bi moral delovati kateri koli model Raspberry. Vezje je razdeljeno na dva dela, eden je vezje RF sprejemnika in drugo vezje RF oddajnika. Oba vezja sta prikazana na spodnjem diagramu.
V delu sprejemnika so LCD pin rs, en, d4, d5, d6, d7 priključeni na ožičenje Pi GPIO Pin 11, 10, 6, 5, 4, 1 v 4-bitnem načinu. RF sprejemnik sprejme signal od RF oddajnika in HT12D IC ga dekodira. D8, D9, D10, D11 dekodirne IC HT12D so neposredno priključene na ožičenjePI GPIO pin 25, 24, 23 in 22. Izhodne LED diode so priključene na ožičenjePi GPIO pin 26, 27, 28 in 29. Zvočni signal se uporablja tudi za opozarjanje na pritisnjena tipka pri ožičenju Pi GPIO 0.
Vezje RF oddajnika vsebuje IC-kodirnik HT12E in 4 tipke za nadzor 4 LED. V kodirniku in dekoderju IC so vse naslovne vrstice povezane z maso.
Namestitev knjižnice ožičenja Pi v Raspberry Pi:
Tako kot v Pythonu tudi mi uvozimo RPi.GPIO kot glavno datoteko IO za uporabo zatičev GPIO Raspberry Pi, tudi tu v jeziku C moramo uporabiti knjižnico wiringPi za uporabo zatičev GPIO v našem programu C. Lahko ga namestimo z uporabo spodnjih ukazov enega za drugim, ta ukaz lahko zaženete s terminala ali iz nekaterih odjemalcev SSH, kot je Putty (če uporabljate Windows). Oglejte si naš uvod za uvod v Raspberry Pi, če želite izvedeti več o ravnanju in konfiguriranju Raspberry Pi
sudo apt-get namestite git-core sudo apt-get posodobite sudo apt-get nadgradite git clone git: //git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi./build
Preizkusite namestitev knjižnice wiringPi, uporabite spodnje ukaze:
gpio -v gpio readall
Pojasnilo programiranja:
Najprej vključimo datoteke z glavo in določimo nožice za LCD, nato pa inicializiramo nekatere spremenljivke in nožice za jemanje vhodnih in LED indikacij.
#include
Po njej usmerimo vse uporabljene GPIO zatiče v void setup () funkcije.
void setup () {if (wiringPiSetup () == -1) {clear (); print ("Ne morem zagnati"); setCursor (0,1); tisk ("wiringPi"); } pinMode (led1, IZHOD); pinMode (led2, IZHOD); pinMode (led3, IZHOD); pinMode (led4, IZHOD);……………….
V kodi smo uporabili funkcijo digitalRead za branje izhoda Decoderja in digitalWrite za pošiljanje izhoda na LED ali napravo.
…………….. while (1) {setCursor (0,0); tiskanje ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flag1% 2 == 1) {print ("ON"); digitalWrite (led1, HIGH); }……………..
Tu je še nekaj funkcij, ki so bile uporabljene v tem projektu.
Funkcija void lcdcmd se uporablja za pošiljanje ukaza na LCD, funkcija void write pa za pošiljanje podatkov na LCD.
Funkcija void clear () se uporablja za čiščenje LCD-ja, void setCursor se uporablja za nastavitev položaja kurzorja in void print za pošiljanje niza na LCD.
Funkcija void start se uporablja za inicializacijo LCD-ja v 4-bitnem načinu in void brenčalo () za piskanje brenčača.
Spodaj preverite celotno kodo tega daljinskega upravljalnika Raspberry RF.