Obsah:
- Krok 1: Výber komponentu
- Krok 2: Konštrukcia
- Krok 3: Kód - knižnica senzorov s nízkym výkonom, používateľské rozhranie a skica Arduino
- Krok 4: Meranie napájacieho prúdu
- Krok 5: Celkový napájací prúd a životnosť batérie
- Krok 6: Alternatívy dodávky - solárny asistent, iba batéria, iba solárne
- Krok 7: Záver
Video: Ľahký BLE s veľmi nízkym výkonom v Arduino, časť 2 - Monitor teploty/vlhkosti - krok 3: 7
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Aktualizácia: 23. novembra 2020 - Prvá výmena batérií 2 x AAA od 15. januára 2019, tj. 22 mesiacov za 2xAAA alkalické údaje
Aktualizácia: 24. marca 2019 - rev. 2 lp_BLE_TempHumidity, pridáva ďalšie možnosti vykresľovania a i2c_ClearBus
Tento pokyn, monitor vlhkosti vzduchu s veľmi nízkou spotrebou energie, je časť 2 z 3.
Časť 1 - Budovanie zariadení BLE s veľmi nízkym výkonom, ktoré sú jednoduché, s Arduino pokrýva osadenie Arduina na kódovanie zariadení s nízkym výkonom nRF52, programovacieho modulu a merania napájacieho prúdu. Zahŕňa tiež špecializované časovače a komparátory s nízkym výkonom a odblokované vstupy a používanie pfodApp na pripojenie a ovládanie zariadenia nRF52.
Časť 2 - Monitor vlhkosti vzduchu s veľmi nízkou spotrebou, tento, pokrýva použitie modulu Redbear Nano V2 a snímača teploty / vlhkosti Si7021 na výrobu batérie / solárneho monitora s nízkym výkonom. Zahŕňa tiež úpravu knižnice Si7021 na nízky výkon, vyladenie zariadenia BLE tak, aby sa znížila jeho aktuálna spotreba <25uA, a návrh vlastného displeja teploty/vlhkosti pre váš mobil.
Časť 3 - Náhradný Redbear Nano V2 namiesto Nano V2 používa iné moduly na báze nRF52. Zahŕňa výber komponentov dodávky, konštrukciu, odstránenie ochrany programovania čipov nRF52, používanie pinov NFC ako normálneho GPIO a definovanie novej dosky nRF52 v Arduine.
Tento návod je praktickou aplikáciou časti 1 Budovanie zariadení BLE s veľmi nízkym výkonom, ktoré sú s Arduino ľahké, a to skonštruovaním monitora teploty a vlhkosti BLE s veľmi nízkym výkonom. Monitor bude fungovať roky na Coin Cell alebo 2 x batériách AAA, ešte dlhšie so solárnym asistentom. Tento tutoriál sa zameriava na vyladenie parametrov BLE na nízku spotrebu energie a na to, ako napájať zariadenie z batérie ALEBO batérie + solárnej alebo iba slnečnej.
Monitor zobrazuje aktuálnu teplotu a vlhkosť a ukladá posledných 36 hodín, 10 minút a posledných 10 dní, odčítané po hodinách. Tieto je možné zmapovať na vašom mobile Android a hodnoty uložiť do súboru denníka. Nie je potrebné žiadne programovanie pre Android, o to všetko sa postará pfodApp. Zobrazenie a grafy pre Android sú úplne riadené vašou skicou Arduino, takže si ich môžete prispôsobiť podľa potreby.
Pre komponent nRF52832 BLE je použitá doska Redbear Nano V2 a pre snímač teploty / vlhkosti je použitá oddeľovacia doska Sparkfun Si7021. So Si7021 sa používa upravená knižnica nízkeho výkonu. Malá doska plošných spojov bola navrhnutá tak, aby držala NanoV2 a napájala komponenty. Pretože sa však nepoužívajú žiadne povrchovo namontované komponenty, môžete to rovnako jednoducho postaviť na doske Vero. Kryté sú tri verzie napájacieho zdroja. i) Batéria plus solárny asistent, ii) Len batéria, iii) Len solárne. Možnosť Iba solárne zariadenie nemá žiadne úložisko batérií, a preto sa spustí iba vtedy, ak je svetlo. Postačí jasné izbové svetlo alebo stolná lampa.
Obrys
Tento projekt má 4 relatívne nezávislé časti:-
- Výber a konštrukcia komponentov
- Kód - knižnica senzorov s nízkym výkonom, užívateľské rozhranie a skica Arduino
- Meranie napájacieho prúdu a životnosti batérie
- Alternatívy dodávky - solárny asistent, iba batéria, iba slnečná energia
Krok 1: Výber komponentu
Výber komponentov
Ako je uvedené v časti 1-Trikom, ako získať skutočne nízkoenergetické riešenie, je nerobiť väčšinu času nič, minimalizovať prúd prostredníctvom externých výsuvných/sťahovacích odporov na vstupoch a bez ďalších komponentov. Tento projekt použije každý z týchto trikov na získanie riešenia s nízkym výkonom.
Komponent nRF52832
Čip nRF52832 môže pracovať s napájaním od 1,7 V do 3,6 V (absolútne maximálne napätie 3,9 V). To znamená, že čip môžete napájať priamo z gombíkového článku alebo 2 x batérií AAA. Je však rozumné pridať regulátor napätia na ochranu čipu pred prepätím. Tento ďalší komponent je dodávaný s nákladmi na energiu, ale v prípade dosky NanoV2 spotrebuje palubný regulátor TLV704 max. Menej ako 5,5uA, typicky iba 3,4uA. Za toto malé extra využitie energie získate ochranu až 24 V napájacích vstupov.
Komponent Si7021
Samotný senzor Si7021 čerpá typicky <1uA, keď nemeria, tj. V pohotovostnom režime, a až 4mA pri prenose údajov cez I2C. Pretože nemeriame kontinuálne, 4mA nie je významnou súčasťou priemerného napájacieho prúdu. Odčítanie veľmi krátkych 30 sekúnd pridá k priemernému napájaciemu prúdu menej ako 1 uA, pozrite si nižšie uvedené merania napájacieho prúdu.
K dispozícii sú dve ľahko dostupné oddeľovacie dosky Si7021. Jeden od spoločnosti Adafruit a jeden od spoločnosti Sparkfun. Letmý pohľad na tieto dve dosky vám napovie, že doska Adafruit má oveľa viac komponentov ako doska Sparkfun, takže by ste boli ochotní vybrať si dosku Sparkfun. Pohľad na schémy pre každú dosku ukazuje, že doska Sparkfun je iba holý senzor a dva vyťahovacie rezistory 4k7, zatiaľ čo doska Adafruit má vstavaný regulátor MIC5225, ktorý zvyčajne čerpá 29uA po celú dobu. To je dôležité, keď je celkový prúd pre zvyšok obvodu <30uA. Pretože už máme regulátor pre čip nRF52832, tento extra komponent nie je potrebný a Si7021 je možné napájať z tohto 3,3 V zdroja. Tento projekt bude teda používať oddeľovaciu dosku Si7021 od Sparkfun.
minimalizujte prúd prostredníctvom externých výsuvných/sťahovacích odporov na vstupoch
Vyťahovacie odpory 4K7 I2C nie sú obzvlášť vysoké a pri nízkom ťahu budú odoberať 0,7 mA. To by bol problém, ak by sa nachádzali na spínačovom vstupe, ktorý bol uzemnený dlhší čas. V tomto projekte je však prúd cez tieto odpory minimalizovaný iba zriedka a na krátky čas pomocou rozhrania I2C. I2C vedenia sa väčšinou nepoužívajú a sú vysoké / trojstavové, takže cez tieto odpory neprúdi žiadny prúd.
Krok 2: Konštrukcia
Projekt je postavený na malom PCB, ale keďže neexistujú žiadne súčiastky SMD, dá sa rovnako ľahko postaviť pomocou dosky vero. Dosku plošných spojov vyrobila spoločnosť pcbcart.com z týchto súborov Gerber, TempHumiditySensor_R1.zip Doska plošných spojov je dostatočne univerzálna na to, aby sa dala použiť aj na iné projekty BLE.
Schéma je uvedená vyššie. Tu je verzia vo formáte pdf.
Zoznam položiek
Približné náklady na jednotku k decembru 2018, ~ 62 USD, bez poštovného a programátora z časti 1
- Redbear NanoV2 ~ 17 USD
- Oddeľovacia doska Sparkfun Si7021 ~ 8 USD
- 2 x 53 mm x 30 mm 0,15 W 5V solárne články napr. Overfly ~ 1,10 USD
- 1 x PCB TempHumiditySensor_R1.zip ~ 25 USD za 5 zľavu www.pcbcart.com ALEBO doska Vero (pásová meď) napr. Jaycar HP9540 ~ AUD 5 dolárov
- 2 x 1N5819 schottky diódy napr. Digikey 1N5819FSCT-ND ~ 1 USD
- 1 x 470R 0,4 W 1% odpor napr. Digikey BC3274CT-ND ~ 0,25 USD
- 6 x 6 kolíkové kolíkové zástrčky, napr. Sparkfun PRT-00116 ~ 1,5 USD
- skokanka zo ženy na ženu napr. Adafruit ID: 1950 ~ 2 USD
- Nylonové skrutky 3 mm x 12 mm, napr. Jaycar HP0140 ~ 3 AUD
- Nylonové matice 3 mm x 12 mm, napr. Jaycar HP0146 ~ AUD $ 3
- Scotch Permanentná montážna páska Cat 4010 napr. od Amazonu ~ 6,6 USD
- Držiak batérie AAA x 2, napr. Sparkfun PRT-14219 ~ 1,5 USD
- 2 x alkalické batérie AAA 750mA, napr. Sparkfun PRT-09274 ~ 1,0 USD Tieto batérie by mali vydržať> 2 roky. Alkalické batérie Energizer majú väčšiu kapacitu
- Plastový box (ABS) 83 mm x 54 mm x 31 mm, napr. Jaycar HB6005 ~ 3 AUD
- pfodApp ~ 10 USD
- 1 x 22uF 63V kondenzátor s nízkym ESR (voliteľné), napr. Jaycar RE-6342 ~ 0,5 AUD alebo Digikey P5190-ND ~ 0,25 USD
Konštrukcia je priamočiara. Držiak batérie a solárne články sú pripevnené k plastovému boxu pomocou obojstrannej lepiacej pásky.
V hotovej časti si všimnite prepojovací vodič Gnd od CLK k GND. Toto je nainštalované PO programovaní, aby sa zabránilo šumu na vstupe CLK v spustení čipu nRF52 do režimu vysokého aktuálneho ladenia
Krok 3: Kód - knižnica senzorov s nízkym výkonom, používateľské rozhranie a skica Arduino
Stiahnite si PSČ, lp_BLE_TempHumidity_R3.zip, a rozbaľte ho do svojho adresára Arduino Sketches. Z tohto súboru zip musíte tiež nainštalovať knižnicu lp_So7021 a tiež nainštalovať knižnicu pfodParser.
Knižnica senzorov nízkeho výkonu, lp_Si7021
Adafruit aj Sparkfun poskytujú podporné knižnice na prístup k senzoru Si7021, obe tieto knižnice však nie sú vhodné na veľmi nízke využitie energie. Oba používajú oneskorenie (25) v kóde na oneskorenie čítania senzora počas jeho merania. Ako je uvedené v časti 1 Oneskorenia sú zlé. Oneskorenie Arduino () len necháva mikroprocesor v prevádzke, kým vyčkáva, kým oneskorenie vyprší. Toto je v rozpore s prvým pravidlom BLE s nízkym výkonom, väčšinou nič nerobte. Náhradná knižnica lp_Si7021 nahrádza všetky oneskorenia lp_timers, ktoré prepínajú mikroprocesor, kým čakajú na dokončenie merania senzora.
Aký veľký rozdiel robí knižnica lp_Si7021? Použitie pôvodnej knižnice podpory SparkFun Si7021 a jedno čítanie za sekundu bez akýchkoľvek sériových výtlačkov spotrebuje v priemere ~ 1,2 mA. Výmena knižnice Sparkfun za knižnicu lp_Si7021 zníži priemerný prúd na ~ 10uA, tj. 100 -krát menej. V tomto projekte je najrýchlejšia rýchlosť merania raz za 30 sekúnd, keď je mobil pripojený, čo má za následok priemerný prúd snímača menší ako 1uA. Ak nie je k dispozícii žiadne pripojenie BLE, rýchlosť merania je raz za 10 minút a priemerný napájací prúd snímača je zanedbateľný.
Používateľské rozhranie
Hore je zobrazenie hlavnej obrazovky a zväčšené zobrazenie 10 -dennej hodinovej histórie. Pozemky je možné približovať a posúvať v oboch smeroch pomocou dvoch prstov.
Používateľské rozhranie je kódované v náčrte Arduino a potom odoslané do pfodApp pri prvom pripojení, kde je uložené do vyrovnávacej pamäte na opakované použitie a aktualizácie. Grafické zobrazenie je postavené na primitívach kreslenia. V časti Vlastné ovládacie prvky Arduino pre Android nájdete návod na zostavenie vlastných ovládacích prvkov. Súbory teplomeru, RHGauge a Button obsahujú kresliace príkazy pre tieto položky.
Poznámka: Žiadne, ak je tento displej vstavaný v programe pfodApp. Celý displej je úplne ovládaný kódom vo vašom náčrte Arduino
Metóda sendDrawing_z () v náčrte lp_BLE_TempHumidity_R3.ino definuje používateľské rozhranie.
neplatné sendDrawing_z () {dwgs.start (50, 60, dwgs. WHITE); // pozadie je predvolene BIELE, ak je vynechané, tj štart (50, 60); parser.sendRefreshAndVersion (30 000); // každých 30 sekúnd znova požiadajte o dwg toto sa ignoruje, ak nie je nastavená žiadna verzia analyzátora // dotknutím sa tlačidiel nad vynútením aktualizácií displeja dwgs.touchZone (). cmd ('u'). size (50, 39).send (); dwgs.pushZero (35, 22, 1,5); // posun nuly do stredu dwg na 35, 22 a mierka 1,5 -krát rhGauge.draw (); // nakreslite ovládací prvok dwgs.popZero (); dwgs.pushZero (18, 33); // posun nuly do stredu dwg na 18, mierka 33 je 1 (predvolený) teplomer.draw (); // nakreslite ovládací prvok dwgs.popZero ();
dwgs.pushZero (12,5, 43, 0,7); // posunutie nuly do stredu dwg na 12,5, 43 a mierku 0,7
hrs8PlotButton.draw (); // nakreslite ovládací prvok dwgs.popZero (); dwgs.pushZero (37,5, 43, 0,7); // posun nuly do stredu dwg na 37,5, 43 a mierka o 0,7 dňa1PlotButton.draw (); // nakreslite ovládací prvok dwgs.popZero ();
dwgs.pushZero (12,5, 54, 0,7); // posun nula do stredu dwg na 12,5, 54 a mierku 0,7
days3PlotButton.draw (); // nakreslite ovládací prvok dwgs.popZero (); dwgs.pushZero (37,5, 54, 0,7); // posun nuly do stredu dwg na 37,5, 54 a mierka o 0,7 dňa10PlotButton.draw (); // nakreslite ovládací prvok dwgs.popZero (); dwgs.end (); }
Príkazy pushZero zmenia pôvod a mierku kreslenia nasledujúceho komponentu. To vám umožní ľahko zmeniť veľkosť a umiestnenie tlačidiel a meradiel.
Pri prvom pripojení trvá počiatočné zobrazenie 5 alebo 6 sekúnd, kým sa zavedie ~ 800 bajtov, ktoré definujú zobrazenie. pfodApp ukladá do pamäte cache, takže budúcim aktualizáciám stačí odoslať zmeny, polohy meradiel a hodnoty. Tieto aktualizácie trvajú iba niekoľko sekúnd, kým sa odošle 128 bajtov potrebných na aktualizáciu displeja.
Na displeji je definovaných päť (5) aktívnych dotykových zón. Každé tlačidlo má v metóde draw () definované jedno, takže kliknutím naň otvoríte príslušný graf a horná polovica obrazovky je nakonfigurovaná ako tretia dotyková zóna.
dwgs.touchZone (). cmd ('u'). veľkosť (50, 39). odoslať ();
Keď kliknete na obrazovku nad tlačidlami, príkaz „u“dwg sa odošle do vášho náčrtu, aby sa vynútilo nové meranie a aktualizácia obrazovky. Aktualizácie sa spravidla po pripojení vykonávajú každých 30 sekúnd. Každé kliknutie alebo obnovenie výkresu si vynúti nové meranie. Odozva zo skice Arduino na pfodApp sa oneskorí, kým sa nedokončí nové meranie (~ 25 mS), aby bolo možné v aktualizácii odoslať najnovšiu hodnotu.
Skica Arduino
Skica Arduino, lp_BLE_TempHumidity_R3.ino, je vylepšenou verziou príkladu náčrtu použitého v časti 1. Skica lp_BLE_TempHumidity_R3.ino nahradí ponuku kresbou uvedenou vyššie. Pridáva tiež podporu senzorov lp_Si7021 a dátové polia na ukladanie 10 -minútových a hodinových historických meraní.
Hlavnou komplikáciou skice lp_BLE_TempHumidity_R3.ino je zvládnutie odosielania údajov grafu. Ako sa merania vykonávajú, RHResults () spracováva zhromažďovanie výsledkov a ich ukladanie do historických polí. Polia sú dlhé 120, ale keď sú dáta odoslané, prvých 30 dátových bodov je pre v jemnejšom časovom intervale.
Pri odosielaní 200 nepárnych bodov zobrazenia je potrebné dbať na niekoľko bodov:-
- Každý dátový bod je ~ 25 bajtov dlhý, v textovom formáte CSV. 150 bodov je teda 3750 bajtov údajov. Trieda lp_BLESerial má vyrovnávaciu pamäť 1536 bajtov, z ktorých 1024 je dostatočne veľkých na najväčšiu správu pfod. Ďalších 512 bajtov je vyhradených na odosielanie údajov. Akonáhle historické údaje zaplnia 512 bajtov, odosielanie ďalších údajov sa oneskorí, kým nie je priestor vo vyrovnávacej pamäti.
- Aby sa zabránilo spomaleniu aktualizácií údajov grafu pri aktualizácii hlavného displeja, údaje pozemku sa odosielajú iba vtedy, keď je zobrazená obrazovka grafu. Akonáhle sa používateľ prepne späť na hlavnú obrazovku, odosielanie údajov z grafu sa pozastaví. Odosielanie údajov grafu sa obnoví, keď používateľ klikne na tlačidlo vykreslenia, aby sa graf znova zobrazil.
- Historické zápletky začínajú od 0 (teraz) a idú späť v čase. Ak od zobrazenia posledného grafu neprebehlo žiadne nové meranie, predchádzajúce údaje, ktoré už boli stiahnuté, sa ihneď znova zobrazia. Ak existuje nové meranie, pridá sa k predchádzajúcim údajom grafu.
- Keď je monitor prvýkrát zapnutý, neexistujú žiadne historické hodnoty a 0 je v poliach uložená ako neplatná hodnota. Keď je graf zobrazený, neplatné hodnoty sa iba preskočia, čo má za následok kratší diagram.
Celzia a Fahrenheita
Skica lp_BLE_TempHumidity_R3.ino zobrazuje a vykresľuje údaje v stupňoch Celzia. Ak chcete previesť výsledky na stupne Fahrenheita, nahraďte všetky výskyty
parser.print (sensor. Temp_RawToFloat (..
s
parser.print (sensor. CtoF (sensor. Temp_RawToFloat (…
A nahraďte symbol degcode unicode v Octal / 342 / 204 / 203 symbolom degF / 342 / 204 / 211
pfodApp zobrazí ľubovoľný Unicode, ktorý môžete zobraziť v mobile.
Ďalšie podrobnosti nájdete v časti Používanie znakov iných ako ASCII v Arduine. Zmeňte tiež nastavenia MIN_C, MAX_C v teplomere.h. Nakoniec upravte limity zápletky, ako chcete, napr. zmena | Teplota C ~ 32 ~ 8 ~ ° C |
povedať
| Teplota F ~ 90 ~ 14 ° ° F |
Krok 4: Meranie napájacieho prúdu
Použitím knižnice lp_Si7021 dokonca aj meranie teploty/vlhkosti každých 10 sekúnd prispieva k priemernému napájaciemu prúdu iba ~ 1uA, takže hlavným faktorom napájacieho prúdu a tým aj životnosti batérie je prúd, ktorý používa reklama BLE a pripojenie a prenos dát..
Pripojte dosku teploty/vlhkosti k programátoru popísanému v časti 1, ako je uvedené vyššie.
Keď sú solárne články a batérie odpojené, Vin a Gnd sú pripojené k Vdd a Gnd programátora (žltý a zelený vodič) a SWCLK a SWDIO sú pripojené k Clk a SIO dosky záhlavia programátora (modrý a ružový vodič)
Teraz môžete naprogramovať NanoV2 a merať napájací prúd, ako je popísané v časti 1.
Nainštalujte knižnicu Si7021 s nízkym výkonom z tohto súboru zip, lp_Si7021.zip a nainštalujte knižnicu pfodParser a rozbaľte lp_BLE_TempHumidity_R3.zip do adresára skic Arduino a naprogramujte dosku Temp/Humditiy s lp_BLE_TempHumidity_R3.ino
Ako je uvedené vyššie, prínos senzora je <1uA, priemer, pri najvyššej miere merania použitej v tomto projekte, takže parametre BLE reklamy a pripojenia sú určujúcim faktorom pre životnosť batérie.
Parametre reklamy a pripojenia BLE, ktoré ovplyvňujú spotrebu prúdu, sú: -Tx výkon, reklamný interval, intervaly maximálneho a minimálneho pripojenia a latencia slave.
Poznámka: Použitím vyššie uvedených zapojení sú v napájaní dva (2) regulátory, jeden na doske NanoV2 cez Vin a MAX8881 na napájaní programátora. To znamená, že namerané napájacie prúdy budú o ~ 5uA vyššie ako skutočné kvôli druhému regulátoru. Hodnoty uvedené nižšie sú namerané prúdy mínus týchto extra 5uA.
Tx Power
Tx Účinky napájania dodávajú prúd tak pri pripojení, ako aj pri reklame (nepripojené). Tento projekt využíva nastavenie maximálneho výkonu (+4) a poskytuje najlepší rozsah a najväčšiu odolnosť proti šumu pre najspoľahlivejšie pripojenia. Na zmenu nastavenia výkonu môžete použiť metódu lp_BLESerial setTxPower (). Platné hodnoty sú so zvyšujúcim sa výkonom -40, -30, -20, -16, -12, -8, -4, 0 +4. Predtým, ako zavoláte setTxPower (), musíte zavolať metódu lp_BLESerial begin (). Pozrite si skicu lp_BLE_TempHumidity_R3.ino.
Môžete experimentovať so znížením výkonu Tx, ale kompromisom je kratší dosah a viac výpadkov pripojenia kvôli rušeniu. V tomto projekte je Tx Power ponechaný na predvolených hodnotách +4. Ako uvidíte nižšie, aj pri tomto nastavení je stále možný veľmi nízky napájací prúd.
Interval reklamy
Keď pre daný výkon Tx nie je k dispozícii žiadne pripojenie, reklamný interval stanoví priemernú aktuálnu spotrebu. Odporúčaný rozsah je 500 až 1 000 mS. Tu bolo použitých 2000 mS. Kompromisom je, že dlhšie reklamné intervaly znamenajú, že je pre váš mobil pomalšie nájsť zariadenie a vytvoriť pripojenie. Interne sú reklamné intervaly nastavené na násobky 0,625 mS v rozsahu 20 mS až 10,24 s. Metóda lp_BLESerial setAdvertisingInterval () pre jednoduchosť považuje za argument mS. Pre reklamný interval +4 TxPower a 2000 mS bola aktuálna spotreba ~ 18uA. Pri reklamnom intervale 1 000 mS to bolo ~ 29uA. Rev 2 používal reklamný interval 2 000 mS, čo však viedlo k pomalému pripojeniu. Rev 3 bol zmenený na reklamný interval 1 000 mS, aby boli pripojenia rýchlejšie.
Intervaly maximálneho a minimálneho pripojenia
Po nadviazaní pripojenia určí interval pripojenia, ako často mobil kontaktuje zariadenie. Lp_BLESerial setConnectionInterval () vám umožňuje nastaviť navrhované maximum a min. Mobil však určuje, aký je v skutočnosti interval pripojenia. Argumenty setConnectionInterval () sú pre pohodlie v mS, ale interne sú intervaly pripojenia násobkom 1,25 mS, v rozsahu 7,5 mS až 4 s.
Predvolené nastavenie je ConnectionInterval (100, 150), t.j. min. 100 mS až max. 150 mS. Zvýšením týchto hodnôt sa zníži napájací prúd počas pripojenia, kompromisom je však pomalší prenos dát. Každá aktualizácia obrazovky trvá asi 7 správ BLE, pričom celých 36 hodín 10 minútových meraní trvá asi 170 správ BLE. Predĺženie intervalov pripojenia teda spomalí aktualizácie obrazovky a zobrazí sa graf.
Trieda lp_BLESerial má vyrovnávaciu pamäť pre odosielanie 1536 bajtov a z tejto vyrovnávacej pamäte odosiela iba jeden blok s 20 bajtmi, pričom každý maximálny interval pripojenia zabraňuje zaplaveniu spojenia BLE údajmi. Tiež pri odosielaní údajov grafu skica odosiela údaje iba dovtedy, kým na odoslanie nečaká 512 bajtov, potom oneskorí odosielanie ďalších údajov, kým nebudú odoslané niektoré údaje. Tým sa zabráni zaplaveniu vyrovnávacej pamäte odosielania. Toto obmedzenie odosielania robí prenos dát do mobilu spoľahlivým, ale nie je optimalizovaný na maximum prostredníctvom put.
V tomto projekte boli intervaly pripojenia ponechané ako predvolené hodnoty.
Latencia otrokov
Ak nie sú k dispozícii žiadne údaje na odoslanie na mobil, zariadenie môže voliteľne ignorovať niektoré správy o pripojení z mobilného telefónu. To šetrí Tx výkon a napájací prúd. Latencia Slave je počet správ o pripojení, ktoré sa majú ignorovať. Predvolená hodnota je 0. Na zmenu tohto nastavenia je možné použiť metódu lp_BLESerial setSlaveLatency ().
Predvolená latencia Slave 0 poskytovala napájací prúd ~ 50uA, pričom sa ignorovali aktualizácie obrazovky každých 30 sekúnd, ale správy KeepAlive boli zahrnuté iba na 5 sekúnd. Nastavením Slave latencie na 2 sa dosiahne priemerný pripojený napájací prúd ~ 25uA. Nastavená hodnota Slave latencie 4 poskytla ~ 20uA. Zdá sa, že vyššie nastavenia neznižujú napájací prúd, takže bolo použité nastavenie Slave Latency na 4.
Po pripojení pfodApp každých 30 sekúnd požaduje aktualizáciu displeja. To prinúti meranie senzora a odošle späť údaje na aktualizáciu grafického zobrazenia. Táto aktualizácia spôsobí dodatočných ~ 66uA na 2 sekundy každých 30 sekúnd. To je v priemere 4,4uA za 30 sekúnd. Ak to pripočítame k 20uA, dostaneme priemerný napájací prúd pre pripojenie ~ 25uA
Krok 5: Celkový napájací prúd a životnosť batérie
Pri použití vyššie uvedených nastavení, ako je uvedené v lp_BLE_TempHumidity_R3.ino, celkový napájací prúd pri pripojení a aktualizácia displeja každých 30 sekúnd, približne 25uA. Ak nie je pripojený, je to približne 29uA.
Na výpočet životnosti batérie sa predpokladá kontinuálny odber prúdu ~ 29uA.
Rôzne batérie majú rozdielové kapacity a napäťové charakteristiky. Tu uvažované batérie sú gombíkové články CR2032, CR2450 (N), 2 x AAA alkalické, 2 x AAA lítiové a LiPo.
Zhrnutie batérie
Ak používate solárny asistent, pripočítajte 50% k týmto údajom o výdrži batérie (za predpokladu, že svieti 8 hodín denne)
Poznámka: 22uF kondenzátor LowESR (C1), okrem zabudovaného kondenzátora NanoV2 22uF, ukladá prúd solárneho článku a potom ho dodáva pre prúdové impulzy TX. V opačnom prípade batéria dodáva časť prúdu TX. Tento extra 22uF LowESR pridáva asi 10% k prúdu batérie, keď nie je solárny článok napájaný, ale tiež predlžuje životnosť batérie kompenzáciou stúpajúceho vnútorného odporu batérie, keď batéria dosiahne koniec životnosti. Nasledujúce merania sa vykonali BEZ prídavného kondenzátora 22uF.
CR2032 - 235mAHr - výdrž batérie 10 mesiacov CR2450 (N) - 650mAHr (540mAHr) - výdrž batérie 2,3 roka (2 roky) 2 x AAA alkalické - 1250mAHr - výdrž 3,8 roka 2 x AAA lítium - 1200mAHr - výdrž 4,7 roka LiPo nabíjateľná - neodporúča sa kvôli vysokému samovybíjaniu.
CR2032
Tento gombíkový článok má kapacitu typicky 235mAHr (batéria Energizer), nominálne napätie 3V a špecifikované vybíjacie napätie 2V. To znamená, že výdrž batérie je 8 100 hodín alebo ~ 0,9 roka. Vnútorný odpor článku sa však zvyšuje, keď batéria dosiahne koniec životnosti, a preto nemusí byť schopná poskytovať špičkové prúdové impulzy Tx. Na zníženie tohto účinku je možné použiť väčší napájací kondenzátor, ale povedzme 10 mesiacov života.
CR2450 (N)
Tento gombíkový článok má kapacitu typicky 620mAHr (540mAHr pre CR2450N), menovité napätie 3V a špecifikované vybíjacie napätie 2V. To znamená výdrž batérie 22, 400 hodín alebo ~ 2 roky 6 m (18 600 hodín ~ 2 roky 2 m pre CR2450N). Vnútorný odpor článku sa však zvyšuje, keď batéria dosiahne koniec životnosti, a preto nemusí byť schopná poskytovať špičkové prúdové impulzy Tx. Na zníženie tohto účinku je možné použiť väčší napájací kondenzátor, ale povedzme životnosť 2 roky 4 m (2 roky N).
Poznámka: Verzia CR2450N má hrubší okraj, ktorý pomáha predchádzať nesprávnej inštalácii do držiaka CR2450N. Bunku CR2450N a CR2450 môžete vložiť do držiaka CR2450, ale do držiaka CR2450N nemôžete vložiť bunku CR2450
2 x AAA alkalické články
Tieto batérie majú kapacitu asi 1250mAHr (batéria Energizer) pre veľmi nízke prúdy, menovité napätie 2x1,5V = 3V a určené vybíjacie napätie 2x0,8V = 1,6V. Toto špecifikované vybíjacie napätie je však nižšie ako prevádzkové napätie snímača Si7021 (1,9 V), takže batériu je možné použiť iba do napätia ~ 1 V. Tým sa zníži kapacita o približne 10% až 15%, tj. ~ 1 000 mAh.
To znamená, že výdrž batérie je 34, 500 hodín alebo ~ 4 roky. Vnútorný odpor článku sa však zvyšuje, keď batéria dosiahne koniec životnosti, a preto nemusí byť schopná poskytovať špičkové prúdové impulzy Tx. Na zníženie tohto efektu je možné použiť väčší napájací kondenzátor, ale povedzme 3 roky a 10 m. Poznámka Alkalické batérie majú samovybíjanie 2% až 3% za rok.
2 x lítiové články AAA
Tieto batérie majú kapacitu asi 1200mAHr (batéria Energizer), nominálne napätie 2x1,7V = 3,4V, pri nízkych prúdoch a vybité napätie 2x1,4V = 2,4V. To znamená, že výdrž batérie je 41, 400 hodín alebo 4 roky 8 metrov.
Nabíjateľná batéria LiPo
Tieto batérie prichádzajú v rôznych kapacitách od 100mAHr do 2000mAHr, v plochých formátoch, a majú nabité napätie 4,2V a vybité napätie> 2,7V. Majú však vysoké samovybíjanie 2%-3%/mesiac (t.j. 24% až 36% ročne), a preto nie sú pre túto aplikáciu také vhodné ako ostatné batérie.
Krok 6: Alternatívy dodávky - solárny asistent, iba batéria, iba solárne
Batéria plus solárny asistent
Vyššie uvedená konštrukcia používa napájanie Battery plus Solar Assist. Keď solárne panely generujú viac napätia, ako je napätie batérie, solárne články budú napájať monitor, čím sa predĺži životnosť batérie. Životnosť batérie sa zvyčajne môže predĺžiť o ďalších 50%.
Použité solárne panely sú malé, 50 mm x 30 mm, lacné, ~ 0,50 USD a majú nízky výkon. Menovito sú to 5V panely, ale na vytváranie 5V potrebujú plné priame slnečné svetlo. V tomto projekte sú dva panely zapojené do série, takže umiestnenie monitora blízko okna, mimo priameho slnka, stačí na výmenu batérie. Aj dobre osvetlená miestnosť alebo stolná lampa stačí na to, aby solárne články generovali> 3,3 V pri> 33uA a preberali energiu z batérie.
Bol zostavený jednoduchý testovací panel, ktorý určil, kde by mohol byť monitor teploty / vlhkosti umiestnený mimo slnka a stále by bol napájaný slnečnou energiou. Ako vidíte na fotografii vyššie, dva panely pripojené k rezistoru 100K produkujú 5,64V na 100K, tj. Prúd 56uA pri 5,64V. To je viac ako dostačujúce prevziať napájanie monitora z batérie. Akékoľvek čítanie napätia nad nominálnym napätím batérie 3 V znamená, že namiesto batérie budú napájať monitor solárne články.
Dve diódy v obvode monitorovania teploty teploty navzájom izolujú solárne články a batérie a chránia ich pred prepojením s opačnou polaritou. Rezistor 10V 1W zener a 470R chráni palubný regulátor NanoV2 pred prepätím z dvoch solárnych článkov na plnom slnku, najmä ak sa namiesto 5V náhodou použijú články 12V. Pri normálnej prevádzke pri <5V odoberá 10V zener iba ~ 1uA.
Iba batéria
Pokiaľ ide o napájanie iba z batérie, vynechajte R1, D1 a D3 a solárne články. Môžete tiež nahradiť D1 kusom drôtu, ak nechcete ochranu proti prepólovaniu.
Iba solárne
Napájanie monitora iba zo solárnych článkov, bez batérie, vyžaduje iný napájací obvod. Problém je v tom, že zatiaľ čo monitor bude pracovať na 29uA, pri zapnutí nRF52 čerpá ~ 5mA po dobu 0,32 s. Vyššie uvedený obvod (verzia pdf) drží regulátor MAX8881 vypnutý, kým sa vstupné kondenzátory, 2 x 1 000 uF, nenabijú do 4,04 V. Potom MAX6457 uvoľní vstup MAX8881 SHDN na napájanie nRF52 (NanoV2). 2 x 1 000 uF kondenzátory dodávajú potrebný štartovací prúd.
Vďaka tomu sa monitor zapne hneď, ako bude k dispozícii dostatok slnečnej energie, a bude ho udržiavať pri 29uA.
Krok 7: Záver
Tento tutoriál predstavil monitor vlhkosti teploty napájaný batériami/solárnymi článkami ako príklad projektu BLE s veľmi nízkym výkonom v Arduino pre čip nRF52832. Napájacie prúdy ~ 29uA sa dosiahnu vyladením parametrov pripojenia. Výsledkom bola životnosť gombíkovej batérie CR2032 presahujúca 10 mesiacov. Dlhšie pre gombíkové články a batérie s vyššou kapacitou. Pridaním dvoch lacných solárnych článkov sa ľahko predĺži životnosť batérie o 50% a viac. Na napájanie monitora zo solárnych článkov postačuje jasné izbové svetlo alebo stolná lampa.
Bol predstavený špeciálny napájací obvod, ktorý umožňuje prevádzku monitora výlučne zo solárnych článkov s nízkou kapacitou.
Bezplatný program pfodDesigner vám umožní navrhnúť ponuky/podponuky, vykresliť údaje podľa dátumu/času a údaje denníka a potom pre vás vygenerovať skicu Arduino s nízkym výkonom. Tu bolo vlastné rozhranie kódované pomocou primitív kreslenia pfodApp. Pripojenie k pfodApp zobrazí používateľské rozhranie a aktualizuje hodnoty, kým monitor používa ~ 29uA
Nie je potrebné žiadne programovanie pre Android. pfodApp to všetko zvláda.
Odporúča:
Domáci automatizačný systém WiFi s extrémne nízkym výkonom: 6 krokov (s obrázkami)
Domáci automatizačný systém WiFi s extrémne nízkym výkonom: V tomto projekte vám ukážeme, ako môžete v niekoľkých krokoch vybudovať základný miestny systém domácej automatizácie. Budeme používať Raspberry Pi, ktoré bude fungovať ako centrálne zariadenie WiFi. Zatiaľ čo pre koncové uzly použijeme kriket IOT na výrobu batérie
Určte priemernú spotrebu prúdu prerušovaného zariadenia s nízkym výkonom: 4 kroky
Stanovenie priemernej spotreby prúdu prerušovaného zariadenia s nízkym výkonom: Úvod Zo zvedavosti som chcel vedieť, ako dlho môžu batérie vydržať v mojom diaľkovom snímači teploty. Trvá to dva články AA v sérii, ale nie je jednoduché umiestniť ampérmeter do radu a sledovať displej, pretože energia sa spotrebúva
Ako si vyrobiť vlastnú dosku plošných spojov pomocou laserového gravírovača s nízkym výkonom: 8 krokov (s obrázkami)
Ako si vyrobiť vlastnú dosku plošných spojov pomocou laseru s nízkym výkonom: Pokiaľ ide o výrobu domácej dosky plošných spojov, na internete nájdete niekoľko spôsobov: od tých najzákladnejších s použitím iba pera po sofistikovanejšie používanie 3D tlačiarní a ďalšieho vybavenia. A tento návod padá na posledný prípad! V tomto projekte sh
Meteostanica s nízkym výkonom: 6 krokov (s obrázkami)
Nízkoenergetická meteorologická stanica: Teraz v tretej verzii, ktorá bola testovaná viac ako dva roky, sa moja meteorologická stanica aktualizuje, aby sa dosiahol nižší výkon a spoľahlivosť prenosu údajov. Spotreba energie - nie je problém v iných mesiacoch ako v decembri a januári, ale
Meteostanica Arduino s extrémne nízkym výkonom: 5 krokov
Meteostanica Arduino s extrémne nízkym výkonom: Táto príručka vám ukáže, ako postaviť meteorologickú stanicu s mimoriadne nízkym výkonom pomocou rádiového modulu arduino nano, bme 280 a rf433, ktorý na 2 LiPo 18650 a jeho schopnosti vydrží približne 1,5 až 2 roky. rozšíriť ho pridaním ďalších senzorov a solárnej