Mundarija:

Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3: 7 qadam
Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3: 7 qadam

Video: Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3: 7 qadam

Video: Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3: 7 qadam
Video: diy ideas propeller #helicopter #diytoys #shorts 2024, Noyabr
Anonim
Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3
Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3
Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3
Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3
Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3
Arduino -da juda kam quvvatli BLE 2 -qism - Harorat/namlik monitor - Rev 3

Yangilanish: 2020 yil 23 -noyabr - 2019 yil 15 -yanvardan boshlab 2 ta AAA batareyasini birinchi marta almashtirish, ya'ni 2xAAA Alkalin uchun 22 oy, Yangilanish: 2019 yil 7 -aprel - lp_BLE_TempHumidity -ning Rev 3, pfodApp V3.0.362+yordamida Sana/Vaqt uchastkalarini qo'shadi va jo'natishda avtomatik sozlash. ma'lumotlar

Yangilanish: 2019 yil 24 -mart - 2 -rev

Bu ko'rsatma, juda past quvvatli namlik monitor, 3 -qism 2.

1 -qism - Arduino yordamida juda kam quvvatli BLE qurilmalarini yaratish Arduino -ni nRF52 kam quvvatli qurilmalarga kodlash, dasturlash moduli va ta'minot oqimini o'lchashni o'z ichiga oladi. Shuningdek, u nRF52 qurilmasiga ulanish va uni boshqarish uchun kam quvvatli taymerlar va taqqoslagichlarni, o'chirilgan kirishni va pfodAppdan foydalanishni o'z ichiga oladi.

2 -qism - Juda past quvvatli harorat namlik o'lchagichi, bu kam quvvatli batareya / quyosh monitorini yaratish uchun Redbear Nano V2 moduli va Si7021 harorat / namlik sensori yordamida o'z ichiga oladi. Shuningdek, u Si7021 kutubxonasini kam quvvatli qilib o'zgartirish, BLE qurilmasini joriy iste'molini <25uA dan kamaytirish uchun sozlash va mobil uchun maxsus harorat/namlik displeyini loyihalashni o'z ichiga oladi.

3 -qism - Redbear Nano V2 almashtirish Nano V2 o'rniga boshqa nRF52 asosidagi modullardan foydalanishni o'z ichiga oladi. U ta'minot komponentlarini tanlash, qurilish, nRF52 chip dasturlash himoyasini olib tashlash, NFC pinlarini oddiy GPIO sifatida ishlatish va Arduino -da yangi nRF52 kartasini aniqlashni o'z ichiga oladi.

Bu ko'rsatma juda kam quvvatli BLE harorat va namlik monitorini yaratish orqali Arduino yordamida osonlashtiriladigan 1 -qism juda kam quvvatli BLE qurilmalarining amaliy qo'llanmasi. Monitor yillar davomida Coin Cell yoki 2 x AAA batareyalari bilan ishlaydi, hatto quyosh yordami bilan. Ushbu qo'llanma BLE parametrlarini kam quvvat sarfi va qurilmani batareyadan yoki batareyadan + quyoshdan yoki quyoshdan qanday quvvatlantirishni o'z ichiga oladi.

Monitor hozirgi harorat va namlikni aks ettirish bilan bir qatorda, oxirgi 36 soatlik 10 daqiqali o'qishni va oxirgi 10 kunlik soatlik o'qishni saqlaydi. Bular Android mobil qurilmangizda va qiymatlari jurnalga saqlanishi mumkin. Android dasturlash talab qilinmaydi, pfodApp bularning barchasini boshqaradi. Android displeyi va diagrammasi sizning Arduino eskizingiz tomonidan to'liq nazorat qilinadi, shuning uchun uni kerakli tarzda sozlashingiz mumkin.

NRF52832 BLE komponenti uchun Redbear Nano V2 taxtasi, harorat / namlik sensori uchun esa Sparkfun Si7021 taxtasi ishlatiladi. O'zgartirilgan kam quvvatli kutubxona Si7021 bilan ishlatiladi. Kichik PCB NanoV2 ni ushlab turish va komponentlarni etkazib berish uchun mo'ljallangan. Yuzaga o'rnatilgan komponentlar ishlatilmagani uchun, siz uni vero taxtasida osongina qurishingiz mumkin. Quvvat manbalarining uchta versiyasi berilgan. i) Batareya va quyosh energiyasi yordamchisi, ii) Faqat batareya, iii) Faqat quyosh. Solar Faqat variantida batareya zaxirasi yo'q va u faqat yorug'lik bo'lganda ishlaydi. Yorqin xona yoritgichi yoki stol chiroqchasi etarli.

Anahat

Ushbu loyiha 4 ta nisbiy mustaqil qismdan iborat:-

  1. Komponentlarni tanlash va qurish
  2. Kod - kam quvvatli sensorlar kutubxonasi, foydalanuvchi interfeysi va Arduino eskizi
  3. Ta'minot oqimini va batareyaning ishlash muddatini o'lchash
  4. Ta'minotning alternativlari - Quyosh yordamchisi, faqat batareya, faqat quyosh

1 -qadam: Komponentlarni tanlash

Komponentlarni tanlash

1-bo'limda aytib o'tilganidek-juda kam quvvatli echim topishning hiylasi, hech qachon hech narsa qilmaslik, kirishni tashqi tortish-tushirish rezistorlari orqali tokni minimallashtirish va qo'shimcha komponentlar yo'q. Ushbu loyiha har bir hiyla ishlatib, kam quvvatli echimga ega bo'ladi.

NRF52832 komponenti

NRF52832 chipi 1,7 V dan 3,6 V gacha (maksimal maksimal kuchlanish 3,9 V) quvvat bilan ishlashi mumkin. Bu shuni anglatadiki, siz chipni to'g'ridan -to'g'ri tanga yoki 2 x AAA batareyadan quvvatlantirishingiz mumkin. Chipni haddan tashqari kuchlanishdan himoya qilish uchun voltaj regulyatorini qo'shish maqsadga muvofiqdir. Bu qo'shimcha komponent quvvat sarfini o'z ichiga oladi, lekin NanoV2 bortida TLV704 bortli regulyator 5,5uA maxdan kam sarflaydi, odatda atigi 3,4uA. Kichkina qo'shimcha quvvat sarflash uchun siz 24Vgacha bo'lgan kirish manbalaridan himoya olasiz.

Si7021 komponenti

Si7021 sensorining o'zi o'lchovni olmaganda, odatda <1uA, kutish rejimida va I2C orqali ma'lumotlarni uzatishda 4mAgacha tortadi. Biz doimo o'lchov o'tkazmasligimiz sababli, 4mA o'rtacha etkazib berish oqimining muhim qismi emas. O'qishni 30 soniya davomida bajarish, o'rtacha etkazib berish oqimiga 1uA dan kam qo'shadi, quyida keltirilgan besleme oqimi o'lchovlarini ko'ring.

Si7021 ikkita tayyor taxtasi mavjud. Biri Adafruitdan, ikkinchisi Sparkfundan. Ikkita taxtaga bir nazar tashlasangiz, Adafruit taxtasida Sparkfun kartasiga qaraganda ancha ko'p komponentlar borligini aytasiz, shuning uchun siz Sparkfun kartasini tanlashga moyil bo'lasiz. Har bir taxtaning sxemalarini ko'rib chiqish shuni ko'rsatadiki, Sparkfun taxtasi faqat yalang'och sensori va ikkita 4k7 tortish rezistoridir, Adafruit taxtasida esa har doim 29uA chizilgan bortli MIC5225 bor. Qolgan davr uchun umumiy oqim <30uA bo'lsa, bu juda muhim. Bizda allaqachon nRF52832 chipi uchun regulyator mavjud bo'lgani uchun, bu qo'shimcha komponent kerak emas va Si7021 3.3V quvvat manbasidan quvvatlanishi mumkin. Shunday qilib, ushbu loyihada Sparkfun kompaniyasining Si7021 panellari ishlatiladi.

kirishdagi tashqi tortish/tushirish rezistorlari orqali tokni minimallashtirish

4K7 I2C tortishish rezistorlari unchalik katta ahamiyatga ega emas va past tortilganda 0,7mA ga teng bo'ladi. Agar ular uzoq vaqt davomida o'chirilgan kalitni kiritishda bo'lsa, bu muammo bo'lar edi. Ammo, bu loyihada, bu rezistorlar orqali tokni faqat I2C interfeysi kamdan -kam hollarda va qisqa vaqt ichida minimallashtiriladi. Ko'pincha I2C liniyalari ishlatilmayapti va yuqori / uch holatli, shuning uchun bu rezistorlar orqali oqim o'tmaydi.

2 -qadam: qurilish

Qurilish
Qurilish
Qurilish
Qurilish
Qurilish
Qurilish

Loyiha kichik PCB ustida qurilgan, lekin SMD komponentlari bo'lmaganligi uchun uni vero taxtasi yordamida osongina qurish mumkin. PCB bu Gerber fayllaridan pcbcart.com tomonidan ishlab chiqarilgan, TempHumiditySensor_R1.zip PCB boshqa BLE loyihalarida foydalanish uchun umumiy maqsadga ega.

Sxema yuqorida ko'rsatilgan. Mana pdf versiyasi.

Qismlar ro'yxati

2018 yil dekabr holatiga bir birlik uchun taxminiy narx, ~ 62 AQSh dollari, etkazib berish va dasturchi 1 -qismdan tashqari

  • Redbear NanoV2 ~ 17 AQSh dollari
  • Sparkfun Si7021 uzilish taxtasi ~ 8 AQSh dollari
  • 2 x 53 mm x 30 mm 0,15 Vt 5V quyosh batareyalari, masalan. Overfly ~ 1.10 AQSh dollari
  • 1 x PCB TempHumiditySensor_R1.zip ~ 25 AQSh dollari 5 chegirmali www.pcbcart.com YoKI Vero taxtasi (misli tasma) masalan. Jaycar HP9540 ~ 5 AQSh dollari
  • 2 x 1N5819 schottky diodlari, masalan. Digikey 1N5819FSCT-ND ~ 1 AQSh dollari
  • 1 x 470R 0,4 Vt 1% qarshilik, masalan. Digikey BC3274CT-ND ~ 0,25 AQSh dollari
  • 6 x 6 pinli erkak bosh pimlari, masalan. Sparkfun PRT-00116 ~ 1,5 AQSh dollari
  • urg'ochi -ayol jumper Adafruit identifikatori: 1950 ~ 2 AQSh dollari
  • 3 mm x 12 mm neylon vintlardek, masalan. Jaycar HP0140 ~ 3 AQSh dollari
  • 3 mm x 12 mm neylon yong'oqlar, masalan. Jaycar HP0146 ~ 3 AQSh dollari
  • Scotch doimiy o'rnatish tasmasi Cat 4010, masalan. Amazondan ~ 6,6 AQSh dollari
  • AAA x 2 batareya ushlagichi, masalan. Sparkfun PRT-14219 ~ 1,5 AQSh dollari
  • 2 x AAA 750mA gidroksidi batareyalar, masalan. Sparkfun PRT-09274 ~ 1.0 AQSh dollari Bu batareyalar> 2 yil davom etishi kerak. Energizer gidroksidi batareyalari yuqori quvvatga ega
  • Plastik quti (ABS) 83mm x 54mm x 31mm, masalan. Jaycar HB6005 ~ 3 AQSh dollari
  • pfodApp ~ 10 AQSh dollari
  • 1 x 22uF 63V past ESR kondansatörü (ixtiyoriy). Jaycar RE-6342 ~ AUD $ 0.5 yoki Digikey P5190-ND ~ 0.25 AQSh dollari

Qurilish to'g'ridan -to'g'ri. Batareya ushlagichi va quyosh xujayralari plastik qutiga og'ir ikki tomonlama lenta bilan mahkamlangan.

Tayyor qismda CLK dan GND gacha bo'lgan Gnd aloqa simiga e'tibor bering. Bu CLR kirishidagi shovqin nRF52 chipini yuqori oqim disk raskadrovka rejimiga o'tishiga yo'l qo'ymaslik uchun dasturlashdan so'ng o'rnatiladi

3 -qadam: Kod - kam quvvatli sensorlar kutubxonasi, foydalanuvchi interfeysi va Arduino eskizi

Kod - kam quvvatli sensorlar kutubxonasi, foydalanuvchi interfeysi va Arduino eskizi
Kod - kam quvvatli sensorlar kutubxonasi, foydalanuvchi interfeysi va Arduino eskizi
Kod - kam quvvatli sensorlar kutubxonasi, foydalanuvchi interfeysi va Arduino eskizi
Kod - kam quvvatli sensorlar kutubxonasi, foydalanuvchi interfeysi va Arduino eskizi
Kod - kam quvvatli sensorlar kutubxonasi, foydalanuvchi interfeysi va Arduino eskizi
Kod - kam quvvatli sensorlar kutubxonasi, foydalanuvchi interfeysi va Arduino eskizi

Zip kodini yuklab oling, lp_BLE_TempHumidity_R3.zip va Arduino eskizlar katalogiga oching. Bundan tashqari, lp_So7021 kutubxonasini ushbu zip faylidan va pfodParser kutubxonasini o'rnatishingiz kerak.

Kam quvvat sensori kutubxonasi, lp_Si7021

Adafruit ham, Sparkfun ham Si7021 sensoriga kirishni qo'llab -quvvatlaydigan kutubxonalarni ta'minlaydi, lekin bu kutubxonalar ham juda kam quvvat ishlatish uchun yaroqsiz. Ikkalasi ham sensorni o'lchash paytida o'qishni kechiktirish uchun koddagi kechiktirishni (25) ishlatadi. Birinchi bo'limda ta'kidlanganidek, kechikishlar yomon. Arduino delay () kechikish tugashini kutib turganda, mikroprotsessor quvvat bilan ishlaydi. Bu kam quvvatli BLE birinchi qoidasini buzadi, ko'pincha hech narsa qilmang. O'zgartirish lp_Si7021 kutubxonasi barcha kechikishlarni lp_timers bilan almashtiradi, bu esa mikroprosessorni uyqu holatiga keltiradi, shu bilan birga sensori o'lchashini kutadi.

Lp_Si7021 kutubxonasi qanchalik farq qiladi? Asl SparkFun Si7021 qo'llab -quvvatlash kutubxonasidan foydalanish va ketma -ket chop etilmasdan bir soniya o'qish, o'rtacha ~ 1,2mA ni tashkil qiladi. Sparkfun kutubxonasini lp_Si7021 kutubxonasi bilan almashtirish o'rtacha oqimni ~ 10uA ga kamaytiradi, ya'ni 100 barobar kamroq. Ushbu loyihada, har 30 soniyada bir marta, mobil ulanganda, eng tez o'lchash tezligi o'rtacha sensori oqimi 1uA dan past bo'ladi. BLE aloqasi bo'lmaganida, o'lchash tezligi har 10 daqiqada bir marta bo'ladi va sensorning o'rtacha oqimi ahamiyatsiz bo'ladi.

Foydalanuvchi interfeysi

Yuqorida asosiy ekran tasviri va 10 kunlik soatlik tarixning kattalashtirilgan ko'rinishi. Uchastkalarni ikki barmoq yordamida ikki tomonga yaqinlashtirish va panerlash mumkin.

Foydalanuvchi interfeysi Arduino eskizida kodlangan va keyin pfodApp -ga birinchi ulanishda yuboriladi, u erda takroriy foydalanish va yangilanishlar uchun keshlanadi. Grafik displey chizilgan ibtidoiylardan yaratilgan. O'z boshqaruv elementlarini yaratish bo'yicha qo'llanma uchun Android uchun Custom Arduino Controls -ga qarang. Termometr, RHGauge va Button fayllari ushbu elementlar uchun chizish buyruqlarini o'z ichiga oladi.

Eslatma: agar bu displey pfodApp -ga o'rnatilgan bo'lsa, yo'q. Butun displey Arduino eskizidagi kod bilan to'liq nazorat qilinadi

Lp_BLE_TempHumidity_R3.ino eskizidagi sendDrawing_z () usuli foydalanuvchi interfeysini belgilaydi.

void sendDrawing_z () {dwgs.start (50, 60, dwgs. WHITE); // fon oq rangga qo'yilgan bo'lsa, ya'ni oq (boshlang'ich (50, 60)); parser.sendRefreshAndVersion (30000); // har 30 soniyada dwg-ni qayta so'rash. dwgs.touchZone (). cmd ('u'). hajmi (50, 39).send (); dwgs.pushZero (35, 22, 1.5); // nolni dwg markaziga 35, 22 ga siljiting va rhGauge.draw () ga 1,5 baravar kattalashtiring; // dwgs.popZero () boshqaruvini chizish; dwgs.pushZero (18, 33); // nolni dwg markaziga 18 ga siljiting, 33 shkalasi 1 (standart) termometr.draw (); // dwgs.popZero () boshqaruvini chizish;

dwgs.pushZero (12.5, 43, 0.7); // nolni dwg markaziga 12,5, 43 ga va 0,7 ga o'lchang

hrs8PlotButton.draw (); // dwgs.popZero () boshqaruvini chizish; dwgs.pushZero (37.5, 43, 0.7); // nolni dwg markaziga 37,5, 43 ga ko'chiring va 0,7 kunga o'lchang1PlotButton.draw (); // dwgs.popZero () boshqaruvini chizish;

dwgs.pushZero (12.5, 54, 0.7); // nolni dwg markaziga 12,5, 54 ga va 0,7 ga o'lchang

days3PlotButton.draw (); // dwgs.popZero () boshqaruvini chizish; dwgs.pushZero (37.5, 54, 0.7); // nolni dwg markaziga 37,5, 54 ga va 0,7 kunga o'lchash10PlotButton.draw (); // dwgs.popZero () boshqaruvini chizish; dwgs.end (); }

PushZero buyruqlari keyingi komponentni chizish uchun kelib chiqishi va masshtabini o'zgartiradi. Bu sizga tugmalar va o'lchagichlarning o'lchamini va o'rnini osongina o'zgartirish imkonini beradi.

Birinchi ulanishda, displeyni belgilaydigan ~ 800 baytni yuklash uchun dastlabki displey 5 yoki 6 soniyani oladi. pfodApp displeyni keshlaydi, shuning uchun kelajakdagi yangilanishlar faqat o'zgarishlarni, o'lchov pozitsiyalarini va o'qishni yuborishi kerak. Bu yangilanishlar displeyni yangilash uchun 128 baytni yuborish uchun atigi bir necha soniya kerak bo'ladi.

Displeyda 5 ta faol sensorli zonalar aniqlangan. Har bir tugmachada draw () usulida bitta bittasi aniqlangan, shuning uchun siz uni bosish orqali tegishli uchastkani ochishingiz mumkin va ekranning yuqori yarmi uchinchi tegish zonasi sifatida sozlangan.

dwgs.touchZone (). cmd ('u'). hajmi (50, 39).send ();

Tugmalar ustidagi ekranni bosganingizda, "u 'dwg" buyrug'i sketchingizga yangi o'lchov va ekranni yangilash uchun yuboriladi. Odatda ulanganda, yangilanishlar har 30 soniyada sodir bo'ladi. Chizilgan rasmning har bir bosilishi yoki yangilanishi yangi o'lchovni majbur qiladi. Arduino eskizidan pfodApp -ga javob yangi o'lchov tugaguniga qadar kechiktiriladi (~ 25mS), shuning uchun yangilashda oxirgi qiymat yuborilishi mumkin.

Arduino eskiz

Arduino eskiz, lp_BLE_TempHumidity_R3.ino, 1 -qismda ishlatiladigan namunali eskizning takomillashtirilgan versiyasidir. Shuningdek, u lp_Si7021 sensorli qo'llab -quvvatlashi va 10 minutlik va soatlik tarixiy o'lchovlarni saqlash uchun ma'lumotlar majmuasini qo'shadi.

Lp_BLE_TempHumidity_R3.ino eskizidagi asosiy murakkablik - bu syujet ma'lumotlarini yuborish. O'lchovlar bajarilganda readRHResults () natijalarni yig'ish va ularni tarixiy massivlarga saqlash bilan shug'ullanadi. Massivlar 120 uzunlikda, lekin ma'lumotlar yuborilganda dastlabki 30 ta ma'lumotlar punktlari aniqroq vaqt oralig'ida bo'ladi.

Ko'rsatish uchun 200 ta g'alati uchastkalarni yuborishda bir nechta nuanslarga e'tibor berish kerak:-

  1. Har bir ma'lumot nuqtasi ~ 25 bayt uzunlikda, CSV matn formatida. Shunday qilib, 150 ball - 3750 bayt ma'lumot. Lp_BLESerial sinfida 1536 baytli bufer mavjud, uning 1024 tasi eng katta pfod xabari uchun etarlicha katta. Boshqa 512 bayt ma'lumotlarni yuborish uchun ajratilgan. Tarixiy ma'lumotlar 512 baytni to'ldirgandan so'ng, buferda bo'sh joy bo'lmaguncha boshqa ma'lumotlarni yuborish kechiktiriladi.
  2. Asosiy displey yangilanishlarini sekinlashtirmaslik uchun, syujet ma'lumotlari faqat syujet ekrani ko'rsatilganda yuboriladi. Foydalanuvchi asosiy ekranga qaytgandan so'ng, syujet ma'lumotlarini yuborish to'xtatiladi. Foydalanuvchi syujet tugmachasini bosganida syujet ma'lumotlarini yuborish qayta tiklanadi.
  3. Tarixiy syujetlar 0 (hozir) dan boshlanadi va vaqt orqaga ketadi. Agar oxirgi uchastka ko'rsatilgandan buyon hech qanday yangi o'lchov bo'lmasa, yuklangan oldingi ma'lumotlar darhol yana ko'rsatiladi. Agar yangi o'lchov bo'lsa, u avvalgi uchastka ma'lumotlariga qo'shiladi.
  4. Monitor birinchi marta yoqilganda, tarixiy o'qishlar bo'lmaydi va 0 noto'g'ri o'qish sifatida massivlarda saqlanadi. Chizma ko'rsatilganda, noto'g'ri o'qishlar o'tkazib yuboriladi, natijada syujet qisqaradi.

Selsiy va Farengeyt

Lp_BLE_TempHumidity_R3.ino eskizida ma'lumotlar Selsiy bo'yicha ko'rsatiladi va chiziladi. Natijalarni Farengeytga aylantirish uchun barcha hodisalarni almashtiring

parser.print (sensor. Temp_RawToFloat (..

bilan

parser.print (sensor. CtoF (sensor. Temp_RawToFloat (…)

Sakkizlik / 342 / 204 / 203 unCode degC belgisini degF belgisi / 342 / 204 / 211 bilan almashtiring.

pfodApp siz ko'rsatadigan har qanday Unicode kodini ko'rsatadi.

Qo'shimcha ma'lumot olish uchun Arduino-dagi ASCII bo'lmagan belgilarni ishlatishga qarang. Thermometer.h da MIN_C, MAX_C sozlamalarini o'zgartiring. Nihoyat, uchastka chegaralarini xohlaganingizcha o'zgartiring, masalan. o'zgartirish | Harorat C ~ 32 ~ 8 ~ daraja C |

Aytmoq

| Harorat F ~ 90 ~ 14 ~ F F |

4 -qadam: Besleme oqimini o'lchash

Ta'minot oqimini o'lchash
Ta'minot oqimini o'lchash

Lp_Si7021 kutubxonasidan foydalanib, har 10 soniyada haroratni/namlikni o'lchash faqat o'rtacha etkazib berish oqimiga ~ 1uA ni qo'shadi, shuning uchun ta'minot oqimining asosiy omili va shuning uchun batareyaning ishlash muddati BLE reklama va ulanish va ma'lumotlarni uzatish oqimidir..

Harorat/namlik kartasini yuqorida ko'rsatilgan 1 -bo'limda tasvirlangan dasturchiga ulang.

Quyosh batareyalari va batareyalari uzilmagan holda, Vin va Gnd dasturchilarning Vdd va Gnd (Sariq va Yashil), SWCLK va SWDIO esa dasturchi panelining Clk va SIO (Moviy va Pushti simlari) ga ulangan.

Endi siz NanoV2 -ni dasturlashingiz va 1 -bo'limda tasvirlangan besleme oqimini o'lchashingiz mumkin.

Kam quvvatli Si7021 kutubxonasini lp_Si7021.zip zip faylidan o'rnating va pfodParser kutubxonasini o'rnating va lp_BLE_TempHumidity_R3.zip -ni Arduino eskizlar katalogiga oching va Temp/Humditiy kartasini lp_BLE_TempHumidity_R3.ino bilan dasturlang.

Yuqorida aytib o'tilganidek, sensorning hissasi <1uA, o'rtacha, ushbu loyihada ishlatiladigan eng yuqori o'lchov tezligida, shuning uchun BLE reklama va ulanish parametrlari batareyaning ishlash muddatini belgilovchi omil hisoblanadi.

Hozirgi iste'molga ta'sir ko'rsatadigan BLE reklama va ulanish parametrlari: -Tx Power, reklama oralig'i, ulanishning maksimal va minimal intervallari va qulning kechikishi.

Eslatma: Yuqoridagi ulanishlar yordamida ikkita (2) regulyator mavjud, ulardan biri Vin orqali NanoV2 kartasida va dasturchi ta'minotidagi MAX8881. Bu shuni anglatadiki, ikkinchi regulyator tufayli o'lchangan besleme oqimlari haqiqiydan ~ 5uA yuqori bo'ladi. Quyida keltirilgan qiymatlar bu qo'shimcha 5uA dan tashqari o'lchangan oqimlardir.

Tx quvvati

Tx Quvvat effektlari tokni ham ulanganda, ham reklama (ulanmagan) bilan ta'minlaydi. Bu loyiha maksimal quvvat parametrini (+4) ishlatadi va eng ishonchli ulanishlar uchun eng yaxshi diapazon va eng katta shovqin immunitetini ta'minlaydi. Quvvat parametrini o'zgartirish uchun lp_BLESerial setTxPower () usulidan foydalanishingiz mumkin. Amaliy qiymatlar -ortib borayotgan kuchda -40, -30, -20, -16, -12, -8, -4, 0 +4. SetTxPower () ni chaqirishdan oldin lp_BLESerial begin () usulini chaqirish kerak. Lp_BLE_TempHumidity_R3.ino eskiziga qarang.

Siz Tx quvvatini kamaytirish bilan tajriba o'tkazishingiz mumkin, lekin murosaga erishish imkoniyati qisqaroq va shovqin tufayli ulanish uzilib qoladi. Ushbu loyihada Tx Power standart holatda +4 bo'lib qoladi. Siz quyida ko'rib turganingizdek, hatto bu parametr bilan ham, juda past besleme oqimi mumkin.

Reklama oralig'i

Berilgan Tx Power uchun, ulanish bo'lmaganida, reklama oralig'i joriy oqimning o'rtacha sarfini belgilaydi. Tavsiya etilgan diapazon 500 dan 1000 mS gacha. Bu erda 2000 mS ishlatilgan. Kompromis shundaki, reklama vaqtining uzaytirilishi sizning mobil qurilmangizga qurilmani topishi va ulanishni sekinlashtirishi demakdir. Ichkarida, reklama intervallari 0,625 mS ga 20 mS dan 10,24 sekundgacha ko'paytiriladi. Lp_BLESerial setAdvertisingInterval () usuli qulaylik uchun MS ni argument sifatida qabul qiladi. +4 TxPower va 2000mS reklama oralig'i uchun joriy iste'mol ~ 18uA edi. 1000mS reklama oralig'ida ~ 29uA edi. Rev 2 2000mS reklama oralig'idan foydalangan, lekin bu sekin aloqalarga olib keldi. Aloqa tezroq bo'lishi uchun Rev 3 1000mS reklama oralig'iga o'zgartirildi.

Maksimal va minimal ulanish intervallari

Ulanish o'rnatilgandan so'ng, ulanish oralig'i mobil qurilmaning qanchalik tez -tez aloqa qilishini aniqlaydi. Lp_BLESerial setConnectionInterval () sizga taklif qilingan maksimal va minni belgilash imkonini beradi, lekin mobil aloqa ulanish oralig'ini aniqlaydi. Qulaylik uchun setConnectionInterval () argumentlari mS -da, lekin ichki ulanish oralig'i 7,5 mS dan 4 sekundgacha 1,25 mS ga ko'p.

Standart sozlash setConnectionInterval (100, 150), ya'ni min 100mS dan maksimal 150mS gacha. Bu qiymatlarning oshishi ulanish vaqtida etkazib berish oqimini pasaytiradi, lekin murosa ma'lumotlarning sekinroq uzatilishidir. Ekranning har bir yangilanishi taxminan 7 ta BLE xabarini oladi, 36 soatlik 10 minutlik o'lchovlar taxminan 170 BLE xabarini oladi. Shunday qilib, ulanish oralig'ini oshirish ekran yangilanishlarini sekinlashtiradi va syujet ko'rsatiladi.

Lp_BLESerial sinfida 1536 baytli yuborish buferi mavjud va BLE havolasini ma'lumotlar bilan to'lib ketishining oldini olish uchun har bir maksimal ulanish oralig'i buferdan 20 baytli bitta blokni yuboradi. Shuningdek, syujet ma'lumotlarini jo'natishda eskiz faqat 512 bayt yuborilishini kutguncha ma'lumotlarni yuboradi, keyin ba'zi ma'lumotlar yuborilmaguncha ko'proq ma'lumotlarni yuborishni kechiktiradi. Bu suv buferini yuborishdan saqlaydi. Yuborishni qisqartirish ma'lumotni mobil telefonga ishonchli uzatishga imkon beradi, lekin u maksimal darajada qo'yish orqali optimallashtirilmagan.

Ushbu loyihada ulanish intervallari standart qiymat sifatida qoldirilgan.

Qullarning kechikishi

Mobil telefonga yuboriladigan ma'lumotlar yo'q bo'lganda, qurilma ixtiyoriy ravishda mobil aloqa xabarlarini e'tiborsiz qoldirishi mumkin. Bu Tx quvvatini va ta'minot oqimini tejaydi. Qulning kechikishi sozlamasi - bu e'tiborga olinmaydigan ulanish xabarlari soni. Standart - bu 0. lp_BLESerial setSlaveLatency () usuli bu sozlamani o'zgartirish uchun ishlatilishi mumkin.

Odatiy Slave Latency 0, har 30 sekundda ekran yangilanishlariga e'tibor bermay, ~ 50uA etkazib berish oqimini berdi, lekin 5 soniya ichida keepAlive xabarlarini o'z ichiga oladi. Qulning kechikish vaqtini 2 ga o'rnatish, o'rtacha ulangan besleme ~ 25uA oqimini berdi. Qullik kechikishining 4 sozlamasi ~ 20uA berdi. Yuqori sozlamalar etkazib berish oqimini kamaytirmaganga o'xshaydi, shuning uchun qullik kechikishining 4 sozlamasi ishlatilgan.

Ulanganda, har 30 soniyada pfodApp displeyni yangilashni so'raydi. Bu sensorni o'lchashga majbur qiladi va grafik displeyni yangilash uchun ma'lumotlarni qaytarib yuboradi. Ushbu yangilanish har 30 soniyada 2 soniya uchun qo'shimcha ~ 66uA ga olib keladi. Bu 30 sekundda o'rtacha 4,4uA. Buni 20uA ga qo'shsangiz, ~ 25uA bo'lgan o'rtacha ulanish oqimini beradi

5 -qadam: Umumiy ta'minot oqimi va batareyaning ishlash muddati

Yuqoridagi sozlamalardan foydalanib, lp_BLE_TempHumidity_R3.ino da o'rnatilgandek, Ulangan paytdagi umumiy ta'minot oqimi va displeyni har 30 soniyada, taxminan 25uA. Ulanmaganida, u taxminan 29uA ni tashkil qiladi.

Batareyaning ishlash muddatini hisoblash uchun ~ 29uA doimiy oqim chizig'i qabul qilinadi.

Turli xil batareyalar quvvati va kuchlanish xususiyatlariga ega. Bu erda ko'rib chiqiladigan batareyalar CR2032 tanga xujayrasi, CR2450 (N) tanga xujayrasi, 2 x AAA ishqoriy, 2 x AAA lityum va LiPo.

Batareya haqida qisqacha ma'lumot

Agar Solar Assist -dan foydalansangiz, batareyaning ishlash muddatiga 50% qo'shing (kuniga 8 soat yorug'lik bo'lsa)

Eslatma: 22uF LowESR kondansatörü (C1), bortdagi NanoV2 22uF kondansatörüne qo'shimcha ravishda, Quyosh xujayrasi tokini saqlaydi va keyin uni TX tok impulslari uchun etkazib beradi. Boshqa tomondan, batareya TX oqimining bir qismini beradi. Bu qo'shimcha 22uF LowESR, quyosh batareyasi etkazib berilmaganda, batareya oqimining taxminan 10% ni qo'shib qo'yadi, lekin batareyaning ishlash muddati tugashi bilan batareyaning ichki qarshiligini ko'tarib, batareyaning ishlash muddatini uzaytiradi. Quyidagi o'lchovlar qo'shimcha 22uF kondansatörü holda olingan.

CR2032 - 235mAHr - batareyaning ishlash muddati 10 oyCR2450 (N) - 650mAHr (540mAHr) - batareyaning ishlash muddati 2,3 yil (2 yil) 2 x AAA ishqoriy - 1250mAch - batareyaning ishlash muddati 3,8 yil 2 x AAA Lityum - 1200mAHr - batareyaning ishlash muddati - 4,7 yilga tavsiya etilmaydi yuqori darajada o'z-o'zidan tushishi tufayli.

CR2032

Bu tanga xujayrasi odatda 235 mA / soat (Energizer Batareyasi) sig'imiga ega, nominal kuchlanish 3 V va belgilangan kuchlanish 2 V. Bu 8100 soat yoki ~ 0.9 yil batareyaning ishlash muddatini bildiradi. Ammo batareyaning ishlash muddati tugashi bilan ichki hujayra qarshiligi oshadi va shuning uchun u Tx tokining eng yuqori pulslarini ta'minlay olmaydi. Bu ta'sirni kamaytirish uchun kattaroq ta'minot kondensatoridan foydalanish mumkin, lekin 10 oylik xizmat muddati.

CR2450 (N)

Bu tanga xujayrasi odatda 620 mA / soat (CR2450N uchun 540 mA / soat) sig'imga ega, nominal kuchlanish 3 V va belgilangan kuchlanish 2 V. Bu 22, 400 soat yoki ~ 2 yil 6 m (CR2450N uchun 18600 soat ~ 2 yil 2 m) batareyaning ishlash muddatini bildiradi. Ammo batareyaning ishlash muddati tugashi bilan ichki hujayra qarshiligi oshadi va shuning uchun u Tx tokining eng yuqori pulslarini ta'minlay olmaydi. Bu ta'sirni kamaytirish uchun kattaroq ta'minot kondansatkichidan foydalanish mumkin, lekin aytaylik, 2 yil 4m (2yr N) muddati.

Eslatma: CR2450N versiyasida qalinroq lab bor, bu esa CR2450N ushlagichiga noto'g'ri o'rnatishni oldini oladi. Siz CR2450N va CR2450 katakchalarini CR2450 ushlagichiga kiritishingiz mumkin, lekin CR2450N ushlagichiga CR2450 katakchasini kirita olmaysiz

2 x AAA ishqoriy hujayralari

Bu batareyalar juda past oqimlar uchun 1250mAhr (Energizer Batareya) sig'imga ega, nominal kuchlanish 2x1.5V = 3V va 2x0.8V = 1.6V belgilangan zo'riqish kuchiga ega. Ammo bu tushirish quvvati Si7021 sensorining ish kuchlanishidan past (1,9V), shuning uchun batareyani har birida ~ 1V gacha ishlatish mumkin. Bu sig'imni taxminan 10% dan 15% gacha kamaytiradi, ya'ni ~ 1000mAHr.

Bu 34, 500 soat yoki ~ 4 yil batareyaning ishlash muddatini bildiradi. Ammo batareyaning ishlash muddati tugashi bilan ichki hujayra qarshiligi oshadi va shuning uchun u Tx tokining eng yuqori pulslarini ta'minlay olmaydi. Bu ta'sirni kamaytirish uchun kattaroq ta'minot kondansatkichidan foydalanish mumkin, lekin aytaylik, 3 yil 10 m. E'tibor bering, gidroksidi batareyalar o'z -o'zidan tushadi yiliga 2% dan 3% gacha.

2 x AAA lityum hujayralari

Bu batareyalarning quvvati taxminan 1200 mA / soat (Energizer batareyasi), nominal kuchlanish 2x1.7V = 3.4V, past toklarda va zaryadsizlangan kuchlanish 2x1.4V = 2.4V. Bu shuni anglatadiki, batareyaning ishlash muddati 41, 400 soat yoki 4 yil 8 m.

LiPo zaryadlanuvchi batareyasi

Bu batareyalar 100 mAHr dan 2000mAhr gacha bo'lgan turli xil sig'imlarda, tekis formatda, zaryadlangan zo'riqish 4,2V va tushgan kuchlanish> 2,7V. Ammo ular o'z-o'zidan zaryadsizlanish darajasiga ega, har oyda 2-3% (ya'ni yiliga 24% dan 36% gacha), shuning uchun ular boshqa batareyalar kabi mos kelmaydi.

6 -qadam: Muqobil variantlar - Quyosh yordami, faqat batareya, faqat quyosh

Ta'minotning alternativlari - Quyosh yordamchisi, faqat batareya, faqat quyosh
Ta'minotning alternativlari - Quyosh yordamchisi, faqat batareya, faqat quyosh
Ta'minotning alternativlari - Quyosh yordamchisi, faqat batareya, faqat quyosh
Ta'minotning alternativlari - Quyosh yordamchisi, faqat batareya, faqat quyosh
Ta'minotning alternativlari - Quyosh yordamchisi, faqat batareya, faqat quyosh
Ta'minotning alternativlari - Quyosh yordamchisi, faqat batareya, faqat quyosh
Ta'minotning alternativlari - Quyosh yordamchisi, faqat batareya, faqat quyosh
Ta'minotning alternativlari - Quyosh yordamchisi, faqat batareya, faqat quyosh

Batareya va quyosh yordamchisi

Yuqoridagi qurilishda Batareya va Quyosh yordami ta'minoti ishlatiladi. Agar quyosh panellari batareya zo'riqishidan ko'ra ko'proq kuchlanish hosil qilsa, quyosh batareyalari monitorni quvvat bilan ta'minlaydi, shuning uchun batareyaning ishlash muddati uzayadi. Odatda batareyaning ishlash muddati yana 50%ga uzaytirilishi mumkin.

Qo'llaniladigan quyosh panellari kichik, 50 mm x 30 mm, arzon, ~ 0,50 dollar va quvvati past. Ular nominal 5V panellar, lekin 5V ishlab chiqarish uchun to'g'ridan -to'g'ri yorqin quyosh nuri kerak. Ushbu loyihada ikkita panel ketma -ket ulangan, shuning uchun monitorni to'g'ridan -to'g'ri quyosh nuri tushmaydigan joyda, batareya quvvatini almashtirish uchun etarli bo'ladi. Hatto yaxshi yoritilgan xona yoki stol chiroqchasi ham quyosh batareyalari> 33uA da> 3,3 V ni ishlab chiqarishi va batareyadan olinishi uchun etarli.

Oddiy sinov paneli harorat / namlik monitorini quyoshdan himoyalangan va quyosh energiyali bo'lishi mumkin bo'lgan joyni aniqlash uchun qurilgan. Yuqoridagi rasmdan ko'rinib turibdiki, 100K qarshiligiga ulangan ikkita panel 100K bo'ylab 5.64V, ya'ni 5.64Vda 56uA tok ishlab chiqaradi. Bu monitorni batareyadan quvvatlantirish uchun etarli. 3V nominal akkumulyator zo'riqishidan yuqori bo'lgan har qanday kuchlanish ko'rsatkichi quyosh batareyalari batareya o'rniga monitorni quvvatlantirishini bildiradi.

Harorat namligi monitoridagi ikkita diod quyosh batareyalari va batareyalarni bir -biridan ajratib turadi va ularni teskari polaritda ulashdan saqlaydi. 10V 1W zener va 470R seriyali rezistor NanoV2 bort regulyatorini to'liq quyoshda ikkita quyosh batareyasi haddan tashqari kuchlanishdan himoya qiladi, ayniqsa 5V o'rniga 12V hujayralar ishlatilsa. <5V da normal ishlashda 10V zener faqat ~ 1uA ni tortadi.

Faqat batareya

Faqat batareya bilan ta'minlash uchun R1, D1 va D3 va quyosh batareyalarini qoldiring. Agar siz teskari polaritdan himoyalanishni xohlamasangiz, D1 -ni sim bilan almashtirishingiz mumkin.

Faqat quyosh

Monitorni faqat quyosh batareyalaridan quvvatlantirish, batareyasiz, boshqa quvvat manbai sxemasini talab qiladi. Muammo shundaki, monitor 29uA da ishlayotganda, nRF52 yoqilganda ~ 5mA 0,32 sek. Yuqorida ko'rsatilgan sxema (pdf versiyasi) MAX8881 regulyatorini 2 x 1000uF kirish kondansatkichlari 4,04 V gacha zaryad qilmaguncha o'chiradi. Keyin MAX6457 nRF52 (NanoV2) ni yoqish uchun MAX8881 SHDN kirishini chiqaradi 2 x 1000uF kondansatkichlari kerakli ishga tushirish tokini beradi.

Bu etarli quyosh energiyasi mavjud bo'lganda, monitorni 29uA da ishlashini ta'minlashga imkon beradi.

7 -qadam: Xulosa

Ushbu qo'llanma nRF52832 chipi uchun Arduino -da juda kam quvvatli BLE loyihasi sifatida batareya/quyosh energiyali namlik monitorini taqdim etdi. ~ 29uA oqimlari, ulanish parametrlarini sozlash orqali erishiladi. Natijada CR2032 tanga batareyasi batareyasining ishlash muddati 10 oydan oshdi. Yuqori quvvatli tanga xujayralari va batareyalar uchun uzunroq. Ikkita arzon quyosh batareyasini qo'shish batareyaning ishlash muddatini 50% yoki undan ko'proq uzaytirdi. Monitorni quyosh batareyalaridan quvvatlantirish uchun xonaning yorqin nuri yoki stol chiroqchasi etarli.

Monitorni past quvvatli quyosh batareyalaridan ishlashiga imkon beradigan maxsus quvvat sxemasi taqdim etildi.

Bepul pfodDesigner sizga menyular/pastki menyularni tuzish, sana/vaqtni taqqoslash va ma'lumotlarni yozib olish, so'ngra siz uchun kam quvvatli Arduino eskizini yaratish imkonini beradi. Bu erda maxsus interfeys pfodApp chizish ibtidoiylari yordamida kodlangan. PfodApp -ga ulanish foydalanuvchi interfeysini ko'rsatadi va monitor ~ 29uA ishlatilganda o'qishni yangilaydi

Android dasturlashi shart emas. pfodApp bularning barchasini boshqaradi.

Tavsiya: