De fapt, dispozitivul de transfer de date constă din două module: un receptor și un transmițător. Datele pot fi transmise numai într-o singură direcție. Acest lucru este important pentru a înțelege atunci când utilizați aceste module.
De exemplu, puteți face controlul de la distanță al oricărui dispozitiv electronic, fie că este vorba de un robot mobil sau, de exemplu, de un televizor. În acest caz, datele vor fi transferate de la panoul de control către dispozitiv. O altă opțiune este transmiterea semnalelor de la senzorii fără fir către sistemul de achiziție de date. Aici traseul se schimbă deja, iar transmițătorul se află pe partea senzorului, iar receptorul se află pe partea sistemului de colectare.
Modulele pot avea nume diferite: MX-05V, XD-RF-5V, XY-FST, XY-MK-5V etc. dar toate au aproximativ aceeași aparență și numărul de contacte. De asemenea, două frecvențe ale modulelor radio sunt frecvente: 433 MHz și 315 MHz.
1. Conexiune
Transmițătorul are numai trei ieșiri: Gnd, Vcc și Date.
Le conectăm la prima placă Arduino conform schemei:
Transmițătorul MX-05V 433MHz
Receptorul are patru ieșiri, dar unul nu este utilizat.
Schema de conectare la cea de-a doua placă a lui Arduino este identică cu prima:
Receptor XD-RF-5V 433MHz
Colectăm ambele dispozitive pe panoul de pâine și începem să scriem programe.
2. Programul pentru transmițător
Pentru a lucra cu module radio, utilizați biblioteca RCSwitch. Să scriem un program care va trimite câte două mesaje diferite în fiecare secundă.
Vom analiza programul. Primul lucru pe care l-am făcut a fost să anunțăm obiectul de a lucra cu transmițătorul și l-am numit MySwitch.
Apoi, în interiorul funcției de configurare standard, emițătorul a fost pornit și ieșirea la care a fost conectat a fost indicată:
În cele din urmă, în buclă principală a programului buclă, trimitem mai întâi un mesaj, iar apoi cel de-al doilea utilizând funcția de trimitere:
Funcția de trimitere are două argumente. Primul este un mesaj care urmează să fie trimis, care va fi difuzat ca o explozie de impulsuri. Al doilea argument este dimensiunea pachetului trimis.
În programul nostru, am specificat mesajele în formatul numărului binar. Acest lucru este indicat de litera engleză "B" de la începutul codului B1000. În reprezentarea zecimală, acest număr se va transforma într-o cifră de opt. Deci am putea apela funcția de trimitere astfel:
De asemenea, trimiteți puteți accepta șiruri binare:
3. Programul pentru receptor
Acum scrieți programul pentru receptor. Pentru a demonstra starea de transmisie, vom lumina LED-ul conectat la terminalul nr. 3 de pe placa Arduino. Dacă receptorul a prins codul B1000 - porniți LED-ul și dacă B0100 - dezactivați.
Funcția disponibilă returnează adevărat dacă transmițătorul a primit cel puțin câteva date:
Funcția getReceivedValue extrage un pachet din fluxul de date și îl decodifică într-un număr. În program, atribuim valoarea rezultată valorii variabile:
Acum puteți încerca să exersați și să faceți diferite dispozitive utile. Iată câteva idei.
- Telecomanda pentru corpul de iluminat. Pe partea receptorului, modulul releului. inclus în circuitul de alimentare al lămpii (atenție, 220 V!). Pe partea transmițătorului: un buton de ceas. Scrie programe pentru receptor și transmițător, care prin apăsarea butonului va activa releul de la distanță. Dacă butonul este apăsat din nou, releul se va opri.
- Terminal de stradă cu canal radio. Așezați senzorul de temperatură pe partea transmițătorului. Furnizați o sursă autonomă de alimentare de la baterii. Pe partea receptorului: un afișaj LCD cu caracter. Scrieți programele pentru receptor și emițător care vă permit afișarea citirilor de temperatură de la senzorul telecomenzii pe afișaj.
concluzie
Deci, acum știm o modalitate simplă și ieftină de a transfera date la distanță. Din nefericire, viteza de transmisie și distanța în astfel de module radio sunt foarte limitate, astfel încât nu putem controla pe deplin, de exemplu un quadrocopter. Cu toate acestea, putem face un panou de control radio pentru un aparat simplu de uz casnic: o lampă, un ventilator sau un televizor.