Категорије: Склопови микроконтролера
Број прегледа: 9996
Коментари на чланак: 0
Мерење температуре и влажности на Ардуину - избор метода
Да бисте створили кућну метеоролошку станицу или термометар, морате да научите како да упарите Ардуино плочу и уређај за мерење температуре и влажности. Мерењем температуре може се бавити коришћењем термистора или дигиталног сензора ДС18Б20, али за мерење влажности користите сложеније уређаје - сензоре ДХТ11 или ДХТ22. У овом чланку ћемо вам показати како да мерите температуру и влажност ваздуха помоћу Ардуино и ових сензора.
Мерење термистора
Најлакши начин за одређивање температуре је употреба термистор. Ово је врста отпорника чији отпор зависи од температуре околине. Постоје термистори са позитивним и негативним температурним коефицијентом отпора - ПТЦ (такође се називају и позистори) и НТЦ-термистори, респективно.
На графикону испод видите температурна зависност отпора. Испрекидана линија показује зависност негативног ТЦС термистора (НТЦ), а пуна линија за позитиван ТЦС термистор (ПТЦ).
Шта овде видимо? Прво што вам падне на памет јесте да је распоред ПТЦ термистора покварен и да ће бити тешко или немогуће измерити бројне температурне вредности, али распоред за НТЦ термистор је мање или више уједначен, мада је очигледно нелинеалан. Шта ово значи? Коришћењем НТЦ термистора лакше је измерити температуру, јер је лакше сазнати функцију помоћу које се његове вредности мењају.
Да бисте претворили температуру у отпорност, можете ручно узимати вредности, али то је тешко учинити код куће и потребан вам је термометар за одређивање стварних вредности температуре медијума. У подацима са неким компонентама таква је табела дата, на пример, за низ НТЦ термистора из Висхаиа.
Затим можете организовати превод кроз гране користећи функцију ако ... елсе или прекидач. Међутим, ако у таблицама података нема таквих таблица, морате израчунати функцију којом се отпор мијења с порастом температуре.
Да бисмо описали ову промену, постоји једначина Стеинхарт-Харт-а.
где су А, Б и Ц константе термистора, које се одређују мерењем три температуре са разликом од најмање 10 степени Целзијуса. Истовремено, различити извори указују да су за типични 10 кΩ НТЦ термистор једнаки:
Б - бета коефицијент, израчунава се на основу мерења отпора за две различите температуре. Наводи се или у листи података (као што је приказано у наставку) или се израчунава независно.
У овом случају, Б је назначен у обрасцу:
То значи да је коефицијент израчунат на основу података добијених приликом мерења отпора на температурама од 25 и 100 степени Целзијуса, а то је најчешћа опција. Тада се израчунава по формули:
Б = (лн (Р1) - лн (Р2)) / (1 / Т1 - 1 / Т2)
Ниже је приказан типични дијаграм повезивања термистора са микроконтролером.
Овде је Р1 константни отпорник, термистор је прикључен на извор напајања, а подаци се узимају из средње тачке између њих, дијаграм условно указује да се сигнал доводи на пин А0 - ово аналогни улаз Ардуино.
Да бисте израчунали отпор термистора, можете користити следећу формулу:
Р термистора = Р1⋅ ((Вцц / Воутпут) -1)
Да бисте преводили на језик разумљив за ардуино, морате имати на уму да ардуино има 10-битни АДЦ, тако да ће максимална дигитална вредност улазног сигнала (напона 5В) бити 1023. Тада, условно:
-
Дмак = 1023;
-
Д је стварна вредност сигнала.
Затим:
Р термистора = Р1⋅ ((Дмак / Д) −1)
Сада то користимо за израчунавање отпора, а затим израчунавамо температуру термистора помоћу бета једначине на програмском језику за Ардуино. Скица ће бити овако:
ДС18Б20
Још је популарније за мерење температуре са.Ардуино је пронашао дигитални сензор ДС18Б20. Комуницира са микроконтролером преко интерфејса са 1 жицом, на једну жицу можете повезати неколико сензора (до 127), а за приступ њима морат ћете сазнати ИД сваког сензора.
Напомена: требало би да знате ИД чак и ако користите само 1 сензор.
Дијаграм везе сензора дс18б20 за Ардуино изгледа овако:
Постоји и паразитски режим напајања - дијаграм његове везе изгледа овако (потребна су вам два жица уместо три):
У овом режиму није загарантован исправан рад при мерењу температуре изнад 100 степени Целзијусових.
Дигитални сензор температуре ДС18Б20 састоји се од читавог низа чворова, као и било који други СИМС. Његов унутрашњи уређај можете погледати у наставку:
Да бисте радили с њом, морате преузети библиотеку Оневире за Ардуино, а за сам сензор препоручује се употреба библиотеке ДалласТемпературе.
Овај пример кода приказује основе рада са 1 температурним сензором, резултат у степени Целзијуса се након сваког очитавања емитује кроз серијски улаз.
ДХТ11 и ДХТ22 - сензори влажности и температуре
Ови сензори су популарни и често се користе за мерење влажности и температуре околине. У доњој табели навели смо њихове главне разлике.
Дијаграм везе је прилично једноставан:
-
1 закључак - исхрана;
-
2 закључак - подаци;
-
3 закључак - не користи се;
-
4 закључак - општа жица.
Ако је ваш сензор направљен у облику модула, он ће имати три излаза, али није потребан отпорник - већ је лемљен на плочу.
Да бисмо радили, потребна нам је дхт.х библиотека, она није у стандардном скупу, па је треба преузети и инсталирати у библиотеку у мапи са ардуино ИДЕ. Подржава све сензоре у овој породици:
-
ДХТ 11;
-
ДХТ 21 (АМ2301);
-
ДХТ 22 (АМ2302, АМ2321).
Пример употребе библиотеке:
Закључак
Данас је стварање властите станице за мерење температуре и влаге веома једноставно захваљујући платформи Ардуино. Цена таквих пројеката је 3-4 стотине рубаља. За трајање батерије, а не за излаз на рачунар, може се користити приказ карактера (описали смо их у недавном чланку), тада можете да направите преносни уређај који ће се користити и код куће и у аутомобилу. Напишите у коментаре шта бисте још желели да научите о једноставним домаћим занатима на ардуину!
Погледајте и ову тему:Популарни сензори за Ардуино - веза, дијаграми, скице
Погледајте и на електрохомепро.цом
: