- Miben különbözik a Bluetooth Low Energy (BLE)?
- Az NRF24L01 modul BLE képessége
- Szükséges alkatrészek
- Kezdve az nRF24L01 modullal
- Arduino
- Az nRF24L01 és az Arduino összekapcsolása a BLE kommunikációhoz
A Bluetooth Low Energy (BLE) a Bluetooth egyik változata, és a klasszikus Bluetooth kisebb, erősen optimalizált változataként jelenik meg. Smart Bluetooth néven is ismert. A BLE-t a lehető legkisebb energiafogyasztás szem előtt tartásával tervezték, kifejezetten az alacsony költségek, az alacsony sávszélesség, az alacsony energia és az alacsony komplexitás érdekében. Az ESP32 beépített BLE képességekkel rendelkezik, de más mikrovezérlőkhöz, mint például az Arduino, az nRF24L01 használható. Ez az RF modul BLE modulként is használható az adatok más Bluetooth-eszközökre, például okostelefonokra, számítógépekre stb. Történő elküldéséhez.
Itt, ebben az oktatóanyagban bemutatjuk, hogyan küldhetünk bármilyen adatot a BLE-n keresztül az nRF24L01 segítségével. A hőmérséklet-leolvasásokat a DHT11-ről okostelefonra küldjük az Arduino és az nRF modul segítségével a BLE-n keresztül.
Miben különbözik a Bluetooth Low Energy (BLE)?
A BLE-t energiafogyasztási jellemzői miatt fogadták el, mivel hosszabb ideig csak egy érme cellával működhetett. Más vezeték nélküli szabványokkal összehasonlítva a BLE gyors növekedése gyorsabban haladt az okostelefonok, táblagépek és mobil számítástechnika fenomenális alkalmazásai miatt.
Az NRF24L01 modul BLE képessége
A BLE ugyanazt a 2,4 GHz-es ISM sávot használja, amelynek átviteli sebessége 250 Kbps-tól 2Mbps-ig terjed, ami sok országban megengedett, és alkalmazható ipari és orvosi alkalmazásokhoz. A sáv 2400 MHz-től 2483,5 MHz-ig indul, és 40 csatornára van felosztva. E csatornák közül három „Reklám” néven ismert, és az eszközök arra használják, hogy reklámcsomagokat küldjenek róluk szóló információkkal, hogy más BLE eszközök is csatlakozhassanak. Ezeket a csatornákat kezdetben a sáv alsó részén és a sáv közepén választották ki, hogy elkerüljék az interferenciát, amely esetlegesen számos csatornát megzavarhat. Ha többet szeretne megtudni a BLE-ről, kövesse ezt az oktatóanyagot.
Ez az oktatóanyag elmagyarázza, hogyan kell használni az NRF24L01 modult BLE adó-vevőként. Az NRF24L01 mint RF modul oktatóanyagát már elmagyarázták az nRF24L01 és az Arduino oktatóanyagának összekapcsolásakor. Ma ennek a modulnak a BLE funkcionalitását azzal magyarázzák, hogy az érzékelő adatokat okos telefonra küldi. Itt ez az nRF24L01 modul összekapcsolódik az Arduino mikrokontrollerrel, és a DHT11 érzékelő hőmérsékleti adatait elküldik a hivatalos Nordic BLE android alkalmazásnak.
Szükséges alkatrészek
Hardver:
- Arduino UNO
- nRF24L01 BLE modul
- DHT11 hőmérséklet- és páratartalom-érzékelő
- Ugrók
Szoftver:
- Arduino IDE
- Nordic BLE Android alkalmazás (nRF Temp 2.0 BLE vagy nRF Connect mobilhoz)
Kezdve az nRF24L01 modullal
Az nRF24L01 modulok adó-vevő modulok, vagyis mindegyik modul képes adatokat küldeni és fogadni, de mivel fél-duplexek, egyszerre küldhetnek vagy fogadhatnak adatokat. A modul rendelkezik a skandináv félvezetők általános nRF24L01 IC-jével, amely felelős az adatok továbbításáért és fogadásáért. Az IC az SPI protokoll használatával kommunikál, és így könnyen összekapcsolható bármely mikrovezérlővel. Sokkal könnyebb lesz az Arduino használatával, mivel a könyvtárak könnyen elérhetőek. Az nRF24L01 modult már használtuk az Arduino-val csevegőszoba létrehozásához és a szervomotorok vezeték nélküli vezérléséhez.
Az alábbiakban láthatók egy szabványos nRF24L01 modul csatlakozói:
A modul üzemi feszültsége 1,9 V és 3,6 V (általában 3,3 V) között van, és normál üzem közben nagyon kevesebb, csupán 12 mA áramot fogyaszt, ami akkumulátor-hatékonyságot eredményez, és így érmecellákon is futtatható. Annak ellenére, hogy az üzemi feszültség 3,3 V, a csapok többsége 5 V-tűrő, ezért közvetlenül összekapcsolható az 5 V-os mikrovezérlőkkel, például az Arduino-val. A modulok használatának további előnye, hogy mindegyik modul 6 csővezetékkel rendelkezik. Ez azt jelenti, hogy minden modul 6 másik modullal képes kommunikálni adatok továbbítására vagy fogadására. Ez alkalmassá teszi a modult csillag vagy háló hálózatok létrehozására az IoT alkalmazásokban. Széles 125 egyedi azonosítójú címtartományuk van, ezért zárt területen 125 ilyen modult használhatunk anélkül, hogy interferálnánk egymással.
Arduino
Az nRF24L01 és az Arduino összekapcsolása a BLE kommunikációhoz
Az nRF24L01 az SPI-n működik, ezért az interfész az SPI protokollt fogja használni. A teljes kódot és videót az oktatóanyag végén csatoljuk. Az Android alkalmazás útmutatóját a videó is elmagyarázza. Itt az nRF24L01 modult használják a Smartphone App of Nordic kommunikációjára .Először tartalmazza a szükséges könyvtárakat. A könyvtár tartalmazza az RF24-et az nRF24L01 parancsok eléréséhez, a DHT11 könyvtárat a DHT11 parancsok eléréséhez és a BTLE könyvtárat a BLE funkciók használatához.
#include
Definiálja és inicializálja a DHT11 és a BLE modul csapjait és funkcióit. A DHT típus inicializálása DHT11, mivel a DHT11-et használjuk. A DHT a GPIO 4-es, az nRF modul CE- és CSN-csatlakozói pedig a 9-es és 10-es csatlakozóhoz vannak csatlakoztatva.
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN, DHTTYPE); RF24 rádió (9, 10); BTLE btle (& rádió);
Indítsa el a soros portot 9600-nál, bármelyik portot választhatja. Ezután indítsa el a DHT érzékelőt, és indítsa el a BTLE- t is a Bluetooth helyi névvel, legfeljebb 8 karakter hosszúsággal.
Serial.begin (9600); dht.begin (); btle.begin ("CD Temp");
Olvassa le a hőmérsékletet a hurok felett, és mentsen egy úszó változó hőmérsékletre . Adjon hozzá egy hibakeresési sort a hibaüzenet megjelenítéséhez, ha a DHT elveszíti az energiáját, vagy bármi váratlan történik.
float temp = dht.readTemperature (); // a hőmérsékleti adatok olvasása, ha (isnan (h) - isnan (t)) { Serial.println (F ("Nem sikerült olvasni a DHT szenzorból!")); Visszatérés; }
Mentse el az értéket a Buffer-be, és elemezze a BLE modulba. Küldje el a Hőmérséklet értéket a BLE modulnak is. A BLE modul hirdetni fogja a hőmérsékleti adatokat. Az android alkalmazás képes keresni a BLE modulban és fogadni az érzékelő adatait.
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 ("A BTLE nem sikerült..!"); }
Ha kész, ugorjon a következő csatornára.
btle.hopChannel ();
Mivel a DHT-érzékelő dokumentációja azt ajánlja, hogy egy olvasás után legalább 2 másodperc késleltetést tartson, ezért adjon hozzá 2 másodperces késleltetést.
késés (2000);
Az okostelefon feltöltése és az nRF modul párosítása után megkapja az nRF Temp 2.0 for BLE android alkalmazás értékeit, az alábbiak szerint. A párosítás és az adatok androidos alkalmazásra történő megszerzésének teljes eljárását a videó is elmagyarázza:
Ezzel befejeződött a szenzoradatok Nordic Android App-hez történő reklámozásának teljes oktatóanyaga a BLE nRF24L01 használatával. Ha bármilyen nehézséget talál, akkor írjon megjegyzést alább, vagy írjon a fórumba. Ha többet szeretne megtudni az nRF24L02-ről, megpróbálhat létrehozni egy privát csevegőszobát az Arduino, az nRF24L01 és a Processing használatával.