- Nødvendige komponenter:
- RF-modul:
- Arbejdsforklaring:
- Forklaring af kredsløb:
- Installation af wiringPi Library i Raspberry Pi:
- Programmeringsforklaring:
I denne session skal vi udvikle en RF-fjernbetjening ved hjælp af Raspberry Pi, som kan bruges til at styre enhederne trådløst. Vi kan tænde og slukke for enhederne ved hjælp af denne RF-fjernbetjening. Vi har tidligere udviklet mange projekter ved hjælp af RF-modul som RF-styret robot, håndbevægelsesstyret robot osv. Kontroller dem for at forstå, hvordan RF-modul fungerer.
Nødvendige komponenter:
Senderside:
- RF-sender (ASK hybridtransmitter)
- HT12E IC
- 4 trykknapper
- 750 k modstand
- 9 Volt batteri
Modtagerside:
- Hindbær Pi
- 16x2 LCD
- 10K POTTE
- Brødbræt
- 1K modstand (fem)
- 33K modstand
- HT12D IC
- RF-modtager (ASK hybridmodtager)
- LED'er (fem)
- 10K modstand (Fire)
- Forbindelsesledning
- Strømforsyning
RF-modul:
Dette er et ASK Hybrid-sender- og modtagermodul, der fungerer ved 433 MHz-frekvens. Dette modul har en krystalstabiliseret oscillator til opretholdelse af nøjagtig frekvensstyring for bedste rækkevidde. Der skal vi kun bruge en antenne eksternt til dette modul.
Dette modul er meget omkostningseffektivt, hvor langtrækkende RF-kommunikation er påkrævet. Dette modul sender ikke data ved hjælp af UART-kommunikation fra pc eller mikrocontroller direkte, fordi der er masser af støj ved denne frekvens og dens analoge teknologi. Vi kan bruge dette modul ved hjælp af encoder- og dekoder-IC'er, der ekstraherer data fra støj.
Senderens rækkevidde er ca. 100 meter ved maksimal forsyningsspænding, og for 5 volt er senderens rækkevidde ca. 50-60 meter ved brug af en simpel ledning med en enkelt kode med en 17 cm lang antenne.
RF-senderegenskaber:
- Frekvensområde: 433 Mhz
- Udgangseffekt: 4-16dBm
- Indgangsforsyning: 3 til 12 volt jævnstrøm
Stiftbeskrivelse af RF Tx:
- GND - Jordforsyning
- Data In - Denne pin accepterer serielle data fra koderen
- Vcc - +5 Volt skal tilsluttes denne pin
- Antenne - En indpakket forbindelse til denne pin til korrekt transmission af data
RF-modtagerfunktioner:
- Følsomhed: -105dBm
- HVIS frekvens: 1MHz
- Lavt strømforbrug
- Strøm 3,5 mA
- Forsyningsspænding: 5 volt
Stiftbeskrivelse af RF Rx:
- GND - Jord
- Data In - Denne pin giver output serielle data til dekoder
- Data In - Denne pin giver output serielle data til dekoder
- Vcc - +5 Volt skal tilsluttes denne pin
- Vcc - +5 Volt skal tilsluttes denne pin
- GND - Jord
- GND - Jord
- Antenne - En indpakket forbindelse til denne pin for korrekt modtagelse af data
Arbejdsforklaring:
Arbejdet med dette projekt er meget let. I dette projekt har vi brugt fire knapper på sendersiden (fungerer som fjernbetjening) til at styre de fire lysdioder i modtagerenden. Når vi trykker på en af fire knapper, koder Encoder IC signalet og sender det til RF-senderen, og RF-transmitteren sender det i miljøet. Nu modtager RF- modtageren det transmitterede signal og afkoder det ved hjælp af dekoder IC HT12D og sender sin 4-bit output til Raspberry Pi. Derefter læser Raspberry Pi disse bits og udfører relateret opgave og lyser den respektive LED. En summer bipper et sekund, hver gang der trykkes på en tast. Et 16x2 LCD bruges også til at vise 'ON eller OFF' status for alle lysdioder.
I dette projekt har vi brugt fire lysdioder kun til demonstrationsformål. Vi kan udløse enhver opgave ved at trykke på den respektive knap på 'RF Remote'. Som vi også kan tilslutte AC-husholdningsapparater i stedet for lysdioder ved hjælp af relæet og kan styre disse apparater trådløst ved hjælp af den samme 'RF-fjernbetjening'. Så det samme kredsløb kan fungere som et RF-baseret hjemmeautomatiseringsprojekt ved hjælp af Raspberry Pi. Vi har tidligere udviklet mange hjemmeautomatiseringsprojekter, der styres ved hjælp af Bluetooth, DTMF, GSM osv. Du kan tjekke alt her Hjemmeautomatiseringsprojekter.
Forklaring af kredsløb:
Kredsløbet til denne Raspberry Pi RF-fjernbetjening er enkel, som indeholder Raspberry Pi Board, trykknap og LCD, RF-par og encoder / dekoder IC. Raspberry Pi styrer LCD'et, læser input og sender output i henhold til input. Vi har brugt Raspberry Pi 3 her, men enhver Raspberry-model skal fungere. Kredsløbet er opdelt i to dele, den ene er RF-modtager kredsløb og den anden er RF transmitter kredsløb. Begge kredsløb er vist i nedenstående diagram.
I modtagerdelen er LCD-pin rs, en, d4, d5, d6, d7 tilsluttet ved ledningsføring Pi GPIO Pin 11, 10, 6, 5, 4, 1 i 4-bit-tilstand. RF-modtager modtager signalet fra RF-senderen, og HT12D IC afkoder det. D8, D9, D10, D11 af HT12D-dekoder IC tilsluttes direkte ved ledningsføring tryk på ledningen Pi GPIO 0.
RF-senderkredsløb indeholder HT12E Encoder IC og 4 trykknapper til at styre de 4 LED'er. I Encoder og Decoder IC er alle adresselinjer forbundet til jorden.
Installation af wiringPi Library i Raspberry Pi:
Ligesom i Python importerer vi import af RPi.GPIO som IO- headerfil for at bruge GPIO Pins i Raspberry Pi, her på C-sprog skal vi bruge wiringPi Library til at bruge GPIO Pins i vores C-program. Vi kan installere det ved hjælp af nedenstående kommandoer en efter en, du kan køre denne kommando fra Terminal eller fra nogle SSH-klienter som Putty (hvis du bruger Windows). Gå gennem vores Kom godt i gang med Raspberry Pi-vejledning for at lære mere om håndtering og konfiguration af Raspberry Pi.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd ledningsføring Pi git pull origin cd wiringPi./build
Test installationen af wiringPi-biblioteket, brug nedenstående kommandoer:
gpio -v gpio readall
Programmeringsforklaring:
Først og fremmest inkluderer vi headerfiler og definerer stifter til LCD, initialiserer derefter nogle variabler og stifter til optagelse af input og LED-indikationer.
#omfatte
Efter det giver vi retning til alle brugte GPIO Pins i ugyldige opsætningsfunktioner () .
ugyldig opsætning () {if (wiringPiSetup () == -1) {clear (); print ("Kan ikke starte"); setCursor (0,1); print ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
I kode har vi brugt digitalRead- funktionen til at læse output fra dekoder og digitalWrite til at sende output til LED eller enhed.
…………….. mens (1) {setCursor (0,0); print ("D1 D2 D3 D4"); hvis (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); hvis (flag1% 2 == 1) {print ("ON"); digitalWrite (led1, HIGH); }……………..
Her er nogle flere funktioner, som er blevet brugt i dette projekt.
Funktion ugyldig lcdcmd bruges til at sende kommando til LCD og ugyldig skrivefunktion bruges til at sende data til LCD.
Funktion void clear () bruges til at rydde LCD, void setCursor bruges til at indstille markørposition og ugyldig udskrivning til at sende streng til LCD.
Funktion ugyldig start bruges til at initialisere LCD i 4-bit tilstand og ugyldig summer () til bip af summer.
Tjek den fulde kode for denne Raspberry RF-fjernbetjening nedenfor.