Orodha ya maudhui:

Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3: 7 Hatua
Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3: 7 Hatua

Video: Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3: 7 Hatua

Video: Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3: 7 Hatua
Video: Lesson 1: What is Arduino? Types of Arduino Boards and SunFounder Kit | SunFounder Robojax 2024, Novemba
Anonim
Nguvu rahisi sana ya chini sana katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3
Nguvu rahisi sana ya chini sana katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3
Nguvu rahisi sana ya chini sana katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3
Nguvu rahisi sana ya chini sana katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3
Nguvu rahisi sana ya chini sana katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3
Nguvu rahisi sana ya chini sana katika Arduino Sehemu ya 2 - Joto / Ufuatiliaji wa Unyevu - Ufu 3

Sasisha: 23 Novemba 2020 - Uingizwaji wa kwanza wa betri 2 x AAA tangu 15 Januari 2019 yaani miezi 22 kwa 2xAAA AlkalineUpdate: 7th Aprili 2019 - Rev 3 ya lp_BLE_TempHumidity, anaongeza viwanja vya Tarehe / Wakati, kwa kutumia pfodApp V3.0.362 +, na kupinduka kiotomatiki unapotuma data

Sasisho: 24th Machi 2019 - Rev 2 ya lp_BLE_TempHumidity, inaongeza chaguzi zaidi za njama na i2c_ClearBus

Hii inaweza kufundishwa, Mfuatiliaji wa unyevu wa joto la chini sana, ni Sehemu ya 2 ya 3.

Sehemu ya 1 - Kuunda vifaa vya Nguvu za Chini sana vilivyotengenezwa kwa urahisi na Arduino inashughulikia kuweka Arduino kuweka nambari za vifaa vya chini vya NRF52, moduli ya programu na kupima usambazaji wa sasa. Pia inashughulikia vipima muda maalum vya nguvu na kulinganisha na pembejeo zilizotengwa na kutumia pfodApp kuungana na kudhibiti kifaa cha nRF52.

Sehemu ya 2 - Mfuatiliaji wa Unyevu wa Joto la Chini sana, hii, inashughulikia kutumia moduli ya Redbear Nano V2 na sensorer ya joto / unyevu wa Si7021 kujenga betri ya nguvu / mfuatiliaji wa jua. Pia inashughulikia kurekebisha maktaba ya Si7021 kuwa nguvu ndogo, ikipanga kifaa cha BLE kupunguza matumizi yake ya sasa ya <25uA na kubuni onyesho la kawaida la joto / unyevu kwa simu yako ya rununu.

Sehemu ya 3 - Badala ya Redbear Nano V2 inashughulikia kutumia moduli zingine za nRF52 badala ya Nano V2. Inashughulikia kuchagua vifaa vya usambazaji, ujenzi, kuondoa kinga ya programu ya nRF52, kwa kutumia pini za NFC kama GPIO ya kawaida, na kufafanua bodi mpya ya nRF52 huko Arduino.

Mafundisho haya ni matumizi ya vitendo ya Sehemu ya 1 Ujenzi wa vifaa vya Nguvu za Chini sana zilizofanywa Rahisi na Arduino kwa kujenga Joto la chini sana la Nguvu na Udhibiti wa Unyevu. Mfuatiliaji atafanya kazi kwa miaka kwenye Kiini cha Sarafu au betri 2 x AAA, hata zaidi na msaada wa jua. Mafunzo haya inashughulikia kurekebisha vigezo vya BLE kwa matumizi ya chini ya nguvu na jinsi ya kukupa kifaa kutoka kwa betri AU betri + jua au jua tu.

Pamoja na kuonyesha hali ya joto na unyevu wa sasa, mfuatiliaji huhifadhi saa za mwisho za 36 za usomaji wa 10min na siku 10 za mwisho za usomaji wa saa. Hizi zinaweza kupangwa kwenye simu yako ya Android na maadili yaliyohifadhiwa kwenye faili ya kumbukumbu. Hakuna Programu ya Android inayohitajika, pfodApp inashughulikia yote hayo. Uonyesho na chati ya Android inadhibitiwa kabisa na mchoro wako wa Arduino ili uweze kuiboresha kama inavyotakiwa.

Bodi ya Redbear Nano V2 hutumiwa kwa sehemu ya NRF52832 BLE na bodi ya kuzuka ya Sparkfun Si7021 hutumiwa kwa Sensor ya Joto / Unyevu. Maktaba ya nguvu ya chini iliyobadilishwa hutumiwa na Si7021. PCB ndogo iliundwa kushikilia NanoV2 na vifaa vya usambazaji. Walakini kwa kuwa hakuna vifaa vilivyowekwa juu ya uso, unaweza tu kujenga hii kwenye bodi ya vero. Toleo tatu za usambazaji wa umeme zinafunikwa. i) Battery pamoja na Solar assist, ii) Battery Only, iii) Solar Tu. Chaguo la jua tu haina uhifadhi wowote wa betri na kwa hivyo itaendesha tu wakati kuna mwanga. Taa ya chumba mkali au taa ya dawati inatosha.

Muhtasari

Mradi huu una sehemu 4 zinazojitegemea: -

  1. Uteuzi wa Sehemu na Ujenzi
  2. Nambari - Maktaba ya Sensorer ya Nguvu ya Chini, Kiolesura cha Mtumiaji na Mchoro wa Arduino
  3. Kupima Ugavi wa Sasa na Maisha ya Batri
  4. Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu

Hatua ya 1: Uteuzi wa Sehemu

Uteuzi wa Sehemu

Kama ilivyotajwa katika Sehemu ya 1 - Ujanja wa kupata suluhisho la nguvu ya chini kabisa ni kutofanya chochote wakati mwingi, punguza sasa kupitia vipingamizi vya nje vya kuvuta / kuvuta kwenye pembejeo na hauna vifaa vya ziada. Mradi huu utatumia kila moja ya hila hizo kupata suluhisho la nguvu ndogo.

Sehemu ya nRF52832

Chip ya nRF52832 inaweza kukimbia na usambazaji wa umeme kati ya 1.7V na 3.6V (voltage ya kiwango cha juu kabisa 3.9V). Hii inamaanisha unaweza kuwezesha chip moja kwa moja kutoka kwa seli ya sarafu au betri 2 x AAA. Walakini ni busara kuongeza mdhibiti wa voltage kulinda chip kutoka kwa volts zaidi. Sehemu hii ya ziada inakuja na gharama ya nguvu, lakini kwa upande wa bodi ya NanoV2 mdhibiti wa bodi, TLV704, hutumia chini ya 5.5uA max, kawaida ni 3.4uA tu. Kwa matumizi haya madogo ya nguvu unapata kinga hadi pembejeo za usambazaji wa 24V.

Sehemu ya Si7021

Sensor ya Si7021 yenyewe huchota kawaida <1uA wakati hauchukui kipimo, kwa mfano katika Kusubiri, na hadi 4mA wakati wa kupitisha data kupitia I2C. Kwa kuwa hatuchukui kipimo kila wakati, 4mA sio sehemu muhimu ya wastani wa usambazaji wa sasa. Kuchukua kusoma sekunde 30 tu kunaongeza chini ya 1uA kwa wastani wa sasa wa usambazaji, angalia vipimo vya sasa vya usambazaji hapa chini.

Kuna bodi mbili za kuzuka kwa urahisi za Si7021. Moja kutoka Adafruit na moja kutoka Sparkfun. Mtazamo wa haraka kwenye bodi hizo mbili utakuambia kuwa bodi ya Adafruit ina vifaa vingi zaidi kuliko bodi ya Sparkfun, kwa hivyo ungekuwa na mwelekeo wa kuchagua bodi ya Sparkfun. Kuangalia hesabu kwa kila bodi inaonyesha kuwa bodi ya Sparkfun ni sensorer tu na resisotor mbili za 4k7 pullup, wakati bodi ya Adafruit ina bodi, MIC5225, mdhibiti ambayo kawaida huchota 29uA kila wakati. Hii ni muhimu wakati zaidi ya sasa yote ya mzunguko ni <30uA. Kwa kuwa tayari tuna mdhibiti wa chip ya nRF52832, sehemu hii ya ziada haihitajiki na Si7021 inaweza kutumiwa kutoka kwa usambazaji huo wa 3.3V. Kwa hivyo mradi huu utatumia bodi ya kuzuka ya Si7021 kutoka Sparkfun.

punguza sasa kupitia vipinga nje vya kuvuta / kuvuta-nje kwenye pembejeo

Vipinga vya pullup vya 4K7 I2C sio thamani kubwa sana na itavuta 0.7mA wakati vunjwa chini. Hili lingekuwa shida ikiwa wanapobadilisha pembejeo ambayo ilikuwa imewekwa kwa muda mrefu. Walakini katika mradi huu sasa kupitia vipingaji hivi hupunguzwa kwa kutumia kiolesura cha I2C mara chache na kwa muda mfupi tu. Wakati mwingi laini za I2C hazitumiki na ziko juu / hali tatu kwa hivyo hakuna mtiririko wa sasa kupitia vipingaji hivi.

Hatua ya 2: Ujenzi

Ujenzi
Ujenzi
Ujenzi
Ujenzi
Ujenzi
Ujenzi

Mradi umejengwa kwenye PCB ndogo, lakini kwa kuwa hakuna vifaa vya SMD, inaweza kujengwa kwa urahisi kwa kutumia bodi ya vero. PCB ilitengenezwa na pcbcart.com kutoka kwa faili hizi za Gerber, TempHumiditySensor_R1.zip PCB ni madhumuni ya jumla ya kutosha kutumika kwa miradi mingine ya BLE.

Mpangilio ni onyesho hapo juu. Hapa kuna toleo la pdf.

Orodha ya Sehemu

Gharama ya takriban kwa kila kitengo mnamo Desemba 2018, ~ US $ 62, bila usafirishaji na programu kutoka Sehemu ya 1

  • Redbear NanoV2 ~ US $ 17
  • Bodi ya kuzuka ya Sparkfun Si7021 ~ US $ 8
  • 2 x 53mm x 30mm 0.15W 5V seli za jua n.k. Overfly ~ US $ 1.10
  • 1 x PCB TempHumiditySensor_R1.zip ~ US $ 25 kwa punguzo 5 www.pcbcart.com AU Vero board (strip shaba) n.k. Jaycar HP9540 ~ AUD $ 5
  • 2 x 1N5819 diode za schottky k.v. Digikey 1N5819FSCT-ND ~ US $ 1
  • 1 x 470R 0.4W 1% ya kupinga k.m. Digikey BC3274CT-ND ~ US $ 0.25
  • 6 x 6 pini vichwa vya kichwa vya kiume k.v. Sparkfun PRT-00116 ~ US $ 1.5
  • jumper ya kike hadi ya kike n.k. Kitambulisho cha Adafruit: 1950 ~ US $ 2
  • Skrufu za nylon 3mm x 12mm, n.k. Jaycar HP0140 ~ AUD $ 3
  • 3mm x 12mm karanga za nailoni, n.k. Jaycar HP0146 ~ AUD $ 3
  • Mkanda wa Kudumu wa Kudumu wa Scotch Paka 4010 k.v. kutoka Amazon ~ US $ 6.6
  • Mmiliki wa betri AAA x 2, n.k. Sparkfun PRT-14219 ~ US $ 1.5
  • 2 x AAA betri za alkali, n.k. Sparkfun PRT-09274 ~ US $ 1.0 Betri hizi zinapaswa kudumu> 2yrs. Betri za alkali za Energizer zina uwezo mkubwa
  • Sanduku la Plastiki (ABS) 83mm x 54mm x 31mm, n.k. Jaycar HB6005 ~ AUD $ 3
  • pfodApp ~ US $ 10
  • 1 x 22uF 63V Capacitor ya chini ya ESR (Hiari) n.k. Jaycar RE-6342 ~ AUD $ 0.5 au Digikey P5190-ND ~ US $ 0.25

Ujenzi ni sawa mbele. Mmiliki wa betri na seli za jua zimehifadhiwa kwenye sanduku la plastiki na mkanda mzito wa pande mbili.

Kumbuka waya wa kiunga cha Gnd kutoka CLK hadi GND katika sehemu iliyomalizika. Hii imewekwa BAADA ya programu kuzuia kelele kwenye pembejeo ya CLK kutokana na kuchochea chip ya nRF52 kuwa hali ya juu ya utatuzi wa sasa

Hatua ya 3: Nambari - Maktaba ya Sensorer ya Nguvu ya chini, Kiolesura cha Mtumiaji na Mchoro wa Arduino

Nambari - Maktaba ya Sensorer ya Nguvu ya Chini, Kiolesura cha Mtumiaji na Mchoro wa Arduino
Nambari - Maktaba ya Sensorer ya Nguvu ya Chini, Kiolesura cha Mtumiaji na Mchoro wa Arduino
Nambari - Maktaba ya Sensorer ya Nguvu ya Chini, Kiolesura cha Mtumiaji na Mchoro wa Arduino
Nambari - Maktaba ya Sensorer ya Nguvu ya Chini, Kiolesura cha Mtumiaji na Mchoro wa Arduino
Nambari - Maktaba ya Sensorer ya Nguvu ya Chini, Kiolesura cha Mtumiaji na Mchoro wa Arduino
Nambari - Maktaba ya Sensorer ya Nguvu ya Chini, Kiolesura cha Mtumiaji na Mchoro wa Arduino

Pakua nambari iliyofungwa, lp_BLE_TempHumidity_R3.zip, na uifungue kwenye saraka yako ya Arduino Sketches. Unahitaji pia kusanikisha maktaba ya lp_So7021 kutoka faili hii ya zip na pia usakinishe maktaba ya pfodParser.

Maktaba ya Sensorer ya Nguvu ya Chini, lp_Si7021

Wote Adafruit na Sparkfun hutoa maktaba za msaada kupata sensa ya Si7021, hata hivyo maktaba hizo zote hazifai kwa matumizi ya chini sana ya umeme. Wote wawili hutumia kuchelewesha (25) katika nambari kuchelewesha kusoma sensa wakati inachukua kipimo chake. Kama ilivyoelezwa katika Sehemu 1 Kuchelewa ni Uovu. Ucheleweshaji wa Arduino () hufanya tu processor ndogo kutumia nguvu wakati inasubiri kucheleweshwa kumaliza muda. Hii inavunja sheria ya kwanza ya nguvu ya chini BLE, usifanye chochote mara nyingi. Maktaba ya lp_Si7021 inayobadilisha, inachukua ucheleweshaji wote na lp_timers ambayo huweka processor ndogo ya kulala wakati ikingojea sensor kumaliza kipimo chake.

Je! Maktaba ya lp_Si7021 hufanya tofauti gani? Kutumia maktaba ya usaidizi ya SparkFun Si7021 ya asili na kuchukua usomaji mmoja kwa sekunde bila printa zozote za Serial, huchota ~ 1.2mA wastani. Kubadilisha maktaba ya Sparkfun na maktaba ya lp_Si7021 inapunguza wastani wa sasa hadi ~ 10uA, i.e. mara 100 chini. Katika mradi huu kiwango cha kipimo cha kasi ni mara moja kila sekunde 30 wakati simu imeunganishwa, ambayo inasababisha wastani wa sensorer ya chini ya 1uA. Wakati hakuna muunganiko wa BLE kiwango cha kipimo ni mara moja kila dakika 10 na wastani wa usambazaji wa sensa ni kidogo.

Muunganisho wa Mtumiaji

Hapo juu ni onyesho kuu la skrini na mwonekano wa kuvinjari wa historia ya siku 10 ya kila saa. Viwanja vinaweza kuvutwa na kupigwa kwa pande zote mbili, kwa kutumia vidole viwili.

Kiolesura cha mtumiaji kimeorodheshwa kwenye mchoro wa Arduino na kisha kupelekwa kwa pfodApp kwenye unganisho la kwanza ambapo imewekwa kwa matumizi ya mara kwa mara na sasisho. Uonyesho wa kielelezo umejengwa kutoka kwa michoro ya kwanza. Angalia Udhibiti wa Custom Arduino wa Android kwa mafunzo kuhusu jinsi ya kujenga vidhibiti vyako mwenyewe. Faili za Thermometer, RHGauge na Button zina amri za kuchora kwa vitu hivyo.

Kumbuka: Hakuna ikiwa onyesho hili limejengwa kwenye pfodApp. Onyesho lote linadhibitiwa kabisa na nambari kwenye mchoro wako wa Arduino

Njia ya sendDrawing_z () katika mchoro wa lp_BLE_TempHumidity_R3.ino inafafanua kiolesura cha mtumiaji.

batili sendDrawing_z () {dwgs. anza (50, 60, dwgs. WHITE); // chaguo-msingi la asili kuwa NYEUPE ikiwa imeachwa, i.e. kuanza (50, 60); mtunzi.tumaRefreshAndVersion (30000); // kuomba tena dwg kila sekunde 30sec. hii inapuuzwa ikiwa hakuna toleo la msanidi lililowekwa // kugusa hapo juu vifungo kulazimisha sasisho za dwgs.touchZone (). cmd ('u'). saizi (50, 39).tuma (); Sukuma Zero (35, 22, 1.5); // songa sifuri hadi katikati ya dwg hadi 35, 22 na upime kwa mara 1.5 rhGauge.draw (); // chora kudhibiti dwgs.popZero (); kusukumaZero (18, 33); // songa sifuri hadi katikati ya dwg hadi 18, kiwango cha 33 ni 1 (chaguo-msingi) kipima joto.draw (); // chora kudhibiti dwgs.popZero ();

kusukumaZero (12.5, 43, 0.7); // songa sifuri hadi katikati ya dwg hadi 12.5, 43 na upeo kwa 0.7

hrs8PlotButton.draw (); // chora kudhibiti dwgs.popZero (); kusukumaZero (37.5, 43, 0.7); // songa sifuri hadi katikati ya dwg hadi 37.5, 43 na upime kwa siku 0.71PlotButton.draw (); // chora kudhibiti dwgs.popZero ();

kusukumaZero (12.5, 54, 0.7); // songa sifuri hadi katikati ya dwg hadi 12.5, 54 na upeo kwa 0.7

siku3PlotButton.draw (); // chora kudhibiti dwgs.popZero (); kusukumaZero (37.5, 54, 0.7); // songa sifuri hadi katikati ya dwg hadi 37.5, 54 na upime kwa siku 0.710PlotButton.draw (); // chora udhibiti dwgs.popZero (); mwisho (); }

Amri za PushZero hubadilisha asili na upeo wa kuchora sehemu inayofuata. Hii hukuruhusu ubadilishe saizi na nafasi ya vifungo na viwango kwa urahisi.

Kwenye unganisho la kwanza onyesho la kwanza huchukua sekunde 5 au 6 hadi chini kupakia baiti ~ 800 ambazo hufafanua onyesho. pfodApp huhifadhi maonyesho kwa hivyo sasisho za siku zijazo zinahitaji tu kutuma mabadiliko, kupima nafasi na usomaji. Sasisho hizi zinachukua sekunde kadhaa kutuma kaiti 128 zinahitaji kusasisha onyesho.

Kuna maeneo matano (5) ya kugusa yanayofafanuliwa kwenye onyesho. Kila kitufe kina moja iliyofafanuliwa katika njia yake ya kuteka (), kwa hivyo unaweza kubofya ili kufungua kiwanja husika, na nusu ya juu ya skrini imewekwa kama eneo la tatu la kugusa

dwg.gusaZone (). cmd ('u'). saizi (50, 39). tuma ();

Unapobofya skrini juu ya vitufe, amri ya 'u' dwg inatumwa kwa mchoro wako kulazimisha kipimo kipya na sasisho la skrini. Kawaida wakati umeunganishwa, sasisho hufanyika tu kila 30sec. Kila bonyeza au kuburudisha kwa nguvu za kuchora kipimo kipya. Jibu kutoka kwa mchoro wa Arduino kwa pfodApp hucheleweshwa hadi kipimo kipya kitakapokamilika (~ 25mS) ili thamani ya hivi karibuni itumwe kwenye sasisho.

Mchoro wa Arduino

Mchoro wa Arduino, lp_BLE_TempHumidity_R3.ino, ni toleo lililoboreshwa la mfano mchoro uliotumiwa katika Sehemu ya 1. Mchoro wa lp_BLE_TempHumidity_R3.ino hubadilisha menyu na kuchora iliyoonyeshwa hapo juu. Pia inaongeza msaada wa sensa ya lp_Si7021 na safu za data kuhifadhi dakika 10 na vipimo vya kihistoria vya kila saa.

Shida kuu katika mchoro wa lp_BLE_TempHumidity_R3.ino ni kushughulikia kutuma data ya njama. Kama vipimo vinafanywa kusomaRHResults () hushughulikia kukusanya matokeo na kuyaokoa kwa safu za kihistoria. Safu ni ndefu 120 lakini wakati data inatumwa alama za kwanza 30 za data ni za wakati mzuri.

Kuna vidokezo vichache vinahitaji kutunzwa wakati wa kutuma alama 200 za njama kuonyesha: -

  1. Kila hatua ya data ni ~ 25 ka kwa muda mrefu, katika muundo wa maandishi ya CSV. Kwa hivyo alama 150 ni data 3750 ka. Darasa la lp_BLESerial lina bafa ya 1536, 1024 ambayo ni kubwa ya kutosha kwa ujumbe mkubwa wa pfod. Baiti zingine 512 zimehifadhiwa kwa kutuma data. Mara tu data ya kihistoria imejaza kaiti 512, kutuma data zaidi kunacheleweshwa hadi kuwe na nafasi kwenye bafa.
  2. Ili kuzuia data ya njama kupunguza kasi ya sasisho kuu za kuonyesha, data ya njama hutumwa tu wakati skrini ya njama inaonyeshwa. Mara tu mtumiaji atarudi kwenye skrini kuu, kutuma data ya njama imesitishwa. Kutuma data ya njama huanza tena wakati mtumiaji anabofya kitufe cha njama ili kuonyesha njama hiyo tena.
  3. Viwanja vya kihistoria huanza kutoka 0 (sasa) na kurudi nyuma kwa wakati. Ikiwa hakukuwa na kipimo kipya tangu njama ya mwisho ilionyeshwa, data ya hapo awali ambayo ilikuwa tayari imepakuliwa inaonyeshwa tena mara moja. Ikiwa kuna kipimo kipya, basi inaongezwa kwenye data ya zamani ya njama.
  4. Wakati mfuatiliaji umewezeshwa kwanza, hakuna usomaji wa kihistoria na 0 huhifadhiwa kwenye safu kama usomaji batili. Wakati njama inavyoonyeshwa, usomaji batili unarukwa tu, na kusababisha njama fupi.

Celsius na Fahrenheit

Mchoro wa lp_BLE_TempHumidity_R3.ino na viwanja vya data katika Celsius. Kubadilisha matokeo kuwa Fahrenheit kuchukua nafasi ya matukio yote ya

alama ya kitambulisho (sensor. Temp_RawToFloat (..

na

printa.print (sensor. CtoF (sensor. Temp_RawToFloat (…

Na ubadilishe alama ya unicode degC mnamo Oktoba / 342 / 204 / 203 na alama ya degF / 342 / 204 / 211

pfodApp itaonyesha Unicode yoyote ambayo simu inaweza kuonyesha.

Tazama Kutumia chars zisizo za ASCII katika Arduino kwa maelezo zaidi. Pia badilisha mipangilio ya MIN_C, MAX_C katika Thermometer.h. Mwishowe rekebisha mipaka ya njama kama unavyotaka k.v. mabadiliko | Temp C ~ 32 ~ 8 ~ deg C |

kusema

| Temp F ~ 90 ~ 14 ~ deg F |

Hatua ya 4: Kupima Sasa Ugavi

Kupima Sasa Ugavi
Kupima Sasa Ugavi

Kutumia maktaba ya lp_Si7021, hata kuchukua kipimo cha joto / unyevu kila sekunde 10 inachangia tu ~ 1uA kwa wastani wa sasa wa usambazaji, kwa hivyo jambo kuu katika usambazaji wa sasa na kwa hivyo maisha ya betri ni sasa inayotumiwa na utangazaji wa BLE na unganisho na usafirishaji wa data.

Unganisha bodi ya Joto / Unyevu kwa Programu iliyofafanuliwa katika Sehemu ya 1 kama inavyoonyeshwa hapo juu.

Seli za jua na betri zikiwa hazijafunguliwa, Vin na Gnd wameunganishwa na programu ya Vdd na Gnd (ya Njano na Kijani inaongoza) na SWCLK na SWDIO zimeunganishwa kwa Clk na SIO ya bodi ya kichwa cha programu (Bluu na Pink inaongoza)

Sasa unaweza kupanga NanoV2 na kupima usambazaji wa sasa kama ilivyoelezewa katika Sehemu ya 1.

Sakinisha maktaba ya nguvu ya chini ya Si7021 kutoka kwa faili hii ya zip, lp_Si7021.zip na usakinishe maktaba ya pfodParser na unzip lp_BLE_TempHumidity_R3.zip kwenye saraka yako ya michoro ya Arduino na upange bodi ya Temp / Humditiy na lp_BLE_TempHumidity_R3.ino

Kama ilivyoelezwa hapo juu mchango wa sensa ni <1uA, wastani, kwa kiwango cha juu cha kipimo kinachotumiwa katika mradi huu, kwa hivyo matangazo ya BLE na vigezo vya unganisho ndio sababu ya kuamua maisha ya betri.

Matangazo ya BLE na vigezo vya unganisho vinavyoathiri matumizi ya sasa ni: -Tx Nguvu, Muda wa Matangazo, Vipindi vya Uunganisho vya Max na Min, na Ucheleweshaji wa Watumwa.

Kumbuka: Kutumia viunganisho hapo juu kuna vidhibiti viwili (2) katika usambazaji, moja kwenye bodi ya NanoV2 kupitia Vin na MAX8881 kwenye usambazaji wa programu. Hii inamaanisha kuwa mikondo ya usambazaji uliopimwa itakuwa ~ 5uA juu kuliko halisi, kwa sababu ya mdhibiti wa pili. Thamani zilizonukuliwa hapa chini ni mikondo iliyopimwa kuondoa hii 5uA ya ziada.

Nguvu ya Tx

Athari za Nguvu za Tx zinawasilisha wakati zinaunganishwa na wakati wa matangazo (hayajaunganishwa). Mradi huu hutumia mipangilio ya nguvu ya juu (+4) na hutoa kinga bora zaidi na kelele kubwa kwa unganisho la kuaminika. Unaweza kutumia njia ya lp_BLESerial setTxPower () kubadilisha mpangilio wa umeme. Thamani halali ni, katika kuongeza nguvu, -40, -30, -20, -16, -12, -8, -4, 0 +4. Lazima upigie njia ya lp_BLESerial Start () KABLA ya kupiga simu setTxPower (). Tazama mchoro wa lp_BLE_TempHumidity_R3.ino.

Unaweza kujaribu kupunguza Nguvu ya Tx, lakini maelewano ni anuwai fupi na unganisho zaidi huanguka kwa sababu ya kuingiliwa. Katika mradi huu Nguvu ya Tx imesalia kwa msingi wake, +4. Kama utakavyoona hapa chini, hata kwa mpangilio huu, usambazaji wa chini sana bado unawezekana.

Muda wa Matangazo

Kwa Nguvu ya Tx iliyopewa, wakati hakuna unganisho, Muda wa Matangazo huweka wastani wa matumizi ya sasa. Masafa yaliyopendekezwa ni 500 hadi 1000mS. Hapa 2000mS ilitumika. Maelewano ni kwamba vipindi virefu vya matangazo inamaanisha ni polepole kwa simu yako kupata kifaa na kuanzisha unganisho. Ndani, vipindi vya matangazo vimewekwa kwa kuzidisha kwa 0.625mS katika kiwango cha 20mS hadi 10.24sec. Njia ya lp_BLESerial setAdvertisingInterval () inachukua mS kama hoja, kwa urahisi. Kwa muda wa matangazo +4 TxPower na 2000mS matumizi ya sasa yalikuwa ~ 18uA. Kwa muda wa matangazo wa 1000mS, ilikuwa ~ 29uA. Rev 2 alitumia muda wa matangazo wa 2000mS lakini hii ilisababisha unganisho polepole. Rev 3 imebadilishwa kuwa muda wa matangazo wa 1000mS ili kufanya unganisho haraka.

Vipindi vya Uunganisho wa Max na Min

Mara tu unganisho likianzishwa, muda wa unganisho huamua ni mara ngapi mawasiliano ya rununu yanapitia kifaa. Lp_BLESerial setConnectionInterval () hukuruhusu kuweka upeo na min iliyopendekezwa, hata hivyo udhibiti wa rununu ni nini muda wa unganisho ni kweli. Kwa urahisi hoja za setConnectionInterval () ziko katika mS, lakini ndani vipindi vya unganisho viko katika 1.25mS nyingi, katika anuwai ya 7.5mS hadi 4sec.

Mpangilio chaguomsingi umewekwaConnectionInterval (100, 150) i.e. min 100mS to max 150mS. Kuongeza maadili haya hupunguza usambazaji wa sasa wakati umeunganishwa, lakini maelewano ni usafirishaji wa data polepole. Kila sasisho la skrini huchukua karibu ujumbe 7 wa BLE, wakati saa kamili za 36 za vipimo 10 zinachukua ujumbe 170 wa BLE. Kwa hivyo kuongeza vipindi vya unganisho kunapunguza kasi sasisho za skrini na maonyesho ya njama.

Darasa la lp_BLESerial lina bafa ya kutuma ya baiti 1536 na hutuma tu kizuizi kimoja cha ka 20 kutoka kwa bafa hii, kila muda wa muunganisho mkubwa kuzuia mafuriko ya kiunga cha BLE na data. Pia wakati wa kutuma data ya njama, mchoro hutuma tu data hadi baiti 512 zinasubiri kutumwa kisha kuchelewesha kutuma data zaidi hadi data zingine zitumwe. Hii inazuia mafuriko kutuma bafa. Kubanwa kwa watumaji hufanya usafirishaji wa data kuwa wa kuaminika wa rununu, lakini haijaboreshwa kwa kiwango cha juu kupitia kuweka.

Katika mradi huu vipindi vya unganisho viliachwa kama maadili chaguomsingi.

Latency ya Mtumwa

Wakati hakuna data ya kutuma kwa rununu, kifaa kinaweza kupuuza ujumbe wa unganisho kutoka kwa rununu. Hii inaokoa Nguvu ya Tx na usambazaji wa sasa. Mpangilio wa Latency ya Mtumwa ni idadi ya ujumbe wa unganisho wa kupuuza. Chaguo-msingi ni 0. Njia ya lp_BLESerial setSlaveLatency () inaweza kutumika kubadilisha mpangilio huu.

Utumwa wa kawaida wa Mtumwa wa 0 ulitoa ~ 50uA usambazaji wa sasa, ukipuuza sasisho za skrini kila sekunde 30, lakini pamoja na ujumbe wa keepAlive sekunde 5. Kuweka Latency ya Mtumwa kwa 2 ilitoa wastani wa usambazaji wa sasa wa ~ 25uA. Mpangilio wa Usitawi wa Watumwa wa 4 ulitoa ~ 20uA. Mipangilio ya juu haikuonekana kupunguza usambazaji wa sasa kwa hivyo mpangilio wa Utumwa wa Watumwa wa 4 ulitumiwa.

Inapounganishwa, kila sekunde 30 pfodApp inaomba sasisho la onyesho. Hii inalazimisha kipimo cha sensorer na inarudisha data kusasisha onyesho la picha. Sasisho hili linasababisha nyongeza ~ 66uA kwa sekunde 2 kila sekunde 30. Hiyo ni wastani wa 4.4uA zaidi ya sekunde 30. Kuongeza hii kwa 20uA, inatoa wastani wa usambazaji wa unganisho wa ~ 25uA

Hatua ya 5: Jumla ya Ugavi wa Sasa na Maisha ya Batri

Kutumia mipangilio hapo juu, kama ilivyowekwa katika lp_BLE_TempHumidity_R3.ino, Jumla ya Ugavi sasa wakati Umeunganishwa na kusasisha onyesho kila sekunde 30, takriban 25uA. Wakati haujaunganishwa, ni takriban 29uA.

Kwa kuhesabu maisha ya betri mchoro wa sasa wa ~ 29uA unadhaniwa.

Betri anuwai zina uwezo tofauti na sifa za voltage. Betri zinazozingatiwa hapa ni seli ya sarafu ya CR2032, seli ya sarafu ya CR2450 (N), 2 x AAA Alkali, 2 x AAA Lithium na LiPo.

Muhtasari wa Betri

Ikiwa unatumia Msaada wa Jua kisha ongeza 50% kwenye takwimu hizi za maisha ya betri (kuchukua 8hr taa ya siku)

Kumbuka: 22uF LowESR capacitor (C1), pamoja na kwenye bodi ya NanoV2 22uF capacitor, huhifadhi sasa ya seli ya jua na kisha kuipatia mapigo ya sasa ya TX. Kwa busara nyingine betri hutoa baadhi ya sasa ya TX. 22ES ya ziada ya 22uF inaongeza juu ya 10% kwa sasa ya betri wakati seli ya jua sio usambazaji, lakini pia huongeza maisha ya betri kwa kulipa fidia kwa kuongezeka kwa upinzani wa ndani wa betri wakati betri inafikia mwisho wa maisha. Vipimo hapa chini vilichukuliwa BILA ziada 22uF capacitor.

CR2032 - 235mAHr - maisha ya betri miezi 10CR2450 (N) - 650mAHr (540mAHr) - maisha ya betri 2.3 yrs (2yrs) 2 x AAA Alkaline - 1250mAHr - maisha ya betri 3.8. yrs2 x AAA Lithium - 1200mAHr - maisha ya betri 4.7 yrsLiPo recharable kwa sababu ya kujiondoa kwa hali ya juu.

CR2032

Kiini hiki cha sarafu kina uwezo wa kawaida 235mAHr (Betri ya Enjini), voltage ya nomino ya 3V na voltage maalum ya kutokwa ya 2V. Hii inamaanisha maisha ya betri ya 8100hrs au ~ 0.9yr. Walakini, upinzani wa seli ya ndani huongezeka wakati betri inafikia mwisho wa maisha na kwa hivyo haiwezi kutoa kilele cha sasa cha Tx. Capacitor kubwa ya usambazaji inaweza kutumika kupunguza athari hii, lakini sema maisha ya miezi 10.

CR2450 (N)

Kiini hiki cha sarafu kina uwezo wa kawaida 620mAHr (540mAHr kwa CR2450N), voltage ya nomino ya 3V na voltage maalum ya kutokwa ya 2V. Hii inamaanisha maisha ya betri ya 22, 400hrs au ~ 2yr 6m (18600hrs ~ 2yrs 2m kwa CR2450N). Walakini, upinzani wa seli ya ndani huongezeka wakati betri inafikia mwisho wa maisha na kwa hivyo haiwezi kutoa kilele cha sasa cha Tx. Capacitor kubwa ya usambazaji inaweza kutumika kupunguza athari hii, lakini sema maisha ya 2yr 4m (2yr N).

Kumbuka: Toleo la CR2450N lina mdomo mzito ambao husaidia kuzuia usanikishaji sahihi katika kishika CR2450N. Unaweza kuingiza kiini cha CR2450N na CR2450 kwenye kishikilia CR2450 lakini huwezi kuingiza seli ya CR2450 kwenye kishikilia CR2450N

2 x AAA Seli za alkali

Betri hizi zina uwezo wa takriban 1250mAHr (Energizer Battery) kwa mikondo ya chini sana, voltage ya jina la 2x1.5V = 3V na voltage maalum ya kutokwa ya 2x0.8V = 1.6V. Lakini voltage maalum ya kutokwa ni chini ya voltage ya utendaji ya sensa ya Si7021 (1.9V) kwa hivyo betri inaweza kutumika tu hadi ~ 1V kila moja. Hii inapunguza uwezo kwa karibu 10% hadi 15% yaani ~ 1000mAHr.

Hii inamaanisha maisha ya betri ya 34, 500hrs au ~ 4yr. Walakini, upinzani wa seli ya ndani huongezeka wakati betri inafikia mwisho wa maisha na kwa hivyo haiwezi kutoa kilele cha sasa cha Tx. Capacitor kubwa ya usambazaji inaweza kutumika kupunguza athari hii, lakini sema maisha ya 3yr 10m. Kumbuka Batri za alkali hujitolea kwa 2% hadi 3% kwa mwaka.

2 x AAA seli za lithiamu

Betri hizi zina uwezo wa karibu 1200mAHr (Energizer Battery), voltage ya kawaida ya 2x1.7V = 3.4V, kwa mikondo ya chini, na voltage iliyotolewa ya 2x1.4V = 2.4V. Hii inamaanisha maisha ya betri ya 41, 400hrs au 4yrs 8m.

Betri inayoweza kubadilishwa ya LiPo

Betri hizi zinakuja kwa uwezo anuwai kutoka 100mAHr hadi 2000mAHr, katika muundo tambarare, na zina voltage ya chaji ya 4.2V na voltage iliyotolewa ya> 2.7V. Walakini wana utoaji wa juu wa 2% -3% / mwezi (i.e. 24% hadi 36% kwa mwaka) na kwa hivyo haifai kwa programu hii kama betri zingine.

Hatua ya 6: Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu

Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu
Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu
Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu
Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu
Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu
Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu
Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu
Njia Mbadala za Ugavi - Msaada wa Jua, Betri Tu, Jua tu

Betri pamoja na Msaada wa Jua

Ujenzi hapo juu hutumia usambazaji wa Battery pamoja na Sola. Wakati paneli za jua zinatoa voltage zaidi kuliko voltage ya betri, seli za jua zitatoa nguvu kwa mfuatiliaji, kwa hivyo kuongeza maisha ya betri. Kwa kawaida maisha ya betri yanaweza kupanuliwa na 50% nyingine.

Paneli za jua zinazotumiwa ni ndogo, 50mm x 30mm, bei rahisi, ~ $ 0.50, na nguvu ndogo. Ni majina ya paneli za 5V, lakini zinahitaji jua kali kamili ili kutoa 5V. Katika mradi huu paneli mbili zimeunganishwa katika safu ili kuweka mfuatiliaji mahali karibu na dirisha, nje ya jua moja kwa moja, inatosha kuchukua nafasi ya nguvu ya betri. Chumba hata chenye taa nzuri, au taa ya dawati, inatosha kwa seli za jua kutoa> 3.3V saa> 33uA na kuchukua kutoka kwa betri.

Jopo rahisi la jaribio lilijengwa ili kubainisha mahali Kiangalizi cha Joto / Unyevu kinaweza kuwekwa, nje ya jua na bado kinatumiwa na jua. Kama unavyoona kutoka kwenye picha hapo juu, paneli mbili zilizounganishwa na kontena la 100K zinazalisha 5.64V kote 100K, i.e. 56uA ya sasa kwa 5.64V. Hii ni zaidi ya kutosha kuchukua nguvu kuwezesha mfuatiliaji kutoka kwa betri. Usomaji wowote wa voltage juu ya voltage ya kawaida ya betri ya 3V inamaanisha seli za jua zitakuwa na nguvu ya kufuatilia badala ya betri.

Diode mbili kwenye mzunguko wa Uchunguzi wa Unyevu wa Joto hutenga seli za jua na betri kutoka kwa kila mmoja na hulinda dhidi ya kuziunganisha kwa polarity ya nyuma. Zener ya 10V 1W na mpingaji wa safu ya 470R inalinda mdhibiti wa NanoV2 kwenye bodi kutoka kwa voltage zaidi kutoka kwa seli mbili za jua kwenye jua kamili, haswa ikiwa seli za 12V zinatumika badala ya 5V. Katika operesheni ya kawaida kwa <5V, zener ya 10V huchota tu ~ 1uA.

Betri Tu

Kwa Ugavi wa Battery pekee, acha tu R1, D1 na D3 na seli za jua. Unaweza pia kuchukua nafasi ya D1 na kipande cha waya ikiwa hutaki kurudisha ulinzi wa polarity.

Jua tu

Kuwezesha mfuatiliaji kutoka kwa Seli za jua tu, bila betri, inahitaji mzunguko tofauti wa usambazaji wa umeme. Shida ni kwamba wakati mfuatiliaji atafanya kazi kwa 29uA, ongeza nguvu nRF52 huchota ~ 5mA kwa sekunde 0.32. Mzunguko ulioonyeshwa hapo juu (toleo la pdf) unazuia mdhibiti wa MAX8881 mpaka vifaa vya kuingiza, 2 x 1000uF, vitoze hadi 4.04V. Halafu MAX6457 inatoa MAX8881 SHDN pembejeo ili kuongeza nguvu nRF52 (NanoV2) 2 x 1000uF capacitors inasambaza muhimu ya kuanza sasa.

Hii inaruhusu mfuatiliaji upate nguvu mara tu kuna nguvu ya kutosha ya jua kuiweka ikifanya kazi kwa 29uA.

Hatua ya 7: Hitimisho

Mafunzo haya yamewasilisha Monitor ya jua / joto inayotumiwa na betri / jua kama mfano mradi wa nguvu ya chini sana wa BLE huko Arduino kwa chip ya nRF52832. Ugavi mikondo ya ~ 29uA ambapo inafanikiwa kwa kuweka vigezo vya unganisho. Hii ilisababisha maisha ya betri ya sarafu ya CR2032 inayozidi miezi 10. Muda mrefu kwa seli za sarafu za juu na betri. Kuongeza seli mbili za bei rahisi za jua kupanua maisha ya betri kwa 50% au zaidi. Taa ya chumba mkali au taa ya dawati inatosha kuwezesha mfuatiliaji kutoka kwa seli za jua.

Mzunguko maalum wa umeme uliwasilishwa kuruhusu mfuatiliaji kuendeshwa kwa urahisi kutoka kwa seli zenye nguvu za jua.

PfodDesigner ya bure inakuwezesha kubuni menyu / menyu ndogo, kupanga njama dhidi ya tarehe / saa na data ya logi na kisha utengeneze mchoro wa nguvu ya Arduino kwako. Hapa kiolesura cha kawaida kilikuwa kikiwa na kificho kwa kutumia pfodApp kuchora vipaumbele. Kuunganisha na pfodApp huonyesha kiolesura cha mtumiaji na kusasisha usomaji wakati mfuatiliaji anatumia ~ 29uA

Hakuna programu ya Android inahitajika. pfodApp hushughulikia yote hayo.

Ilipendekeza: