- Блок шема паметног бројача енергије Распберри Пи
- Потребне компоненте
- Припрема Пи
- Шема круга мерача енергије Пи
- Питхон код за Пи мерач енергије
- Демо
Енергетски монитори, било да покривају цео стан или су постављени за надгледање само једног уређаја, пружају вам начин да пратите своју потрошњу и извршите неопходна подешавања. Иако постају све доступнији на тржишту, произвођач у мени и даље осећа да ће бити сјајна идеја направити ДИИ верзију која би могла бити прилагођена одређеним личним захтевима. Као такви, за данашњи водич, направићемо монитор потрошње енергије Распберри Пи способан за постизање потрошње енергије и учитавање на Адафруит.ио.
Такође можете погледати ИоТ мерач енергије базиран на Ардуину и препаид ГСМ мерач енергије који смо раније направили.
Блок шема паметног бројача енергије Распберри Пи
Блок дијаграм који приказује како систем функционише приказан је у наставку.
Да бирају јединице једну за другом;
Јединица за откривање струје: Јединица за откривање струје састоји се од струјног сензора СЦТ -013 који може мерити до 100А, у зависности од верзије коју купујете. Сензор трансформише струју која пролази кроз жицу на којој је стегнута у малу струју која се затим у АДЦ доводи мрежом делитеља напона.
Јединица за осетљивост напона : Иако нисам успео да положим руке на модул сензора напона, направићемо „уради сам“ трансформатор без трансформатора који мери напон користећи принцип делилаца напона. Направи "уради сам" сензор напона укључује фазу разделника напона где се високи напон трансформише у вредност погодну за улаз у АДЦ.
Јединица за обраду: Процесорска јединица се састоји од АДЦ и Распберри пи. АДЦ узима аналогни сигнал и шаље га на Распберри Пи, који затим израчунава тачну количину енергије која се троши и шаље га у назначени облак уређаја. У сврху овог упутства, користићемо Адафруит.ио као наш Цлоуд Цлоуд. Изградили смо и друге
Изјава о одрицању одговорности: Пре него што започнемо, важно је напоменути да овај пројекат подразумева повезивање са напајањем наизменичном струјом која је опасна и може бити фатална ако се са њом не безбедно поступа. Уверите се да имате искуства у раду са АЦ пре него што ово покушате.
Спремни? Уронимо.
Потребне компоненте
За изградњу овог пројекта потребне су следеће компоненте;
- Распберри Пи 3 или 4 (поступак би требао бити исти за РПИ2 са ВиФи Донгле-ом)
- АДС1115 16битни И2Ц АДЦ
- ИХДЦ СЦТ-013-000
- 2.5А 5В МицроУСБ адаптер за напајање
- Отпорник 2В 10К (1)
- Отпорник 1 / 2В 10К (2)
- Отпор 33 ома (1)
- Отпорник снаге 2В 3.3к (1)
- ИН4007 Диода (4)
- 3.6в Зенер диода (1)
- 10к потенциометар (или унапред подешен) (1)
- 50в 1уф кондензатор
- Кондензатор 50в 10уф (2)
- БреадБоард
- Јумпер Вире
- Остала додатна опрема за употребу Распберри Пи-а.
Поред горе наведених компоненти хардвера, пројекат такође захтева неке софтверске зависности и библиотеке које ћемо инсталирати током наставка.
Иако ће овај водич радити без обзира на коришћени ОС Распберри Пи, ја ћу користити ОС Бусберри Распберри Пи који ради на Пи 3 (требало би да ради и на Пи 4) и претпостављам да сте упознати са подешавањем Распберри Пи са ОС Распбиан Бустер (отприлике исти процес као и претходне верзије), а ви знате како да ССХ у њега употребите терминални софтвер попут хипера. Ако имате проблема са било којим од овога, на овој веб локацији постоји мноштво туторијала за Распберри Пи који вам могу помоћи
Припрема Пи
Пре него што почнемо да повезујемо компоненте и кодирање, постоји неколико једноставних задатака које морамо обавити на Распберри Пи да бисмо били сигурни да смо спремни.
Корак 1: Омогућавање Пи И2Ц
У основи данашњег пројекта није само малина пи већ и АДС1115 16-битни И2Ц заснован АДЦ. АДЦ нам омогућава повезивање аналогних сензора на Распберри Пи, јер сам Пи нема уграђени АДЦ. Подноси податке путем сопственог АДЦ-а и прослеђује их на малина пи преко И2Ц. Као такви, морамо да омогућимо И2Ц комуникацију на Пи-у како би могао да комуницира са њим.
И2Ц магистрала Пи-а може се омогућити или онемогућити путем странице за конфигурацију малине пи-а. Да бисте га покренули, кликните на икону Пи на радној површини и одаберите поставке праћене конфигурацијом Распберри пи.
Ово би требало да отвори страницу за подешавање. Проверите омогућени радио дугме за И2Ц и кликните на ОК да бисте га сачували и поново покрените Пи да изврши промене.
Ако користите Пи у режиму без главе, страници за конфигурацију Распбиан-а можете приступити покретањем судо распи-цонфиг.
Корак 2: Инсталирање библиотеке АДС11кк из компаније Адафруит
Друга ствар коју треба да урадимо је да инсталирамо АДС11кк питхон библиотеку која садржи функције и рутине које нам олакшавају писање питхон скрипте за преузимање вредности из АДЦ-а.
Следите кораке у наставку да бисте то урадили.
- Ажурирајте свој пи покретањем; судо апт-гет упдате а затим је судо апт-гет упграде то ће ажурирати пи осигурава постоје проблеми компатибилности за сваког новог софтвера одаберете да инсталирате.
- Затим покрените наредбу цд ~ да бисте били сигурни да сте у матичном директоријуму.
- Даље, инсталирањем основних инсталација покрените; судо апт-гет инсталл буилд-битно питхон-дев питхон-смбус гит
- Затим клонирајте директоријум Адафруит гит који садржи АДС библиотеку покретањем; гит клон хттпс://гитхуб.цом/адафруит/Адафруит_Питхон_АДС1к15.гит
- Промените се у директоријум клониране датотеке и покрените датотеку за подешавање помоћу; цд Адафруит_Питхон_АДС1к1з праћен судо питхон сетуп.пи инсталл
Након овога, инсталација би сада требала бити готова.
Можете тестирати инсталацију библиотеке тако што ћете повезати АДС1115 као што је приказано у одељку шеме доле и покренути узорак кода који сте добили уз библиотеку тако што ћете се прво променити у њену фасциклу; цд примери и покретање примера користећи; питхон симплетест.пи
Корак 3: Инсталирајте Адафруит.ИО Питхон модул
Као што је поменуто током увода, објавићемо очитавања са сензора напона и струје на Адафруит ИО Цлоуд-у са којег ће се моћи видети из целог света или повезати са ИФТТТ-ом да бисте извршавали све радње које желите.
Питхон модул Адафруит.ИО садржи потпрограме и функције којима ћемо се служити за лак пренос података у облак. Следите кораке у наставку да бисте инсталирали модул.
- Покрените цд ~ за повратак у почетни директоријум.
- Затим покрените наредбу; судо пип3 инсталирај адафруит-ио . Требало би да инсталира Адафруит ИО питхон модул.
Корак 4: Подесите свој рачун Адафруит.ио
Да бисте користили Адафруит ИО, дефинитивно ћете морати прво да направите налог и набавите АИО кључ. Овај АИО кључ заједно са вашим корисничким именом користиће ваша питхон скрипта за приступ услузи облака Адафруит ИО. Да бисте креирали рачун, посетите; хттпс://ио.адафруит.цом/, кликните на дугме за почетак рада и попуните све потребне параметре. Када се регистрација заврши, требало би да видите дугме за приказ АИО тастера на десној страни почетне странице.
Кликните на њега да бисте добили свој АИО кључ.
Са копираним кључем, спремни смо за полазак. Међутим, да бисте олакшали процес слања података услузи у клауду, можете и да креирате фидове којима ће се подаци слати. (више информација о томе шта су АИО фидови можете пронаћи овде). Будући да ћемо у основи слати потрошњу енергије, створићемо напајање. Да бисте креирали фид, кликните на „фидови“ на врху АИО странице и кликните на додај нови фид.
Дајте му како год желите име, али да ствар буде једноставнија, назваћу је потрошња енергије. Такође можете одлучити да креирате напонске и струјне напоне и прилагодите код тако да им објавите податке.
Уз све ово на месту, сада смо спремни да започнемо изградњу пројекта.
Шема круга мерача енергије Пи
Шеме пројекта Распберри Пи Енерги Монитор су релативно сложене и укључују повезивање на наизменични напон као што је раније поменуто, љубазно се побрините да предузмете све мере предострожности потребне да бисте избегли електрични удар. Ако нисте упознати са безбедним руковањем напонима наизменичне струје, нека задовољство у примени овог на плочи, без напајања, буде задовољавајуће.
Шеме укључују повезивање јединице сензора напона и струје на АДЦ који затим шаље податке са сензора на Распберри Пи. Да би се везе лакше пратиле, шеме за сваку јединицу су представљене саме.
Шема тренутног сензора
Повежите компоненте за тренутни сензор како је приказано на доњим шемама.
Струјни трансформатор који се користи у овом пројекту приказан је доле, као што видите имамо три жице од њега, и то уземљење, Цоут и 3.3В
Шеме сензора напона
Повежите компоненте за сензор напона као што је приказано у доњим шемама.
Шема процесне јединице
Повежите све заједно са АДЦ (АДС1115) повезаним на малина пи и излазом сензора за струју и напон који су повезани на пин А0 и А1 на АДС1115.
Уверите се да су ГНД пинови обе сензорске јединице повезани са ГНД АДЦ-а или малине пи.
Да ствари постану мало мање климаве, имплементирао сам сензоре напона и струје на Протобоард. Такође, не препоручује се изградња мрежног круга наизменичне струје на табли. Ако учините исто, ваше коначно подешавање може изгледати као на слици испод;
Када су везе завршене, сада смо спремни да напишемо код за пројекат.
Питхон код за Пи мерач енергије
Као и обично код наших малина пи пројеката, развићемо код за пројекат користећи питхон. Кликните на икону распберри пи на радној површини, изаберите програмирање и покрените било коју верзију питхона коју желите да користите. Користићу Питхон 3 и неке функције у питхон 3 можда неће радити за питхон 2.7. Дакле, можда ће бити потребно извршити неке значајне промене у коду ако желите да користите питхон 2.7. Направићу рашчлањивање кода на мале исечке и на крају ћу поделити комплетан код са вама.
Спремни? Хладан.
Алгоритам иза кода је једноставан. Наша скрипта питхон поставља упит АДС1115 (преко И2Ц) за очитавање напона и струје. Примљена аналогна вредност се прима, узоркује и добија се средња квадратна вредност напона и струје. Снага у киловатима се израчунава и шаље у феед Адафруит ИО након одређених интервала.
Скрипту започињемо укључивањем свих библиотека које ћемо користити. То укључује уграђене библиотеке као што су библиотека времена и математике и друге библиотеке које смо раније инсталирали.
време увоза импорт Адафруит_АДС1к15 из Адафруит_ИО импорт * импорт матх
Даље, креирамо инстанцу библиотеке АДС1115 која ће се користити за адресирање физичког АДЦ-а у будућности.
# Креирајте АДС1115 АДЦ (16-битну) инстанцу.. адц1 = Адафруит_АДС1к15.АДС1115 ()
Затим наведите своје корисничко име за адафруит ИО и кључ „АИО“.
усернаме = 'унесите своје корисничко име између ових наводника' АИО_КЕИ = 'ваш аио кључ' аио = Клијент (корисничко име, АИО_КЕИ)
Молимо вас да кључ сачувате на сигурном. Може се користити за приступ вашем рачуну адафруит ио без вашег одобрења.
Даље, креирамо неке променљиве као добитак за АДЦ, број узорака који желимо и подесимо заокруживање које дефинитивно није критично.
ГАИН = 1 # погледајте потенцијалне вредности у документацији адс1015 / 1115. узорци = 200 # број узорака узетих из огласа1115 места = инт (2) # сет заокруживања
Даље, креирамо вхиле петљу за праћење струје и напона и у интервалима шаљемо податке компанији Адафруит ио. Петља вхиле започиње постављањем свих променљивих на нулу.
вхиле Труе: # ресет променљивих цоунт = инт (0) датаи = датав = макИВалуе = 0 #мак тренутна вредност у узорку макВВалуе = 0 #мак вредност напона у узорку ИрмсА0 = 0 # роот роот квадратна струја ВрмсА1 = 0 # роот роот квадратни напон амперсА0 = 0 # тренутни вршни волтиА1 = 0 # киловати напона = плутају (0)
Будући да радимо са наизменичним круговима, излаз СЦТ-013 и сензор напона биће синусни талас, па ћемо, како бисмо израчунали струју и напон синусног таласа, морати да добијемо вршне вредности. Да бисмо добили вршне вредности, узећемо узорке и напона и струје (200 узорака) и пронаћи највише вредности (вршне вредности).
за бројање у опсегу (узорци): датаи.инсерт (цоунт, (абс (адц1.реад_адц (0, гаин = ГАИН)))) датав.инсерт (цоунт, (абс (адц1.реад_адц (1, добитак = ГАИН)))) # погледајте да ли имате нови испис макВалуе (датаи) ако је датаи> макИВалуе: макИВалуе = датаи ако је датав> макВВалуе: макВВалуе = датав
Даље, вредности стандардизујемо претварањем из вредности АДЦ у стварну вредност након чега користимо једначину корена средњег квадрата за проналажење ефективног напона и струје.
# израчунати струју користећи узорковане податке # коришћени сцт-013 је калибрисан за излаз од 1000мВ при 30А. ИрмсА0 = флоат (макИВалуе / флоат (2047) * 30) ИрмсА0 = округли (ИрмсА0, места) ампсА0 = ИрмсА0 / матх.скрт (2) ампсА0 = округли (ампсА0, места) # Израчунај напон ВрмсА1 = флоат (макВВалуе * 1100 / флоат (2047)) ВрмсА1 = округли (ВрмсА1, места) волтсА1 = ВрмсА1 / матх.скрт (2) волтсА1 = округли (волтсА1, места) принт ('Волтаге: {0}'. формат (волтсА1)) принт ('Цуррент: {0} '. Формат (ампсА0))
Након овога, снага се израчунава и подаци се објављују на адафруит.ио
# израчунајте снагу напајања = округла (ампереА0 * волтиА1, места) принт ('Снага: {0}'. формат (снага)) # објавите податке у адафруит.ио ЕнергиУсаге = аио.феедс ('ЕнергиУсаге') аио.сенд_дата (' Употреба енергије ', снага)
За бесплатне налоге, адафруит захтева да постоји одређено временско кашњење између захтева или отпремања података.
# Сачекајте пре понављања тиме лооп.слееп (0)
Комплетан код за овај пројекат је доступан на дну ове странице
Демо
Када је код завршен, сачувајте га и притисните дугме за покретање на питхон ИДЕ-у. Пре овога, уверите се да је Пи повезан на Интернет путем ВиФи-а или ЛАН-а и да су ваш аио кључ и корисничко име тачни. Након неког времена требали бисте почети да видите енергетске податке (снагу) приказане на фееду на Адафруит.ио. Моје подешавање хардвера током демонстрације је било овако
Да бисте ствари наставили даље, можете да направите контролну таблу на адафруит.ио и додате компоненту графикона тако да можете добити графички приказ података као што је приказано на доњој слици.
То је то, момци, сада можете да пратите своју потрошњу енергије било где у свету. Важно је напоменути да дефинитивно треба урадити још много финог подешавања и калибрације како би се то претворило у заиста тачно решење, али верујем да вам ово даје готово све што је потребно да бисте наставили.
Слободно ми упуцајте питања о пројекту путем одељка за коментаре. Покушаћу да одговорим на што већи број. До следећег пута.