- Nödvändiga komponenter:
- RF-modul:
- Arbetsförklaring:
- Kretsförklaring:
- Installera wiringPi Library i Raspberry Pi:
- Programmeringsförklaring:
I den här sessionen ska vi utveckla en RF-fjärrkontroll med Raspberry Pi, som kan användas för att styra enheterna trådlöst. Vi kan slå på och stänga av enheterna med den här RF-fjärrkontrollen. Vi har tidigare utvecklat många projekt med RF-modul som RF-kontrollerad robot, handgeststyrd robot etc., kontrollera dem för att förstå hur RF-modulen fungerar.
Nödvändiga komponenter:
Sändarsida:
- RF-sändare (ASK Hybrid Transmitter)
- HT12E IC
- 4 Tryckknappar
- 750k motstånd
- 9 Volt batteri
Mottagarsida:
- Raspberry Pi
- 16x2 LCD
- 10K POT
- Brödbräda
- 1K motstånd (fem)
- 33K motstånd
- HT12D IC
- RF-mottagare (ASK Hybrid Receiver)
- Lysdioder (fem)
- 10K-motstånd (fyra)
- Anslutningskabel
- Strömförsörjning
RF-modul:
Detta är en ASK Hybrid-sändar- och mottagarmodul som arbetar med 433 MHz-frekvens. Denna modul har en kristallstabil oscillator för att upprätthålla noggrann frekvenskontroll för bästa räckvidd. Där behöver vi bara en antenn externt för den här modulen.
Denna modul är mycket kostnadseffektiv där RF-kommunikation med lång räckvidd krävs. Den här modulen skickar inte data med UART-kommunikation från PC eller mikrokontroller direkt eftersom det finns mycket brus vid denna frekvens och dess analoga teknik. Vi kan använda den här modulen med hjälp av kodare och avkodare-IC: er som extraherar data från bruset.
Sändarens räckvidd är cirka 100 meter vid maximal matningsspänning och för 5 volt är sändarens räckvidd cirka 50-60 meter med användning av en enkel tråd av enkods 17 cm lång antenn.
RF-sändarfunktioner:
- Frekvensomfång: 433 MHz
- Uteffekt: 4-16 dBm
- Ingång: 3 till 12 volt likström
Stiftbeskrivning av RF Tx:
- GND - Markförsörjning
- Data In - Denna stift accepterar seriell data från kodaren
- Vcc - +5 Volt ska anslutas till denna stift
- Antenn - En lindad anslutning till denna stift för korrekt överföring av data
RF-mottagarfunktioner:
- Känslighet: -105dBm
- IF-frekvens: 1MHz
- Låg energiförbrukning
- Ström 3,5 mA
- Matningsspänning: 5 volt
Stiftbeskrivning av RF Rx:
- GND - mark
- Data In - Denna pin ger utdata seriell data till avkodaren
- Data In - Denna pin ger utdata seriell data till avkodaren
- Vcc - +5 Volt ska anslutas till denna stift
- Vcc - +5 Volt ska anslutas till denna stift
- GND - mark
- GND - mark
- Antenn - En lindad anslutning till denna stift för korrekt mottagning av data
Arbetsförklaring:
Att arbeta med detta projekt är väldigt enkelt. I detta projekt har vi använt fyra knappar på sändarsidan (fungerar som fjärrkontroll) för att styra de fyra lysdioderna i mottagarens ände. När vi trycker på någon av fyra knappar kodar kodaren IC signalen och skickar den till RF-sändaren och RF-sändaren sänder den i en miljö. Nu tar RF-mottagaren emot den sända signalen och avkodar den med hjälp av avkodare IC HT12D och skickar sin 4-bitars utgång till Raspberry Pi. Sedan läser Raspberry Pi dessa bitar och utför relaterad uppgift och lyser respektive LED. En summer piper i en sekund när någon knapp trycks in. En 16x2 LCD används också för att visa statusen "PÅ eller AV" för alla lysdioder.
I det här projektet har vi använt fyra lysdioder bara för demonstrationsändamål. Vi kan utlösa alla uppgifter genom att trycka på respektive knapp på 'RF Remote'. Som om vi också kan ansluta AC-hushållsapparater istället för lysdioder, med hjälp av reläet och kan styra dessa apparater med samma RF-fjärrkontroll trådlöst. Så samma krets kan fungera som ett RF-baserat hemautomationsprojekt med Raspberry Pi. Vi har tidigare utvecklat många hemautomationsprojekt som styrs med Bluetooth, DTMF, GSM etc., du kan kolla alla här Hemautomatiseringsprojekt.
Kretsförklaring:
Kretsloppet för denna Raspberry Pi RF-fjärrkontroll är enkel som innehåller Raspberry Pi Board, tryckknapp och LCD, RF-par och kodare / avkodare IC. Raspberry Pi styr LCD-skärmen, läser in och skickar utdata enligt ingång. Vi har använt Raspberry Pi 3 här, men vilken hallonmodell som helst borde fungera. Kretsen är uppdelad i två delar, en är RF-mottagarkrets och den andra är RF-sändarkrets. Båda kretsarna visas i diagrammet nedan.
I mottagardelen är LCD-stift rs, en, d4, d5, d6, d7 anslutna till ledningar Pi GPIO Pin 11, 10, 6, 5, 4, 1 i 4-bitars läge. RF-mottagaren tar emot signalen från RF-sändaren och HT12D IC avkodar den. D8, D9, D10, D11 på HT12D-avkodare IC är direktanslutna vid ledningarPI GPIO-stift 25, 24, 23 och 22. Utgångslampor är anslutna vid ledningarPi GPIO-stift 26, 27, 28 och 29. En summer används också för varning vid -knappen tryckt in vid ledningPi GPIO 0.
RF-sändarkretsen innehåller HT12E Encoder IC och 4 tryckknappar för att styra de fyra lysdioderna. I Encoder och Decoder IC är alla adressrader anslutna till jord.
Installera wiringPi Library i Raspberry Pi:
Precis som i Python importerar vi import RPi.GPIO som IO- rubrikfil för att använda GPIO Pins i Raspberry Pi, här på C-språk måste vi använda wiringPi Library för att använda GPIO Pins i vårt C-program. Vi kan installera det genom att använda kommandona nedan en efter en, du kan köra det här kommandot från Terminal eller från vissa SSH-klienter som Putty (om du använder Windows). Gå igenom vår Kom igång med Raspberry Pi-handledning för att lära dig mer om hantering och konfigurering av Raspberry Pi.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd-ledningarPi git pull origin cd wiringPi./build
Testa installationen av wiringPi-biblioteket, använd kommandona nedan:
gpio -v gpio readall
Programmeringsförklaring:
Först och främst inkluderar vi huvudfiler och definierar stift för LCD, sedan initialiserar vi några variabler och stift för att ta in- och LED-indikationer.
#omfatta
Efter det ger vi riktning till alla använda GPIO-pins i ogiltiga installationsfunktioner () .
ogiltig installation () {if (wiringPiSetup () == -1) {clear (); skriva ut ("Kan inte starta"); setCursor (0,1); tryck ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
I kod har vi använt digitalRead- funktionen för att läsa ut avkodaren och digitalWrite för att skicka utgången till LED eller enhet.
…………….. medan (1) {setCursor (0,0); tryck ("D1 D2 D3 D4"); om (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flagga1% 2 == 1) {print ("ON"); digitalWrite (led1, HIGH); }……………..
Här är några fler funktioner som har använts i detta projekt.
Funktion ogiltig lcdcmd används för att skicka kommando till LCD och ogiltig skrivfunktion används för att skicka data till LCD.
Funktion void clear () används för att rensa LCD-skärmen, void setCursor används för att ställa in markörposition och ogiltig utskrift för att skicka sträng till LCD.
Funktionen void begin används för att initialisera LCD i 4-bitars läge och ogiltig summer () för att pipa summern.
Kontrollera den fullständiga koden för denna Raspberry RF-fjärrkontroll nedan.