NRF24L01 - test distanta maxima de transmisie a datelor pe 2.4 Ghz
Posted: 01 May 2022 19:38
Pentru ca vreau sa fac niste teste cu comanda mai multor relee, prin unde radio, am testat modulul NRF24L01, care este un transceiver pe 2.4 Ghz.
Acesta inseamna ca fiecare modul in parte poate transmite si receptiona date, nu avem nevoie de un emitator separat si un receptor separat.
Dar sa vedem cum deruleaza testul.
Prima surpriza am avut-o, in momentul in care am vrut sa fac conexiunile electrice la Arduino.
Modulele pe care le-am primit eu, nu au nimic scris despre pinii existenti pe modul.
nici pe fata....
nici pe dos...
Dar o scurta vizita pe pagina producatorului, a facut rapid lumina
Conexiunea o gasim in codul pe care l-am gasit in librariile necesare, cod pe care l-am editat putin pentru nevoile mele.
Librariile folosite le puteti gasi aici: https://github.com/nRF24/RF24
Documentatia pentru aceasta librarie o gasiti aici: https://nrf24.github.io/RF24/
Pentru partea de transmisie am folosit acest cod:
Iar pentru receptie am folosit acest cod:
Toate fisierele mele din pastebin le puteti gasi aici: https://pastebin.com/u/LeventeDaradici
Am facut un scurt video cu rezultatele.
Ce as avea de adaugat, in video distanta la care functioneaza modulele, este destul de limitata, insa cu o zi inainte am masurat distante mult peste dublul din acest video. Exista si posibilitatea ca bateria de 9V sa fi cedat dupa nenumarate teste, pentru ca am masurat doar 8.4 V pe bateria in gol, si acesta sa influenteze raza maxima de acoperire a modulelor. Astazi e duminica si nu ma duc pana in oras pentru o baterie de 9V, dar maine o sa testez distanta din nou, iar daca va fi mult mai mare ca in prima zi, o sa revin cu detalii.
LED-ul in receptor l-am adaugat, pentru a-mi semnaliza vizual, daca a primit date receptorul de la emitator. Sa nu car laptopul prin masina ca sa urmaresc consola seriala.
Pentru cei care au putin habar de Arduino, realizeaza foarte usor din codul receptorului cum este legat LED-ul de Arduino.
LED-ul este de tip difuz (opac) cu catodul comun. Astfel catodul se conecteaza de GND, pentru limitarea curentului in LED inseriat rintr-un rezistor de 220 ohmi. Corect ar fi catodul de GND si doua rezistoare pe cele doua culori pe care le-am ales. Dar dim moment ce fiexare culoare se aprinde cand nu functioneaza cealalta culoare, se poate si cu un singur rezistor pe GND, iar culorile conectate direct pe pinii digitali declarati iesire de pe receptor.
Un alt lucru pe care-l puteti observa, daca va uitati putin mai atenti in codul receptorului, este ca transmitem cuvintele ON si OFF, iar la receptie cand receptioneaza ON se cupleaza culoarea VERDE a LED-ului RGB, iar cand receptorul primeste in semnal comanda OFF se va decupla LED-ul RGB.
In momentul in care modulul receptor nu primeste semnal de la transmitator, se va cupla culoarea ROSIE a LED-ului RGB. Astfel stim ca ne aflam in afara zonei de acoperire al emitatorului.
Practic in acest moment avem montajul pregatit pentru comanda unor relee, dar asta in urmatorul test, in functie de timpul liber pe care-l voi avea.
Spor la bricolat !
Acesta inseamna ca fiecare modul in parte poate transmite si receptiona date, nu avem nevoie de un emitator separat si un receptor separat.
Dar sa vedem cum deruleaza testul.
Prima surpriza am avut-o, in momentul in care am vrut sa fac conexiunile electrice la Arduino.
Modulele pe care le-am primit eu, nu au nimic scris despre pinii existenti pe modul.
nici pe fata....
nici pe dos...
Dar o scurta vizita pe pagina producatorului, a facut rapid lumina
Conexiunea o gasim in codul pe care l-am gasit in librariile necesare, cod pe care l-am editat putin pentru nevoile mele.
Librariile folosite le puteti gasi aici: https://github.com/nRF24/RF24
Documentatia pentru aceasta librarie o gasiti aici: https://nrf24.github.io/RF24/
Pentru partea de transmisie am folosit acest cod:
Iar pentru receptie am folosit acest cod:
Toate fisierele mele din pastebin le puteti gasi aici: https://pastebin.com/u/LeventeDaradici
Am facut un scurt video cu rezultatele.
Ce as avea de adaugat, in video distanta la care functioneaza modulele, este destul de limitata, insa cu o zi inainte am masurat distante mult peste dublul din acest video. Exista si posibilitatea ca bateria de 9V sa fi cedat dupa nenumarate teste, pentru ca am masurat doar 8.4 V pe bateria in gol, si acesta sa influenteze raza maxima de acoperire a modulelor. Astazi e duminica si nu ma duc pana in oras pentru o baterie de 9V, dar maine o sa testez distanta din nou, iar daca va fi mult mai mare ca in prima zi, o sa revin cu detalii.
LED-ul in receptor l-am adaugat, pentru a-mi semnaliza vizual, daca a primit date receptorul de la emitator. Sa nu car laptopul prin masina ca sa urmaresc consola seriala.
Pentru cei care au putin habar de Arduino, realizeaza foarte usor din codul receptorului cum este legat LED-ul de Arduino.
LED-ul este de tip difuz (opac) cu catodul comun. Astfel catodul se conecteaza de GND, pentru limitarea curentului in LED inseriat rintr-un rezistor de 220 ohmi. Corect ar fi catodul de GND si doua rezistoare pe cele doua culori pe care le-am ales. Dar dim moment ce fiexare culoare se aprinde cand nu functioneaza cealalta culoare, se poate si cu un singur rezistor pe GND, iar culorile conectate direct pe pinii digitali declarati iesire de pe receptor.
Un alt lucru pe care-l puteti observa, daca va uitati putin mai atenti in codul receptorului, este ca transmitem cuvintele ON si OFF, iar la receptie cand receptioneaza ON se cupleaza culoarea VERDE a LED-ului RGB, iar cand receptorul primeste in semnal comanda OFF se va decupla LED-ul RGB.
In momentul in care modulul receptor nu primeste semnal de la transmitator, se va cupla culoarea ROSIE a LED-ului RGB. Astfel stim ca ne aflam in afara zonei de acoperire al emitatorului.
Practic in acest moment avem montajul pregatit pentru comanda unor relee, dar asta in urmatorul test, in functie de timpul liber pe care-l voi avea.
Spor la bricolat !