- Quina diferència té el Bluetooth Low Energy (BLE)?
- Capacitat BLE del mòdul NRF24L01
- Components necessaris
- Començant amb el mòdul nRF24L01
- Arduino
- Interfície nRF24L01 amb Arduino per a la comunicació BLE
Bluetooth Low Energy (BLE) és una versió de Bluetooth i es presenta com una versió més petita i altament optimitzada del Bluetooth clàssic. També es coneix com Smart Bluetooth. El BLE es va dissenyar tenint en compte el menor consum d'energia possible específicament per a baix cost, baix ample de banda, baixa potència i baixa complexitat. ESP32 té funcions BLE incorporades, però per a altres microcontroladors com Arduino, es pot utilitzar nRF24L01. Aquest mòdul de RF també es pot utilitzar com a mòdul BLE per enviar les dades a altres dispositius Bluetooth, com ara telèfons intel·ligents, ordinadors, etc.
Aquí en aquest tutorial demostrarem com enviar qualsevol dada a través de BLE mitjançant nRF24L01. Anem a enviar les lectures de temperatura de DHT11 a el telèfon intel·ligent utilitzant el mòdul Arduino i NRF sobre BLE.
Quina diferència té el Bluetooth Low Energy (BLE)?
El BLE es va adoptar a causa de les seves característiques de consum d'energia, ja que va poder funcionar durant un període de temps ampliat amb només una cel·la de moneda. En comparació amb altres estàndards sense fils, el ràpid creixement de BLE ha anat més ràpidament a causa de les seves fenomenals aplicacions en telèfons intel·ligents, tauletes i informàtica mòbil.
Capacitat BLE del mòdul NRF24L01
BLE utilitza la mateixa banda ISM de 2,4 GHz amb una velocitat de transmissió de 250 Kbps a 2 Mbps, que es permet a molts països i es pot aplicar a aplicacions industrials i mèdiques. La banda comença entre 2400 MHz i 2483,5 MHz i es divideix en 40 canals. Tres d'aquests canals es coneixen com a "Publicitat" i els dispositius els utilitzen per enviar paquets publicitaris amb informació sobre ells perquè es puguin connectar altres dispositius BLE. Aquests canals es van seleccionar inicialment a la part inferior inferior de la banda i al centre de la banda per evitar interferències que puguin interferir amb diversos canals. Per obtenir més informació sobre BLE, seguiu aquest tutorial.

Aquest tutorial explicarà com utilitzar el mòdul NRF24L01 com a transceptor BLE. El tutorial sobre NRF24L01 com a mòdul RF ja s'ha explicat en la interfície de nRF24L01 amb el tutorial Arduino. Avui la funcionalitat BLE d’aquest mòdul s’explicarà mitjançant l’enviament de dades del sensor a un telèfon intel·ligent. Aquí aquest mòdul nRF24L01 s’interfacarà amb el microcontrolador Arduino i les dades de temperatura del sensor DHT11 s’enviaran a l’aplicació oficial nordica BLE per a Android.
Components necessaris
Maquinari:
- Arduino UNO
- Mòdul nRF24L01 BLE
- Sensor de temperatura i humitat DHT11
- Saltadors
Programari:
- IDE Arduino
- Aplicació Android BLE nòrdica (nRF Temp 2.0 per a BLE o nRF Connect per a mòbils)
Començant amb el mòdul nRF24L01
Els mòduls nRF24L01 són mòduls transceptors, és a dir, cada mòdul pot enviar i rebre dades, però, ja que són semidúplex, poden enviar o rebre dades alhora. El mòdul disposa del IC nRF24L01 genèric de semiconductors nòrdics que s’encarrega de la transmissió i recepció de dades. El CI es comunica mitjançant el protocol SPI i, per tant, es pot connectar fàcilment amb qualsevol microcontrolador. Es fa molt més fàcil amb Arduino, ja que les biblioteques estan fàcilment disponibles. Ja hem utilitzat el mòdul nRF24L01 amb Arduino per crear una sala de xat i controlar servomotors sense fils.
A continuació es mostren els pinouts d’un mòdul nRF24L01 estàndard:

El mòdul té una tensió de funcionament d’1,9 V a 3,6 V (normalment 3,3 V) i consumeix molt menys corrent de només 12 mA durant el funcionament normal, cosa que fa que la bateria sigui eficient i, per tant, pot funcionar fins i tot amb piles de monedes. Tot i que el voltatge de funcionament és de 3,3 V, la majoria dels pins són tolerants a 5 V i, per tant, es poden connectar directament amb microcontroladors de 5 V com Arduino. Un altre avantatge d’utilitzar aquests mòduls és que cada mòdul té 6 canonades. És a dir, cada mòdul es pot comunicar amb altres 6 mòduls per transmetre o rebre dades. Això fa que el mòdul sigui adequat per a la creació de xarxes estrella o malla en aplicacions IoT. També tenen un ampli rang d’adreces de 125 identificadors únics, de manera que en una àrea tancada podem utilitzar 125 d’aquests mòduls sense interferir entre ells.
Arduino


Interfície nRF24L01 amb Arduino per a la comunicació BLE
El nRF24L01 funciona a SPI, de manera que la interfície utilitzarà el protocol SPI. Al final d’aquest tutorial s’adjuntaran el codi i el vídeo complet. La guia d'aplicacions d'Android també s'explica al vídeo. Aquí es fa servir el mòdul nRF24L01 per comunicar-se amb l' aplicació Smartphone de Nordic.En primer lloc, incloeu les biblioteques necessàries. La biblioteca inclou RF24 per accedir a ordres nRF24L01, biblioteca DHT11 per accedir a ordres DHT11 i biblioteca BTLE per utilitzar les funcions BLE.
#incloure
Definiu i inicialitzeu els pins i les funcions del mòdul DHT11 i BLE. El tipus DHT s’inicialitza com DHT11 ja que estem utilitzant DHT11. El DHT està connectat al pin 4 GPIO i els pins CE i CSN del mòdul nRF estan connectats al pin 9 i 10 respectivament.
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN, DHTTYPE); Ràdio RF24 (9, 10); BTLE btle (& radio);
Inicieu el port sèrie a 9600, podeu triar qualsevol port. A continuació, comenceu el sensor DHT i també inicieu BTLE amb el nom local Bluetooth amb un màxim de 8 caràcters.
Serial.begin (9600); dht.begin (); btle.begin ("CD Temp");
Llegiu la temperatura durant el bucle i deseu-la en una temperatura variable flotant. Afegiu una línia de depuració per mostrar un missatge d'error si DHT perd el poder o passa alguna cosa inesperada.
float temp = dht.readTemperature (); // llegir dades de temperatura if (isnan (h) - isnan (t)) { Serial.println (F ("No s'ha pogut llegir del sensor DHT!")); tornar; }
Deseu el valor a Buffer i analitzeu-lo al mòdul BLE. També envieu el valor de temperatura al mòdul BLE. El mòdul BLE anunciarà les dades de temperatura. L’aplicació per a Android pot cercar al mòdul BLE i rebre les dades del sensor.
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 ha fallat..!"); }
Quan hàgiu acabat, només heu de saltar al següent canal.
btle.hopChannel ();
Com que la documentació del sensor DHT recomana mantenir un retard d’un mínim de 2 segons després d’una lectura, afegiu-ne un de 2 segons.
endarreriment (2000);
Després de carregar i emparellar el telèfon intel·ligent amb el mòdul nRF, començareu a obtenir els valors de nRF Temp 2.0 per a l'aplicació per a Android BLE com es mostra a continuació. Al vídeo també s’explica el procediment complet per emparellar i obtenir les dades de l’aplicació per a Android:

Amb això s'acaba el tutorial complet sobre la publicitat de les dades del sensor a l'aplicació Nordic Android mitjançant BLE nRF24L01. Si trobeu alguna dificultat, comenteu a continuació o escriviu al nostre fòrum. Per explorar més sobre nRF24L02, també podeu provar de crear una sala de xat privada mitjançant Arduino, nRF24L01 i Processing.
