- Po čemu se razlikuje Bluetooth Low Energy (BLE)?
- BLE sposobnost modula NRF24L01
- Komponente potrebne
- Počevši od modula nRF24L01
- Arduino
- Povezivanje nRF24L01 s Arduinom za BLE komunikaciju
Bluetooth Low Energy (BLE) je inačica Bluetootha i prisutna je kao manja, visoko optimizirana verzija klasičnog Bluetootha. Također je poznat i kao Smart Bluetooth. BLE je dizajniran imajući na umu najmanju moguću potrošnju energije posebno za niske troškove, malu širinu pojasa, malu snagu i malu složenost. ESP32 ima ugrađene BLE mogućnosti, ali za druge mikrokontrolere poput Arduina može se koristiti nRF24L01. Ovaj RF modul može se koristiti i kao BLE modul za slanje podataka na drugi Bluetooth uređaj poput pametnih telefona, računala itd.
Ovdje ćemo u ovom uputstvu pokazati kako slati bilo kakve podatke putem BLE koristeći nRF24L01. Poslat ćemo očitanja temperature s DHT11 na pametni telefon koristeći Arduino i nRF modul preko BLE.
Po čemu se razlikuje Bluetooth Low Energy (BLE)?
BLE je usvojen zbog svojih značajki potrošnje energije jer je mogao raditi dulje vrijeme koristeći samo novčić. U usporedbi s drugim bežičnim standardima, brzi rast BLE-a otišao je dalje brže zbog svojih fenomenalnih aplikacija u pametnim telefonima, tabletima i mobilnom računanju.
BLE sposobnost modula NRF24L01
BLE koristi isti opseg ISM od 2,4 GHz sa brzinom prijenosa podataka od 250Kbps do 2Mbps, što je dopušteno u mnogim zemljama, a može se primijeniti na industrijske i medicinske primjene. Opseg počinje na 2400 MHz do 2483,5 MHz i podijeljen je na 40 kanala. Tri od tih kanala poznata su pod nazivom 'Oglašavanje' i uređaji ih koriste za slanje reklamnih paketa s informacijama o njima kako bi se ostali BLE uređaji mogli povezati. Ti su kanali u početku bili odabrani na donjem gornjem dijelu opsega i na sredini pojasa kako bi se izbjegle smetnje koje mogu ometati brojne kanale. Da biste saznali više o BLE, slijedite ovaj vodič.

Ovaj će vodič objasniti kako koristiti modul NRF24L01 kao BLE primopredajnik. Vodič o NRF24L01 kao RF modulu već je objašnjen u povezivanju nRF24L01 s vodičem za Arduino. Danas će se BLE funkcionalnost ovog modula objasniti slanjem podataka senzora na pametni telefon. Ovdje će ovaj modul nRF24L01 biti povezan s Arduino mikrokontrolerom, a podaci o temperaturi senzora DHT11 bit će poslani u službenu nordijsku BLE android aplikaciju.
Komponente potrebne
Hardver:
- Arduino UNO
- nRF24L01 BLE modul
- DHT11 Osjetnik temperature i vlage
- Skakači
Softver:
- Arduino IDE
- Nordijska BLE aplikacija za Android (nRF Temp 2.0 za BLE ili nRF Connect za mobitel)
Počevši od modula nRF24L01
Moduli nRF24L01 su primopredajni moduli, što znači da svaki modul može slati i primati podatke, ali budući da su poludupleksi, mogu istovremeno slati ili primati podatke. Modul ima generički nRF24L01 IC iz nordijskih poluvodiča koji je odgovoran za prijenos i prijem podataka. IC komunicira pomoću SPI protokola i stoga se lako može povezati s bilo kojim mikrokontrolerom. S Arduinom postaje puno lakše jer su knjižnice dostupne. Već smo koristili modul nRF24L01 s Arduinom za stvaranje chat sobe i bežično upravljanje servo motorima.
Izvodi standardnog modula nRF24L01 prikazani su u nastavku:

Modul ima radni napon od 1,9 V do 3,6 V (obično 3,3 V) i troši vrlo malo struje od samo 12 mA tijekom normalnog rada, što ga čini učinkovitim u radu s baterijama, pa čak može raditi i na ćelijskim pločicama. Iako je radni napon 3,3 V, većina pinova tolerira 5 V i stoga se mogu izravno povezati s 5 V mikrokontrolerima poput Arduina. Još jedna prednost korištenja ovih modula je ta što svaki modul ima 6 cjevovoda. Znači, svaki modul može komunicirati s 6 drugih modula za prijenos ili primanje podataka. To modul čini prikladnim za stvaranje zvjezdastih ili mrežastih mreža u IoT aplikacijama. Također imaju širok raspon adresa od 125 jedinstvenih ID-ova, stoga u zatvorenom prostoru možemo koristiti 125 ovih modula bez međusobnog ometanja.
Arduino


Povezivanje nRF24L01 s Arduinom za BLE komunikaciju
NRF24L01 radi na SPI, tako da će se povezivanje koristiti SPI protokolom. Kompletan kod i video će biti priključena na kraju ovog vodiča. Vodič za Android aplikaciju također je objašnjen u videozapisu. Ovdje se modul nRF24L01 koristi za komunikaciju s aplikacijom Smartphone Nordic.Prvo uključite potrebne knjižnice. Biblioteka uključuje RF24 za pristup naredbama nRF24L01, knjižnicu DHT11 za pristup naredbama DHT11 i BTLE knjižnicu za upotrebu BLE funkcija.
#include
Definirajte i inicijalizirajte pinove i funkcije za DHT11 i BLE modul. Tip DHT inicijalizira se kao DHT11 jer koristimo DHT11. DHT je spojen na GPIO Pin 4, a CE i CSN pinovi modula nRF povezani su na Pin 9 i 10.
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN, DHTTYPE); RF24 radio (9, 10); BTLE btle (& radio);
Pokrenite serijski port na 9600, možete odabrati bilo koji port. Zatim pokrenite DHT senzor, a također započnite BTLE s Bluetooth lokalnim imenom s najviše 8 znakova.
Serial.begin (9600); dht.begin (); btle.begin ("CD Temp");
Očitajte temperaturu preko petlje i spremite je na plutajuću varijablu temp . Dodajte redak za otklanjanje pogrešaka za prikazivanje poruke o pogrešci ako DHT izgubi snagu ili se dogodi nešto neočekivano.
plutajuća temp = dht.readTemperature (); // čitanje podataka o temperaturi if (isnan (h) - isnan (t)) { Serial.println (F ("Nije uspjelo očitavanje s DHT senzora!")); povratak; }
Spremite vrijednost u međuspremnik i raščlanite je na BLE modul. Također pošaljite vrijednost temperature na BLE modul. Modul BLE oglašava podatke o temperaturi. Android aplikacija može pretraživati BLE modul i primati podatke senzora.
nrf_service_data buf; buf.service_uuid = NRF_TEMPERATURE_SERVICE_UUID; buf.value = BTLE:: to_nRF_Float (temp); if (! btle.advertise (0x16, & buf, sizeof (buf))) { Serial.println ("BTLE nije uspio..!"); }
Kad završite, samo prijeđite na sljedeći kanal.
btle.hopChannel ();
Budući da dokumentacija DHT senzora preporučuje zadržavanje odgode od najmanje 2 sekunde nakon jednog očitanja, pa dodajte odgodu od 2 sekunde.
kašnjenje (2000);
Nakon što prenesete i uparite pametni telefon s nRF modulom, počet ćete dobivati vrijednosti na nRF Temp 2.0 za Android aplikaciju BLE, kao što je prikazano dolje. Kompletan postupak uparivanja i dobivanja podataka na aplikaciji Android također je objašnjen u videu:

Ovim je dovršen kompletan vodič o oglašavanju podataka senzora u nordijskoj aplikaciji Android pomoću BLE nRF24L01. Ako naiđete na poteškoće, komentirajte u nastavku ili pišite na naš forum. Da biste istražili više o nRF24L02, također možete pokušati stvoriti privatnu chat sobu koristeći Arduino, nRF24L01 i Processing.
