- Reikalingi komponentai:
- RF modulis:
- Darbinis paaiškinimas:
- Grandinės paaiškinimas:
- „WiringPi“ bibliotekos diegimas „Raspberry Pi“:
- Programavimo paaiškinimas:
Šioje sesijoje mes kuriame „Raspberry Pi“, kuris gali būti naudojamas belaidžiu būdu valdyti įrenginius, sukurti RF nuotolinio valdymo pultą. Įrenginius galime įjungti ir išjungti naudodami šį RF nuotolinio valdymo pultą. Anksčiau mes sukūrėme daugelį projektų, kuriuose naudojamas RF modulis, pvz., RF valdomas robotas, rankų gestais valdomas robotas ir kt., Patikrinkite juos, kad suprastumėte RF modulio veikimą.
Reikalingi komponentai:
Siųstuvo pusė:
- RF siųstuvas (ASK hibridinis siųstuvas)
- HT12E IC
- 4 Mygtukai
- 750k rezistorius
- 9 voltų baterija
Imtuvo pusė:
- Avietė Pi
- 16x2 LCD ekranas
- 10K POT
- Bandomoji Lenta
- 1K rezistorius (penki)
- 33K rezistorius
- HT12D IC
- RF imtuvas (ASK hibridinis imtuvas)
- Šviesos diodai (penki)
- 10K rezistorius (keturi)
- Jungiamasis laidas
- Maitinimas
RF modulis:
Tai yra ASK hibridinis siųstuvas ir imtuvo modulis, veikiantis 433 MHz dažniu. Šis modulis turi kristaliniu būdu stabilizuotą osciliatorių, kad būtų galima tiksliai valdyti dažnį, kad jis būtų geriausias. Išoriškai šiam moduliui mums reikia tik vienos antenos.
Šis modulis yra labai ekonomiškas tais atvejais, kai reikalingas didelio nuotolio radijo ryšys. Šis modulis nesiunčia duomenų tiesiogiai naudodamas kompiuterio ar mikrovaldiklio UART ryšį, nes šiame dažnyje ir jo analoginėje technologijoje yra daug triukšmo. Mes galime naudoti šį modulį naudodami kodavimo ir dekoderio IC, kurie išskiria duomenis iš triukšmo.
Siųstuvo nuotolis yra apie 100 metrų esant didžiausiai maitinimo įtampai, o 5 voltų siųstuvo nuotolis yra apie 50-60 metrų, naudojant paprastą viengubą viengubo kodo 17 cm ilgio anteną.
RF siųstuvo funkcijos:
- Dažnių diapazonas: 433 Mhz
- Išėjimo galia: 4-16 dBm
- Įvesties maitinimas: nuo 3 iki 12 voltų nuolatinės srovės
RF Tx kaiščių aprašymas:
- GND - žemės tiekimas
- Duomenų įvestis - šis kaištis priima serijinius duomenis iš kodavimo įrenginio
- Vcc - +5 voltai turi būti prijungti prie šio kaiščio
- Antena - suvyniota jungtis prie šio kaiščio, kad būtų galima tinkamai perduoti duomenis
RF imtuvo savybės:
- Jautrumas: -105dBm
- IF dažnis: 1MHz
- Mažas energijos suvartojimas
- Srovė 3,5 mA
- Maitinimo įtampa: 5 voltai
„RF Rx“ kaiščio aprašymas:
- GND - žemė
- Duomenų įvestis - šis kaištis suteikia išvesties serijos duomenis dekoderiui
- Duomenų įvestis - šis kaištis suteikia išvesties serijos duomenis dekoderiui
- Vcc - +5 voltai turi būti prijungti prie šio kaiščio
- Vcc - +5 voltai turi būti prijungti prie šio kaiščio
- GND - žemė
- GND - žemė
- Antena - suvyniota jungtis prie šio kaiščio, kad būtų galima tinkamai priimti duomenis
Darbinis paaiškinimas:
Darbas šiame projekte yra labai lengvas. Šiame projekte mes naudojome keturis mygtukus siųstuvo pusėje (tarnauja kaip nuotolinis), kad valdytume keturis šviesos diodus imtuvo gale. Kai paspausime bet kurį iš keturių mygtukų, „Encoder IC“ užkoduoja signalą ir siunčia jį į RF siųstuvą, o RF siųstuvas jį perduoda aplinkoje. Dabar radijo imtuvas priima perduotą signalą ir jį dekoduoja naudodamas dekoderį IC HT12D ir siunčia savo 4 bitų išvestį į „Raspberry Pi“. Tada „Raspberry Pi“ perskaito šiuos bitus, atlieka susijusią užduotį ir šviečia atitinkamas šviesos diodas. Kiekvieną kartą paspaudus bet kurį mygtuką, garsinis signalas pypteli sekundę. 16x2 skystųjų kristalų ekranas taip pat naudojamas rodyti visų šviesos diodų būseną „ĮJUNGTA arba IŠJUNGTA“.
Šiame projekte keturis šviesos diodus naudojome tik demonstravimo tikslais, bet kurią užduotį galime suaktyvinti paspausdami atitinkamą mygtuką „RF Remote“. Kaip ir vietoj šviesos diodų, mes galime prijungti kintamosios srovės buitinę techniką naudodami relę ir valdyti tuos prietaisus belaidžiu būdu naudodami tą patį „RF Remote“. Taigi ta pati grandinė gali veikti kaip RF pagrįstas namų automatikos projektas, naudojant „Raspberry Pi“. Anksčiau mes sukūrėme daug namų automatikos projektų, valdomų naudojant „Bluetooth“, DTMF, GSM ir kt., Visus čia galite patikrinti namų automatikos projektuose.
Grandinės paaiškinimas:
Šio „ Raspberry Pi“ RF nuotolinio valdymo pultas yra paprastas, jame yra „Raspberry Pi“ plokštė, mygtukas ir LCD ekranas, RF pora ir kodavimo / dekoderio IC. „Raspberry Pi“ valdo LCD ekraną, skaito įvestį ir siunčia išvestį pagal įvestį. Čia mes naudojome „Raspberry Pi 3“, tačiau bet kuris „Raspberry“ modelis turėtų veikti. Grandinė yra padalinta į dvi dalis, viena yra RF imtuvo grandinė, kita - RF siųstuvo grandinė. Abi grandinės parodytos žemiau esančioje diagramoje.
Imtuvo dalyje skystųjų kristalų kaiščiai rs, en, d4, d5, d6, d7 yra prijungti laidais. „Pi GPIO 11, 10, 6, 5, 4, 1 kaiščiai 4 bitų režimu. RF imtuvas priima signalą iš RF siųstuvo, o „HT12D IC“ jį dekoduoja. „HT12D“ dekoderio IC D8, D9, D10, D11 yra tiesiogiai prijungti prie laidų. GP GPIO kaiščiai 25, 24, 23 ir 22. Išėjimo šviesos diodai yra prijungti prie laidų paspaudus laidą „Pi GPIO 0“.
RF siųstuvo grandinėje yra „HT12E Encoder IC“ ir 4 mygtukai, skirti valdyti 4 šviesos diodus. „Encoder“ ir „Decoder IC“ sistemose visos adresų linijos yra sujungtos su žeme.
„WiringPi“ bibliotekos diegimas „Raspberry Pi“:
Kaip ir „Python“, mes importuojame importuojamą RPi.GPIO kaip IO antraštės failą, kad galėtume naudoti „Raspberry Pi“ GPIO kaiščius, čia C kalba turime naudoti „ wiringPi“ biblioteką, kad galėtume naudoti GPIO kaiščius savo C programoje. Mes galime jį įdiegti naudodamiesi žemiau esančiomis komandomis po vieną, galite paleisti šią komandą iš terminalo arba iš kai kurių SSH klientų, tokių kaip „Putty“ (jei naudojate „Windows“). Norėdami sužinoti daugiau apie „Raspberry Pi“ valdymą ir konfigūravimą, pereikite prie „Raspberry Pi“ pradžios pamokos.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi./build
Išbandykite „wiringPi“ bibliotekos diegimą, naudokite toliau pateiktas komandas:
gpio -v gpio readall
Programavimo paaiškinimas:
Pirmiausia įtraukiame antraštės failus ir nustatome LCD kaiščius, tada inicializuojame keletą kintamųjų ir kaiščių, skirtų įvesties ir LED indikacijoms gauti.
# įtraukti
Po to mes nurodysime visus naudojamus GPIO kaiščius negaliojančių nustatymų () funkcijose.
negaliojanti sąranka () {if (wiringPiSetup () == -1) {išvalyti (); spausdinti ("Nepavyko paleisti"); setCursor (0,1); spausdinti („wiringPi“); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
Kode mes naudojome „ digitalRead“ funkciją, kad galėtume nuskaityti „Decoder“ ir „ digitalWrite “ išvestis, kad išvestis būtų siunčiama į šviesos diodą ar įrenginį.
…………….. while (1) {setCursor (0,0); spausdinti ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flag1% 2 == 1) {spausdinti ("ON"); „digitalWrite“ („led1“, „HIGH“); }……………..
Čia yra dar keletas funkcijų, kurios buvo naudojamos šiame projekte.
Funkcija void lcdcmd naudojama komandai siųsti į LCD, o void write funkcija naudojama duomenims siųsti į LCD.
Funkcija void clear () naudojama norint išvalyti skystųjų kristalų ekraną, void setCursor naudojama nustatyti žymeklio padėtį ir tuščią spaudą siunčiant eilutę į LCD.
Funkcija tuščia pradžia naudojama norint inicijuoti LCD ekraną 4 bitų režimu ir tuščiu garsiniu signalu (), kad pyptelėtų garsinis signalas.
Žemiau rasite visą šio „Raspberry RF“ nuotolinio valdymo pulto kodą.