- Componente necesare:
- Modul RF:
- Explicație de lucru:
- Explicația circuitului:
- Instalarea wiringPi Library în Raspberry Pi:
- Explicație de programare:
În această sesiune vom dezvolta o telecomandă RF folosind Raspberry Pi, care poate fi utilizată pentru a controla dispozitivele fără fir. Putem porni și opri dispozitivele folosind această telecomandă RF. Am dezvoltat anterior mai multe proiecte folosind modulul RF, cum ar fi robotul controlat RF, robotul controlat prin gesturi manuale etc., verificați-le pentru a înțelege modul de funcționare al modulului RF.
Componente necesare:
Partea transmițătorului:
- Transmițător RF (ASK Hybrid Transmitter)
- HT12E IC
- 4 Apăsați butoanele
- Rezistor 750k
- Baterie de 9 volți
Partea receptorului:
- Raspberry Pi
- 16x2 LCD
- GHID 10K
- Placă de pâine
- Rezistor 1K (cinci)
- Rezistor de 33K
- HT12D IC
- Receptor RF (ASK Receptor hibrid)
- LED-uri (cinci)
- Rezistor de 10K (patru)
- Sârmă de conectare
- Alimentare electrică
Modul RF:
Acesta este un modul ASK Hybrid Transmitter și receptor care funcționează la o frecvență de 433 MHz. Acest modul are un oscilator stabilizat cu cristale pentru a menține un control precis al frecvenței pentru cea mai bună gamă. Acolo trebuie să avem nevoie doar de o singură antenă externă pentru acest modul.
Acest modul este foarte eficient din punct de vedere al costurilor acolo unde este necesară comunicarea RF pe distanțe lungi. Acest modul nu trimite date utilizând comunicarea UART a computerului sau a microcontrolerului direct, deoarece există o mulțime de zgomot la această frecvență și tehnologia sa analogică. Putem utiliza acest modul cu ajutorul codificatoarelor și decodificatoarelor care extrag date din zgomot.
Raza de acțiune a transmițătorului este de aproximativ 100 de metri la tensiunea maximă de alimentare și pentru 5 volți raza de acțiune a transmițătorului este de aproximativ 50-60 de metri cu utilizarea unui fir simplu de antenă cu cod unic de 17 cm lungime.
Caracteristici ale emițătorului RF:
- Gama de frecvență: 433 Mhz
- Putere de ieșire: 4-16dBm
- Alimentare de intrare: 3 până la 12 volți c.c.
Pin Descrierea RF Tx:
- GND - Alimentare la sol
- Date In - Acest pin acceptă date seriale de la codificator
- Vcc - +5 Volți ar trebui să fie conectat la acest pin
- Antena - O conexiune înfășurată la acest pin pentru transmiterea corectă a datelor
Caracteristici receptor RF:
- Sensibilitate: -105dBm
- Frecvența IF: 1MHz
- Consum redus de putere
- Curent 3,5 mA
- Tensiunea de alimentare: 5 volți
Pin Descrierea RF Rx:
- GND - sol
- Date In - Acest pin oferă date seriale de ieșire Decoderului
- Date In - Acest pin oferă date seriale de ieșire Decoderului
- Vcc - +5 Volți ar trebui să fie conectat la acest pin
- Vcc - +5 Volți ar trebui să fie conectat la acest pin
- GND - sol
- GND - sol
- Antena - O conexiune înfășurată la acest pin pentru recepția corectă a datelor
Explicație de lucru:
Lucrul acestui proiect este foarte ușor. În acest proiect am folosit patru butoane pe partea transmițătorului (servește ca telecomandă) pentru a controla cele patru LED-uri de la capătul receptorului. Când apăsăm oricare dintre cele patru butoane, atunci codificatorul IC codifică semnalul și îl trimite către emițătorul RF, iar emițătorul RF îl transmite în mediu. Acum receptorul RF primește semnalul transmis și îl decodează folosind Decoder IC HT12D și trimite ieșirea sa de 4 biți către Raspberry Pi. Apoi, Raspberry Pi citește acești biți și efectuează sarcini conexe și aprinde LED-ul respectiv. Un semnal sonor emite o secundă de fiecare dată când este apăsată orice tastă. Un LCD 16x2 este, de asemenea, utilizat pentru a afișa starea „ON sau OFF” a tuturor LED-urilor.
În acest proiect, am folosit patru LED-uri doar în scop demonstrativ, putem declanșa orice sarcină apăsând butonul respectiv la „RF Remote”. De asemenea, putem conecta și electrocasnice AC în locul LED-urilor, folosind releu și putem controla acele aparate folosind aceeași „telecomandă RF” fără fir. Deci, același circuit poate funcționa ca un proiect de automatizare la domiciliu bazat pe RF folosind Raspberry Pi. Am dezvoltat anterior mai multe proiecte de automatizare la domiciliu controlate prin Bluetooth, DTMF, GSM etc., puteți verifica toate aici Proiecte de automatizare la domiciliu.
Explicația circuitului:
Circuitul acestei telecomenzi Raspberry Pi RF este simplu, care conține placă Raspberry Pi, buton și LCD, pereche RF și codificator / decodor IC. Raspberry Pi controlează ecranul LCD, citește intrarea și trimite ieșirea în funcție de intrare. Am folosit Raspberry Pi 3 aici, dar orice model Raspberry ar trebui să funcționeze. Circuitul este împărțit în două părți, una este circuitul receptorului RF și cealaltă este circuitul transmițătorului RF. Ambele circuite sunt prezentate în diagrama de mai jos.
În partea Receiver, pinul LCD rs, en, d4, d5, d6, d7 sunt conectate la cablarea Pi GPIO Pin 11, 10, 6, 5, 4, 1 în modul 4 biți. Receptorul RF primește semnalul de la emițătorul RF și HT12D IC îl decodează. D8, D9, D10, D11 din IC-ul decodificatorului HT12D sunt conectate direct la cablare PIN GPIO pin 25, 24, 23 și 22. LED-urile de ieșire sunt conectate la cablarePi GPIO pin 26, 27, 28 și 29. Un buzzer este, de asemenea, utilizat pentru alertă pe tasta apăsată la cablare Pi GPIO 0.
Circuitul emițătorului RF conține codificatorul HT12E IC și 4 butoane pentru a controla cele 4 LED-uri. În codificator și decodor IC toate liniile de adresă sunt conectate la masă.
Instalarea wiringPi Library în Raspberry Pi:
Ca și în Python, importăm RPi.GPIO de import ca fișier de antet IO pentru a utiliza pinii GPIO ai Raspberry Pi, aici, în limbajul C, trebuie să folosim biblioteca wiringPi pentru a utiliza pinii GPIO în programul nostru C. O putem instala utilizând comenzile de mai jos una câte una, puteți rula această comandă de la Terminal sau de la unii clienți SSH precum Putty (dacă utilizați Windows). Consultați tutorialul Noțiuni introductive despre Raspberry Pi pentru a afla mai multe despre manipularea și configurarea Raspberry Pi.
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
Testați instalarea bibliotecii wiringPi, utilizați comenzile de mai jos:
gpio -v gpio readall
Explicație de programare:
În primul rând includem fișiere antet și definim pini pentru LCD, apoi inițializăm câteva variabile și pini pentru a lua indicații de intrare și LED.
#include
După el, dăm direcția tuturor pinilor GPIO folosiți în funcțiile de setare nulă () .
void setup () {if (wiringPiSetup () == -1) {clear (); print („Nu se poate porni”); setCursor (0,1); print ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
În cod, am folosit funcția digitalRead pentru a citi ieșirea Decoderului și digitalWrite pentru a trimite ieșirea către LED sau dispozitiv.
…………….. while (1) {setCursor (0,0); print ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flag1% 2 == 1) {print ("ACTIVAT"); digitalWrite (led1, HIGH); }……………..
Iată câteva funcții care au fost utilizate în acest proiect.
Funcția void lcdcmd este utilizată pentru trimiterea comenzilor pe LCD și funcția de scriere nulă este utilizată pentru trimiterea de date pe LCD.
Funcția void clear () este utilizată pentru a șterge ecranul LCD, setare nulă Cursorul este utilizat pentru a seta poziția cursorului și imprimarea nulă pentru trimiterea șirului la LCD.
Funcția de începere a golului este utilizată pentru a inițializa ecranul LCD în modul pe 4 biți și buzzerul nul () pentru a emite un buzzer.
Verificați mai jos codul complet pentru această telecomandă Raspberry RF.