- nRF52-kehityspaketti:
- Segger Embedded Studio
- DHT11 ja nRF52DK
- Kuinka työskennellä Bluetooth Low Energy (BLE) -toiminnon kanssa?
- BLE-palvelu- / ominaisuuskaavio
- nRF52 BLE-ohjelman selitys
- Ohjelmamme testaaminen nRF Connect -sovelluksella
Kuntoiluhihnojen, älykellojen ja muiden puettavien laitteiden suosio kasvaa yhä enemmän Bluetooth 5 / Bluetooth Low Energy -sovelluksen käytössäviestinnän standardit ovat laajalti käytössä. BLE auttaa meitä vaihtamaan tietoja lyhyellä etäisyydellä hyvin pienellä virralla, mikä on erittäin tärkeää paristokäyttöisille laitteille, kuten puettaville laitteille. Se auttaa myös meitä luomaan langattomia BLE-verkkoja, tämä ominaisuus on kätevä kotiautomaatiolaitteille, joissa useiden laitteiden on oltava yhteydessä toisiinsa suljetussa ympäristössä. Olemme jo käyttäneet BLE: tä Raspberry Pi: n kanssa ja BLE: tä ESP32: n kanssa joidenkin BLE-perustoimintojen suorittamiseen. Insinöörit kokeilevat BLE: tä suunnitellakseen kannettavia langattomia laitteita, jotka voivat toimia pitkään pienillä paristoilla, ja BLE: n kanssa on käytettävissä useita kehityspaketteja. Viimeisimmässä Arduino Nano 33 -katsauksessamme huomasimme myös, että levyllä on nRF52840 BLE-ominaisuuksilla.
Tässä opetusohjelmassa tutkitaan toista jännittävää ja suosittua kehityskorttia nimeltä nRF52 DK lämpötilan ja kosteuden mittaamiseksi BLE: n avulla. Oletusarvon mukaan BLE Environment Sensing Profiles tukee useita ympäristöparametreja, mutta tämä opetusohjelma on rajoitettu vain lämpötila- ja kosteusarvoihin. Tämä ratkaisu muodostaa yhteyden älypuhelimeen matalan energian Bluetooth-yhteyden kautta ja tarjoaa säännöllisen päivityksen ympäristöparametreista, kuten lämpötilasta, kosteudesta. Käytämme DHT1-anturia ja lämpötilan mittaus tehdään 0,01 celsiusasteella ja kosteuden mittaus 0,01 prosentin tarkkuudella.
nRF52-kehityspaketti:
nRF52DK on täydellinen prototyyppialusta Bluetooth Low Energy- ja 2,4 GHz: n langattomalle esineiden internet -sovellukselle. Kehityspaketti tukee useita vakiomaisia pohjoismaisia työkaluketjuja, kuten avoimen lähdekoodin, GCC: tä ja kaupallisia integroituja kehitysympäristöjä, kuten Keil, IAR ja Segger Embedded Studio, jne. Nordic tarjoaa myös täysimittaisen ohjelmistokehityspaketin nRF52: lle, joka sisältää täydellisen tuen nRF52DK: lle.
nRF52DK saa virtansa nRF52832 ARM Cortex-M4F -mikrokontrollerista, johon on integroitu 512 kt tavua Flash Memoria ja 64 kt tavua SRAM. nRF52DK: ssa on integroitu Segger J-Link On Board-debuggeri, joka tarjoaa helpomman ja nopeamman virheenkorjauksen ilman ulkoisia / muita jtag-virheenkorjauslaitteita. Se sisältää myös Arduino Uno Rev3 -yhteensopivan liittimen, joka tukee analogisten ja digitaalisten tulojen liittämistä mikroprosessoriin, ja se sisältää myös tavalliset tiedonsiirtoprotokollat, kuten I2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface) ja UART (Universal Asynchronous Receiver and Transmitter). Tämä kehityspaketti on suunniteltu integroidulla sisäänrakennetulla piirilevyantennilla, joka tarjoaa lyhyen kantaman langattoman tiedonsiirron Bluetooth Low Energy -yhteydellä älypuhelimen, kannettavien tietokoneiden ja tablettien kanssa.
Segger Embedded Studio
Kehityskortin ohjelmoimiseksi käytämme Segger Embedded Studiota nRF52: n kanssa. Segger Embedded Studio on tehokas integroitu C / C ++ -kehitysympäristö (IDE), joka on tarkoitettu erityisesti sulautettujen järjestelmien kehittämiseen. Tämä tarjoaa täydellisen all-in-one-ratkaisun, joka sisältää kaiken tarvittavan upotettuun C-ohjelmointiin, kehitykseen ja virheenkorjaukseen. Tämä sisältää sulautettujen järjestelmien ohjelmoinnin ja kehityksen täydellisen työnkulun, joka sisältyy projektihallintaan, editoriin ja virheenkorjaukseen, joka tukee ARM Cortex -laitteita. Tämä tehokas ja helppokäyttöinen IDE on täysin ilmainen pohjoismaisille asiakkaille täydellä lisenssillä ilman koodikokorajoituksia. IDE voidaan ladata alla olevasta linkistä,
Lataa Segger Embedded Studio
DHT11 ja nRF52DK
DHT11 on monipuolinen lämpötila- ja kosteusanturi, jossa on vastustuskykyisen kosteuden mittauskomponentti ja NTC-tyyppinen lämpötilanmittauskomponentti. Se tarjoaa erinomaisen laadun, nopeamman reagoinnin ja kustannustehokkuuden. Oletuksena kaikki DHT11-anturit on kalibroitu laboratoriossa, mikä johtaa äärimmäiseen tarkkuuteen ja luotettavuuteen. Se kommunikoi yksisuuntaisen sarjaliitäntäjärjestelmän avulla, ja muut tekniset tiedot ovat alla
DHT11: n tekniset tiedot:
- Kosteusalue: 20-90% suhteellinen kosteus
- Lämpötila-alue: 0-50 astetta
- Kosteuden tarkkuus: ± 5 % RH
- Lämpötilan tarkkuus: ± 2 ℃
DHT11: n ajoituskaavio:
Tietojen lukeminen DHT11-anturista on suhteellisen yksinkertaista käyttämällä yllä esitettyä ajoituskaaviota. Menettely on samanlainen kuin mikä tahansa ohjain, ja olemme jo käyttäneet tätä anturia muiden kehitysalustojen, kuten
- DHT11-anturi Vadelma Pi: llä
- DHT11-anturi PIC16F877A: lla
- DHT11-anturi STM32F103C8: lla
- DHT11-anturi NodeMCU: lla
Noudata alla olevaa kytkentäkaaviota liittääksesi DHT11-lämpötila- ja kosteusanturin nRF52-kehityspakettiin.
Yhdistän anturin korttiini liitinmoduulilla, joten lopullinen kokoonpanoni näyttää tältä
Vuokaavio yhteydenpitoon DHT11: n kanssa:
Alla oleva vuokaavio selittää ohjelman loogisen vuon, jota käytämme kommunikoimaan nRF52DK: n ja DHT11: n välillä
Tietomuoto:
Kuinka työskennellä Bluetooth Low Energy (BLE) -toiminnon kanssa?
Jotta ymmärtäisimme kuinka BLE-ominaisuutta käytetään, meidän on ymmärrettävä muutama alla selitetty perustermi. Voit myös lukea ESP32 BLE -artikkelin saadaksesi lisätietoja BLE: stä
Yleinen käyttöprofiili (GAP)
Generic Access Profile pitää täyden vastuun yhteydenmuodostamiskustannukset väliseen viestintään BLE oheislaitteiden ja Keski laitteet. GAP tarjoaa myös erilaisia toimenpiteitä, kuten laitteen skannauksen / löytämisen, linkkikerroksen yhteyden muodostamisen, linkin lopettamisen, turvaominaisuuksien kättelyn ja täysimittaisen laitekokoonpanon. GAP toimii seuraavissa laitetiloissa
GAP-valtiot |
Kuvaus |
Valmiina |
Laitteen alkutila palautuksen yhteydessä |
Mainostaja |
Laitemainonta tiedoilla, jotka auttavat aloittajan skannauksessa |
Skanneri |
Vastaanottaa ja lähettää skannauspyynnön mainostajalle |
Aloittaja |
Lähettää yhteyden muodostamista koskevan pyynnön |
Orja / isäntä |
Yhteydessä laite orjaksi, jos mainostaja, isäntä, jos aloittaja |
Yleinen attribuuttiprofiilikerros (GATT)
GATT on lyhenne sanoista Generic Attribute Profile Layer, se vastaa kahden BLE-laitteen (Peripheral & Central) välisestä tiedonsiirrosta. Tietoliikenne on ominaista ominaisuuksien muodossa, jotka kommunikoivat ja tallentavat dataa. BLE-laitteella on kaksi erilaista roolia laiteviestinnässä alla,
- GATT-palvelin sisältää ominaisuudet, joita käytetään lukemiseen ja kirjoittamiseen. Opetusohjelmassa DHT11-anturi ja dev. paketti on GATT-palvelimemme.
- GATT-asiakas lukee ja kirjoittaa tietoja GATT-palvelimelta. Älypuhelin on GATT-asiakas, joka lukee ja kirjoittaa tietoja anturikortillemme.
Bluetooth SIG
Bluetooth Special Interest Group (SIG) on standardiorganisaatio, joka valvoo Bluetooth-standardien kehitystä ja Bluetooth-tekniikoiden lisensointia. SIG-ryhmä ei tuota tai myy mitään Bluetooth-tuotteita. Se määrittelee Bluetooth-määrityksen ja standardoinnin. Ne määrittelevät Bluetoothin matalan energian profiilin yksilöllisen tunnisteen ja vastaavat ominaisuudet. GATT-profiilin tekniset tiedot löytyvät alla olevasta linkistä
GATT-profiilin tekniset tiedot
Edellä olevassa linkissä annettujen GATT-määritysten perusteella olemme keränneet alla olevaan taulukkoon projektillemme tarvittavat yksilölliset tunnisteet.
Profiili / ominaisuudet |
UUID |
GAP (yleinen käyttöoikeus) |
0x1800 |
GATT (yleinen attribuutti) |
0x1801 |
ESS (Ympäristön tunnistaminen) |
0x181A |
Lämpötila |
0x2A6E |
Kosteus |
0x2A6F |
BLE-palvelu- / ominaisuuskaavio
BLE UUID
UUID |
16-bittinen arvo |
128-bittinen UUID |
ESS-palvelu |
0x181A |
0000181A-0000-0000-0000-00000000000 |
Lämpötila Char |
0x2A6E |
00002A6E-0000-0000-0000-00000000000 |
Kosteus Char |
0x2A6F |
00002A6F-0000-0000-0000-00000000000 |
Lämpötilan ominaisuudet
Omaisuus |
Kuvaus |
Yksikkö |
Celsius-aste tarkkuudella 0,01 astetta |
Muoto |
sint16 |
UUID |
0x2A6E |
Desimaalinen eksponentti |
2 |
Lukea |
Pakollinen |
Kosteusominaisuudet
Omaisuus |
Kuvaus |
Yksikkö |
Prosenttiosuus tarkkuudella 0,01 prosenttia |
Muoto |
uint16 |
UUID |
0x2A6F |
Desimaalinen eksponentti |
2 |
Lukea |
Pakollinen |
nRF52 BLE-ohjelman selitys
Käytämme nRF5 SDK: ta ohjelmoidaksemme nRF52-kehityspaketin. nRF5 SDK on täydellinen ohjelmistokehityspaketti, joka on integroitu lukuisiin Bluetooth Low Energy -profiileihin, GATT Serializeriin ja ohjaintukeen kaikille nRF5-sarjan SoC-laitteiden oheislaitteille. Tämä SDK auttaa kehittäjiä rakentamaan monipuolisia, luotettavia ja turvallisia Bluetooth-energiasovelluksia nRF52- ja nRF51-sarjan mikrokontrollereilla. Koko ohjelman voi ladata täältä, koodin selitys on seuraava.
Määritä DHT11-DATA-tappi syötteeksi numeroon nrf52 vedon mahdollistamisen avulla. Nastan tilan tulisi olla korkea sen varmistamiseksi, että nRF52 tarjoaa oikean PULLUPin DHT11-datanastalle
/ * aseta tuloksi ja tarkista onko signaali vedetty ylös / / Data_SetInput (); Viive USec (50); if (Data_GetVal () == 0) {palauta DHT11_NO_PULLUP; }
Luo START-signaali nRF52-mikrokontrollerista ja tarkista kuittaussignaali.
/ * lähettää aloitussignaalin * / Data_SetOutput (); Data_ClrVal (); Viive MSec (20); / * pitää signaali matalana vähintään 18 ms * / Data_SetInput (); Viive USec (50); / * tarkista kuittaussignaali * / jos (Data_GetVal ()! = 0) {/ * anturin on vedettävä matalalle signaalille * / return DHT11_NO_ACK_0; } / * odota anturin ack-signaalia enintään 100 us * / cntr = 18; kun (Data_GetVal () == 0) {/ * odota, kunnes signaali nousee * / DelayUSec (5); jos (--cntr == 0) {return DHT11_NO_ACK_1; / * -signaalin pitäisi olla ACK: n päällä tässä * /}} / * odota, kunnes se taas laskee, ack-jakson loppu * / cntr = 18; kun (Data_GetVal ()! = 0) {/ * odota, kunnes signaali laskee * / DelayUSec (5); jos (--cntr == 0) {return DHT11_NO_ACK_0; / * signaalin pitäisi olla jälleen nolla nolla tässä * /}}
Lue nyt 40 bittiä tietoja, jotka sisältävät 2 tavua lämpötilaa, 2 tavua kosteutta ja 1 tavun tarkistussumman.
/ * lue nyt 40-bittinen data * / i = 0; data = 0; loopBits = 40; tee {cntr = 11; / * odota enintään 55 us * / kun (Data_GetVal () == 0) {DelayUSec (5); if (--cntr == 0) {return DHT11_NO_DATA_0; }} cntr = 15; / * odota enintään 75 us * / kun (Data_GetVal ()! = 0) {DelayUSec (5); if (--cntr == 0) {palauta DHT11_NO_DATA_1; }} data << = 1; / * seuraava datas bitti * / if (cntr <10) {/ * datasignaali korkea> 30 us ==> datas bitti 1 * / data - = 1; } if ((loopBits & 0x7) == 1) {/ * seuraava tavu * / puskuri = data; i ++; data = 0; }} while (- loopBits! = 0);
Vahvista tiedot tarkistussumman avulla.
/ * testaa CRC * / if ((uint8_t) (puskuri + puskuri + puskuri + puskuri)! = puskuri) {return DHT11_BAD_CRC; }
Käsittele ja varastoi lämpötila ja kosteus
/ * tallentaa datan arvot soittajalle * / kosteus = ((int) puskuri) * 100 + puskuri; lämpötila = ((int) puskuri) * 100 + puskuri;
Alusta nRF5 SDK Logger -palvelu. nRF52 SDK on varustettu kirjaamisen hallintaliittymällä nimeltä nrf_log, ja se käyttää oletusalustaa tietojen kirjaamiseen. Oletusohjelma on sarjaportti. Tässä alustetaan sekä nrf_log -ohjausrajapinta että nrf_log -oletusohjelmat .
ret_code_t err_code = NRF_LOG_INIT (NULL); APP_ERROR_CHECK (err_code); NRF_LOG_DEFAULT_BACKENDS_INIT ();
nRF52 SDK: ssa on sovellusajastintoiminnot. Sovelluksen ajastinmoduulin avulla voidaan luoda useita ajastinkokoonpanoja RTC1-oheislaitteiden perusteella. Tässä alustetaan nRF5-sovelluksen ajastinmoduuli. Tässä ratkaisussa käytetään kahta sovellusajastinta ja tietojen päivitysväliä.
ret_code_t err_code = app_timer_init (); APP_ERROR_CHECK (err_code);
nRF52 SDK: lla on täyden ominaisuuden virranhallintamoduuli, koska BLE-laitteiden on toimittava useita kuukausia kolikkokennolla. Virranhallinnalla on tärkeä rooli BLE-sovelluksissa. nRF52-virranhallintamoduuli hoitaa täysin saman. Tässä alustetaan nRF5 SDK: n virranhallintamoduuli
ret_code_t err_code; err_code = nrf_pwr_mgmt_init (); APP_ERROR_CHECK (err_code);
nRF52 SDK: lla on sisäänrakennettu Nordic Soft Device -laiteohjelmiston heksatiedosto, jossa on Bluetoothin vähän energiaa käyttävä keskus- ja oheislaitepino. Tämä erittäin pätevä protokollapino sisältää GATT, GAP, ATT, SM, L2CAP ja Link Layer. Seuraamme tässä alustamisjärjestystä, joka alustaa nRF5 BLE -radion (Pohjoismainen pehmeä laite)
ret_code_t err_code; err_code = nrf_sdh_enable_request (); APP_ERROR_CHECK (err_code); // Määritä BLE-pino oletusasetuksilla. // Hae sovelluksen RAM-muistin aloitusosoite. uint32_t ram_start = 0; err_code = nrf_sdh_ble_default_cfg_set (APP_BLE_CONN_CFG_TAG, & ram_start); APP_ERROR_CHECK (err_code); // Ota BLE-pino käyttöön. err_code = nrf_sdh_ble_enable (& ram_start); APP_ERROR_CHECK (err_code); // Rekisteröi ohjaaja BLE-tapahtumiin. NRF_SDH_BLE_OBSERVER (m_ble_observer, APP_BLE_OBSERVER_PRIO, ble_evt_handler, NULL);
GAP vastaa laitteiden skannauksesta / löytämisestä, linkkien luomisesta, linkkien lopettamisesta, suojausominaisuuksien aloittamisesta ja määrityksistä. GAP on esittänyt avainkytkentäparametreja, kuten yhteysväli, orjaviive, valvonnan aikakatkaisu jne. Tällöin alustetaan yleisen käyttöprofiilin yhteysparametrit
ret_code_terr_code; ble_gap_conn_params_tgap_conn_params; ble_gap_conn_sec_mode_t sec_mode; BLE_GAP_CONN_SEC_MODE_SET_OPEN (& sec_mode); err_code = sd_ble_gap_device_name_set (& sec_mode, (const uint8_t *) DEVICE_NAME, strlen (DEVICE_NAME)); APP_ERROR_CHECK (err_code); memset (& gap_conn_params, 0, sizeof (gap_conn_params)); gap_conn_params.min_conn_interval = MIN_CONN_INTERVAL; gap_conn_params.max_conn_interval = MAX_CONN_INTERVAL; gap_conn_params.slave_latency = SLAVE_LATENCY; gap_conn_params.conn_sup_timeout = CONN_SUP_TIMEOUT; err_code = sd_ble_gap_ppcp_set (& gap_conn_params); APP_ERROR_CHECK (err_code);
GATT vastaa BLE-oheislaitteiden ja keskuslaitteiden välisestä tiedonsiirrosta. nRF52 GATT -moduuli on hyödyllinen neuvotteluissa ja ATT_MTU-enimmäiskoon seuraamisessa. Tässä alustetaan nRF52 SDK Generic Attribute Module, ret_code_t err_code = nrf_ble_gatt_init (& m_gatt, NULL); APP_ERROR_CHECK (err_code);
GATT tekee tiedonsiirtoa palveluiden ja ominaisuuksien muodossa. Tässä alustetaan GATT-ympäristön tunnistustoiminnot, joka sisältää ominaisuuksien, kuten lämpötilan ja kosteuden, alustamisen.
ret_code_terr_code; nrf_ble_qwr_init_t qwr_init = {0}; // Alusta jonossa oleva kirjoitusmoduuli. qwr_init.error_handler = nrf_qwr_error_handler; err_code = nrf_ble_qwr_init (& m_qwr, & qwr_init); APP_ERROR_CHECK (err_code); m_ess.notif_write_handler = ble_ess_notif_write_handler; err_code = ble_ess_init (& m_ess); APP_ERROR_CHECK (err_code);
Mainonnalla on tärkeä rooli BLE-sovellusympäristössä. paketit sisältävät tiedot osoitetyypistä, mainostyypistä, mainostiedoista, laitevalmistajakohtaisista tiedoista ja skannausvastetiedoista. nRF52 SDK mukana mainosmoduulilla. Tässä teemme mainosmoduulin alustuksen parametreilla.
ret_code_terr_code; ble_advdata_t advdata; ble_advdata_t srdata; ble_uuid_t adv_uuids = {{ESS_UUID_SERVICE, BLE_UUID_TYPE_BLE}}; // Luo ja aseta mainontatiedot. memset (& advdata, 0, sizeof (advdata)); advdata.name_type = BLE_ADVDATA_FULL_NAME; advdata.include_appearance = true; advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE; memset (& srdata, 0, sizeof (srdata)); srdata.uuids_complete.uuid_cnt = sizeof (adv_uuids) / sizeof (adv_uuids); srdata.uuids_complete.p_uuids = adv_uuids; err_code = ble_advdata_encode (& advdata, m_adv_data.adv_data.p_data, & m_adv_data.adv_data.len); APP_ERROR_CHECK (err_code); err_code = ble_advdata_encode (& srdata, m_adv_data.scan_rsp_data.p_data, & m_adv_data.scan_rsp_data.len); APP_ERROR_CHECK (err_code); ble_gap_adv_params_t adv_params; // Aseta mainosparametrit. memset (& adv_params, 0, sizeof (adv_params)); adv_params.primary_phy = BLE_GAP_PHY_1MBPS; adv_params.duration = APP_ADV_DURATION; adv_params.properties.type = BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED; adv_params.p_peer_addr = NULL; adv_params.filter_policy = BLE_GAP_ADV_FP_ANY; adv_params.interval = APP_ADV_INTERVAL; err_code = sd_ble_gap_adv_set_configure (& m_adv_handle, & m_adv_data ja & adv_params); APP_ERROR_CHECK (err_code);
BLE-yhteyttä käsitellään ja valvotaan erilaisilla yhteysparametreilla, kuten ensimmäisen yhteyden parametrien päivitysviive, seuraavat peräkkäiset viiveet, päivitysten määrä, yhteystapahtumakäsittelijän takaisinsoittotoiminto ja yhteysvirheen takaisinkutsutapahtumankäsittelijä. Tässä tehdään BLE-yhteyden muodostamisparametrit ja soittotapahtumakäsittelijä yhteystapahtumille ja virhetapahtumille.
ret_code_terr_code; ble_conn_params_init_t cp_init; memset (& cp_init, 0, sizeof (cp_init)); cp_init.p_conn_params = NULL; cp_init.first_conn_params_update_delay = FIRST_CONN_PARAMS_UPDATE_DELAY; cp_init.next_conn_params_update_delay = NEXT_CONN_PARAMS_UPDATE_DELAY; cp_init.max_conn_params_update_count = MAX_CONN_PARAMS_UPDATE_COUNT; t_on_notify_cccd_handle = BLE_GATT_HANDLE_INVALID; cp_init.disconnect_on_fail = epätosi; cp_init.evt_handler = on_conn_params_evt; cp_init.error_handler = liitäntäparametrit_koneenkäsittelijä; err_code = ble_conn_params_init (& cp_init); APP_ERROR_CHECK (err_code);
Järjestelmän alustuksen päätyttyä aloitamme tässä BLE-laitteen nimen ja kykytietojen mainostamisen. Täältä tämä oheislaite näkyy älypuhelimen Ble-skannausluettelossa.
ret_code_terr_code; err_code = sd_ble_gap_adv_start (m_adv_handle, APP_BLE_CONN_CFG_TAG); APP_ERROR_CHECK (err_code);
Pääsilmukka kulkee kahden sekunnin välein, lue lämpötila ja kosteus ja päivitykset yhdistettyyn älylaitteeseen joko lukemisen tai ilmoituksen avulla
lämpötilalle, kosteudelle (;;) { uint16_t; DHTxx_ErrorCode dhtErrCode; idle_state_handle (); if (updtmrexp) { dhtErrCode = DHTxx_Read (& lämpötila, & kosteus); if (dhtErrCode == DHT11_OK) { NRF_LOG_INFO ("Lämpötila:% d Kosteus:% d \ n", lämpötila, kosteus); jos (temp_notif_enabled) { ble_ess_notify_temp (m_conn_handle, & m_ess, lämpötila); } else { ble_ess_update_temp (& m_ess, lämpötila); } if (kostea_notif_enabled) { ble_ess_notify_humid (m_conn_handle, & m_ess, kosteus); } else { ble_ess_update_humid (& m_ess, kosteus); } } updtmrexp = väärä; } }
Ohjelmamme testaaminen nRF Connect -sovelluksella
nRF Connect on tehokas Bluetooth-virransäästötyökalu, jonka avulla voidaan skannata ja tutkia BLE-yhteensopivia oheislaitteita. nRF Connect mobiililaitteille tukee laajaa valikoimaa Bluetooth SIG -profiileja. Voimme vahvistaa ohjelmamme käyttämällä tätä, sovelluksen asentamisen jälkeen voimme yhdistää nRF52-kortin puhelimeemme etsimällä sovelluksesta BLE-laitteita. Ympäristöä tunnistavan ominaisuuden sisällä voimme havaita lämpötila- ja kosteusarvojen päivittyvän alla olevien kuvien mukaisesti.
Hariharan Veerappan on riippumaton konsultti, jolla on yli 15 vuoden kokemus sulautetusta tuotekehityksestä. Hän tarjoaa konsultointipalveluja sulautettujen laiteohjelmistojen / Linux-kehityksessä, hän tarjoaa myös yritys- ja verkkokoulutusta. Hariharanilla on tekniikan kandidaatin tutkinto elektroniikan ja viestintätekniikan alalta. Artikkeleidensa ja opetusohjelmiensa avulla hän jakaa kokemuksensa ja ajatuksensa Circuit Digestin lukijoille.