- nRF52 izstrādes komplekts:
- Segger iegultā studija
- DHT11 ar nRF52DK
- Kā strādāt ar Bluetooth Low Energy (BLE)?
- BLE servisa / raksturlielumu diagramma
- nRF52 BLE programmas skaidrojums
- Mūsu programmas pārbaude, izmantojot nRF Connect
Ar fitnesa joslām, viedpulksteņi un citas valkājamas ierīces kļūst arvien populārākas, izmantojot Bluetooth 5 / Bluetooth Low Energykomunikācijas standarti tiek plaši pieņemti. BLE palīdz mums apmainīties ar datiem nelielā attālumā ar ļoti mazu enerģijas patēriņu, kas ir ļoti svarīgi ar akumulatoru darbināmām ierīcēm, piemēram, valkājamām ierīcēm. Tas arī palīdz mums izveidot bezvadu BLE tīkla tīklus, šī funkcija ir noderīga mājas automatizācijas ierīcēm, kur vairākām ierīcēm ir jāsazinās savā starpā slēgtā vidē. Mēs jau esam izmantojuši BLE ar Raspberry Pi un BLE ar ESP32, lai veiktu dažas BLE pamatfunkcijas. Inženieri eksperimentē ar BLE, lai izstrādātu pārnēsājamas bezvadu ierīces, kas ilgu laiku var darboties ar mazām baterijām, un darbam ar BLE ir pieejami vairāki izstrādes komplekti. Nesenajā pārskatā par Arduino Nano 33 mēs arī pamanījām, ka dēlim ir nRF52840 ar BLE iespējām.
Šajā apmācībā mēs izpētīsim vēl vienu aizraujošu un populāru izstrādes paneli ar nosaukumu nRF52 DK, lai mērītu temperatūru un mitrumu, izmantojot BLE. Pēc noklusējuma BLE Environment Sensing Profiles atbalsta plašu vides parametru diapazonu, taču šī apmācība ir ierobežota tikai ar temperatūras un mitruma vērtībām. Šis risinājums savienojas ar viedtālruni, izmantojot Bluetooth zemu enerģijas patēriņu, un nodrošina biežu atjaunināšanu attiecībā uz vides parametriem, ti, temperatūru, mitrumu. Mēs izmantosim sensoru DHT1, un temperatūras mērīšana tiks veikta ar izšķirtspēju 0,01 grādi pēc Celsija, un mitruma mērīšana tiks veikta ar izšķirtspēju 0,01 procents.
nRF52 izstrādes komplekts:
nRF52DK ir pilnīga prototipu veidošanas platforma lietošanai Bluetooth ar zemu enerģijas patēriņu un 2,4 GHz bezvadu lietisko internetu. Izstrādes komplekts atbalsta dažādas standarta Nordic Toolchains, piemēram, atvērtā koda, GCC un komerciālas integrētas izstrādes vides, piemēram, Keil, IAR un Segger Embedded Studio utt. Nordic piedāvā arī pilnvērtīgu programmatūras izstrādes komplektu nRF52, kas ietver pilnīgu atbalstu nRF52DK.
nRF52DK tiek darbināts ar nRF52832 ARM Cortex-M4F mikrokontrolleru, kurā ir integrēti 512 KB bitu Flash Memor un 64 Kb SRAM. nRF52DK ir integrēts Segger J-Link On Board atkļūdotājs, kas nodrošina vieglāku un ātrāku atkļūdošanu bez ārējām / papildu jtag atkļūdošanas ierīcēm. Tas ietver arī Arduino Uno Rev3 saderīgu savienotāju, kas atbalsta analogo un digitālo ieeju saskarsmi ar mikroprocesoru, un tajā ietilpst arī standarta sakaru protokoli, piemēram, I2C (savstarpēji integrēta shēma), SPI (seriālā perifēra saskarne) un UART (universāls asinhronais uztvērējs un raidītājs). Šis izstrādes komplekts ir izstrādāts ar integrētu iebūvētu PCB antenu, kas nodrošina maza darbības attāluma bezvadu sakarus, izmantojot Bluetooth Low Energy savienošanai ar viedtālruni, klēpjdatoriem un planšetdatoriem.
Segger iegultā studija
Lai ieprogrammētu izstrādes paneli, mēs izmantosim Segger Embedded Studio ar nRF52. Segger Embedded Studio ir jaudīga C / C ++ integrētās izstrādes vide (IDE), kas paredzēta tieši iegulto sistēmu izstrādei. Tas nodrošina pilnīgu all-in-one risinājumu, kas satur visu nepieciešamo iegultās C programmēšanai, izstrādei un atkļūdošanai. Tas ietver pilnīgu iegulto sistēmu programmēšanas un izstrādes darbplūsmu, kas attēlota ar projektu pārvaldību, redaktoru, atkļūdotāju, kas atbalsta ARM Cortex ierīces. Šī jaudīgā un viegli lietojamā IDE ir pilnīgi bezmaksas Ziemeļvalstu klientiem ar pilnu licenci bez koda lieluma ierobežojumiem. IDE var lejupielādēt no tālāk norādītās saites,
Lejupielādējiet iegulto programmu Segger
DHT11 ar nRF52DK
DHT11 ir pilnvērtīgs temperatūras un mitruma sensors ar pretestīga tipa mitruma mērīšanas komponentu un NTC tipa temperatūras mērīšanas komponentu. Tas piedāvā izcilu kvalitāti, ātrāku reaģēšanu un izmaksu efektivitāti. Pēc noklusējuma visi DHT11 sensori tiek kalibrēti laboratorijā, kas nodrošina ārkārtīgu precizitāti un uzticamību. Tas sazinās, izmantojot viena vadu sērijas interfeisa sistēmu, un citas specifikācijas ir norādītas zemāk
DHT11 specifikācijas:
- Mitruma diapazons: 20 - 90% RH
- Temperatūras diapazons: 0 - 50 grādi pēc Celsija
- Mitruma precizitāte: ± 5 % RH
- Temperatūras precizitāte: ± 2 ℃
DHT11 laika shēma:
Datu nolasīšana no DHT11 sensora ir salīdzinoši vienkārša, izmantojot iepriekš parādīto laika shēmu. Procedūra ir līdzīga jebkuram kontrolierim, un mēs jau esam izmantojuši šo sensoru ar citām izstrādes platformām, piemēram,
- DHT11 sensors ar Aveņu Pi
- DHT11 sensors ar PIC16F877A
- DHT11 sensors ar STM32F103C8
- DHT11 sensors ar NodeMCU
Lai savienotu DHT11 temperatūras un mitruma sensoru ar nRF52 izstrādes komplektu, izpildiet tālāk sniegto savienojuma shēmu.
Es izmantoju savienotāju moduli, lai sensoru savienotu ar savu dēli, tāpēc mana galīgā iestatīšana izskatās šādi
Plūsmas diagramma saziņai ar DHT11:
Zemāk esošajā plūsmas diagrammā ir izskaidrota programmas loģiskā plūsma, kuru mēs izmantosim, lai sazinātos starp nRF52DK un DHT11
Datu formāts:
Kā strādāt ar Bluetooth Low Energy (BLE)?
Lai saprastu, kā izmantot BLE funkciju, mums ir jāsaprot dažas pamata terminoloģijas, kas ir paskaidrotas zemāk, varat arī izlasīt ESP32 BLE rakstu, lai uzzinātu vairāk par BLE
Vispārējās piekļuves profils (GAP)
Vispārējais piekļuves profils ir pilnībā atbildīgs par savienojuma izveidi saziņai starp BLE perifērijas un centrālajām ierīcēm. GAP nodrošina arī dažādas procedūras, tostarp ierīču skenēšanu / atklāšanu, saites slāņa savienojuma izveidošanu, saites izbeigšanu, drošības elementu rokasspiedienu un pilnvērtīgu ierīces konfigurāciju. GAP darbojas šādos ierīces stāvokļos
GAP valstis |
Apraksts |
Stāvēt |
Ierīces sākotnējais stāvoklis pēc atiestatīšanas |
Reklāmdevējs |
Ierīces reklamēšana ar datiem, kas palīdz iniciatora skenēšanai |
Skeneris |
Saņem un nosūta skenēšanas pieprasījumu reklāmdevējam |
Iniciators |
Nosūta savienojuma pieprasījumu, lai izveidotu saiti |
Vergs / saimnieks |
Savienojuma laikā ierīce kā vergs, ja reklāmdevējs, galvenais, ja iniciators |
Vispārējais atribūtu profila slānis (GATT)
GATT ir saīsinājums no Generic Attribute Profile Layer, tas ir atbildīgs par datu komunikāciju starp divām BLE ierīcēm (perifērijas un centrālās). Datu komunikāciju raksturo raksturlielumi, kas komunicē un uzglabā datus. BLE ierīcei ir divas dažādas ierīces sakaru funkcijas, kas norādītas turpmāk,
- GATT serveris satur informāciju par īpašībām, kas tiks izmantota lasīšanai un rakstīšanai. Mūsu apmācībā DHT11 sensors un dev. komplekts ir mūsu GATT serveris.
- GATT klients nolasa un raksta datus no / uz GATT serveri. Viedtālrunis ir GATT klients, kurš nolasa un ieraksta datus mūsu sensoru dēlī.
Bluetooth SIG
Bluetooth Īpašo interešu grupa (SIG) ir standartu organizācija, kas uzrauga Bluetooth standartu attīstību un Bluetooth tehnoloģiju licencēšanu. SIG grupa neražo un nepārdod nevienu Bluetooth produktu. Tas nosaka Bluetooth specifikāciju un standartizāciju. Tie nosaka Bluetooth zema enerģijas profila unikālo identifikatoru un attiecīgos raksturlielumus. GATT profila specifikācijas ir atrodamas zemāk esošajā saitē
GATT profila specifikācijas
Pamatojoties uz GATT specifikāciju, kas norādīta iepriekš minētajā saitē, mēs esam savākuši unikālus identifikatorus, kas nepieciešami mūsu projektam, un tie ir doti tālāk.
Profils / raksturojums |
UUID |
GAP (vispārēja piekļuve) |
0x1800 |
GATT (vispārīgs atribūts) |
0x1801 |
ESS (vides uztveršana) |
0x181A |
Temperatūra |
0x2A6E |
Mitrums |
0x2A6F |
BLE servisa / raksturlielumu diagramma
BLE UUID
UUID |
16 bitu vērtība |
128 bitu UUID |
ESS dienests |
0x181A |
0000181A-0000-0000-0000-00000000000 |
Temp Char |
0x2A6E |
00002A6E-0000-0000-0000-00000000000 |
Mitrums Char |
0x2A6F |
00002A6F-0000-0000-0000-00000000000 |
Temperatūras raksturlielumi
Īpašums |
Apraksts |
Vienība |
Grāds pēc Celsija ar izšķirtspēju 0,01 grāds |
Formāts |
sint16 |
UUID |
0x2A6E |
Decimālais eksponents |
2 |
Lasīt |
Obligāts |
Mitruma raksturojums
Īpašums |
Apraksts |
Vienība |
Procenti ar izšķirtspēju 0,01 procenti |
Formāts |
uint16 |
UUID |
0x2A6F |
Decimālais eksponents |
2 |
Lasīt |
Obligāts |
nRF52 BLE programmas skaidrojums
Mēs izmantosim nRF5 SDK, lai ieprogrammētu savu nRF52 izstrādes komplektu. nRF5 SDK ir pilnīgs programmatūras izstrādes komplekts, kas integrēts ar daudziem Bluetooth zema enerģijas patēriņa profiliem, GATT serializatoru un draiveru atbalstu visām nRF5 sērijas SoC perifērijas ierīcēm. Šis SDK palīdz izstrādātājiem izveidot pilnvērtīgas, uzticamas un drošas Bluetooth zemas enerģijas lietojumprogrammas ar nRF52 un nRF51 mikrokontrolleru sērijām. Pilnu programmu var lejupielādēt no šejienes, koda skaidrojums ir šāds.
Konfigurējiet DHT11 DATA tapu kā ievadi pie nrf52 ar iespējošanas iespēju. Piespraudes statusam jābūt augstam, lai apstiprinātu, ka nRF52 nodrošina pareizu PULLUP DHT11 datu spraudnim
/ * iestatiet ievadi un pārbaudiet, vai signāls tiek izvilkts * / Data_SetInput (); KavēšanāsUSec (50); ja (Data_GetVal () == 0) {atgriež DHT11_NO_PULLUP; }
Ģenerējiet START signālu no nRF52 mikrokontrollera un pārbaudiet apstiprināšanas signālu.
/ * nosūtīt sākuma signālu * / Data_SetOutput (); Data_ClrVal (); Kavēšanās MSec (20); / * uzturēt zemu signālu vismaz 18 ms * / Data_SetInput (); KavēšanāsUSec (50); / * pārbaudiet, vai nav apstiprinājuma signāla * / ja (Data_GetVal ()! = 0) {/ * signālam ir jāpavelk zems signāls * / return DHT11_NO_ACK_0; } / * pagaidiet ne vairāk kā 100 ASV, lai saņemtu ack signālu no sensora * / cntr = 18; kamēr (Data_GetVal () == 0) {/ * pagaidiet, līdz signāls iet uz augšu * / DelayUSec (5); ja (--cntr == 0) {atgriež DHT11_NO_ACK_1; / * Šeit ACK signālam vajadzētu būt augšā * /}} / * pagaidiet, līdz tas atkal samazinās, ack secības beigas * / cntr = 18; kamēr (Data_GetVal ()! = 0) {/ * pagaidiet, līdz signāls samazinās * / DelayUSec (5); ja (--cntr == 0) {atgriež DHT11_NO_ACK_0; / * signālam šeit atkal vajadzētu būt nullei * /}}
Tagad izlasiet 40 datu bitus, kas satur 2 baitus temperatūras, 2 baitus mitruma un 1 baitu kontrolsummas.
/ * tagad nolasiet 40 bitu datus * / i = 0; dati = 0; loopBits = 40; darīt {cntr = 11; / * pagaidiet ne vairāk kā 55 us * / while (Data_GetVal () == 0) {DelayUSec (5); ja (--cntr == 0) {atgriež DHT11_NO_DATA_0; }} cntr = 15; / * pagaidiet ne vairāk kā 75 us * / while (Data_GetVal ()! = 0) {DelayUSec (5); ja (--cntr == 0) {atgriež DHT11_NO_DATA_1; }} dati << = 1; / * nākamais datu bits * / ja (cntr <10) {/ * datu signāls augsts> 30 us ==> datu bits 1 * / dati - = 1; } if ((loopBits & 0x7) == 1) {/ * nākamais baits * / buferis = dati; i ++; dati = 0; }} while (- loopBits! = 0);
Apstipriniet datus ar kontrolsummas palīdzību.
/ * pārbaudīt CRC * / if ((uint8_t) (buferis + buferis + buferis + buferis)! = buferis) {return DHT11_BAD_CRC; }
Manipulēt un uzglabāt temperatūru un mitrumu
/ * glabāt zvanītāja datu vērtības * / mitrums = ((int) buferis) * 100 + buferis; temperatūra = ((int) buferis) * 100 + buferis;
Inicializējiet pakalpojumu nRF5 SDK Logger. nRF52 SDK tiek piedāvāts ar reģistrēšanas vadības saskarni ar nosaukumu nrf_log, un informācijas reģistrēšanai tiek izmantota noklusējuma aizmugure. Noklusējuma aizmugure būs seriālais ports. Šeit mēs inicializējam gan nrf_log vadības saskarni, gan nrf_log noklusējuma aizmugures.
ret_code_t err_code = NRF_LOG_INIT (NULL); APP_ERROR_CHECK (kļūdas_ kods); NRF_LOG_DEFAULT_BACKENDS_INIT ();
nRF52 SDK ir lietojumprogrammu taimera funkcionalitāte. Programmas taimera modulis ļauj izveidot vairākus taimera gadījumus, pamatojoties uz RTC1 perifērijas ierīci. Šeit mēs inicializējam nRF5 lietojumprogrammas taimera moduli. Šajā risinājumā tiek izmantoti divi lietojuma taimeri un datu atjaunināšanas intervāls.
ret_code_t err_code = app_timer_init (); APP_ERROR_CHECK (kļūdas_ kods);
nRF52 SDK ir pilnībā aprīkots enerģijas pārvaldības modulis, jo BLE ierīcēm vairākus mēnešus jādarbojas ar monētas elementa akumulatoru. Enerģijas pārvaldībai ir būtiska loma BLE lietojumprogrammās. nRF52 enerģijas pārvaldības modulis pilnībā rīkojas tāpat. Šeit mēs inicializējam nRF5 SDK enerģijas pārvaldības moduli
ret_code_t err_code; err_code = nrf_pwr_mgmt_init (); APP_ERROR_CHECK (kļūdas_ kods);
nRF52 SDK ir iebūvēts Nordic Soft Device programmaparatūras hex fails, kurā ir Bluetooth zema enerģijas patēriņa centrālā un perifērijas kaudze. Šajā augsti kvalificētajā protokolu kaudzē ietilpst GATT, GAP, ATT, SM, L2CAP un Link Layer. Šeit mēs sekojam inicializācijas secībai, kas tika inicializēta nRF5 BLE radio kaudze (Nordic Soft Device)
ret_code_t err_code; err_code = nrf_sdh_enable_request (); APP_ERROR_CHECK (kļūdas kods); // Konfigurējiet BLE kaudzīti, izmantojot noklusējuma iestatījumus. // Iegūstiet lietojumprogrammas RAM sākuma adresi. uint32_t ram_start = 0; err_code = nrf_sdh_ble_default_cfg_set (APP_BLE_CONN_CFG_TAG un & ram_start); APP_ERROR_CHECK (kļūdas kods); // Iespējot BLE kaudzīti. err_code = nrf_sdh_ble_enable (& ram_start); APP_ERROR_CHECK (kļūdas_ kods); // Reģistrējiet BLE notikumu apdarinātāju. NRF_SDH_BLE_OBSERVER (m_ble_observer, APP_BLE_OBSERVER_PRIO, ble_evt_handler, NULL);
GAP ir atbildīgs par ierīces skenēšanu / atklāšanu, saites izveidošanu, saites izbeigšanu, drošības funkciju uzsākšanu un konfigurēšanu. GAP ir parādījis galvenos savienojuma parametrus, piemēram, savienojuma intervālu, vergu latentumu, uzraudzības noildzi utt. Ar šo tiek inicializēti vispārējā piekļuves profila savienojuma parametri
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 (kļūdas_ kods); 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 (kļūdas_ kods);
GATT ir atbildīgs par datu komunikāciju starp BLE perifērijas un centrālajām ierīcēm. nRF52 GATT modulis ir noderīgs, lai risinātu sarunas un sekotu līdzi maksimālajam ATT_MTU izmēram. Šeit mēs inicializējam nRF52 SDK vispārīgo atribūtu moduli, ret_code_t err_code = nrf_ble_gatt_init (& m_gatt, NULL); APP_ERROR_CHECK (kļūdas_ kods);
GATT veic datu komunikāciju pakalpojumu un īpašību veidā. Šeit mēs inicializējam GATT vides uztveršanas pakalpojumus, kas ietver tādu raksturlielumu kā temperatūra un mitrums inicializēšanu.
ret_code_terr_code; nrf_ble_qwr_init_t qwr_init = {0}; // Inicializējiet rindā ierakstīto moduli. qwr_init.error_handler = nrf_qwr_error_handler; err_code = nrf_ble_qwr_init (& m_qwr, & qwr_init); APP_ERROR_CHECK (kļūdas_ kods); m_ess.notif_write_handler = ble_ess_notif_write_handler; err_code = ble_ess_init (& m_ess); APP_ERROR_CHECK (kļūdas_ kods);
Reklāmai ir būtiska loma BLE lietojumprogrammu vidē. paketēs ir informācija par adreses veidu, reklāmas veidu, reklāmas datiem, ierīces ražotāja datiem un skenēšanas atbildes datiem. nRF52 SDK ar reklāmas moduli. Šeit mēs veicam reklāmas moduļa inicializāciju ar parametriem.
ret_code_terr_code; ble_advdata_t advdata; ble_advdata_t srdata; ble_uuid_t adv_uuids = {{ESS_UUID_SERVICE, BLE_UUID_TYPE_BLE}}; // Veidot un iestatīt reklāmas datus. 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 (kļūdas_ kods); err_code = ble_advdata_encode (& srdata, m_adv_data.scan_rsp_data.p_data, & m_adv_data.scan_rsp_data.len); APP_ERROR_CHECK (kļūdas_ kods); ble_gap_adv_params_t adv_params; // Reklāmas parametru iestatīšana. 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 un & adv_params); APP_ERROR_CHECK (kļūdas_ kods);
BLE savienojums tiks apstrādāts un uzraudzīts, izmantojot dažādus savienojuma parametrus, piemēram, pirmā savienojuma parametru atjaunināšanas aizkave, nākamie secīgie kavējumi, atjauninājumu skaits, savienojuma notikumu apstrādātāja atzvanīšanas funkcija un savienojuma kļūdas atzvanīšanas notikumu apstrādātājs. Šeit mēs veicam BLE savienojuma izveides parametru inicializāciju un savienojuma notikumu un kļūdu notikumu atzvanīšanas notikumu apstrādātāju.
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 = nepatiesa; cp_init.evt_handler = on_conn_params_evt; cp_init.error_handler = conn_params_error_handler; err_code = ble_conn_params_init (& cp_init); APP_ERROR_CHECK (kļūdas_ kods);
Pēc sistēmas inicializācijas pabeigšanas šeit mēs sākam ar BLE ierīces nosaukuma un iespēju informācijas reklamēšanu. No šejienes šo perifēriju var redzēt viedtālruņa Ble skenēšanas sarakstā.
ret_code_terr_code; err_code = sd_ble_gap_adv_start (m_adv_handle, APP_BLE_CONN_CFG_TAG); APP_ERROR_CHECK (kļūdas_ kods);
Galvenā cilpa darbojas 2 sekunžu intervālā, nolasot temperatūru un mitrumu un atjauninot pievienoto viedierīci, izmantojot vai nu lasīšanu, vai paziņojumu
par (;;) { uint16_t temperatūru, mitrumu; DHTxx_ErrorCode dhtErrCode; idle_state_handle (); if (updtmrexp) { dhtErrCode = DHTxx_Read (& temperatūra, & mitrums); if (dhtErrCode == DHT11_OK) { NRF_LOG_INFO ("Temperatūra:% d Mitrums:% d \ n", temperatūra, mitrums); ja (temp_notif_enabled) { ble_ess_notify_temp (m_conn_handle, & m_ess, temperatūra); } cits { ble_ess_update_temp (& m_ess, temperatūra); } if (mitrs_notifs iespējots) { ble_ess_notify_humid (m_conn_handle, & m_ess, mitrums); } cits { ble_ess_update_humid (& m_ess, mitrums); } } updtmrexp = nepatiesa; } }
Mūsu programmas pārbaude, izmantojot nRF Connect
nRF Connect ir spēcīgs Bluetooth zema enerģijas patēriņa rīks, kas ļauj skenēt un izpētīt BLE iespējotās perifērijas ierīces. nRF Connect mobilajām ierīcēm atbalsta plašu Bluetooth SIG pieņemto standarta profilu klāstu. Izmantojot šo, mēs varam pārbaudīt savu programmu, pēc lietotnes instalēšanas mēs varam savienot pārī nRF52 paneli ar tālruni, meklējot BLE ierīces lietotnē. Vides sensora atribūtā mēs varam pamanīt, ka temperatūras un mitruma vērtības tiek atjauninātas, kā parādīts zemāk esošajos attēlos.
Hariharan Veerappan ir neatkarīgs konsultants, kuram ir vairāk nekā 15 gadu pieredze iegulto produktu izstrādē. Viņš sniedz konsultāciju pakalpojumus iegultās programmaparatūras / Linux izstrādē, kā arī nodrošina korporatīvās un tiešsaistes apmācības. Hariharan ir ieguvis inženierzinātņu bakalaura grādu elektronikas un komunikācijas inženierijas disciplīnā, izmantojot savus rakstus un apmācības, viņš dalās pieredzē un domās ar Circuit Digest lasītājiem.