Мазмұны:
- 1 -қадам: компоненттерді таңдау
- 2 -қадам: құрылыс
- 3 -қадам: Код - төмен қуатты сенсорлар кітапханасы, пайдаланушы интерфейсі және Arduino эскизі
- 4 -қадам: Қоректену тогын өлшеу
- 5 -қадам: Толық қоректену тогы мен батареяның қызмет ету мерзімі
- 6 -қадам: баламалы жеткізілім - күн батареясы, тек батарея, тек күн
- 7 -қадам: Қорытынды
Бейне: Arduino -дағы өте төмен қуатты BLE 2 бөлігі - Температура/ылғалдылық мониторы - Rev 3: 7 қадамдары
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Жаңарту: 2020 жылдың 23 қарашасы - 2019 жылдың 15 қаңтарынан бастап 2 x AAA батареясын бірінші рет ауыстыру, яғни 2xAAA Alkaline үшін 22 ай Жаңарту: 7 сәуір 2019 ж. - lp_BLE_TempHumidity, Rev 3, pfodApp V3.0.362+көмегімен күн/уақыт графиктерін қосады және жіберу кезінде автоматты дроссель. деректер
Жаңарту: 24 наурыз 2019 ж. - lp_BLE_TempHumidity -тің 2 -ші нұсқасы, басқа сюжеттік опцияларды қосады және i2c_ClearBus
Бұл нұсқаулық, өте төмен қуаттағы ылғалдылық мониторы, 3 -ші бөлік.
1 -бөлім - Arduino көмегімен өте төмен қуатты BLE құрылғыларын құру Arduino -ны nRF52 аз қуатты құрылғыларға кодтауды, бағдарламалау модулін және қоректену тогын өлшеуді қамтиды. Ол сондай -ақ nRF52 құрылғысына қосылу және басқару үшін мамандандырылған қуатты таймерлер мен компараторлар мен дебуфирленген кірістерді және pfodApp қолдануды қамтиды.
2 -бөлім - Өте төмен қуаттағы ылғалдылық мониторы, бұл қуаты аз батарея / күн мониторын құру үшін Redbear Nano V2 модулін және Si7021 температура / ылғалдылық датчигін қолдануды қамтиды. Ол сонымен қатар Si7021 кітапханасын қуаты төмен етіп өзгертуді, BLE құрылғысын <25uA ағымдағы шығынын азайту үшін реттеуді және ұялы телефоныңыз үшін реттелетін температура/ылғалдылық дисплейін жобалауды қамтиды.
3 -бөлім - Redbear Nano V2 ауыстыру Nano V2 орнына басқа nRF52 модульдерін қолданады. Ол жеткізу компоненттерін таңдауды, құрылысты, nRF52 чипін бағдарламалау қорғанысын жоюды, NFC түйреуіштерін қалыпты GPIO ретінде пайдалануды және Arduino -да жаңа nRF52 тақтасын анықтауды қамтиды.
Бұл нұсқаулық өте төмен қуатты BLE температурасы мен ылғалдылық мониторын құру арқылы Arduino көмегімен жеңілдетілген өте төмен қуатты BLE құрылғыларының 1 -бөлімінің практикалық қолдануы болып табылады. Монитор бірнеше жыл бойы Coin Cell немесе 2 x AAA батареяларымен жұмыс істейді, тіпті күн сәулесімен. Бұл оқулық BLE параметрлерін энергияны аз тұтыну үшін баптауды және құрылғыны батареядан немесе батареядан + күн немесе күн сәулесінен қалай қуаттандыруды қамтиды.
Монитор ағымдағы температура мен ылғалдылықты көрсетумен қатар, соңғы 36 сағат 10 минуттық көрсеткіштерді және соңғы 10 күндік сағаттық көрсеткіштерді сақтайды. Оларды Android ұялы телефонында және журнал файлына сақталған мәндерде диаграммалауға болады. Android бағдарламалаудың қажеті жоқ, pfodApp мұның бәрін өңдейді. Android дисплейі мен диаграммасын Arduino эскизі толығымен басқарады, сондықтан сіз оны қажеттілікке қарай реттей аласыз.
NRF52832 BLE компоненті үшін Redbear Nano V2 тақтасы, ал температура / ылғалдылық сенсоры үшін Sparkfun Si7021 тақтасы қолданылады. Төмен қуатты модификацияланған кітапхана Si7021 көмегімен қолданылады. Кішкентай ПХД NanoV2 ұстауға және компоненттерді жеткізуге арналған. Бетке орнатылған компоненттер болмағандықтан, сіз оны веро тақтаға оңай құрастыра аласыз. Қуат көзінің үш нұсқасы қарастырылған. i) Батарея плюс Күн сәулесінен көмекші құрал, ii) Тек батарея, iii) Тек күн. «Solar Only» опциясында батареяны сақтау орны жоқ, сондықтан ол шамалы жарық болған кезде ғана жұмыс істейді. Бөлменің жарық шамы немесе үстел шамы жеткілікті.
Контур
Бұл жоба 4 салыстырмалы тәуелсіз бөліктен тұрады:-
- Компоненттерді іріктеу және салу
- Код - төмен қуатты сенсорлық кітапхана, пайдаланушы интерфейсі және Arduino эскизі
- Жеткізу тогы мен батареяның қызмет ету мерзімін өлшеу
- Жеткізудің балама нұсқалары - тек күн батареялары, тек күн батареялары
1 -қадам: компоненттерді таңдау
Компоненттерді таңдау
1-бөлімде айтылғандай-қуаты төмен шешімді алудың негізгі әдісі-көп жағдайда ештеңе жасамау, кірістердегі сыртқы тартылатын/тартылатын резисторлар арқылы токты азайту және қосымша компоненттері жоқ. Бұл жоба төмен қуатты шешім алу үшін осы амалдардың әрқайсысын қолданады.
NRF52832 компоненті
NRF52832 чипі 1,7 В пен 3,6 В аралығындағы қуат көзімен жұмыс істей алады (абсолюттік максималды кернеу 3,9 В). Бұл чипті монеталық ұяшықтан немесе 2 x AAA батареясынан тікелей қуаттауға болатынын білдіреді. Чипті кернеудің кернеуінен қорғау үшін кернеу реттегішін қосқан жөн. Бұл қосымша компонент қуат шығынымен бірге келеді, бірақ NanoV2 тақтасы жағдайында TLV704 борттық реттегіші 5.5uA максимумнан аз, әдетте тек 3,4uA құрайды. Бұл шамалы қосымша қуатты пайдалану үшін сіз 24В дейінгі қоректену кірістерінен қорғаныс аласыз.
Si7021 компоненті
Si7021 сенсорының өзі әдетте өлшеуді қабылдамаған кезде <1uA құрайды, яғни күту режимінде және I2C арқылы деректерді жібергенде 4 мА дейін. Біз өлшеуді үнемі қабылдамайтындықтан, 4мА орташа ток ағымының маңызды бөлігі емес. Оқуға 30 секунд уақыт кетсе, орташа ток ағымына 1уА -дан аз қосылады, төмендегі қоректену тогының өлшемдерін қараңыз.
Екі қол жетімді Si7021 ажырату тақтасы бар. Бірі Адафруттан, екіншісі Спаркфуннан. Екі тақтаға тез қарау сізге Adafruit тақтасында Sparkfun тақтасынан әлдеқайда көп компоненттер бар екенін айтады, сондықтан сіз Sparkfun тақтасын таңдауға бейім боласыз. Әр тақтаға арналған схемаларға қарап, Sparkfun тақтасы жай ғана сенсор және 4k7 тартылатын екі резистор екенін көрсетеді, ал Adafruit тақтасында MU5225 реттегіші бар, ол әрқашан 29uA түсіреді. Бұл қалған тізбектің барлық ток күші <30uA болғанда маңызды. Бізде nRF52832 чипінің реттегіші болғандықтан, бұл қосымша компонент қажет емес және Si7021 3.3В кернеуінен қоректенуі мүмкін. Сонымен, бұл жоба Sparkfun Si7021 тақтасын пайдаланады.
кірістердегі сыртқы тарту/түсіру резисторлары арқылы токты азайтыңыз
4K7 I2C тартқыш резисторлары аса жоғары мәнге ие емес және төмен тартылғанда 0,7мА тартатын болады. Егер олар коммутатордың кірісіне ұзақ уақыт бойы қосылған болса, бұл мәселе болар еді. Бірақ бұл жобада резисторлар арқылы өтетін ток I2C интерфейсін сирек және қысқа уақыт ішінде ғана азайтады. Көбінесе I2C желілері қолданылмайды және жоғары / үш күйлі болады, сондықтан бұл резисторлар арқылы ток өтпейді.
2 -қадам: құрылыс
Жоба шағын ПХД -де жасалған, бірақ SMD компоненттері болмағандықтан, оны vero -board көмегімен оңай құрастыруға болады. ПХД pcbcart.com сайтынан Gerber файлдарынан жасалған, TempHumiditySensor_R1.zip ПХД басқа BLE жобалары үшін қолдануға болатын жалпы мақсат болып табылады.
Схема жоғарыда көрсетілген. Бұл pdf нұсқасы.
Бөлшектер тізімі
2018 жылдың желтоқсанындағы жағдай бойынша бірлікке шамамен шығын, ~ 62 АҚШ доллары, жеткізілім мен бағдарламалаушыны қоспағанда, 1 -бөлім
- Redbear NanoV2 ~ 17 АҚШ доллары
- Sparkfun Si7021 үзіліс тақтасы ~ 8 АҚШ доллары
- 2 x 53mm x 30mm 0.15W 5V күн батареялары, мысалы. Overfly ~ 1.10 АҚШ доллары
- 1 x PCB TempHumiditySensor_R1.zip ~ 25 АҚШ доллары 5 www.pcbcart.com НЕМЕСЕ Vero тақтасы (мыс жолағы), мысалы. Jaycar HP9540 ~ 5 АҚШ доллары
- 2 x 1N5819 schottky диодтары, мысалы. Digikey 1N5819FSCT-ND ~ 1 АҚШ доллары
- 1 x 470R 0,4 Вт 1% резистор, мысалы. Digikey BC3274CT-ND ~ 0,25 АҚШ доллары
- 6 x 6 істікшелі ерлерге арналған түйреуіштер, мысалы. Sparkfun PRT-00116 ~ 1.5 АҚШ доллары
- әйелден секіруші әйелге мысалы Adafruit ID: 1950 ~ 2 АҚШ доллары
- 3 мм х 12 мм нейлон бұрандалары, мысалы. Jaycar HP0140 ~ AUD $ 3
- 3 мм x 12 мм нейлон жаңғақтар, мысалы. Jaycar HP0146 ~ AUD $ 3
- Scotch Тұрақты бекіту таспасы Cat 4010, мысалы. Amazon -дан ~ 6.6 АҚШ доллары
- AAA x 2 батарея ұстағышы, мысалы. Sparkfun PRT-14219 ~ 1.5 АҚШ доллары
- 2 x AAA 750mA сілтілі батареялар, мысалы. Sparkfun PRT-09274 ~ 1.0 АҚШ доллары Бұл батареялардың қызмет ету мерзімі> 2 жыл. Энергайзер сілтілі батареялардың сыйымдылығы жоғары
- Пластикалық қорап (ABS) 83mm x 54mm x 31mm, мысалы Jaycar HB6005 ~ AUD $ 3
- pfodApp ~ 10 АҚШ доллары
- 1 x 22uF 63V төмен ESR конденсаторы (міндетті емес) Jaycar RE-6342 ~ AUD $ 0.5 немесе Digikey P5190-ND ~ 0.25 АҚШ доллары
Құрылыс тікелей алға. Батарея ұстағыш пен күн батареялары пластикалық қорапқа екі жақты ауыр таспамен бекітілген.
Аяқталған бөлікте CLK -тен GND -ге дейінгі Gnd байланыс сымына назар аударыңыз. Бұл CLK кіруіндегі шу nRF52 чипінің жоғары ағымдағы күйін келтіру режиміне қосылуының алдын алу үшін бағдарламалаудан кейін орнатылады
3 -қадам: Код - төмен қуатты сенсорлар кітапханасы, пайдаланушы интерфейсі және Arduino эскизі
Пошталық кодты жүктеңіз, lp_BLE_TempHumidity_R3.zip және оны Arduino Sketches каталогына ашыңыз. Бұл zip файлынан lp_So7021 кітапханасын орнату қажет, сонымен қатар pfodParser кітапханасын орнату қажет.
Төмен қуатты сенсорлар кітапханасы, lp_Si7021
Adafruit және Sparkfun екеуі де Si7021 сенсорына қол жеткізуге арналған кітапханаларды қамтамасыз етеді, алайда бұл екі кітапхана да қуатты өте төмен пайдалануға жарамсыз. Екеуі де сенсорды өлшеу кезінде оқуды кешіктіру үшін кодтағы кідірісті (25) қолданады. 1 -бөлімде айтылғандай, кешігулер жаман. Arduino delay () кешіктірудің бітуін күтіп тұрғанда, микро процессордың қуатпен жұмыс істеуін қамтамасыз етеді. Бұл төмен қуатты BLE ережесін бұзады, көп жағдайда ештеңе жасамаңыз. Ауыстырылатын lp_Si7021 кітапханасы барлық кешігулерді lp_timers-ке ауыстырады, бұл сенсордың өлшеуін аяқтағанша микро процессорды ұйықтатады.
Lp_Si7021 кітапханасының қаншалықты айырмашылығы бар? Түпнұсқа SparkFun Si7021 қолдау кітапханасын қолдана отырып және сериялық басып шығарусыз секундына бір оқуды алып, орташа мәні 1,2 мА құрайды. Sparkfun кітапханасын lp_Si7021 кітапханасымен ауыстыру орташа токты ~ 10уА дейін төмендетеді, яғни 100 есе аз. Бұл жобада ұялы телефон қосылған кезде ең жылдам өлшеу жылдамдығы әр 30 секундта болады, бұл орташа сенсорлық ток 1уА -дан төмен болады. BLE қосылымы болмаған кезде өлшеу жылдамдығы 10 минут сайын бір рет болады және сенсордың орташа ток күші шамалы.
Қолданушы интерфейсі
Жоғарыда негізгі экран дисплейі және 10 күндік сағат тарихының үлкейтілген көрінісі бар. Сюжеттерді екі саусақпен екі жаққа да үлкейтуге және панорамалауға болады.
Пайдаланушы интерфейсі Arduino эскизінде кодталған, содан кейін pfodApp -қа бірінші қосылымда жіберіледі, онда ол қайталанатын пайдалану мен жаңартулар үшін кэштеледі. Графикалық дисплей примитивтерді салудан құрылған. Жеке басқару элементтерін құру туралы оқулық үшін Android үшін Custom Arduino Controls бөлімін қараңыз. Термометр, RHGauge және Button файлдарында сол элементтердің сызу командалары бар.
Ескертпе: егер бұл дисплей pfodApp -та орнатылса, жоқ. Бүкіл дисплей Arduino эскизіндегі код бойынша толығымен басқарылады
Lp_BLE_TempHumidity_R3.ino эскизіндегі sendDrawing_z () әдісі пайдаланушы интерфейсін анықтайды.
void sendDrawing_z () {dwgs.start (50, 60, dwgs. WHITE); // фон әдепкі бойынша ақ түске боялған болса, яғни start (50, 60); parser.sendRefreshAndVersion (30000); // dwg-ге әр 30 секунд сайын қайта сұрау. егер талдау құралы нұсқасы орнатылмаса, бұл ескерілмейді // жаңартуларды көрсету үшін жоғарыдағы түймелерді басыңыз dwgs.touchZone (). cmd ('u'). size (50, 39).send (); dwgs.pushZero (35, 22, 1.5); // нөлді dwg орталығына 35, 22 дейін жылжытыңыз және rhGauge.draw () 1,5 есе масштабтаңыз; // dwgs.popZero () басқару элементін салыңыз; dwgs.pushZero (18, 33); // нөлді dwg орталығына 18 -ге жылжытыңыз, 33 шкаласы 1 (әдепкі) термометр.draw (); // dwgs.popZero () басқару элементін салыңыз;
dwgs.pushZero (12.5, 43, 0.7); // нөлді dwg орталығына 12,5, 43 дейін жылжытыңыз және 0,7 масштабына
hrs8PlotButton.draw (); // dwgs.popZero () басқару элементін салыңыз; dwgs.pushZero (37.5, 43, 0.7); // нөлді dwg орталығына 37,5, 43 дейін жылжытыңыз және 0,7 күнге масштабтаңыз1PlotButton.draw (); // dwgs.popZero () басқару элементін салыңыз;
dwgs.pushZero (12.5, 54, 0.7); // нөлді dwg орталығына 12,5, 54 дейін жылжытыңыз және 0,7 масштабына
days3PlotButton.draw (); // dwgs.popZero () басқару элементін салыңыз; dwgs.pushZero (37.5, 54, 0.7); // нөлді dwg орталығына 37,5, 54 дейін жылжытыңыз және 0,7 күнге масштабтаңыз10PlotButton.draw (); // dwgs.popZero () басқару элементін салыңыз; dwgs.end (); }
PushZero командалары келесі компонентті салу үшін шығу тегі мен масштабын өзгертеді. Бұл түймелер мен көрсеткіштердің өлшемі мен орнын оңай өзгертуге мүмкіндік береді.
Алғашқы қосылымда бастапқы дисплей дисплейді анықтайтын ~ 800 байтты жүктеу үшін 5 немесе 6 секундты алады. pfodApp дисплейді кэштейді, сондықтан болашақ жаңартулар тек өзгерістерді, позицияларды және көрсеткіштерді жіберуі керек. Бұл жаңартулар дисплейді жаңарту үшін 128 байтты жіберуге бірнеше секундты алады.
Дисплейде бес (5) белсенді сенсорлық аймақ бар. Әр түйменің draw () әдісінде анықталған біреуі бар, сондықтан сіз оны басып, сәйкес сюжетті ашасыз, ал экранның жоғарғы жартысы үшінші сенсорлық аймақ ретінде конфигурацияланған.
dwgs.touchZone (). cmd ('u'). өлшемі (50, 39).send ();
Түймешіктердің үстіндегі экранды басқанда, 'u' dwg пәрмені жаңа өлшем мен экранды жаңартуға мәжбүр ету үшін эскизге жіберіледі. Әдетте қосылған кезде жаңартулар әр 30 секунд сайын ғана болады. Сызбаны әр басу немесе жаңарту жаңа өлшемді мәжбүрлейді. PduodApp -қа Arduino эскизінің жауабы жаңа өлшеу аяқталғанша кешіктіріледі (~ 25mS), сондықтан соңғы мәнді жаңартуда жіберуге болады.
Ардуино эскизі
Arduino эскизі, lp_BLE_TempHumidity_R3.ino, 1 -бөлімде қолданылатын мысал эскизінің жетілдірілген нұсқасы. Lp_BLE_TempHumidity_R3.ino эскизі мәзірді жоғарыда көрсетілген сызбамен ауыстырады. Ол сонымен қатар lp_Si7021 сенсорының қолдауын және 10 минуттық және сағаттық тарихи өлшеулерді сақтау үшін деректер массивтерін қосады.
Lp_BLE_TempHumidity_R3.ino эскизіндегі негізгі қиындық - сюжеттік деректерді жіберуді өңдеу. Өлшеу жүргізілген кезде readRHResults () нәтижелерді жинайды және оларды тарихи массивтерге сақтайды. Массивтер 120 ұзын, бірақ деректер жіберілген кезде алғашқы 30 деректер нүктелері дәлірек уақыт интервалында болады.
Көрсету үшін 200 тақ сюжеттік нүктені жіберу кезінде назар аудару қажет бірнеше ережелер бар:-
- Әрбір деректер нүктесінің ұзындығы ~ 25 байт, CSV мәтіндік форматта. Сонымен, 150 балл - бұл 3750 байт деректер. Lp_BLESerial класында 1536 байтты буфер бар, оның 1024 үлкен pfod хабарламасы үшін жеткілікті үлкен. Қалған 512 байт деректерді жіберу үшін сақталған. Тарихи деректер 512 байтты толтырғаннан кейін, қосымша деректерді жіберу буферде бос орын болғанша кешіктіріледі.
- Негізгі дисплей жаңартуларының баяулауын болдырмау үшін сюжеттік деректер сюжеттік экран көрсетілген кезде ғана жіберіледі. Пайдаланушы негізгі экранға оралғаннан кейін сюжеттік деректерді жіберу кідіртіледі. Сюжеттік деректерді жіберу пайдаланушы сюжетті қайтадан көрсету үшін сюжет түймесін басқан кезде жалғасады.
- Тарихи сюжеттер 0 -ден (қазір) басталады және уақыттың артына кетеді. Егер соңғы сюжет көрсетілгеннен бері жаңа өлшеу болмаса, жүктелген алдыңғы деректер бірден қайтадан көрсетіледі. Егер жаңа өлшем болса, онда ол алдыңғы сюжеттік деректерге қосылады.
- Монитор бірінші рет қосылғанда, тарихи көрсеткіштер болмайды және 0 массивтерде жарамсыз көрсеткіш ретінде сақталады. Сюжет көрсетілген кезде, жарамсыз көрсеткіштер жай ғана өткізіледі, нәтижесінде қысқаша сюжет пайда болады.
Цельсий мен Фаренгейт
Lp_BLE_TempHumidity_R3.ino эскизі деректерді Цельсий бойынша көрсетеді және көрсетеді. Нәтижелерді Фаренгейтке түрлендіру үшін барлық оқиғаларды ауыстырыңыз
parser.print (sensor. Temp_RawToFloat (..
бар
parser.print (sensor. CtoF (sensor. Temp_RawToFloat (…)
Сегіздік / 342 / 204 / 203 ішіндегі unCode degC таңбасын degF белгісімен / 342 / 204 / 211 ауыстырыңыз
pfodApp ұялы телефоныңыз көрсете алатын кез келген Юникодты көрсетеді.
Қосымша ақпарат алу үшін Arduino-да ASCII емес таңбаларды пайдалану бөлімін қараңыз. Сонымен қатар Thermometer.h ішіндегі MIN_C, MAX_C параметрлерін өзгертіңіз. Соңында сюжеттік шектерді өзіңіз қалағандай реттеңіз, мысалы. өзгерту | Температура С ~ 32 ~ 8 ~ градус С |
айту
| F ~ 90 ~ 14 ~ градус F | температурасы
4 -қадам: Қоректену тогын өлшеу
Lp_Si7021 кітапханасын қолдана отырып, температураны/ылғалдылықты әр 10 секунд сайын өлшеу, орташа ток ағынына ~ 1uA ғана үлес қосады, сондықтан жеткізу токының, демек, батареяның қызмет ету мерзімінің негізгі факторы - BLE жарнамасы мен қосылымы мен деректерді жіберу арқылы қолданылатын ток..
Температура/ылғалдылық тақтасын жоғарыда көрсетілгендей 1 -бөлімде сипатталған Бағдарламалаушыға қосыңыз.
Күн батареялары мен аккумуляторлар ажыратылған кезде, Vin мен Gnd бағдарламалаушының Vdd және Gnd (Сары және Жасыл сымдары), SWCLK және SWDIO бағдарламалаушы тақтасының Clk және SIO (Көк және Қызғылт сымдар) қосылады.
Енді сіз NanoV2 бағдарламалай аласыз және 1 -бөлімде сипатталғандай қоректену тогын өлшей аласыз.
Lp_Si7021.zip zip файлынан төмен қуатты Si7021 кітапханасын орнатыңыз және pfodParser кітапханасын орнатыңыз және lp_BLE_TempHumidity_R3.zip файлын Arduino эскиздер каталогына шығарыңыз және Temp/Humditiy тақтасын lp_BLE_TempHumidity_R3.ino көмегімен бағдарламалаңыз.
Жоғарыда айтылғандай, сенсордың үлесі <1uA, орташа, осы жобада қолданылатын ең жоғары өлшеу жылдамдығында, сондықтан BLE жарнамасы мен қосылу параметрлері батареяның қызмет ету мерзімін анықтайтын фактор болып табылады.
Ағымдағы тұтынуға әсер ететін BLE жарнама мен қосылым параметрлері: -Tx қуаты, жарнама интервалы, қосылымның максималды және минималды интервалдары және құлдық кідірісі.
Ескерту: Жоғарыдағы қосылымдарды қолдана отырып, жабдықта екі (2) реттегіш бар, біреуі Vin арқылы NanoV2 тақтасында және бағдарламашы жеткізілімінде MAX8881. Бұл екінші реттегіштің арқасында өлшенген жеткізу токтары нақтыдан ~ 5уА жоғары болады дегенді білдіреді. Төменде келтірілген мәндер өлшенетін токтар болып табылады, бұл қосымша 5uA.
Tx қуаты
Tx Қуат эффектілері қосылған кезде де, жарнама кезінде де (қосылмаған) ток береді. Бұл жоба максималды қуат параметрін (+4) қолданады және ең сенімді қосылыстар үшін ең жақсы диапазонды және ең үлкен шу иммунитетін қамтамасыз етеді. Қуат параметрін өзгерту үшін lp_BLESerial setTxPower () әдісін қолдануға болады. Жарамды мәндер -қуатты арттыруда -40, -30, -20, -16, -12, -8, -4, 0 +4. SetTxPower () шақырудан бұрын lp_BLESerial begin () әдісіне қоңырау шалу керек. Lp_BLE_TempHumidity_R3.ino нобайын қараңыз.
Сіз Tx қуатын азайтуға тәжірибе жасай аласыз, бірақ ымыраға келу ауқымы қысқарады және кедергілерге байланысты байланыс үзіледі. Бұл жобада Tx Power әдепкі бойынша +4 күйінде қалады. Төменде көріп тұрғаныңыздай, бұл параметрдің өзінде өте төмен қоректену тогы әлі де мүмкін.
Жарнама аралығы
Берілген Tx қуаты үшін, байланыс болмаған кезде, жарнама аралығы орташа ток шығынын орнатады. Ұсынылатын диапазон 500 -ден 1000 мС -қа дейін. Мұнда 2000mS қолданылды. Жарнама интервалдарының ұзақтығы ұялы телефонның құрылғыны тауып, байланыс орнатуы баяу екенін білдіреді. Ішкі жарнама интервалдары 20mS -тен 10.24s -ге дейінгі диапазонда 0,625mS еселіктерімен белгіленеді. Lp_BLESerial setAdvertisingInterval () әдісі ыңғайлылық үшін mS аргументі ретінде қабылдайды. +4 TxPower және 2000mS жарнама аралығы үшін ағымдағы тұтыну ~ 18uA болды. 1000mS жарнама интервалында ~ 29uA болды. Rev 2 2000mS жарнама интервалын қолданды, бірақ бұл байланыстардың баяулауына әкелді. Қосылымдарды жылдамдату үшін Rev 3 1000mS жарнама интервалына ауыстырылды.
Максималды және минималды байланыс интервалдары
Байланыс орнатылғаннан кейін, байланыс интервалы ұялы телефонмен қаншалықты жиі байланысатынын анықтайды. Lp_BLESerial setConnectionInterval () ұсынылған максимум мен минді орнатуға мүмкіндік береді, бірақ мобильді байланыс интервалының нақты мәнін бақылайды. Ыңғайлы болу үшін setConnectionInterval () аргументтері mS -де, бірақ ішкі интервалда 7,5 мС -тен 4 сек -ге дейінгі аралықта 1,25 мС еселенген.
Әдепкі параметр setConnectionInterval (100, 150) болып табылады, яғни min 100mS - max 150mS. Бұл мәндерді жоғарылату қосылған кезде жеткізу тогын төмендетеді, бірақ ымыраға келу деректерді баяу береді. Экранның әр жаңартылуы шамамен 7 BLE хабарын алады, ал толық 36 сағаттық 10 минуттық өлшеу шамамен 170 BLE хабарламасын алады. Осылайша, қосылу аралықтарын ұлғайту экранның жаңартылуын баяулатады және сюжетті көрсетеді.
Lp_BLESerial сыныбында 1536 байтты жіберу буфері бар және BLE сілтемесінің деректермен толып кетуіне жол бермеу үшін әр максималды қосылу аралығы осы буферден 20 байтты бір блок жібереді. Сондай -ақ, сюжеттік деректерді жібергенде, эскиз тек 512 байтты жіберуді күтпейінше ғана деректерді жібереді, содан кейін кейбір деректерді жібергенше қосымша деректерді жіберуді кешіктіреді. Бұл жіберу буферін су басуды болдырмайды. Жіберулердің қысқаруы ұялы телефонға деректерді сенімді жеткізеді, бірақ ол максималды түрде жіберу үшін оңтайландырылмаған.
Бұл жобада қосылу интервалдары әдепкі мәндер ретінде қалдырылды.
Құлдық кідірісі
Ұялы телефонға жіберілетін деректер болмаған кезде, құрылғы ұялы телефоннан қосылу туралы кейбір хабарларды елемеуі мүмкін. Бұл Tx қуатын үнемдейді және ток береді. Slave Latency параметрі - елемеуге болатын байланыс хабарларының саны. Бұл параметрді өзгерту үшін lp_BLESerial setSlaveLatency () әдісін қолдануға болады.
Әдепкі Slave Latency 0 коды ~ 50uA жеткізу тогын берді, әр 30 секунд сайын экран жаңартуларын елемейді, бірақ 5 секунд сайын keepAlive хабарламаларын қосады. Құлдық кідірісін 2 -ге орнату ~ 25uA орташа қосылған ток береді. Құлдық күтуінің 4 параметрі ~ 20uA берді. Жоғары параметрлер жеткізу ағынының төмендеуіне әсер етпеді, сондықтан Slave Latency 4 параметрі қолданылды.
Қосылған кезде, әр 30 секунд сайын pfodApp дисплейді жаңартуды сұрайды. Бұл сенсорды өлшеуге мәжбүр етеді және графикалық дисплейді жаңарту үшін деректерді жібереді. Бұл жаңарту әр 30 секунд сайын 2 секундқа қосымша ~ 66uA әкеледі. Бұл 30 секунд ішінде орташа 4,4uA құрайды. Мұны 20uA -ға қосқанда ~ 25uA қосылымының орташа ток күші беріледі
5 -қадам: Толық қоректену тогы мен батареяның қызмет ету мерзімі
Lp_BLE_TempHumidity_R3.ino -да көрсетілгендей, жоғарыдағы параметрлерді қолдана отырып, Қосылған кездегі жиынтық қоректену ағыны және дисплейді әр 30 секунд сайын жаңартып отырады, шамамен 25uA. Қосылмаса, ол шамамен 29uA құрайды.
Батареяның қызмет ету мерзімін есептеу үшін ~ 29uA тұрақты ток күші есептеледі.
Әр түрлі батареялардың сыйымдылығы мен кернеу сипаттамалары әр түрлі. Бұл жерде қарастырылатын батареялар CR2032 монеталық ұяшығы, CR2450 (N) монеталық ұяшығы, 2 x AAA сілтілі, 2 x AAA литий және LiPo.
Батарея туралы қысқаша мәлімет
Егер Solar Assist қолданылса, батареяның қызмет ету мерзіміне 50% қосыңыз (тәулігіне 8 сағат жарық)
Ескертпе: 22uF LowESR конденсаторы (C1), борттағы NanoV2 22uF конденсаторынан басқа, Solar Cell токын сақтайды, содан кейін оны TX ток импульсіне жеткізеді. Басқаша айтқанда, батарея TX токының бір бөлігін береді. Бұл қосымша 22uF LowESR аккумуляторы күн батареясы қоректену көзі болмаған кезде шамамен 10% қосады, сонымен қатар батареяның қызмет ету мерзімін ұзартқанда батареяның ішкі қарсылығын жоғарылатады. Төмендегі өлшемдер қосымша 22uF конденсаторсыз алынды.
CR2032 - 235mAHr - батареяның қызмет ету мерзімі 10 айCR2450 (N) - 650mAHr (540mAHr) - батареяның қызмет ету мерзімі 2,3 жыл (2 жыл) 2 x AAA сілтілі - 1250mAHr - батареяның қызмет ету мерзімі 3.8.yrs2 x AAA Литий - 1200mAHr - батареяның қызмет ету мерзімі - 4,7 жыл өздігінен жоғары разрядқа байланысты.
CR2032
Бұл монета ұяшығының сыйымдылығы әдетте 235 мА / сағ (Энергайзерлік батарея), номиналды кернеуі 3 В және белгіленген кернеу 2 В. Бұл 8100 сағат немесе ~ 0.9 жыл батареяның қызмет ету мерзімін білдіреді. Бірақ батареяның қызмет ету мерзімі аяқталғанда ішкі ұяшықтың кедергісі жоғарылайды, сондықтан олар Tx ток импульсінің шыңын қамтамасыз ете алмауы мүмкін. Бұл әсерді азайту үшін үлкен жеткізу конденсаторын қолдануға болады, бірақ 10 айлық қызмет мерзімі.
CR2450 (N)
Бұл монета ұяшығының сыйымдылығы әдетте 620 мАч (CR2450N үшін 540 мАч), номиналды кернеуі 3В және разряд кернеуі 2В. Бұл 22, 400 сағат немесе ~ 2 жыл 6 м (CR2450N үшін 18600 сағат ~ 2 жыл 2 м) батареяның қызмет ету мерзімін білдіреді. Бірақ батареяның қызмет ету мерзімі аяқталғанда ішкі ұяшықтың кедергісі жоғарылайды, сондықтан олар Tx ток импульсінің шыңын қамтамасыз ете алмауы мүмкін. Бұл әсерді азайту үшін үлкен жеткізу конденсаторын қолдануға болады, бірақ 2 жыл 4 м (2 жыл N) қызмет мерзімі.
Ескерту: CR2450N нұсқасының қалың ерні бар, бұл CR2450N ұстағышына дұрыс орнатылуын болдыртпауға көмектеседі. Сіз CR2450N ұстағышына CR2450N және CR2450 ұяшығын кірістіре аласыз, бірақ CR2450N ұстағышына CR2450 ұяшығын кірістіре алмайсыз
2 x AAA сілтілі жасушалар
Бұл батареялардың сыйымдылығы шамамен 1250 мАч (Энергайзерлік батарея) өте төмен токтар үшін, номиналды кернеуі 2x1.5V = 3V және белгіленген разряд кернеуі 2x0.8V = 1.6V. Бірақ бұл разряд кернеуі Si7021 сенсорының жұмыс кернеуінен төмен (1.9В), сондықтан батареяны тек ~ 1В дейін пайдалануға болады. Бұл сыйымдылықты шамамен 10% -дан 15% -ға төмендетеді, яғни ~ 1000mAHr.
Бұл 34, 500 сағат немесе ~ 4 жыл батареяның қызмет ету мерзімін білдіреді. Бірақ батареяның қызмет ету мерзімі аяқталғанда ішкі ұяшықтың кедергісі жоғарылайды, сондықтан олар Tx ток импульсінің шыңын қамтамасыз ете алмауы мүмкін. Бұл әсерді азайту үшін үлкен жеткізу конденсаторын қолдануға болады, бірақ 3 жыл 10м қызмет мерзімі. Ескерту Сілтілі аккумуляторлар жылына 2% -дан 3% -ға дейін өздігінен зарядталады.
2 x AAA литий жасушалары
Бұл батареялардың сыйымдылығы шамамен 1200mAhr (Энергайзерлік батарея), номиналды кернеуі 2x1.7V = 3.4V, төмен токтарда және разрядты кернеуі 2x1.4V = 2.4V. Бұл 41, 400 сағат немесе 4 жыл 8 м батареяның қызмет ету мерзімін білдіреді.
LiPo зарядталатын батареясы
Бұл аккумуляторлар әр түрлі сыйымдылықта 100mAhr -ден 2000mAhr -ге дейін, жалпақ форматта және зарядталған кернеуі 4.2V және разряд кернеуі> 2.7V. Бірақ оларда айына 2% -3% (яғни жылына 24% -дан 36% -ға дейін) жоғары өздігінен разряд бар, сондықтан олар басқа аккумуляторлар сияқты қолдануға жарамайды.
6 -қадам: баламалы жеткізілім - күн батареясы, тек батарея, тек күн
Батарея плюс Күн көмекшісі
Жоғарыда салынған құрылғыда батарея мен күн батареясының көмегі қолданылады. Күн батареялары батарея кернеуінен көп кернеу шығарғанда, күн батареялары мониторды қуаттандырады, осылайша батареяның қызмет ету мерзімін ұзартады. Әдетте батареяның қызмет ету мерзімін тағы 50%-ға ұзартуға болады.
Қолданылатын күн панельдері шағын, 50 мм х 30 мм, арзан, ~ 0,50 доллар және қуаты төмен. Олар номиналды түрде 5В панельдер, бірақ 5В генерациялау үшін тікелей күн сәулесі қажет. Бұл жобада екі панель тізбектей жалғанған, осылайша мониторды терезенің жанында, күн сәулесі түспейтін жерге қою батарея қуатын алмастыру үшін жеткілікті. Тіпті жақсы жарықтандырылған бөлме немесе үстел шамы күн батареялары> 33уА -да> 3,3 В кернеуін шығарып, батареядан алуға жеткілікті.
Температура / ылғалдылық мониторын күн сәулесінен тыс жерге қоюға болатынын анықтау үшін қарапайым күнтізбелік панель жасалды. Жоғарыдағы суреттен көріп отырғаныңыздай, 100К резисторға қосылған екі панель 100К арқылы 5.64В, яғни 5.64В кезінде 56uA ток шығарады. Бұл мониторды батареядан қуаттандыруға жеткілікті. 3В номиналды аккумуляторлық кернеуден жоғары кез келген кернеудің көрсеткіші батареяның орнына күн батареялары мониторды қуаттайтынын білдіреді.
Температура ылғалдылығын бақылау схемасындағы екі диод күн батареялары мен батареяларды бір -бірінен оқшаулап, оларды кері полярлықта қосудан сақтайды. 10В 1В зенер мен 470R сериялы резистор NanoV2 борттық реттегішін күн сәулесіндегі екі күн батареясынан жоғары кернеуден қорғайды, әсіресе егер 5В зарядталатын батареялардың орнына 12В ұяшықтар қолданылса. <5В қалыпты жұмыс кезінде 10В зенер тек ~ 1uA тартады.
Тек батарея
Тек аккумулятормен қамтамасыз ету үшін R1, D1 және D3 пен күн батареяларын алып тастаңыз. Егер сіз полярлықтың кері қорғанысын қаламасаңыз, D1 -ді сыммен ауыстыруға болады.
Тек Күн
Мониторды аккумуляторсыз тек күн ұяшықтарынан қуаттандыру үшін басқа қоректендіру тізбегі қажет. Мәселе мынада, монитор 29uA жұмыс істейтін кезде, nRF52 қосылған кезде ~ 5mA 0,32 секундқа созылады. Жоғарыда көрсетілген схема (pdf нұсқасы) MAX8881 реттегішін 2 х 1000уФ кіріс конденсаторлары 4,04 В дейін зарядталғанша өшіреді. Содан кейін MAX6457 nRF52 (NanoV2) қуатын қосу үшін MAX8881 SHDN кірісін босатады 2 x 1000uF конденсаторлары қажетті іске қосу тогын береді.
Бұл мониторда күн қуаты жеткілікті болған кезде оны 29uA -де жұмыс істеуге мүмкіндік береді.
7 -қадам: Қорытынды
Бұл оқулық nRF52832 микросхемасы үшін Arduino -да өте төмен қуатты BLE жобасы ретінде батарея/күн энергиясымен жұмыс істейтін температуралық ылғалдылық мониторын ұсынды. ~ 29uA жеткізу токтары, қосылу параметрлерін реттеу арқылы қол жеткізіледі. Бұл CR2032 монеталық ұялы батареяның қызмет ету мерзімінің 10 айдан асуына әкелді. Сыйымдылығы жоғары монеталар мен батареялар үшін ұзағырақ. Екі арзан күн батареясын қосу батареяның қызмет ету мерзімін 50% немесе одан да көп ұзартты. Мониторды күн батареяларынан қуаттандыру үшін бөлмедегі жарық шам немесе үстел шамы жеткілікті.
Мониторды сыйымдылығы төмен күн батареяларынан жұмыс істеуге мүмкіндік беретін арнайы қуат тізбегі ұсынылды.
Тегін pfodDesigner сізге мәзірлерді/қосалқы мәзірлерді құруға, күнді/уақытты салыстыруға және деректерді тіркеуге, содан кейін сіз үшін төмен қуатты Arduino эскизін жасауға мүмкіндік береді. Мұнда реттелетін интерфейс pfodApp сызу примитивтері арқылы кодталған. PfodApp арқылы қосылу пайдаланушы интерфейсін көрсетеді және монитор ~ 29uA қолданып жатқан кезде көрсеткіштерді жаңартады
Android бағдарламалау қажет емес. pfodApp мұның бәрін өңдейді.
Ұсынылған:
Өте төмен қуатты WiFi үйді автоматтандыру жүйесі: 6 қадам (суреттермен)
Өте төмен қуатты WiFi үйді автоматтандыру жүйесі: Бұл жобада біз бірнеше негізгі қадаммен үйдегі жергілікті автоматтандыру жүйесін қалай құруға болатынын көрсетеміз. Біз орталық WiFi құрылғысы ретінде жұмыс істейтін Raspberry Pi қолданамыз. Ақырғы түйіндер үшін біз IOT Cricket аккумуляторын жасау үшін қолданамыз
4Duino-24: 4 қадамдары бар сымсыз импульстік жиілік мониторы
4Duino-24 бар сымсыз импульстік жылдамдық мониторы: сымсыз импульстік жылдамдық мониторы-бұл ауруханалар мен емханаларға арналған тұжырымдамалық жоба, оның негізгі функциясы-медбикелер мен дәрігерлердің ауруханадағы әрбір науқасқа бару уақытын азайту. Әдетте дәрігерлер мен медбикелер әр науқасқа тексеруден өтеді
Өте қарапайым " Жұмыртқа өте жақсы " Түнгі жарық: 5 қадам
Өте қарапайым " Жұмыртқа өте жақсы " Түнгі жарық: Бұл Eggcellent түнгі жарықтың өте қарапайым нұсқасы!. Егер сіз бұл нұсқаулықты көрмесеңіз, мен сізге оны қарауды ұсынамын. Мен бұған қол жеткізгім келді, бірақ шыдамым жетпеді. Сондықтан мен оны жасаудың оңай жолын таптым. Мұны тексеріңіз
Өте қарапайым Дегенмен өте тиімді пранк (компьютерлік пранк): 3 қадам
Өте қарапайым … Дегенмен өте тиімді пранк (компьютерлік пранк): Бұл нұсқаулық өте қарапайым, бірақ өте тиімді! Не болады: Сіз жәбірленушінің жұмыс үстеліндегі барлық белгішелерді жасырасыз. Сіз пранк жасағаннан кейін компьютерді көргенде жәбірленуші шошып кетеді. Бұл компьютерге ешқандай зиян келтіре алмайды
Өте портативті, өте қатты, ұзақ қызмет ететін, батареямен жұмыс істейтін динамиктер: 9 қадам (суреттермен)
Супер портативті, супер қатты, ұзақ қызмет ететін, батареямен жұмыс істейтін динамиктер: бақша кештері/далалық ойын -сауықтар үшін қуатты динамик жүйесі болғанын қалаған. Көптеген адамдар бұл нұсқаулықтың артық екенін айтады, өйткені арзан күндердегі көптеген боббокс стиліндегі радиостанциялар немесе ipod стиліндегі mp3 д