Satura rādītājs:
- 1. darbība: komponentu izvēle
- 2. solis: būvniecība
- 3. darbība: kods - zema enerģijas patēriņa sensoru bibliotēka, lietotāja interfeiss un Arduino skice
- 4. solis: barošanas strāvas mērīšana
- 5. solis: kopējā barošanas strāva un akumulatora darbības laiks
- 6. solis: piegādes alternatīvas - Saules palīgsistēma, tikai akumulators, tikai saules enerģija
- 7. solis. Secinājums
Video: Vienkāršs ļoti zems enerģijas patēriņš BLE Arduino 2. daļā - Temperatūras/mitruma monitors - 3. redakcija: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Atjauninājums: 2020. gada 23. novembris - Pirmā 2 x AAA bateriju nomaiņa kopš 2019. gada 15. janvāra, ti, 22 mēneši 2xAAA Alkaline atjauninājumam: 2019. gada 7. aprīlis - lp_BLE_TempHumidity 3. red. dati
Atjauninājums: 2019. gada 24. marts - lp_BLE_TempHumidity 2. red., Pievieno citas sižeta iespējas un i2c_ClearBus
Šis pamācošais, ļoti zemas jaudas temperatūras mitruma monitors ir 2. daļa no 3.
1. daļa - Ļoti vienkāršas ļoti zemas jaudas BLE ierīču izveide, izmantojot Arduino vākus, iestatot Arduino kodēt nRF52 mazjaudas ierīces, programmēšanas moduli un mērot barošanas strāvu. Tas ietver arī specializētus mazjaudas taimerus un salīdzinātājus, kā arī atslēgtas ieejas un pfodApp izmantošanu, lai izveidotu savienojumu un kontrolētu nRF52 ierīci.
2. daļa - ļoti zema jaudas temperatūras mitruma monitors, šis, aptver, izmantojot Redbear Nano V2 moduli un Si7021 temperatūras / mitruma sensoru, lai izveidotu mazjaudas akumulatoru / saules monitoru. Tas ietver arī Si7021 bibliotēkas pārveidošanu par mazjaudīgu, BLE ierīces noregulēšanu, lai samazinātu tās pašreizējo patēriņu <25uA, un pielāgota temperatūras/mitruma displeja izstrādi jūsu mobilajam tālrunim.
3. daļa - Redbear Nano V2 nomaiņas vāki, izmantojot citus nRF52 moduļus, nevis Nano V2. Tas ietver piegādes komponentu izvēli, konstrukciju, nRF52 mikroshēmu programmēšanas aizsardzības noņemšanu, NFC tapas izmantošanu kā parastu GPIO un jaunas nRF52 plates definēšanu Arduino.
Šī pamācība ir 1. daļas praktisks pielietojums ļoti zemas jaudas BLE ierīču izveidei, kas ir vienkārša ar Arduino, izveidojot ļoti zemas jaudas BLE temperatūras un mitruma monitoru. Monitors darbosies gadiem ilgi, izmantojot monētu elementu vai 2 x AAA baterijas, pat ilgāk ar saules palīdzību. Šī apmācība aptver BLE parametru pielāgošanu zemam enerģijas patēriņam un to, kā ierīci darbināt no akumulatora VAI akumulatora + tikai saules vai saules enerģijas.
Monitors ne tikai parāda pašreizējo temperatūru un mitrumu, bet arī saglabā pēdējās 36 stundas 10 minūšu rādījumus un pēdējās 10 dienas stundu rādījumus. Tos var attēlot jūsu Android mobilajā ierīcē un vērtības, kas saglabātas žurnāla failā. Android programmēšana nav nepieciešama, pfodApp to visu apstrādā. Android displeju un diagrammu pilnībā kontrolē jūsu Arduino skice, lai jūs varētu to pielāgot pēc vajadzības.
Komponentam nRF52832 BLE tiek izmantota Redbear Nano V2 plāksne, bet temperatūras / mitruma sensoram - Sparkfun Si7021 sadalīšanas plāksne. Ar Si7021 tiek izmantota modificēta mazjaudas bibliotēka. Neliela PCB tika izstrādāta, lai turētu NanoV2 un piegādātu komponentus. Tomēr, tā kā netiek izmantotas uz virsmas montētas detaļas, jūs varat tikpat viegli to izveidot uz vero plates. Ir apskatītas trīs barošanas avota versijas. i) Akumulators un saules palīgsistēma, ii) tikai akumulators, iii) tikai saules enerģija. Saules opcijai Tikai nav akumulatora krātuves, un tā darbosies tikai tad, kad būs nedaudz gaismas. Pietiek ar gaišu istabas gaismu vai galda lampu.
Kontūra
Šim projektam ir 4 relatīvi neatkarīgas daļas:-
- Komponentu izvēle un uzbūve
- Kods - mazjaudas sensoru bibliotēka, lietotāja interfeiss un Arduino skice
- Barošanas strāvas un akumulatora darbības laika mērīšana
- Piegādes alternatīvas - Saules palīgsistēma, tikai akumulators, tikai saules enerģija
1. darbība: komponentu izvēle
Komponentu izvēle
Kā minēts 1. daļā-Triks, lai iegūtu patiešām mazjaudīgu risinājumu, ir lielākoties neko nedarīt, samazināt strāvu, izmantojot ieejas ārējos uzvilkšanas/nolaišanas rezistorus, un tiem nav nekādu papildu sastāvdaļu. Šis projekts izmantos katru no šiem trikiem, lai iegūtu mazjaudas risinājumu.
Komponents nRF52832
Mikroshēma nRF52832 var darboties ar barošanas avotu no 1,7 V līdz 3,6 V (absolūtais maksimālais spriegums 3,9 V). Tas nozīmē, ka mikroshēmu var darbināt tieši no monētas šūnas vai 2 x AAA baterijām. Tomēr ir saprātīgi pievienot sprieguma regulatoru, lai aizsargātu mikroshēmu no pārsprieguma. Šī papildu sastāvdaļa ir saistīta ar enerģijas izmaksām, bet NanoV2 plates gadījumā iebūvētais regulators TLV704 patērē mazāk nekā 5,5uA maks, parasti tikai 3,4uA. Šim nelielam papildu enerģijas patēriņam jūs saņemat aizsardzību līdz 24 V barošanas ieejām.
Si7021 sastāvdaļa
Si7021 sensors parasti vērš <1uA, ja neveic mērījumus, t.i., gaidstāves režīmā, un līdz 4 mA, pārsūtot datus, izmantojot I2C. Tā kā mēs nepārtraukti neveicam mērījumus, 4mA nav nozīmīga vidējās barošanas strāvas daļa. Ja lasīšana tiek veikta ļoti 30 sekundes, vidējai barošanas strāvai tiek pievienots mazāk nekā 1uA, skatiet zemāk esošos barošanas strāvas mērījumus.
Ir divi viegli pieejami Si7021 sadalīšanas dēļi. Viens no Adafruit un viens no Sparkfun. Ātrs skatiens uz abiem dēļiem jums pateiks, ka Adafruit tāfelei ir daudz vairāk komponentu nekā Sparkfun tāfelei, tāpēc jūs vēlētos izvēlēties Sparkfun tāfelīti. Aplūkojot katras plates shēmas, redzams, ka Sparkfun dēlis ir tikai tukšs sensors un divi 4k7 pievilkšanas rezistori, savukārt Adafruit plāksnei ir iebūvēts MIC5225 regulators, kas parasti visu laiku velk 29uA. Tas ir nozīmīgi, ja visa strāva pārējā ķēdē ir <30uA. Tā kā mums jau ir regulators mikroshēmai nRF52832, šī papildu sastāvdaļa nav nepieciešama, un Si7021 var darbināt no šīs 3,3 V barošanas avota. Tātad šajā projektā tiks izmantota Si7021 sadalīšanas plāksne no Sparkfun.
samaziniet strāvu, izmantojot ieejas ārējos uzvilkšanas/nolaišanas rezistorus
4K7 I2C pievilkšanas rezistori nav īpaši augstas vērtības, un, velkot zemu, tie patērēs 0,7 mA. Tā būtu problēma, ja tie atrastos uz slēdža ieejas, kas ilgu laiku bija iezemēta. Tomēr šajā projektā strāva caur šiem rezistoriem tiek samazināta līdz minimumam, izmantojot I2C saskarni tikai reti un tikai īsu laiku. Lielāko daļu laika I2C līnijas netiek izmantotas, un tās ir augstas / trīs stāvokļu, tāpēc caur šiem rezistoriem neplūst strāva.
2. solis: būvniecība
Projekts ir veidots uz nelielas PCB, bet, tā kā nav SMD komponentu, to var tikpat viegli izveidot, izmantojot vero board. PCB izgatavoja pcbcart.com no šiem Gerber failiem, TempHumiditySensor_R1.zip. PCB ir pietiekami universāls, lai to varētu izmantot citiem BLE projektiem.
Shēma ir parādīta iepriekš. Šeit ir pdf versija.
Detaļu saraksts
Aptuvenās izmaksas par vienību 2018. gada decembrī, ~ 62 ASV dolāri, izņemot piegādi un programmētāju no 1. daļas
- Redbear NanoV2 ~ 17 ASV dolāri
- Sparkfun Si7021 sadalīšanas dēlis ~ 8 ASV dolāri
- 2 x 53mm x 30mm 0,15W 5V saules baterijas, piem. Overfly ~ 1,10 ASV dolāri
- 1 x PCB TempHumiditySensor_R1.zip ~ 25 ASV dolāri par 5 atlaidēm www.pcbcart.com VAI Vero plāksne (vara sloksne), piem. Jaycar HP9540 ~ 5 AUD
- 2 x 1N5819 schottky diodes, piem. Digikey 1N5819FSCT-ND ~ 1 ASV dolārs
- 1 x 470R 0.4W 1% rezistors piem. Digikey BC3274CT-ND ~ 0,25 ASV dolāri
- 6 x 6 kontaktu tērauda galvenes tapas, piem. Sparkfun PRT-00116 ~ 1,5 ASV dolāri
- džemperis no sievietes līdz sievietei piem. Adafruit ID: 1950 ~ 2 ASV dolāri
- 3 mm x 12 mm neilona skrūves, piem. Jaycar HP0140 ~ 3 AUD
- 3 mm x 12 mm neilona uzgriežņi, piem. Jaycar HP0146 ~ 3 AUD
- Scotch Pastāvīgā montāžas lente Cat 4010 piem. no Amazon ~ 6,6 ASV dolāri
- AAA x 2 bateriju turētājs, piem. Sparkfun PRT-14219 ~ 1,5 ASV dolāri
- 2 x AAA 750mA sārma baterijas, piem. Sparkfun PRT-09274 ~ 1,0 ASV dolārs Šīm baterijām vajadzētu ilgt> 2 gadus. Energizer sārma baterijām ir lielāka ietilpība
- Plastmasas kaste (ABS) 83 mm x 54 mm x 31 mm, piem. Jaycar HB6005 ~ 3 AUD
- pfodApp ~ 10 ASV dolāri
- 1 x 22uF 63V zems ESR kondensators (pēc izvēles), piem. Jaycar RE-6342 ~ 0,5 USD vai Digikey P5190-ND ~ 0,25 USD
Konstrukcija ir taisni uz priekšu. Akumulatora turētājs un saules baterijas ir piestiprinātas pie plastmasas kastes ar lieljaudas divpusēju līmlenti.
Ievērojiet Gnd saites vadu no CLK līdz GND pabeigtajā daļā. Tas tiek instalēts PĒC programmēšanas, lai novērstu troksni CLK ievadē, izraisot nRF52 mikroshēmu augstas strāvas atkļūdošanas režīmā
3. darbība: kods - zema enerģijas patēriņa sensoru bibliotēka, lietotāja interfeiss un Arduino skice
Lejupielādējiet pasta kodu lp_BLE_TempHumidity_R3.zip un izpakojiet to savā Arduino Sketches direktorijā. Jums arī jāinstalē bibliotēka lp_So7021 no šī zip faila, kā arī jāinstalē bibliotēka pfodParser.
Mazjaudas sensoru bibliotēka, lp_Si7021
Gan Adafruit, gan Sparkfun nodrošina atbalsta bibliotēkas, lai piekļūtu Si7021 sensoram, tomēr abas šīs bibliotēkas nav piemērotas ļoti zemas enerģijas patēriņam. Abi izmanto aizkavi (25) kodā, lai aizkavētu sensora nolasīšanu mērīšanas laikā. Kā norādīts 1. daļā, kavēšanās ir ļauna. Arduino aizkave () tikai uztur mikroprocesoru, izmantojot strāvu, kamēr tas gaida aizkaves taimautu. Tas pārkāpj pirmo mazjaudas BLE noteikumu, neko nedariet lielāko daļu laika. Lp_Si7021 nomaiņas bibliotēka visus aizkavējumus aizstāj ar lp_timers, kas liek mikroprocesoram gulēt, gaidot sensora mērīšanas pabeigšanu.
Cik liela ir atšķirība bibliotēkā lp_Si7021? Izmantojot oriģinālo SparkFun Si7021 atbalsta bibliotēku un veicot vienu lasījumu sekundē bez sērijveida izdrukām, tiek iegūts vidēji ~ 1,2 mA. Sparkfun bibliotēkas aizstāšana ar bibliotēku lp_Si7021 samazina vidējo strāvu līdz ~ 10uA, t.i., 100 reizes mazāk. Šajā projektā ātrākais mērīšanas ātrums ir reizi 30 sekundēs, kad ir pievienots mobilais tālrunis, kā rezultātā vidējā sensora strāva ir mazāka par 1uA. Ja nav BLE savienojuma, mērīšanas ātrums ir reizi 10 minūtēs, un vidējā sensora barošanas strāva ir niecīga.
Lietotāja interfeiss
Augšpusē ir galvenais ekrāna displejs un palielināts 10 dienu stundas vēstures skats. Zīmējumus var tuvināt un panoramēt abos virzienos, izmantojot divus pirkstus.
Lietotāja interfeiss tiek kodēts Arduino skicē un pēc tam tiek nosūtīts uz pfodApp pirmajā savienojumā, kur tas tiek saglabāts kešatmiņā atkārtotai lietošanai un atjauninājumiem. Grafiskais displejs ir veidots no primitīvu zīmēšanas. Skatiet pielāgotas Arduino vadīklas operētājsistēmai Android, lai uzzinātu, kā izveidot savas vadīklas. Termometra, RHGauge un Pogas failos ir šo vienumu zīmēšanas komandas.
Piezīme: nav, ja šis displejs ir iebūvēts pfodApp. Visu displeju pilnībā kontrolē jūsu Arduino skices kods
Metode sendDrawing_z () skices lp_BLE_TempHumidity_R3.ino skicē definē lietotāja saskarni.
void sendDrawing_z () {dwgs.start (50, 60, dwgs. WHITE); // fona noklusējuma vērtība ir BALTA, ja tiek izlaista, t.i., sākums (50, 60); parser.sendRefreshAndVersion (30000); // atkārtoti pieprasīt dwg ik pēc 30 sekundēm tas tiek ignorēts, ja nav iestatīta parsētāja versija // pieskarieties virs pogām, lai piespiestu displeja atjauninājumus dwgs.touchZone (). cmd ('u'). size (50, 39).send (); dwgs.pushZero (35, 22, 1,5); // pārvietot nulli uz dwg centru līdz 35, 22 un mērogot par 1,5 reizes rhGauge.draw (); // uzzīmējiet vadību dwgs.popZero (); dwgs.pushZero (18, 33); // pārvietot nulli uz dwg centru līdz 18, 33 skala ir 1 (noklusējuma) termometrs.draw (); // uzzīmējiet vadību dwgs.popZero ();
dwgs.pushZero (12,5, 43, 0,7); // pārvietot nulli uz dwg centru līdz 12,5, 43 un mērogot ar 0,7
hrs8PlotButton.draw (); // uzzīmējiet vadību dwgs.popZero (); dwgs.pushZero (37,5, 43, 0,7); // pārvietot nulli uz dwg centru līdz 37,5, 43 un mērogot par 0,7 dienām1PlotButton.draw (); // uzzīmējiet vadību dwgs.popZero ();
dwgs.pushZero (12,5, 54, 0,7); // pārvietot nulli uz dwg centru līdz 12,5, 54 un mērogot ar 0,7
days3PlotButton.draw (); // uzzīmējiet vadību dwgs.popZero (); dwgs.pushZero (37,5, 54, 0,7); // pārvietot nulli uz dwg centru līdz 37,5, 54 un mērogot par 0,7 dienām10PlotButton.draw (); // uzzīmējiet vadību dwgs.popZero (); dwgs.end (); }
PushZero komandas maina nākamā komponenta zīmēšanas izcelsmi un mērogošanu. Tas ļauj viegli mainīt pogu un mērinstrumentu izmēru un novietojumu.
Pirmajā savienojumā sākotnējais displejs aizņem 5 vai 6 sekundes, lai ielādētu ~ 800 baitus, kas nosaka displeju. pfodApp saglabā kešatmiņu displejā, tāpēc turpmākajiem atjauninājumiem ir jānosūta tikai izmaiņas, mērierīču pozīcijas un rādījumi. Šie atjauninājumi aizņem tikai dažas sekundes, lai nosūtītu 128 baitus, kas jāatjaunina displejā.
Displejā ir definētas piecas (5) aktīvās skārienzonas. Katrai pogai ir viena definēta metode draw (), tāpēc jūs varat noklikšķināt uz tās, lai atvērtu attiecīgo grafiku, un ekrāna augšējā puse ir konfigurēta kā trešā pieskāriena zona
dwgs.touchZone (). cmd ('u'). izmērs (50, 39). sūtīt ();
Noklikšķinot uz ekrāna virs pogām, komanda “u” dwg tiek nosūtīta uz jūsu skici, lai piespiestu jaunu mērījumu un ekrāna atjaunināšanu. Parasti, kad ir izveidots savienojums, atjauninājumi notiek tikai ik pēc 30 sekundēm. Katrs zīmējuma klikšķis vai atsvaidzināšana liek veikt jaunu mērījumu. Atbilde no Arduino skices uz pfodApp tiek aizkavēta, līdz tiek pabeigts jaunais mērījums (~ 25mS), lai atjauninājumā varētu nosūtīt jaunāko vērtību.
Arduino skice
Arduino skice lp_BLE_TempHumidity_R3.ino ir 1. daļā izmantotā parauga skices uzlabota versija. Lp_BLE_TempHumidity_R3.ino skice aizstāj izvēlni ar iepriekš parādīto zīmējumu. Tas arī pievieno lp_Si7021 sensoru atbalstu un datu masīvus, lai saglabātu 10 minūšu un stundu vēsturiskos mērījumus.
Galvenā lp_BLE_TempHumidity_R3.ino skices komplikācija ir apstrādāt diagrammas datus. Veicot mērījumus, readRHResults () apstrādā rezultātus un saglabā tos vēsturiskajos masīvos. Masīvi ir 120 gari, bet, nosūtot datus, pirmie 30 datu punkti ir paredzēti sīkākā laika intervālā.
Sūtot parādīšanai 200 nepāra grafika punktus, ir jāņem vērā daži punkti:-
- Katrs datu punkts ir ~ 25 baitus garš CSV teksta formātā. Tātad 150 punkti ir 3750 baiti datu. Klasē lp_BLESerial ir 1536 baitu buferis, no kuriem 1024 ir pietiekami liels, lai nosūtītu lielāko pfod ziņojumu. Pārējie 512 baiti ir rezervēti datu nosūtīšanai. Kad vēsturiskie dati ir aizpildījuši 512 baitus, turpmāko datu nosūtīšana tiek atlikta, līdz buferī ir brīva vieta.
- Lai izvairītos no tā, ka diagrammas dati palēnina galvenā displeja atjaunināšanu, diagrammas dati tiek nosūtīti tikai tad, kad tiek parādīts diagrammas ekrāns. Kad lietotājs pārslēdzas atpakaļ uz galveno ekrānu, diagrammas datu nosūtīšana tiek apturēta. Sižeta datu sūtīšana tiek atsākta, kad lietotājs noklikšķina uz diagrammas pogas, lai vēlreiz parādītu diagrammu.
- Vēsturiskie sižeti sākas no 0 (tagad) un iet atpakaļ laikā. Ja kopš pēdējās diagrammas parādīšanas nav veikts jauns mērījums, iepriekš lejupielādētie dati tiek nekavējoties parādīti vēlreiz. Ja ir jauns mērījums, tas tiek pievienots iepriekšējiem diagrammas datiem.
- Kad monitors pirmo reizi tiek ieslēgts, vēsturisko rādījumu nav un 0 masīvos tiek saglabāts kā nederīgs rādījums. Kad tiek parādīts grafiks, nederīgie rādījumi tiek vienkārši izlaisti, kā rezultātā diagramma ir īsāka.
Pēc Celsija un Fārenheita
Skice lp_BLE_TempHumidity_R3.ino parāda un attēlo datus pēc Celsija. Lai pārvērstu rezultātus pēc Fārenheita, nomainiet visus notikumus
parser.print (sensor. Temp_RawToFloat (..
ar
parsers.print (sensor. CtoF (sensor. Temp_RawToFloat (…
Un nomainiet unikoda degC simbolu oktālā / 342 / 204 / 203 ar degF simbolu / 342 / 204 / 211
pfodApp parādīs jebkuru Unicode, ko varat parādīt mobilajā ierīcē.
Plašāku informāciju skatiet rakstā Arduino rakstzīmju izmantošana, kas nav ASCII. Mainiet arī MIN_C, MAX_C iestatījumus termometrā. H. Visbeidzot noregulējiet diagrammas robežas, kā vēlaties, piem. izmaiņas | Temperatūra C ~ 32 ~ 8 ~ deg C |
teikt
| Temperatūra F ~ 90 ~ 14 ~ deg F |
4. solis: barošanas strāvas mērīšana
Izmantojot bibliotēku lp_Si7021, pat mērot temperatūru/mitrumu ik pēc 10 sekundēm, vidējā barošanas strāva veicina tikai ~ 1uA, tāpēc galvenais barošanas strāvas un līdz ar to akumulatora darbības laika faktors ir strāva, ko izmanto BLE reklāma un savienojums un datu pārraide.
Pievienojiet temperatūras/mitruma paneli programmētājam, kas aprakstīts 1. daļā, kā parādīts iepriekš.
Ja saules baterijas un baterijas ir atvienotas, Vin un Gnd ir pievienoti programmētāja Vdd un Gnd (dzeltenie un zaļie vadi), un SWCLK un SWDIO ir savienoti ar programmētāja galvenes plates Clk un SIO (zilie un rozā vadi)
Tagad varat programmēt NanoV2 un izmērīt barošanas strāvu, kā aprakstīts 1. daļā.
Instalējiet mazjaudas Si7021 bibliotēku no šī zip faila, lp_Si7021.zip un instalējiet pfodParser bibliotēku un izpakojiet lp_BLE_TempHumidity_R3.zip savā Arduino skices direktorijā un ieprogrammējiet Temp/Humditiy dēli ar lp_BLE_TempHumidity_R3.ino
Kā minēts iepriekš, sensora ieguldījums ir <1uA, vidēji ar augstāko šajā projektā izmantoto mērījumu ātrumu, tāpēc BLE reklāma un savienojuma parametri ir noteicošais faktors akumulatora darbības laikam.
BLE reklāmas un savienojuma parametri, kas ietekmē pašreizējo patēriņu, ir šādi: -Tx jauda, reklāmas intervāls, maksimālais un minimālais savienojuma intervāls un vergu latentums.
Piezīme. Izmantojot iepriekš minētos savienojumus, barošanas blokā ir divi (2) regulatori, viens NanoV2 panelī, izmantojot Vin, un MAX8881 - programmētāja piegādē. Tas nozīmē, ka otrā regulatora dēļ izmērītās barošanas strāvas būs par ~ 5uA lielākas nekā faktiskās. Zemāk norādītās vērtības ir izmērītās strāvas, atskaitot šo papildu 5uA.
Tx Power
Tx Barošanas efekti piegādā strāvu gan pieslēdzoties, gan reklamējot (nav pievienots). Šis projekts izmanto maksimālās jaudas iestatījumu (+4) un nodrošina vislabāko diapazonu un vislielāko trokšņa necaurlaidību visdrošākajiem savienojumiem. Lai mainītu jaudas iestatījumu, varat izmantot metodi lp_BLESerial setTxPower (). Derīgās vērtības pieaugošā jaudā ir -40, -30, -20, -16, -12, -8, -4, 0 +4. PIRMS setTxPower () izsaukšanas jums jāizsauc metode lp_BLESerial begin (). Skatiet lp_BLE_TempHumidity_R3.ino skici.
Jūs varat eksperimentēt ar Tx jaudas samazināšanu, taču kompromiss ir īsāks diapazons un vairāk savienojumu pārtraukumu traucējumu dēļ. Šajā projektā Tx Power tiek atstāts pēc noklusējuma, +4. Kā redzēsit zemāk, pat ar šo iestatījumu joprojām ir iespējama ļoti zema barošanas strāva.
Reklāmas intervāls
Attiecībā uz noteiktu Tx jaudu, ja nav savienojuma, reklamēšanas intervāls nosaka vidējo pašreizējo patēriņu. Ieteicamais diapazons ir no 500 līdz 1000 mS. Šeit tika izmantots 2000mS. Kompromiss ir tāds, ka garāki reklāmas intervāli nozīmē, ka jūsu mobilā ierīce lēnāk atrod ierīci un izveido savienojumu. Iekšēji reklāmas intervāli ir iestatīti kā 0,625mS daudzkārtņi diapazonā no 20mS līdz 10,24sec. Metode lp_BLESerial setAdvertisingInterval () ērtības labad ņem argumentu mS. +4 TxPower un 2000mS reklāmas intervālam pašreizējais patēriņš bija ~ 18uA. 1000mS reklāmas intervālam tas bija ~ 29uA. 2. revīzijā tika izmantots 2000 mS reklāmas intervāls, bet tas izraisīja lēnus savienojumus. 3. pagrieziens mainīts uz 1000mS reklāmas intervālu, lai ātrāk izveidotu savienojumus.
Maksimālais un minimālais savienojuma intervāls
Kad savienojums ir izveidots, savienojuma intervāls nosaka, cik bieži mobilais tālrunis sazinās ar ierīci. Izmantojot lp_BLESerial setConnectionInterval (), varat iestatīt ieteicamos maks. Un min., Tomēr mobilā ierīce kontrolē, kāds ir savienojuma intervāls. Ērtības labad argumenti setConnectionInterval () ir mS, bet iekšēji savienojuma intervāli ir vairākkārtīgi 1,25 mS diapazonā no 7,5 mS līdz 4 sekundēm.
Noklusējuma iestatījums ir setConnectionInterval (100, 150), t.i., no 100 mS līdz maks. Šo vērtību palielināšana samazina barošanas strāvu, kamēr ir izveidots savienojums, bet kompromiss ir lēnāka datu pārraide. Katrs ekrāna atjauninājums aizņem apmēram 7 BLE ziņojumus, savukārt pilnas 36 stundu 10 minūšu mērījumi aizņem aptuveni 170 BLE ziņas. Tādējādi savienojuma intervālu palielināšana palēnina ekrāna atjaunināšanu un attēlo grafiku.
Lp_BLESerial klasei ir 1536 baitu sūtīšanas buferis, un no šī bufera tiek nosūtīts tikai viens 20 baitu bloks, katrs maksimālais savienojuma intervāls, lai novērstu BLE saites pārpludināšanu ar datiem. Arī nosūtot diagrammas datus, skice sūta datus tikai līdz 512 baiti gaida nosūtīšanu, pēc tam aizkavē papildu datu nosūtīšanu, līdz daži dati ir nosūtīti. Tas ļauj izvairīties no sūtīšanas bufera applūšanas. Šī sūtījumu ierobežošana padara datu pārraidi uz mobilo ierīci uzticamu, taču tā nav optimizēta maksimālai caurlaidei.
Šajā projektā savienojuma intervāli tika atstāti kā noklusējuma vērtības.
Vergu aizkavēšanās
Ja nav datu, ko nosūtīt uz mobilo ierīci, ierīce pēc izvēles var ignorēt dažus savienojuma ziņojumus no mobilā tālruņa. Tas ietaupa Tx strāvu un barošanas strāvu. Vergu latentuma iestatījums ir ignorējamo savienojuma ziņojumu skaits. Noklusējuma vērtība ir 0. Lai mainītu šo iestatījumu, var izmantot metodi lp_BLESerial setSlaveLatency ().
Noklusējuma vergu latentums 0 deva ~ 50uA barošanas strāvu, ignorējot ekrāna atjauninājumus ik pēc 30 sekundēm, bet ieskaitot KeepAlive ziņojumus ļoti 5 sekundes. Iestatot vergu latentumu uz 2, vidējā pievienotā barošanas strāva bija ~ 25uA. Vergu latentuma iestatījums 4 deva ~ 20uA. Šķiet, ka augstāki iestatījumi nesamazina barošanas strāvu, tāpēc tika izmantots vergu latentuma iestatījums 4.
Kad ir izveidots savienojums, ik pēc 30 sekundēm pfodApp pieprasa displeja atjaunināšanu. Tas liek sensoram veikt mērījumus un nosūta atpakaļ datus, lai atjauninātu grafisko displeju. Šis atjauninājums rada papildu ~ 66uA 2 sekundes katrā 30 sekundēs. Tas ir vidēji 4,4uA 30 sekunžu laikā. Pievienojot to 20uA, tiek iegūta vidējā savienojuma barošanas strāva ~ 25uA
5. solis: kopējā barošanas strāva un akumulatora darbības laiks
Izmantojot iepriekš minētos iestatījumus, kas noteikti lp_BLE_TempHumidity_R3.ino, kopējā pieplūdes strāva, kad tiek izveidots savienojums, un atjauninot displeju ik pēc 30 sekundēm, aptuveni 25uA. Ja tas nav pievienots, tas ir aptuveni 29uA.
Lai aprēķinātu akumulatora darbības laiku, tiek pieņemts nepārtraukts strāvas patēriņš ~ 29uA.
Dažādām baterijām ir atšķirīgas jaudas un sprieguma īpašības. Šeit aplūkotās baterijas ir CR2032 monētu elements, CR2450 (N) monētu elements, 2 x AAA sārms, 2 x AAA litijs un LiPo.
Akumulatora kopsavilkums
Ja izmantojat Solar Assist, pievienojiet šiem akumulatora darbības rādītājiem 50% (pieņemot, ka apgaismojums ir 8 stundas dienā)
Piezīme: 22uF LowESR kondensators (C1) papildus iebūvētajam NanoV2 22uF kondensatoram uzglabā saules elementu strāvu un pēc tam piegādā to TX strāvas impulsiem. Citādi akumulators piegādā daļu no TX strāvas. Šis papildu 22uF LowESR pievieno aptuveni 10% akumulatora strāvai, ja saules baterija nav barošanas avots, bet arī pagarina akumulatora darbības laiku, kompensējot pieaugošo akumulatora iekšējo pretestību, kad akumulators beidzas. Tālāk minētie mērījumi tika veikti BEZ papildu 22uF kondensatora.
CR2032 - 235mAHr - akumulatora darbības laiks 10 mēneši augstas pašizlādes dēļ.
CR2032
Šīs monētas šūnas ietilpība parasti ir 235 mAh (Energizer Battery), nominālais spriegums ir 3 V un norādītais izlādes spriegums ir 2 V. Tas nozīmē, ka akumulatora darbības laiks ir 8100 stundas vai ~ 0,9 gadi. Tomēr elementu iekšējā pretestība palielinās, jo akumulatoram beidzas kalpošanas laiks, un tāpēc tas var nespēt nodrošināt maksimālos Tx strāvas impulsus. Lai samazinātu šo efektu, var izmantot lielāku padeves kondensatoru, bet, teiksim, 10 mēnešu kalpošanas laiks.
CR2450 (N)
Šīs monētas šūnas ietilpība parasti ir 620mAHr (540mAHr CR2450N), nominālais spriegums ir 3V un norādītais izlādes spriegums ir 2V. Tas nozīmē, ka akumulatora darbības laiks ir 22, 400 stundas vai ~ 2 gadi 6 m (CR2450N gadījumā - 18 600 stundas - 2 gadi 2 m). Tomēr elementu iekšējā pretestība palielinās, jo akumulatoram beidzas kalpošanas laiks, un tāpēc tas var nespēt nodrošināt maksimālos Tx strāvas impulsus. Lai samazinātu šo efektu, var izmantot lielāku padeves kondensatoru, bet, piemēram, 2 gadi 4 m (2 gadi N).
Piezīme. CR2450N versijai ir biezāka lūpa, kas palīdz novērst nepareizu uzstādīšanu CR2450N turētājā. CR2450N un CR2450 šūnas var ievietot CR2450 turētājā, bet CR2450N turētājā CR2450 šūnas nevar ievietot
2 x AAA sārma šūnas
Šo bateriju jauda ir aptuveni 1250mAHr (Energizer Battery) ļoti zemām strāvām, nominālais spriegums 2x1,5V = 3V un norādītais izlādes spriegums 2x0,8V = 1,6V. Bet šis norādītais izlādes spriegums ir mazāks par Si7021 sensora darba spriegumu (1,9 V), tāpēc akumulatoru var izmantot tikai līdz ~ 1V katram. Tas samazina jaudu par aptuveni 10% līdz 15%, ti, ~ 1000 mAh.
Tas nozīmē, ka akumulatora darbības laiks ir 34, 500 stundas vai ~ 4 gadi. Tomēr elementu iekšējā pretestība palielinās, jo akumulatoram beidzas kalpošanas laiks, un tāpēc tas var nespēt nodrošināt maksimālos Tx strāvas impulsus. Lai samazinātu šo efektu, var izmantot lielāku padeves kondensatoru, bet, teiksim, 3 gadi 10 m. Piezīme Sārma baterijām pašizlāde ir 2% līdz 3% gadā.
2 x AAA litija šūnas
Šo bateriju jauda ir aptuveni 1200mAHr (Energizer Battery), nominālais spriegums ir 2x1,7V = 3,4V, pie zemām strāvām, un izlādējies spriegums 2x1,4V = 2,4V. Tas nozīmē, ka akumulatora darbības laiks ir 41, 400 stundas vai 4 gadi 8 m.
Uzlādējams LiPo akumulators
Šīs baterijas ir dažādās ietilpībās no 100 mAh līdz 2000 mAh, plakanā formātā, un to uzlādētais spriegums ir 4,2 V un izlādēts spriegums> 2,7 V. Tomēr tiem ir augsta pašizlāde 2% -3% mēnesī (t.i., 24% līdz 36% gadā), un tāpēc tie nav tik piemēroti šim lietojumam kā citas baterijas.
6. solis: piegādes alternatīvas - Saules palīgsistēma, tikai akumulators, tikai saules enerģija
Akumulators un saules palīgsistēma
Iepriekš minētā konstrukcija izmanto akumulatoru un saules palīgsistēmu. Kad saules paneļi rada vairāk sprieguma nekā akumulatora spriegums, saules baterijas darbina monitoru, tādējādi pagarinot akumulatora darbības laiku. Parasti akumulatora darbības laiku var pagarināt vēl par 50%.
Izmantotie saules paneļi ir mazi, 50 mm x 30 mm, lēti, ~ 0,50 USD un mazjaudīgi. Tie ir nomināli 5 V paneļi, taču tiem ir nepieciešama pilna tieša spilgta saules gaisma, lai radītu 5 V spriegumu. Šajā projektā divi paneļi ir savienoti sērijveidā tā, ka monitora novietošana pie loga, tiešā saulē, ir pietiekama, lai nomainītu akumulatoru. Pat ar labi apgaismotu telpu vai galda lampu pietiek, lai saules baterijas radītu> 3.3V pie> 33uA un pārņemtu no akumulatora.
Tika izveidots vienkāršs testa panelis, lai noteiktu, kur temperatūras / mitruma monitoru var novietot, atrodoties ārpus saules un joprojām darboties ar saules enerģiju. Kā redzat iepriekš redzamajā fotoattēlā, divi paneļi, kas savienoti ar 100K rezistoru, 100K ražo 5,64 V, t.i., 56uA strāvu pie 5,64 V. Tas ir vairāk nekā pietiekami, lai pārņemtu monitora barošanu no akumulatora. Jebkurš sprieguma rādījums virs nominālā akumulatora sprieguma 3V nozīmē, ka saules baterijas darbinās monitoru, nevis akumulatoru.
Abas diodes temperatūras mitruma monitora ķēdē izolē saules baterijas un baterijas viena no otras un pasargā tās no pretējas polaritātes. 10V 1W Zener un 470R sērijas rezistors aizsargā NanoV2 iebūvēto regulatoru no pārsprieguma, ko rada divas saules baterijas saulē, it īpaši, ja 5 V vietā tiek izmantotas 12 V šūnas. Normālā darbībā pie <5V 10V zener patērē tikai ~ 1uA.
Tikai akumulators
Lai piegādātu tikai akumulatoru, vienkārši izlaidiet R1, D1 un D3 un saules baterijas. D1 var aizstāt arī ar stieples gabalu, ja nevēlaties aizsardzību pret polaritāti.
Tikai Saules
Monitora barošanai tikai no saules baterijām bez akumulatora ir nepieciešama cita barošanas shēma. Problēma ir tā, ka, lai gan monitors darbosies ar 29uA, ieslēdzot, nRF52 patērē ~ 5mA 0,32 sekundes. Iepriekš redzamajā shēmā (pdf versija) MAX8881 regulators ir izslēgts, līdz ieejas kondensatori, 2 x 1000uF, tiek uzlādēti līdz 4,04 V. Tad MAX6457 atbrīvo MAX8881 SHDN ieeju, lai ieslēgtu nRF52 (NanoV2). 2 x 1000uF kondensatori nodrošina nepieciešamo palaišanas strāvu.
Tas ļauj monitoram ieslēgties, tiklīdz ir pietiekami daudz saules enerģijas, lai tas darbotos pie 29uA.
7. solis. Secinājums
Šī apmācība ir parādījusi ar akumulatoru/saules enerģiju darbināmu temperatūras mitruma monitoru kā piemēru ļoti mazjaudas BLE projektam Arduino mikroshēmā nRF52832. Padeves strāvas ~ 29uA, kur tas tiek sasniegts, noregulējot savienojuma parametrus. Rezultātā CR2032 monētu šūnu akumulatora darbības laiks pārsniedza 10 mēnešus. Ilgāk lielākas ietilpības monētu elementiem un baterijām. Pievienojot divas lētas saules baterijas, akumulatora darbības laiks tika pagarināts par 50% vai vairāk. Spilgtai istabas gaismai vai galda lampai pietiek, lai monitoru darbinātu no saules baterijām.
Tika prezentēta īpaša strāvas ķēde, lai monitoru varētu darbināt tikai no mazjaudas saules baterijām.
Bezmaksas pfodDesigner ļauj jums izveidot izvēlnes/apakšizvēlnes, salīdzināt ar datumu/laiku un reģistrēt žurnāla datus un pēc tam ģenerēt jums mazjaudas Arduino skici. Šeit pielāgots interfeiss tika kodēts, izmantojot pfodApp zīmēšanas primitīvus. Savienojuma izveide ar pfodApp parāda lietotāja saskarni un atjaunina rādījumus, kamēr monitors izmanto ~ 29uA
Android programmēšana nav nepieciešama. PfodApp to visu apstrādā.
Ieteicams:
Arduino vatmetrs - spriegums, strāva un enerģijas patēriņš: 3 soļi
Arduino vatmetrs - spriegums, strāva un enerģijas patēriņš: Ierīci var izmantot patērētās jaudas mērīšanai. Šī ķēde var darboties arī kā voltmetrs un ampērmetrs sprieguma un strāvas mērīšanai
Saules enerģijas spēkstacijas attālās enerģijas uzraudzības un sadales sistēma: 10 soļi
Saules elektrostacijas attālās enerģijas uzraudzības un sadales sistēma: Šī projekta mērķis ir uzraudzīt un sadalīt enerģiju energosistēmās (saules enerģijas sistēmās). Šīs sistēmas dizains ir abstrakti izskaidrots šādi. Sistēmā ir vairāki režģi ar aptuveni 2 saules paneļiem
Viegli ļoti zema enerģijas patēriņa BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. redakcija: 7 soļi (ar attēliem)
Viegla, ļoti zema enerģijas patēriņa BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. red.: Atjauninājums: 2019. gada 7. aprīlis - lp_BLE_TempHumidity 3. redakcija, pievieno datuma/laika grafikus, izmantojot pfodApp V3.0.362+, un automātisko droselēšanu, nosūtot datus Atjauninājums: 24. marts 2019. gads - lp_BLE_TempHumidity 2. redakcija, pievieno citas sižeta iespējas un i2c_ClearBus, pievieno GT832E
Vienkāršs WiFi uz BLE (Bluetooth zemas enerģijas) tilts: 9 soļi (ar attēliem)
Vienkāršs WiFi uz BLE (Bluetooth Low Energy) tiltu: atjauninājums 2017. gada 4. decembrī - pārskatītas Feather nRF52 skices un atkļūdošanas padomi. Pievienoti kastē iemontētu tilta attēli. Šis vienkāršais projekts nodrošina WiFi piekļuvi jebkuram Bluetooth Low Energy (BLE) modulim, kas īsteno Nordic UART ar TX Notify. Th
Ļoti vienkārši Tomēr ļoti efektīva palaidnība (datora palaidnība): 3 soļi
Ļoti vienkārša … Tomēr ļoti efektīva palaidnība (datora palaidnība): šī pamācība ir ĻOTI vienkārša, tomēr ĻOTI efektīva! Kas notiks, ir: jūs paslēpjat visas upura darbvirsmas ikonas. Cietušais satrauksies, ieraugot datoru pēc tam, kad būsiet palaidnies. Tas nekādā veidā nevar kaitēt datoram