Pentru a transfera diferite date sau informatii intre 2 placi de dezvoltare Arduino fara a folosi o legatura fizica intre cele 2 vom folosi 2 module WiFi nRF24L01.

    Aceste module sunt folosite atat pentru transmisie cat si pentru receptie. Ele emit in banda de 2.4GHz si au o rata de transfer intre 250 kbs si 2 Mbs.

    Tensiunea de alimentare a acestor module este intre 1.9 si 3.6 Volti la un curent maxim de 12 miliAmperi.

    Pinii de intrare sunt tolernati la tensiunea de 5 Volti.

    Distanta de counicare intre 2 astfel de module este de maxim 100 de metri in camp deschis.

    Un astfel de modul costa 7 lei si se gaseste de cumparat aici.

    O poza cu modulul folosit este mai jos:

 

    Modulele pot folosi un maxim de 125 de canale, fiecarui canal fiindu-i alocate maxim 6 adrese.

    Conexiunea la Arduino Uno/Nano se face in felul urmator pentru ambele module:

Arduino      -       nRF24L01

3V3            -       VCC

GND          -        GND

D8             -        CSN

D7             -        CE

D13           -        SCK

D11           -        MOSI

D12           -        MISO

    Poza cu pinoutul acestui modul este mai jos:

 

    Pentru a putea folosi aceste module va trebui sa instalam in Arduino IDE libraria RF24. Acest lucru se poate face foarte simplu accesand meniul Instrumente > Gestionare biblioteci... . In fereastra care se va deschide vom scrie in casuta de cautare rf24 apoi vom cauta libraria cuu exact acelasi nume. Vom da un click pe butonul Instalare apoi, dupa ce se va instala, vom inchide aceasta fereastra.

    Vom incepe sa scriem primul sketch, cel al transmitatorului:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8); //pinii CE si CSN necesari pentru comunicare

const byte address[6] = "00001";  //setam adresa de transmisie

void setup() {
  radio.begin();
  radio.openWritingPipe(address);  //adaugam adresa in modul 
  radio.setPALevel(RF24_PA_MIN);   //setam nivelul de transmisie, minim incazul de fata
  radio.stopListening();  //setam modulul ca si transmitator
}

void loop() {
  const char text[] = "www.electronicstore.ro";  //creem un sir de caractere pe care dorim sa-l emitem
  radio.write(&text, sizeof(text));  //emiterea sirului de caractere
  delay(1000);   //adaugam o intarziere de 1 secunda
}

      Urmatorul sketch este cel al receptorului si este foarte asemanator cu primul:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8); //pinii CE si CSN necesari pentru comunicare

const byte address[6] = "00001";  //seta adresa de receptie

void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);  //adaugam in modul adresa de receptie
  radio.setPALevel(RF24_PA_MIN);  //setam nivelul de transmisie, minim in cazul de fata
  radio.startListening();    //setam modulul ca si receptor
}

void loop() {
  if (radio.available()) { //verificam daca avem transmisie radio
    char text[32] = "";
    radio.read(&text, sizeof(text));  //receptionam mesajul transmis
    Serial.println(text);    //afisam in terminalul serial mesajul receptionat
  }
}

 

Nu sunt comentarii

Acest website foloseste cookie-uri pentru o experienta placuta in timpul navigarii.