Влажност, температура и притисак су три основна параметра за изградњу било које метеоролошке станице и мерење услова околине. Претходно смо изградили мини метеоролошку станицу користећи Ардуино и овог пута проширујемо метеоролошку станицу са Распберри Пи. Овај пројекат заснован на ИоТ-у има за циљ да прикаже тренутне параметре влажности, температуре и притиска на ЛЦД-у, као и на Интернет серверу користећи Распберри Пи, што га чини Распберри Пи Веатхер Статион. Ову поставку можете инсталирати било где и можете надгледати временске прилике тог места са било ког места на свету преко Интернета, не само да ће приказати тренутне податке, већ може приказати и прошле вредности у облику графикона.
За мерење барометарског притиска користили смо сензор влаге и температуре ДХТ11 и сензор притиска БМ180. Овај Термометар и Целзијусова скала Термометар и Мерач влажности у процентима приказује температуру и влажност околине путем ЛЦД екрана, а барометарски притисак је приказан у милибарима или хПа (хектопаскалним). Сви ови подаци шаљу се ТхингСпеак серверу за праћење уживо са било ког места у свету путем Интернета. Проверите Демонстрацијски видео и програм Питхон, дати на крају овог водича.
Радно и ТхингСпеак подешавање:
Овај пројекат заснован на ИоТ-у има четири одељка. Прво сензор ДХТ11 осећа податке о влажности и температури, а сензор БМ180 мери атмосферски притисак. Као друго, Распберри Пи очитава излаз ДХТ11 модула сензора коришћењем једножичног протокола и излаз сензора притиска БМ180 коришћењем И2Ц протокола и екстрахује вредности оба сензора у одговарајући број у процентима (влажност), Целзијусовој скали (температура), хектоПаскалу или милибару (притисак). Треће, ове вредности се шаљу серверу ТхингСпеак помоћу уграђеног Ви-Фи-ја у Распберри Пи 3. И на крају ТхингСпеак анализира податке и приказује их у графичком облику. ЛЦД се такође користи за локално приказивање ових вредности.
ТхингСпеак пружа веома добар алат за пројекте засноване на ИоТ-у. Коришћењем веб странице ТхингСпеак можемо да надгледамо своје податке и контролишемо систем преко Интернета, користећи канале и веб странице које пружа ТхингСпеак. ТхингСпеак „прикупља“ податке од сензора, „анализира и визуализује“ податке и „делује“ покретањем реакције. Претходно смо детаљно објаснили слање података на ТхингСпеак, тамо можете да проверите. Овде укратко објашњавамо употребу ТхингСпеак-а за ову Распберри Пи метеоролошку станицу.
Прво морате да направите налог на веб локацији ТхингСпеак и на њему направите „Нови канал“. У новом каналу морате да дефинишете нека поља за податке које желите да надгледате, као што ћемо у овом пројекту створити три поља за податке о влажности, температури и притиску.
Сада кликните на картицу 'АПИ кључеви' и сачувајте АПИ и кључеве Врите анд Реад АПИ, овде користимо само тастер Врите. Морате копирати овај кључ у променљиву „кеи“ у коду.
После тога кликните на „Увоз / извоз података“ и копирајте УРЛ ажурирања ГЕТ захтева за феед канала, а то је:
хттпс://апи.тхингспеак.цом/упдате?апи_кеи=30БЦДСРК52АОИ3УА&фиелд1=0
Сада нам је потребан овај „УРЛ за добијање захтева за феед“ у нашем Питхон коду да бисмо отворили „апи.тхингспеак.цом“ и затим послали податке користећи овај захтев за феед као низ упита. И пре него што пошаље податке, корисник треба да унесе податке о температури, влажности и притиску у овај упит Стринг користећи променљиве у програму, проверите код на крају овог чланка.
УРЛ = 'хттпс://апи.тхингспеак.цом/упдате?апи_кеи=%с'% кеи финалУРЛ = УРЛ + "& фиелд1 =% с & фиелд2 =% с"% (хуми, темп) + "& фиелд3 =% с"% (притисак)
Рад ДХТ11 заснован је на једножичној серијској комуникацији за преузимање података са ДХТ11. Овде смо користили библиотеку АдаФруит ДХТ11 за повезивање ДХТ11 са Распберри Пи. Распберри Пи овде прикупља податке о влажности и температури са ДХТ11 и атмосферског притиска са сензора БМП180, а затим их шаље на ЛЦД екран 16к2 и ТхингСпеак сервер. ТхингСпеак приказује податке у облику графикона како је приказано испод:
Овде можете сазнати више о сензору ДХТ11 и његовом повезивању са Ардуином.
Кружни дијаграм:
Распберри Пи конфигурација и програм Питхон:
Овде користимо језик Питхон за Програм. Пре кодирања, корисник треба да конфигурише Распберри Пи. Можете да погледате наше претходне водиче за почетак рада са Распберри Пи и инсталирање и конфигурисање Распбиан Јессие ОС у Пи.
Као прво, морамо инсталирати датотеке библиотеке сензора Адафруит Питхон ДХТ да бисмо покренули овај пројекат на Распберри Пи. Да бисмо то урадили потребно је да следимо дате команде:
судо апт-гет инсталл гит-цоре судо апт-гет упдате гит цлоне хттпс://гитхуб.цом/адафруит/Адафруит_Питхон_ДХТ.гит цд Адафруит_Питхон_ДХТ судо апт-гет инсталл буилд-битни питхон-дев судо питхон сетуп.пи инсталл
Након овога, корисник треба да омогући Распберри Пи И2Ц тако што ће ући и у конфигурацију софтвера РПи:
судо распи-цонфиг
Затим идите на „Адванце Оптионс“, одаберите „И2Ц“ и „Енабле“.
Програмски део овог пројекта игра веома важну улогу за извођење свих операција. Пре свега укључујемо све потребне библиотеке, иницијализујемо променљиве и дефинишемо пинове за ЛЦД и ДХТ11.
импорт сис импорт РПи.ГПИО ас ГПИО импорт ос импорт Адафруит_ДХТ импорт урллиб2 импорт смбус импорт тиме фром цтипес импорт ц_схорт #Регистер Аддресс регЦалл = 0кАА……………..
У функцији деф маин (): доњи код се користи за слање података на сервер и приказивање преко ЛЦД екрана, непрекидно у вхиле петљи.
деф маин (): принт 'Систем Реади…' УРЛ = 'хттпс://апи.тхингспеак.цом/упдате?апи_кеи=%с'% кеи принт "Ваит…." вхиле Труе: (хуми, темп) = реадДХТ () (притисак) = реадБмп180 () лцдцмд (0к01) лцдстринг ("Хуми # Темп # П (хПа)") лцдстринг (хуми + '%' + "% сЦ% с"% (темп, притисак)) финалУРЛ = УРЛ + "& фиелд1 =% с & фиелд2 =% с"% (хуми, темп) + "& фиелд3 =% с"% (притисак) испис финалУРЛ с = урллиб2.урлопен (финалУРЛ); принт хуми + "" + темп + "" + притисак с.цлосе () тиме.слееп (10)
За ЛЦД се функција деф лцд_инит () користи за иницијализацију ЛЦД-а у четворобитном режиму, функција деф лцдцмд (цх) се користи за слање наредби на ЛЦД, функција деф лцддата (цх) се користи за слање података на ЛЦД и деф лцдстринг (Стр ) функција се користи за слање низа података на ЛЦД. Све ове функције можете проверити у коду датом касније.
Дата функција деф реадДХТ () користи се за читање ДХТ11 сензора:
деф реадДХТ (): хуми, темп = Адафруит_ДХТ.реад_ретри (Адафруит_ДХТ.ДХТ11, ДХТпин) ретурн (стр (инт (хуми)), стр (инт (темп)))
функција деф реадБмп180 се користи за очитавање притиска са БМ180 сензора. БМ180 сензор такође може давати температуру, али овде смо га користили само за израчунавање притиска.
деф реадБмп180 (аддр = девицеАдд): валуе = бус.реад_и2ц_блоцк_дата (аддр, регЦалл, 22) # Читање података о калибрацији # Претварање података бајта у вредности речи АЦ1 = цонверт1 (вредност, 0) АЦ2 = цонверт1 (вредност, 2) АЦ3 = цонверт1 (вредност, 4) АЦ4 = цонверт2 (вредност, 6)……………………..
Дакле, ово је основна метеоролошка станица Распберри Пи, можете је даље проширити да бисте мерили разне временске параметре као што су брзина ветра, температура тла, осветљеност (лукс), киша, квалитет ваздуха итд.