- Kako drugačna je povezava Bluetooth Low Energy (BLE)?
- Zmožnost BLE modula NRF24L01
- Potrebne komponente
- Začenši z modulom nRF24L01
- Arduino
- Povezava nRF24L01 z Arduinom za komunikacijo BLE
Bluetooth Low Energy (BLE) je različica Bluetootha in je na voljo kot manjša, zelo optimizirana različica klasičnega Bluetootha. Znan je tudi kot pametni Bluetooth. BLE je bil zasnovan ob upoštevanju najmanjše možne porabe energije posebej za poceni, nizko pasovno širino, nizko porabo energije in majhno zapletenost. ESP32 ima vgrajene zmogljivosti BLE, vendar je za druge mikrokrmilnike, kot je Arduino, mogoče uporabiti nRF24L01. Ta RF modul se lahko uporablja tudi kot modul BLE za pošiljanje podatkov v druge naprave Bluetooth, kot so pametni telefoni, računalnik itd.
Tu v tej vadnici bomo prikazali, kako pošiljati podatke prek BLE z uporabo nRF24L01. Odčitke temperature z DHT11 bomo poslali na pametni telefon z uporabo modula Arduino in nRF prek BLE.
Kako drugačna je povezava Bluetooth Low Energy (BLE)?
BLE je bil sprejet zaradi svojih lastnosti porabe energije, saj je lahko dlje časa deloval samo s kovansko celico. V primerjavi z drugimi brezžičnimi standardi je hitra rast BLE napredovala še hitreje zaradi izjemnih aplikacij v pametnih telefonih, tabličnih računalnikih in mobilnem računalništvu.
Zmožnost BLE modula NRF24L01
BLE uporablja isti frekvenčni pas ISM 2,4 GHz s hitrostjo prenosa podatkov od 250Kbps do 2Mbps, ki je dovoljena v mnogih državah in se lahko uporablja za industrijske in medicinske namene. Pas se začne pri 2400 MHz do 2483,5 MHz in je razdeljen na 40 kanalov. Trije od teh kanalov so znani kot "oglaševanje" in jih naprave uporabljajo za pošiljanje oglaševalskih paketov z informacijami o njih, da se lahko povežejo druge naprave BLE. Ti kanali so bili sprva izbrani na spodnjem zgornjem delu pasu in na sredini pasu, da bi se izognili motnjam, ki bi lahko motile številne kanale. Če želite izvedeti več o BLE, sledite tej vadnici.
Ta vadnica bo razložila, kako uporabljati modul NRF24L01 kot oddajnik BLE. Vadnica o NRF24L01 kot RF modulu je bila že razložena pri povezovanju nRF24L01 z vadnico Arduino. Danes bomo funkcijo BLE tega modula razložili s pošiljanjem podatkov senzorjev na pametni telefon. Tu bo ta modul nRF24L01 povezan z mikrokrmilnikom Arduino, podatki o temperaturi senzorja DHT11 pa bodo poslani v uradno nordijsko aplikacijo Android BLE.
Potrebne komponente
Strojna oprema:
- Arduino UNO
- nRF24L01 BLE modul
- DHT11 Senzor temperature in vlage
- Skakalci
Programska oprema:
- Arduino IDE
- Nordijska aplikacija BLE za Android (nRF Temp 2.0 za BLE ali nRF Connect za mobilne naprave)
Začenši z modulom nRF24L01
Moduli nRF24L01 so oddajniški moduli, kar pomeni, da lahko vsak modul pošilja in prejema podatke, ker pa so napol dupleksi, lahko podatke pošiljajo ali prejemajo hkrati. Modul ima generično nRF24L01 IC iz nordijskih polprevodnikov, ki je odgovoren za prenos in sprejem podatkov. IC komunicira s protokolom SPI, zato ga je mogoče zlahka povezati z vsemi mikrokrmilniki. Z Arduinom je veliko lažje, saj so knjižnice na voljo. Modul nRF24L01 smo z Arduino že uporabljali za ustvarjanje klepetalnice in brezžično upravljanje servo motorjev.
Izpusti standardnega modula nRF24L01 so prikazani spodaj:
Modul deluje na napetost od 1,9 V do 3,6 V (običajno 3,3 V) in med običajnim delovanjem porabi zelo manj toka le 12 mA, zaradi česar je baterija učinkovita, zato lahko deluje tudi na kovanske celice. Čeprav je delovna napetost 3,3 V, je večina zatičev tolerantna na 5 V, zato jih je mogoče neposredno povezati s 5 V mikrokrmilniki, kot je Arduino. Druga prednost uporabe teh modulov je, da ima vsak modul 6 cevovodov. To pomeni, da lahko vsak modul komunicira s 6 drugimi moduli za prenos ali sprejem podatkov. Zaradi tega je modul primeren za ustvarjanje zvezdastih ali mrežastih omrežij v aplikacijah interneta stvari. Imajo tudi široko območje naslovov 125 enoličnih ID-jev, zato lahko na zaprtem območju uporabimo 125 teh modulov, ne da bi pri tem posegali med seboj.
Arduino
Povezava nRF24L01 z Arduinom za komunikacijo BLE
NRF24L01 deluje na SPI, zato bo povezovanje uporabljalo protokol SPI. Celotno kodo in video bo pritrjena na koncu tega učbenika. V videoposnetku je razložen tudi vodič za aplikacije za Android. Tu se modul nRF24L01 uporablja za komunikacijo s pametno aplikacijo Nordic.Najprej vključite zahtevane knjižnice. Knjižnica vključuje RF24 za dostop do ukazov nRF24L01, knjižnico DHT11 za dostop do ukazov DHT11 in knjižnico BTLE za uporabo funkcij BLE.
#include
Določite in inicializirajte zatiče in funkcije za modul DHT11 in BLE. Tip DHT je inicializiran kot DHT11, ker uporabljamo DHT11. DHT je povezan z zatičem GPIO 4, zatiči CE in CSN modula nRF pa na priključka 9 oziroma 10.
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN, DHTTYPE); Radio RF24 (9, 10); BTLE btle (& radio);
Zaženite serijska vrata pri 9600, izberete lahko katera koli vrata. Nato zaženite senzor DHT in začnite tudi BTLE z lokalnim imenom Bluetooth z največ 8 znaki.
Serial.begin (9600); dht.begin (); btle.begin ("CD Temp");
Odčitajte temperaturo v zanki in jo shranite na plavajočo spremenljivo temp . Dodajte vrstico za odpravljanje napak za prikaz sporočila o napaki, če DHT izgubi moč ali se zgodi kaj nepričakovanega.
float temp = dht.readTemperature (); // preberemo podatke o temperaturi, če (isnan (h) - isnan (t)) { Serial.println (F ("Ni bilo mogoče prebrati s senzorja DHT!")); vrnitev; }
Shranite vrednost v medpomnilnik in jo razčlenite na modul BLE. Vrednost temperature pošljite tudi na modul BLE. Modul BLE bo oglaševal podatke o temperaturi. Aplikacija android lahko išče po modulu BLE in prejema podatke senzorja.
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 ni uspel..!"); }
Ko končate, preprosto skočite na naslednji kanal.
btle.hopChannel ();
Ker dokumentacija senzorja DHT priporoča, da po enem branju ohranite zakasnitev najmanj 2 sekundi, zato dodajte zamik 2 sekundi.
zamuda (2000);
Po nalaganju in seznanjanju pametnega telefona z modulom nRF boste začeli dobivati vrednosti v aplikaciji nRF Temp 2.0 za Android BLE, kot je prikazano spodaj. Celoten postopek seznanjanja in pridobivanja podatkov v aplikaciji Android je razložen tudi v videoposnetku:
S tem je končana celotna vadnica o oglaševanju podatkov senzorjev v nordijski aplikaciji Android z uporabo BLE nRF24L01. Če imate kakršne koli težave, komentirajte spodaj ali pišite na naš forum. Če želite raziskati več o nRF24L02, lahko poskusite tudi z Arduino, nRF24L01 in Processing ustvariti zasebno klepetalnico.