- Ar ko atšķiras Bluetooth Low Energy (BLE)?
- NRF24L01 moduļa BLE spēja
- Nepieciešamās sastāvdaļas
- Sākot ar nRF24L01 moduli
- Arduino
- Saskarne nRF24L01 ar Arduino BLE saziņai
Bluetooth Low Energy (BLE) ir Bluetooth versija, un tā ir pieejama kā mazāka, ļoti optimizēta klasiskās Bluetooth versija. To sauc arī par viedo Bluetooth. BLE tika izstrādāts, ņemot vērā zemāko iespējamo enerģijas patēriņu, īpaši zemām izmaksām, zemam joslas platumam, zemai jaudai un zemai sarežģītībai. ESP32 ir iebūvētas BLE iespējas, taču citiem mikrokontrolleriem, piemēram, Arduino, var izmantot nRF24L01. Šo RF moduli var izmantot arī kā BLE moduli, lai nosūtītu datus uz citu Bluetooth ierīci, piemēram, viedtālruņiem, datoru utt.
Šeit šajā apmācībā mēs parādīsim, kā nosūtīt visus datus, izmantojot BLE, izmantojot nRF24L01. Mēs nosūtīsim temperatūras rādījumus no DHT11 uz viedtālruni, izmantojot Arduino un nRF moduli virs BLE.
Ar ko atšķiras Bluetooth Low Energy (BLE)?
BLE tika pieņemts enerģijas patēriņa īpašību dēļ, jo tas varēja darboties ilgāku laika periodu, izmantojot tikai monētu elementu. Salīdzinājumā ar citiem bezvadu standartiem BLE straujais pieaugums ir gājis vēl straujāk, pateicoties tā fenomenālajām lietojumprogrammām viedtālruņos, planšetdatoros un mobilajā skaitļošanā.
NRF24L01 moduļa BLE spēja
BLE izmanto to pašu 2,4 GHz ISM joslu ar datu pārraides ātrumu no 250Kbps līdz 2Mbps, kas ir atļauts daudzās valstīs un ko var izmantot rūpnieciskām un medicīniskām lietojumprogrammām. Joslas frekvence sākas no 2400 MHz līdz 2483,5 MHz, un tā ir sadalīta 40 kanālos. Trīs no šiem kanāliem ir pazīstami kā “Reklāma”, un ierīces tos izmanto, lai nosūtītu reklāmas paketes ar informāciju par tām, lai citas BLE ierīces varētu izveidot savienojumu. Šie kanāli sākotnēji tika izvēlēti joslas apakšējā augšdaļā un joslas vidū, lai izvairītos no traucējumiem, kas, iespējams, var traucēt virkni kanālu. Lai uzzinātu vairāk par BLE, izpildiet šo apmācību.
Šajā apmācībā tiks paskaidrots, kā izmantot NRF24L01 moduli kā BLE raiduztvērēju. Apmācība par NRF24L01 kā RF moduli jau ir izskaidrota, saskaroties ar nRF24L01 ar Arduino apmācību. Šodien šī moduļa BLE funkcionalitāte tiks izskaidrota, nosūtot sensoru datus uz viedtālruni. Šeit šis nRF24L01 modulis tiks sasaistīts ar Arduino mikrokontrolleru un DHT11 sensora temperatūras dati tiks nosūtīti oficiālajai Nordic BLE android lietojumprogrammai.
Nepieciešamās sastāvdaļas
Aparatūra:
- Arduino UNO
- nRF24L01 BLE modulis
- DHT11 temperatūras un mitruma sensors
- Džemperi
Programmatūra:
- Arduino IDE
- Nordic BLE Android lietojumprogramma (nRF Temp 2.0 BLE vai nRF Connect mobilajām ierīcēm)
Sākot ar nRF24L01 moduli
NRF24L01 moduļi ir raiduztvērēja moduļi, kas nozīmē, ka katrs modulis var gan nosūtīt, gan saņemt datus, taču, tā kā tie ir pusdupleksi, tie var vienlaikus nosūtīt vai saņemt datus. Modulim ir vispārējs nRF24L01 IC no Ziemeļvalstu pusvadītājiem, kas ir atbildīgs par datu pārraidi un saņemšanu. IC sazinās, izmantojot SPI protokolu, un tāpēc to var viegli sasaistīt ar visiem mikrokontrolleriem. Arduino kļūst daudz vieglāk, jo bibliotēkas ir viegli pieejamas. Mēs jau izmantojām nRF24L01 moduli ar Arduino, lai izveidotu tērzēšanas istabu un bezvadu vadītu servomotorus.
Standarta nRF24L01 moduļa tapas ir parādītas zemāk:
Moduļa darba spriegums ir no 1,9 V līdz 3,6 V (parasti 3,3 V), un normālas darbības laikā tas patērē ļoti mazāku strāvu, tikai 12 mA, kas padara to par akumulatoru efektīvu un līdz ar to var darboties pat ar monētu šūnām. Pat ja darba spriegums ir 3,3 V, lielākā daļa tapu ir 5V tolerantas, un tāpēc tās var tieši saskarni ar 5V mikrokontrolleriem, piemēram, Arduino. Vēl viena šo moduļu izmantošanas priekšrocība ir tā, ka katram modulim ir 6 cauruļvadi. Tas nozīmē, ka katrs modulis var sazināties ar 6 citiem moduļiem, lai pārsūtītu vai saņemtu datus. Tas padara moduli piemērotu zvaigžņu vai acu tīklu izveidei IoT lietojumprogrammās. Viņiem ir arī plašs 125 unikālo ID adrešu diapazons, tāpēc slēgtā zonā mēs varam izmantot 125 no šiem moduļiem, netraucējot viens otram.
Arduino
Saskarne nRF24L01 ar Arduino BLE saziņai
NRF24L01 darbojas SPI, tāpēc saskarnē tiks izmantots SPI protokols. Pilnīga kods un video tiks pievienoti beigās šo pamācību. Android lietotņu ceļvedis ir izskaidrots arī videoklipā. Šeit moduli nRF24L01 izmanto, lai sazinātos ar Smartphone App of Nordic.Pirmkārt, iekļaujiet nepieciešamās bibliotēkas. Bibliotēka ietver RF24, lai piekļūtu komandām nRF24L01, bibliotēku DHT11, lai piekļūtu komandām DHT11, un BTLE bibliotēku, lai izmantotu BLE funkcijas.
# iekļaut
Definējiet un inicializējiet DHT11 un BLE moduļa tapas un funkcijas. DHT tips tiek inicializēts kā DHT11, jo mēs izmantojam DHT11. DHT ir savienots ar GPIO 4. kontaktu un nRF moduļa CE un CSN tapas ir attiecīgi savienotas ar 9. un 10. kontaktu.
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN, DHTTYPE); RF24 radio (9, 10); BTLE btle (& radio);
Sāciet seriālo portu ar numuru 9600, jūs varat izvēlēties jebkuru portu. Pēc tam sāciet DHT sensoru un arī sāciet BTLE ar Bluetooth vietējo nosaukumu, kurā ir ne vairāk kā 8 rakstzīmes.
Sērijas sākums (9600); dht.sākt (); btle.begin ("CD Temp");
Izlasiet temperatūru pa cilpu un saglabājiet to mainīgā temp . Pievienojiet atkļūdošanas līniju, lai parādītu kļūdas ziņojumu, ja DHT zaudē spēku vai notiek kas negaidīts.
pludiņa temp = dht.readTemperature (); // nolasīt temperatūras datus, ja (isnan (h) - isnan (t)) { Serial.println (F ("Neizdevās nolasīt no DHT sensora!")); atgriešanās; }
Saglabājiet vērtību buferī un parsējiet to BLE modulī. Nosūtiet arī temperatūras vērtību BLE modulim. BLE modulis reklamēs temperatūras datus. Android lietotne var meklēt BLE modulī un saņemt sensora datus.
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 neizdevās..!"); }
Kad esat pabeidzis, vienkārši pārejiet uz nākamo kanālu.
btle.hopChannel ();
Tā kā DHT sensora dokumentācijā pēc viena lasījuma ir ieteicams saglabāt vismaz 2 sekundes aizkavēšanos, pievienojiet 2 sekunžu aizturi.
kavēšanās (2000);
Pēc viedtālruņa augšupielādes un pārī savienojot nRF moduli, jūs sāksit iegūt vērtības nRF Temp 2.0 BLE android lietojumprogrammai, kā parādīts zemāk. Videoklipā ir paskaidrota arī pilnīga datu savienošanas un iegūšanas procedūra Android lietotnē:
Ar to tiek pabeigta pilnīga apmācība par sensoru datu reklamēšanu Nordic Android App, izmantojot BLE nRF24L01. Ja atrodat kādas grūtības, komentējiet tālāk vai rakstiet mūsu forumam. Lai uzzinātu vairāk par nRF24L02, varat arī mēģināt izveidot privātu tērzēšanas istabu, izmantojot Arduino, nRF24L01 un apstrādi.