Распберри Пи

Праћење температуре у Распберри Пи

Праћење температуре у Распберри Пи


Надгледање температура може бити неопходан код многих ваших пројеката Распберри Пи. У Распберри Пи-у је то релативно лако, а компоненте потребне за овај пројекат нису прескупе.Овај чланак вам показује како да користите ДС18Б20 модул дигиталног термометра за надгледање температуре помоћу Распберри Пи. Чланак такође показује како се креира веб апликација за приказ температуре.

Ствари које ће вам требати:

Да бисте испробали примере у овом чланку, требаће вам следеће:

  1. Рачунар са једном плочом Распберри Пи
  2. Адаптер за напајање за Распберри Пи уређај
  3. МицроСД картица са инсталираним Распберри Пи ОС
  4. Мрежна повезаност на Распберри Пи уређају
  5. Бреадбоард
  6. 3 ком спојних жица између жена и жена
  7. Неке спојне жице између мушкараца и мушкараца
  8. Отпорник од 10 к
  9. Модул дигиталног термометра ДС18Б20

ДС18Б20 Дигитални термометри

Ако држите дигитални термометар ДС18Б20 као што је приказано на доњој слици, први клин ће бити уземљен (ГНД), други пин ће бити ПОДАЦИ, а трећи пин ће бити ВЦЦ.

Кружни дијаграм

Шема споја монитора температуре приказана је на доњој слици.

Ево, ПИН2 / 5В уређаја Распберри Пи треба повезати са ПИН3 / ВЦЦ модула дигиталног термометра.

Тхе ПИН7 / ГПИО4 уређаја Распберри Пи треба повезати са ПИН2 / ДАТА модула дигиталног термометра.

Тхе ПИН9 / ГНД уређаја Распберри Пи треба повезати са ПИН1 / ГНД модула дигиталног термометра.

А Отпорник 10кΩ треба да буде повезан између ПИН2 и ПИН3 модула дигиталног термометра.

Требали бисте држати Распберри Пи како је приказано на доњој слици. Тада ће бити горњи леви клин ПИН1. Прибадача поред ПИН1 ће бити ПИН2. Затим, ако се померите напред за један ред, биће леви ПИН3 а онај прави ће бити ПИН4, и тако даље.

Након што повежете све компоненте са својим Распберри Пи уређајем, требало би да изгледа отприлике овако:

Погледајте ближе како сам ставио компоненте на плочу за плочу.

Након што повежете све компоненте са својим Распберри Пи уређајем, укључите Распберри Пи уређај. Затим се повежите са Распберри Пи уређајем путем ВНЦ или ССХ.

Очитавање података о температури са дигиталног термометра ДС18Б20

Модул термометра ДС18Б20 користи 1-жични комуникацијски протокол за слање података на Распберри Пи. Подразумевано, 1-жични интерфејс није омогућен. Интерфејс можете лако омогућити помоћу алата за конфигурацију Распберри Пи.

Покрените да бисте омогућили 1-жични интерфејс распи-цонфиг са следећом командом:

$ судо распи-цонфиг

Изаберите Опције повезивања и притисните .

Изаберите 1-Вире и притисните .

Изаберите и притисните .

Притисните .

Да бисте изашли из распи-цонфиг услужни програм, притисните .

Да би промене ступиле на снагу, поново покрените Распберри Пи на следећи начин:

$ судо ребоот

Да бисте проверили да ли је в1_гпио и в1_тхерм кернел модули су учитани, покрените следећу наредбу:

$ судо лсмод | греп в1

Ако је из неког разлога, в1_тхерм модул није учитан, онда га можете ручно учитати следећом наредбом:

$ судо модпробе в1_тхерм

Једном када омогућите Једножична комуникација и учитао в1_тхерм модул, нови уређај (28-00000ба693е9, у мом случају) треба навести у / сис / бус / в1 / уређаји директоријума, као што можете видети на снимку екрана испод.

$ лс / сис / бус / в1 / уређаји /

Дођите до новог директоријума, како следи:

$ цд / сис / бус / в1 / девицес / 28-00000ба693е9

Требало би да нађете температура датотеку у директоријуму, као што можете видети на снимку екрана испод.

$ лс -лх

Тхе температура датотека је обична текстуална датотека. Подаци о температури можете прочитати помоћу мачка наредба, како следи:

$ мачка температура

Као што видите, подаци о температури се штампају на конзоли. Ево, 30375 значи 30.375 ° Ц.

Можете користити програмски језик, као што је Питхон или Ноде.јс, да бисте анализирали ове податке о температури и користили их у својој апликацији. Показаћу вам како се то ради у следећем одељку овог чланка.

Да бисте рашчланили податке о температури помоћу програмског језика, требат ће вам апсолутни пут до температура датотека. Ово можете пронаћи помоћу реадлинк наредба, како следи:

$ реадлинк -ф температуре

Направите веб апликацију за приказ података о температури:

У овом одељку ћете научити како да рашчланите податке о температури из модула термометра ДС18Б20 и прикажете их на веб апликацији.

У овом примеру ћу створити АПИ, који ће рашчланити податке о температури из модула термометра ДС18Б20 којем се може приступити из АПИ-ја. Такође ћу направити веб апликацију која ће из АПИ-ја дохватити податке о температури и лепо их приказати. Користићу Ноде.јс програмски језик да то учини. Кодови се отпремају у моје ГитХуб спремиште сховон8 / дс18б20-распберрипи-апи. Можда ћете желети да то проверите ако имате потешкоћа са копирањем и лепљењем кодова из овог чланка.

Чвор.јс није подразумевано инсталиран на Распберри Пи ОС. Али, доступан је у службеном спремишту пакета ОС Распберри Пи. Можете лако инсталирати Ноде.јс из спремишта за пакете ОС Распберри Пи.

Прво ажурирајте кеш спремишта АПТ пакета следећом наредбом:

$ судо апт упдате

Затим инсталирајте Ноде.јс и НПМ са следећом командом:

$ судо апт инсталирај нодејс нпм

Да бисте потврдили инсталацију, притисните И а затим притисните .

АПТ менаџер пакета ће преузети и инсталирати све потребне пакете. Може потрајати неко време да се заврши.

У овом тренутку, Ноде.јс и НПМ треба инсталирати.

Онце Ноде.јс и НПМ су инсталирани, проверите да ли је чвор и нпм наредбе су доступне на следећи начин:

$ чвор --верзија
$ нпм --верзија

Надоградите НПМ следећом командом:

$ судо нпм инсталл --глобал нпм

НПМ треба надоградити.

Као што видите, НПМ је ажуриран од верзије 5.8.0 до верзије 6.14.8.

$ ноде --версион $ нпм --версион

Сад тај Чвор.јс и НПМ су инсталирани, креирајте нови директоријум пројекта ~ / дс18б20, као што следи:

$ мкдир -в ~ / дс18б20

Дођите до ~ / дс18б20 директоријум, како следи:

$ цд ~ / дс18б20

Створите празно пакет.јсон датотека са следећом наредбом:

$ нпм инит --и

Инсталирајте изразити.јс библиотека за пројекат са следећом наредбом:

$ нпм инсталл --саве екпресс

Екпресс.јс библиотека би сада требала бити инсталирана.

Направите нову датотеку сервер.јс у директоријуму пројекта, како следи:

$ нано сервер.јс

Унесите следеће редове кодова у сервер.јс датотека.

нека је екпресс = рекуире ('екпресс');
нека фс = рекуире ('фс');
нека сервер = екпресс ();
цонст ПОРТ = 8080;
цонст ВЕБРООТ = './ јавно ';
сервер.гет ('/', експрес.статички (ВЕБРООТ));
сервер.гет ('/ температуре', (рек, рес) =>
нека темпДатаПатх = '/ сис / бус / в1 / девицес / 28-00000ба693е9 / температуре';
нека је температура = фс.реадФилеСинц (темпДатаПатх, кодирање: 'утф8', заставица: 'р') / 1000;
рез.јсон (температуре, рангеСтарт: -55, рангеЕнд: 125);
);
сервер.слушај (ПОРТ, () =>
конзола.лог ('сервер покренут на порту $ ПОРТ');
);

Када завршите, притисните + Икс затим И и да бисте сачували сервер.јс датотеку.

Ево, линија 1 увози изразити, а линија 2 увози фс модул.

Ред 4 иницијализује екпресс.

Линије 6 и 7 дефинишу ЛУКА и ВЕБРООТ константне променљиве. АПИ и веб сервер ће радити ЛУКА (која је 8080, у овом чланку), а веб сервер ће служити статички садржај са ВЕБРООТ (који је јавно / директоријум у директоријуму пројекта у овом чланку).

Ред 9 се користи за конфигурисање Екпресс-а за приказивање статичног садржаја из ВЕБРООТ.

Редови 11-15 дефинишу АПИ крајњу тачку / температура, који ће се користити за добијање података о температури у ЈСОН формату.

У реду 12, темпДатаПатх променљива садржи апсолутни пут до температура датотека модула дигиталног термометра ДС18Б20, приказана у ранијем одељку овог чланка.

У реду 13, подаци о температури се читају са температура датотеку помоћу чвора.јс фс модул, а подаци о температури се чувају у температура променљива.

У реду 14, подаци о температури се штампају у ЈСОН формату. Модул дигиталног термометра ДС18Б20 може мерити између температура од -55 ° Ц до 125 ° Ц. Додао сам то у ЈСОН излазу помоћу рангеСтарт и рангеЕнд својства.

Коначно, ред 17-19 покреће АПИ и веб сервер ЛУКА (која је 8080, у овом чланку).

Створити јавно / директоријум у директоријуму пројекта, како следи:

$ мкдир -в јавни

Покренути сервер.јс програм са следећом командом:

$ ноде сервер.јс

Сервер би требао бити покренут на порту 8080.

Подацима о температури модула термометра ДС18Б20 можете приступити са / температура крајња тачка АПИ-ја.

Покрените да бисте тестирали да ли можете да добијете податке о температури из АПИ-ја увити се, као што следи:

$ цурл -с хттп: // лоцалхост: 8080 / температуре | јсон_пп

Као што видите, подаци о температури се штампају на конзоли у ЈСОН формату. Дакле, АПИ ради.

Притисните + Ц да заустави сервер.

Сада ћу направити веб страницу која ће тражити АПИ сервер за податке о температури и лепо их приказати на страници. Подаци о температури ажурираће се сваких 5 секунди.

Створити нова индекс.хтмл датотека у јавно / директоријум пројекта, како следи:

$ нано јавни / индекс.хтмл

Унесите следеће редове кодова у индекс.хтмл датотека.




Монитор температуре







00.Ночьу 15 ° Ц


Ажурирање температуре на сваких 5 секунди



Када завршите, притисните + Икс затим И и да спаси индекс.хтмл датотека.

ХТМЛ датотека индекс.хтмл лако је разумети. То је формат у којем ће се подаци о температури приказивати у веб апликацији.

Овде се линије 53-55 користе за приказ траке напретка, а линије 57-60 за приказ температуре.

Линије 5-49 се користе за лепо украшавање веб апликације користећи ЦСС (Цасцадинг Стиле Схеет).

Линије 62-109 се користе да би веб апликација била функционална. ЈаваСцрипт кодови се користе за анимирање траке напретка, преузимање података о температури из АПИ-ја и приказ информација.

Линија 63 пролази кроз главни функција након што се веб апликација учита у прегледач.

Тхе главни функција је веома дуга. Простире се од реда 65 до реда 108. Унутар главне функције имамо још неке функције, као нпр гетТемпературе, упдатеТемпературе, упдатеПрогресс, апликација, и почетак.

Тхе упдатеПрогресс функција, у редовима 83-86, узима проценат напретка као улаз и ажурира траку напретка.

Тхе упдатеТемпературе функција у редовима 77-81 узима податке о температури као улаз и ажурира веб апликацију подацима о температури.

Тхе гетТемпературе функција у редовима 66-75 упућује захтев / температура крајња тачка АПИ-ја и добија податке о температури. Једном када су подаци примљени, позива упдатеТемпературе функција са подацима. Тхе упдатеТемпературе функција затим ажурира веб апликацију новим подацима о температури.

Тхе апликација функција, у редовима 88-99, анимира траку напретка и захтева АПИ податке о температури сваких 5 секунди.

Тхе почетак функција, у редовима 101-104, покреће веб апликацију.

Отвори пакет.јсон датотека са уређивачем нано текста на следећи начин:

$ нано пакет.јсон

Промена главни до сервер.јс и додајте нову скрипту служити у скрипте одељак, као што је означено на снимку екрана испод.

Када завршите, притисните + Икс затим И и да спаси пакет.јсон датотека.

Сада када је све спремно, покрените веб апликацију и АПИ следећом наредбом:

$ нпм рун сервис

Сервер би требало да ради на порту 8080.

Сада отворите веб прегледач на Распберри Пи уређају и посетите хттп: // лоцалхост: 8080. Подаци о температури из модула дигиталног термометра ДС18Б20 требају бити приказани у вашем веб прегледачу, као што можете видети на снимку екрана испод.

Подаци о температури треба ажурирати на сваких 5 секунди.

Као што видите, температура се мења сваких 5 секунди.

Ако желите да приступите веб апликацији са другог рачунара на мрежи, мораћете да знате ИП адресу вашег Распберри Пи уређаја.

ИП адресу вашег Распберри Пи уређаја можете пронаћи помоћу следеће наредбе:

$ хостнаме -И

Као што видите, ИП адреса мог Распберри Пи уређаја је 192.168.0.107. Ово ће бити другачије за вас. Дакле, од сада пазите да замените ИП адресу.

Једном када сазнате ИП адресу вашег Распберри Пи уређаја, требало би да имате приступ веб апликацији са било ког рачунара на мрежи помоћу веб прегледача. Само посетите хттп: // 192.168.0.107: 8080, а веб апликација треба да приказује податке о температури из модула дигиталног термометра ДС18Б20.

Закључак

У овом чланку сте научили како да користите ДС18Б20 модул дигиталног термометра у Распберри Пи за мерење температуре. Такође сте научили како да креирате чвор.јс АПИ за приказивање података о температури у веб апликацији која приступа подацима о температури из АПИ-ја и приказује их. Овај чланак би вам требао помоћи да започнете са праћењем температуре Распберри Пи помоћу модула дигиталног термометра ДС18Б20 и ИоТ са Распберри Пи.

Како снимити и стримовати своју играћу сесију на Линук-у
У прошлости се играње игара сматрало само хобијем, али с временом је играчка индустрија забележила огроман раст у погледу технологије и броја играча. ...
Најбоље игре за ручно праћење
Оцулус Куест је недавно представио сјајну идеју ручног праћења без контролера. Са све већим бројем игара и активности које извршавају подршку формално...
Како приказати ОСД прекривач у целом екрану Линук апликација и игара
Играње игара преко целог екрана или коришћење апликација у режиму целог екрана без ометања може вам одсећи релевантне системске информације видљиве на...