- Ako sa líši Bluetooth Low Energy (BLE)?
- Schopnosť BLE modulu NRF24L01
- Súčasti sú povinné
- Počnúc modulom nRF24L01
- Arduino
- Prepojenie nRF24L01 s Arduino na komunikáciu BLE
Bluetooth Low Energy (BLE) je verzia Bluetooth a je k dispozícii ako menšia, vysoko optimalizovaná verzia klasického Bluetooth. Je tiež známy ako Smart Bluetooth. BLE bol navrhnutý s ohľadom na najnižšiu možnú spotrebu energie špeciálne pre nízke náklady, malú šírku pásma, nízku spotrebu energie a nízku zložitosť. ESP32 má zabudované možnosti BLE, ale pre ďalšie mikrokontroléry ako Arduino možno použiť nRF24L01. Tento RF modul je možné použiť aj ako BLE modul na zasielanie dát do ďalších zariadení Bluetooth, ako sú smartphony, počítače atď.
Tu v tomto výučbe si ukážeme, ako posielať akékoľvek údaje cez BLE pomocou nRF24L01. Čítanie teploty z DHT11 budeme odosielať do smartfónu pomocou modulu Arduino a nRF cez BLE.
Ako sa líši Bluetooth Low Energy (BLE)?
Modul BLE bol prijatý kvôli jeho vlastnostiam spotreby energie, pretože bol schopný bežať dlhšiu dobu iba pomocou mincového článku. V porovnaní s inými bezdrôtovými štandardmi šiel rýchly rast BLE ďalej rýchlejšie vďaka fenomenálnym aplikáciám v smartfónoch, tabletoch a mobilných počítačoch.
Schopnosť BLE modulu NRF24L01
BLE používa rovnaké pásmo ISM 2,4 GHz s prenosovou rýchlosťou od 250 kb / s do 2 Mb / s, ktoré je povolené v mnohých krajinách a je možné ho použiť v priemyselných a lekárskych aplikáciách. Pásmo začína na 2 400 MHz až 2 483,5 MHz a je rozdelené do 40 kanálov. Tri z týchto kanálov sú známe ako „Reklama“ a používajú ich zariadenia na odosielanie reklamných paketov s informáciami o nich, aby sa mohli pripojiť ďalšie zariadenia BLE. Tieto kanály boli pôvodne vybrané v dolnej hornej časti pásma a v strede pásma, aby sa zabránilo interferencii, ktorá by mohla interferovať s množstvom kanálov. Ak sa chcete dozvedieť viac informácií o BLE, postupujte podľa tohto návodu.
Tento tutoriál vysvetlí, ako používať modul NRF24L01 ako vysielač / prijímač BLE. Výukový program pre NRF24L01 ako RF modul bol už vysvetlený pri prepojení nRF24L01 s výukovým programom Arduino. Dnes bude funkčnosť BLE tohto modulu vysvetlená odosielaním údajov zo senzorov do inteligentného telefónu. Tu bude tento modul nRF24L01 prepojený s mikrokontrolérom Arduino a údaje o teplote snímača DHT11 budú odoslané do oficiálnej aplikácie pre Android Nordic BLE.
Súčasti sú povinné
Hardvér:
- Arduino UNO
- Modul BLE nRF24L01
- Snímač teploty a vlhkosti DHT11
- Skokani
Softvér:
- Arduino IDE
- Aplikácia Nordic BLE pre Android (nRF Temp 2.0 pre BLE alebo nRF Connect pre mobil)
Počnúc modulom nRF24L01
Moduly nRF24L01 sú moduly transceiveru, čo znamená, že každý modul môže odosielať aj prijímať dáta, ale pretože sú polovične duplexné, môžu odosielať alebo prijímať dáta naraz. Modul má generický IC nRF24L01 od severských polovodičov, ktorý je zodpovedný za prenos a príjem dát. IC komunikuje pomocou protokolu SPI, a preto ho možno ľahko prepojiť s ľubovoľnými mikrokontrolérmi. S Arduinom je to oveľa jednoduchšie, pretože knižnice sú ľahko dostupné. Už sme použili modul nRF24L01 s Arduinom na vytvorenie chatovacej miestnosti a na bezdrôtové ovládanie servomotorov.
Pinouts štandardného modulu nRF24L01 sú zobrazené nižšie:
Modul má prevádzkové napätie od 1,9 V do 3,6 V (typicky 3,3 V) a pri bežnej prevádzke spotrebúva iba veľmi málo prúdu, iba 12 mA, vďaka čomu je batéria efektívna, a preto môže fungovať aj na gombíkové články. Aj keď je prevádzkové napätie 3,3 V, väčšina pinov je tolerantná voči 5V, a preto je možné ich priamo prepojiť s 5V mikrokontrolérmi, ako je Arduino. Ďalšou výhodou použitia týchto modulov je, že každý modul má 6 potrubí. To znamená, že každý modul môže komunikovať s ďalšími 6 modulmi na účely prenosu alebo prijímania údajov. Vďaka tomu je modul vhodný na vytváranie hviezdnych alebo sieťových sietí v aplikáciách IoT. Tiež majú široký rozsah adries 125 jedinečných ID, preto v uzavretej oblasti môžeme použiť 125 týchto modulov bez toho, aby sme sa navzájom rušili.
Arduino
Prepojenie nRF24L01 s Arduino na komunikáciu BLE
NRF24L01 pracuje na SPI, takže prepojenie bude používať protokol SPI. Kompletné kód a obraz bude pripojený na konci tohto návodu. Sprievodca aplikáciami pre Android je tiež vysvetlený vo videu. Tu sa modul nRF24L01 používa na komunikáciu s aplikáciou Smartphone App of Nordic.Najskôr zahrňte požadované knižnice. Knižnica obsahuje RF24 na prístup k príkazom nRF24L01, knižnicu DHT11 na prístup k príkazom DHT11 a knižnicu BTLE na použitie funkcií BLE.
#include
Definujte a inicializujte piny a funkcie pre modul DHT11 a BLE. Typ DHT sa inicializuje ako DHT11, pretože používame DHT11. DHT je pripojený ku konektoru GPIO Pin 4 a piny CE a CSN modulu nRF sú pripojené k pinom 9 a 10.
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN, DHTTYPE); Rádio RF24 (9, 10); BTLE btle (& rádio);
Spustite sériový port na 9600, môžete si zvoliť ľubovoľný port. Potom spustite snímač DHT a tiež začnite BTLE s miestnym názvom Bluetooth s dĺžkou maximálne 8 znakov.
Serial.begin (9600); dht.begin (); btle.begin ("Teplota CD");
Odčítajte teplotu cez slučku a uložte ju na plavákovú premennú teplotu . Pridajte riadok ladenia na zobrazovanie chybovej správy, ak DHT stratí napájanie alebo sa stane čokoľvek neočakávané.
float temp = dht.readTemperature (); // načítanie údajov o teplote if (isnan (h) - isnan (t)) { Serial.println (F ("Nepodarilo sa načítať zo snímača DHT!")); návrat; }
Uložte hodnotu do vyrovnávacej pamäte a analyzujte ju v module BLE. Taktiež pošlite hodnotu teploty do modulu BLE. Modul BLE bude inzerovať údaje o teplote. Aplikácia pre Android dokáže prehľadať modul BLE a prijímať údaje zo senzorov.
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 zlyhalo..!"); }
Po dokončení jednoducho preskočte na ďalší kanál.
btle.hopChannel ();
Pretože dokumentácia snímača DHT odporúča dodržať po jednom odčítaní oneskorenie minimálne 2 sekundy, preto pridajte oneskorenie 2 sekundy.
meškanie (2000);
Po nahraní a spárovaní smartphonu s modulom nRF začnete dostávať hodnoty na nRF Temp 2.0 pre BLE aplikáciu pre Android, ako je uvedené nižšie. Kompletný postup párovania a získavania údajov v aplikácii pre Android je tiež vysvetlený vo videu:
Týmto sa dokončuje kompletný návod na inzerciu údajov senzorov do severskej aplikácie pre Android pomocou nástroja BLE nRF24L01. Ak narazíte na akýkoľvek problém, komentujte nižšie alebo napíšte na naše fórum. Ak chcete preskúmať viac informácií o nRF24L02, môžete sa tiež pokúsiť vytvoriť súkromnú chatovaciu miestnosť pomocou nástrojov Arduino, nRF24L01 a Processing.