- Jak se liší Bluetooth Low Energy (BLE)?
- Schopnost BLE modulu NRF24L01
- Požadované komponenty
- Počínaje modulem nRF24L01
- Arduino
- Propojení nRF24L01 s Arduino pro BLE komunikaci
Bluetooth Low Energy (BLE) je verze Bluetooth a je k dispozici jako menší, vysoce optimalizovaná verze klasického Bluetooth. Je také známý jako Smart Bluetooth. BLE byl navržen s ohledem na nejnižší možnou spotřebu energie speciálně pro nízké náklady, malou šířku pásma, nízkou spotřebu energie a nízkou složitost. ESP32 má vestavěné funkce BLE, ale pro jiné mikrokontroléry, jako je Arduino, lze použít nRF24L01. Tento RF modul lze také použít jako modul BLE k odesílání dat do jiného zařízení Bluetooth, jako jsou smartphony, počítače atd.
Tady v tomto tutoriálu si ukážeme, jak posílat data přes BLE pomocí nRF24L01. Budeme posílat údaje o teplotě z DHT11 na smartphone pomocí Arduino a NRF modul přes BLE.
Jak se liší Bluetooth Low Energy (BLE)?
BLE byl přijat kvůli jeho funkcím spotřeby energie, protože byl schopen běžet delší dobu pouze pomocí knoflíkové buňky. Ve srovnání s jinými bezdrátovými standardy šel rychlý růst BLE dále rychleji díky fenomenálním aplikacím v chytrých telefonech, tabletech a mobilních počítačích.
Schopnost BLE modulu NRF24L01
BLE používá stejné pásmo ISM 2,4 GHz s přenosovou rychlostí od 250 kb / s do 2 Mb / s, které je povoleno v mnoha zemích a lze jej použít v průmyslových a lékařských aplikacích. Pásmo začíná na 2400 MHz až 2483,5 MHz a je rozděleno do 40 kanálů. Tři z těchto kanálů se označují jako „reklama“ a používají je k odesílání reklamních paketů s informacemi o nich, aby se mohla připojit další zařízení BLE. Tyto kanály byly původně vybrány v dolní horní části pásma a uprostřed pásma, aby se zabránilo rušení, které by mohlo interferovat s řadou kanálů. Další informace o BLE najdete v tomto kurzu.
Tento výukový program vysvětlí, jak používat modul NRF24L01 jako BLE transceiver. Výukový program pro NRF24L01 jako RF modul již byl vysvětlen při propojení nRF24L01 s výukovým programem Arduino. Dnes bude funkce BLE tohoto modulu vysvětlena odesláním dat ze snímače do chytrého telefonu. Zde bude tento modul nRF24L01 propojen s mikrokontrolérem Arduino a data teploty snímače DHT11 budou odeslána do oficiální aplikace pro Android Nordic BLE.
Požadované komponenty
Hardware:
- Arduino UNO
- Modul BLE nRF24L01
- Snímač teploty a vlhkosti DHT11
- Svetry
Software:
- Arduino IDE
- Aplikace Nordic BLE pro Android (nRF Temp 2.0 pro BLE nebo nRF Connect pro mobilní zařízení)
Počínaje modulem nRF24L01
Moduly nRF24L01 jsou moduly transceiveru, což znamená, že každý modul může odesílat i přijímat data, ale protože jsou poloduplexní, mohou odesílat nebo přijímat data najednou. Modul má obecný IC nRF24L01 od severských polovodičů, který je zodpovědný za přenos a příjem dat. IC komunikuje pomocí protokolu SPI, a proto jej lze snadno propojit s jakýmikoli mikrokontroléry. S Arduinem je to mnohem snazší, protože knihovny jsou snadno dostupné. Už jsme použili modul nRF24L01 s Arduino k vytvoření chatovací místnosti a k bezdrátovému ovládání servomotorů.
Níže jsou uvedeny pinouty standardního modulu nRF24L01:
Modul má provozní napětí od 1,9 V do 3,6 V (typicky 3,3 V) a při běžném provozu spotřebovává velmi méně proudu, pouze 12 mA, což z něj činí baterii efektivní, a proto může běžet i na knoflíkové články. I když je provozní napětí 3,3 V, většina kolíků je tolerantní k 5V, a proto je lze přímo propojit s 5V mikrokontroléry, jako je Arduino. Další výhodou použití těchto modulů je, že každý modul má 6 potrubí. To znamená, že každý modul může komunikovat s dalšími 6 moduly pro přenos nebo příjem dat. Díky tomu je modul vhodný pro vytváření hvězdných nebo mesh sítí v aplikacích IoT. Také mají široký rozsah adres 125 jedinečných ID, a proto v uzavřené oblasti můžeme použít 125 těchto modulů bez vzájemného rušení.
Arduino
Propojení nRF24L01 s Arduino pro BLE komunikaci
NRF24L01 pracuje na SPI, takže rozhraní bude používat protokol SPI. Kompletní kód a obraz bude připojen na konci tohoto návodu. Průvodce aplikací pro Android je také vysvětlen ve videu. Zde se modul nRF24L01 používá ke komunikaci s aplikací Smartphone App of Nordic.Nejprve zahrňte požadované knihovny. Knihovna obsahuje RF24 pro přístup k příkazům nRF24L01, knihovnu DHT11 pro přístup k příkazům DHT11 a knihovnu BTLE pro použití funkcí BLE.
#zahrnout
Definujte a inicializujte piny a funkce pro modul DHT11 a BLE. Typ DHT je inicializován jako DHT11, protože používáme DHT11. DHT je připojen ke konektoru GPIO Pin 4 a piny CE a CSN modulu nRF jsou připojeny ke konektoru 9 a 10.
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN, DHTTYPE); Rádio RF24 (9, 10); BTLE btle (& radio);
Spusťte sériový port na 9600, můžete si vybrat libovolný port. Poté spusťte snímač DHT a začněte také BTLE s místním názvem Bluetooth o délce maximálně 8 znaků.
Serial.begin (9600); dht.begin (); btle.begin ("Teplota CD");
Odečtěte teplotu přes smyčku a uložte ji do plovoucí proměnné teploty . Přidejte řádek ladění pro zobrazení chybové zprávy, pokud DHT ztratí energii nebo se stane něco neočekávaného.
float temp = dht.readTemperature (); // načíst údaje o teplotě if (isnan (h) - isnan (t)) { Serial.println (F ("Failed to read from DHT sensor!")); vrátit se; }
Uložte hodnotu do vyrovnávací paměti a analyzujte ji v modulu BLE. Také pošlete hodnotu teploty do modulu BLE. Modul BLE bude inzerovat údaje o teplotě. Aplikace pro Android může prohledávat modul BLE a přijímat data ze senzorů.
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 failed..!"); }
Po dokončení přejděte na další kanál.
btle.hopChannel ();
Vzhledem k tomu, že dokumentace snímače DHT doporučuje zachovat po jednom čtení zpoždění minimálně 2 sekundy, přidejte tedy zpoždění 2 sekundy.
zpoždění (2000);
Po nahrání a spárování smartphonu s modulem nRF začnete získávat hodnoty na nRF Temp 2.0 pro aplikaci BLE pro Android, jak je uvedeno níže. Kompletní postup párování a získávání dat v aplikaci pro Android je také vysvětlen ve videu:
Tím je dokončen kompletní výukový program pro inzerci dat senzorů do severské aplikace pro Android pomocí BLE nRF24L01. Pokud narazíte na potíže, napište níže komentář nebo napište na naše fórum. Chcete-li prozkoumat více informací o nRF24L02, můžete také zkusit vytvořit soukromou chatovací místnost pomocí Arduina, nRF24L01 a zpracování.