- Szükséges alkatrészek:
- RF modul:
- Munka magyarázat:
- Áramkör magyarázat:
- A wiringPi könyvtár telepítése a Raspberry Pi programba:
- Programozási magyarázat:
Ebben a munkamenetben egy RF távirányítót fejlesztünk ki a Raspberry Pi segítségével, amely az eszközök vezeték nélküli vezérlésére használható. Az RF távirányító segítségével be- és kikapcsolhatjuk az eszközöket. Korábban számos projektet dolgoztunk ki az RF modul használatával, mint például az RF vezérelt robot, a kézmozdulatokkal vezérelt robot stb., Ellenőrizze őket, hogy megértsék az RF modul működését.
Szükséges alkatrészek:
Adó oldala:
- RF adó (ASK hibrid adó)
- HT12E IC
- 4 Nyomógombok
- 750k ellenállás
- 9 voltos akkumulátor
Vevőoldal:
- Raspberry Pi
- 16x2 LCD
- 10K POT
- Kenyérlap
- 1K ellenállás (öt)
- 33K ellenállás
- HT12D IC
- RF vevő (ASK hibrid vevő)
- LED-ek (öt)
- 10K ellenállás (négy)
- Csatlakozó vezeték
- Tápegység
RF modul:
Ez egy ASK hibrid adó és vevő modul 433 MHz frekvencián működik. Ez a modul kristálystabilizált oszcillátorral rendelkezik a pontos frekvenciaszabályozás fenntartása érdekében a legjobb tartományban. Ott csak egy antennára van szükségünk külsőleg ehhez a modulhoz.
Ez a modul nagyon költséghatékony, ha nagy hatótávolságú RF kommunikációra van szükség. Ez a modul nem küld adatokat közvetlenül a számítógép vagy a mikrokontroller UART kommunikációjával, mert ezen a frekvencián és annak analóg technológiáján sok a zaj. Használhatjuk ezt a modult kódoló és dekóder IC-k segítségével, amelyek kivonják az adatokat a zajból.
Az adó hatótávolsága kb. 100 méter maximális tápfeszültség mellett, és 5 volt esetén az adó hatótávolsága kb. 50-60 méter, egyetlen kóddal ellátott 17cm hosszú antennával.
RF adó jellemzői:
- Frekvenciatartomány: 433 Mhz
- Kimeneti teljesítmény: 4-16dBm
- Bemenet: 3-12 V DC
Az RF Tx csap leírása:
- GND - földi ellátás
- Adatbemenet - Ez a tű fogadja a kódolók soros adatait
- Vcc - +5 V-ot kell csatlakoztatni ehhez a csaphoz
- Antenna - Csomagolt csatlakozás ehhez a tűhöz az adatok megfelelő továbbításához
RF vevő jellemzői:
- Érzékenység: -105dBm
- IF frekvencia: 1MHz
- Alacsony energia fogyasztás
- Áram 3,5 mA
- Tápfeszültség: 5 volt
Az RF Rx csap leírása:
- GND - föld
- Data In - Ez a tű adja meg a kimeneti soros adatokat a dekódernek
- Data In - Ez a tű adja meg a kimeneti soros adatokat a dekódernek
- Vcc - +5 V-ot kell csatlakoztatni ehhez a csaphoz
- Vcc - +5 V-ot kell csatlakoztatni ehhez a csaphoz
- GND - föld
- GND - föld
- Antenna - Csomagolt csatlakozás ehhez a tűhöz az adatok megfelelő vétele érdekében
Munka magyarázat:
Ennek a projektnek a kidolgozása nagyon egyszerű. Ebben a projektben négy gombot használtunk az adó oldalán (távvezérlőként) a négy LED vezérléséhez a vevő végén. Amikor a négy gomb bármelyikét megnyomjuk, akkor az Encoder IC kódolja a jelet és elküldi az RF adónak, az RF adó pedig a környezetben továbbítja. Most az RF vevő fogadja az átvitt jelet és dekódolja a dekóder IC HT12D segítségével, és 4 bites kimenetét elküldi a Raspberry Pi-nek. Ezután a Raspberry Pi beolvassa ezeket a biteket, elvégzi a kapcsolódó feladatot, és felragyog a megfelelő LED. Bármelyik gomb lenyomásakor egy hangjelzés másodpercig sípol. 16x2 LCD-t is használnak az összes LED 'ON vagy OFF' állapotának megjelenítésére.
Ebben a projektben négy LED-et használtunk csak demonstrációs célokra. Bármely feladatot kiválthatunk, ha megnyomjuk a megfelelő gombot az „RF távirányítónál”. Hasonlóan a LED-ek helyett a váltóáramú háztartási készülékeket is csatlakoztathatjuk a relé segítségével, és ugyanazokat az „RF távirányítókat” használhatjuk vezeték nélkül. Tehát ugyanez az áramkör RF-alapú otthoni automatizálási projektként működhet a Raspberry Pi alkalmazásával. Korábban számos otthoni automatizálási projektet dolgoztunk ki, amelyeket Bluetooth, DTMF, GSM stb. Használatával vezérelhetünk. Az összeset itt ellenőrizheti.
Áramkör magyarázat:
Ennek a Raspberry Pi RF távirányítónak az áramköre egyszerű, amely tartalmaz Raspberry Pi kártyát, nyomógombot és LCD-t, RF párost és kódoló / dekóder IC-t. A Raspberry Pi vezérli az LCD-t, beolvassa a bemenetet és a kimenetet a bemenetnek megfelelően küldi. Itt Raspberry Pi 3-at használtunk, de bármelyik Raspberry modellnek működnie kell. Az áramkör két részre oszlik, az egyik RF vevő áramkör, a másik pedig RF adó áramkör. Mindkét áramkört az alábbi ábra mutatja.
A Vevő részben az rs, en, d4, d5, d6, d7 LCD tűk csatlakoznak a vezetékekhez. A GPI GPIO 11, 10, 6, 5, 4, 1 érintkezők 4 bites módban. Az RF vevő fogadja a jelet az RF adótól, és a HT12D IC dekódolja azt. A HT12D dekóder IC D8, D9, D10, D11 egységei közvetlenül csatlakoznak a vezetékekhez. GPI GPIO 25., 24., 23. és 22. érintkező. A kimeneti LED-ek a vezetékeken vannak összekötve. gombot megnyomva a vezetékezésnélPi GPIO 0.
Az RF adó áramkör tartalmazza a HT12E Encoder IC-t és 4 nyomógombot a 4 LED vezérléséhez. Az Encoder és a Decoder IC-ben az összes címsor a földhöz csatlakozik.
A wiringPi könyvtár telepítése a Raspberry Pi programba:
A Pythonhoz hasonlóan az RPi.GPIO importálását IO fejlécfájlként importáljuk a Raspberry Pi GPIO Pins használatához, itt C nyelven a wiringPi Library-t kell használnunk a GP Program Pins használatához C programunkban. Telepíthetjük az alábbi parancsok egyesével, futtathatja ezt a parancsot a Terminálból vagy néhány SSH-ügyfélből, például a Putty-ból (ha Windows-ot használ). Olvassa el az Első lépések a Raspberry Pi bemutatónkat, hogy többet tudjon meg a Raspberry Pi kezeléséről és konfigurálásáról.
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
Tesztelje a wiringPi könyvtár telepítését, használja az alábbi parancsokat:
gpio -v gpio readall
Programozási magyarázat:
Először fejlécfájlokat is tartalmazunk, és meghatározzuk az LCD érintkezőit, majd inicializálunk néhány változót és csapokat a bemeneti és LED-jelzések felvételéhez.
#include
Utána irányt adunk az összes használt GPIO Pinnnek a void setup () függvényekben.
void setup () {if (wiringPiSetup () == -1) {törlés (); print ("Nem lehet elindítani"); setCursor (0,1); nyomtatás ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
A kódban a digitalRead funkciót használtuk a dekóder és a digitalWrite kimenetének kiolvasására , hogy a kimenetet LED-re vagy eszközre küldjük.
…………….. while (1) {setCursor (0,0); nyomtatás ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flag1% 2 == 1) {print ("ON"); digitalWrite (led1, HIGH); }……………..
Íme néhány további funkció, amelyet ebben a projektben használtak.
A void lcdcmd funkció a parancs LCD-re küldésére szolgál, a void write funkció pedig az adatok LCD-re küldésére szolgál.
A void clear () funkció az LCD törléséhez, a void setCursor a kurzor pozíciójának és a void print beállításához használható a karakterlánc LCD-re küldéséhez.
A void begin funkcióval inicializálható az LCD 4-bites módban, és a void buzzer () a hangjelzés sípolásához.
Az alábbiakban ellenőrizze a Raspberry RF távirányító teljes kódját.