категории: Микроконтролер вериги
Брой преглеждания: 9996
Коментари към статията: 0
Измерване на температура и влажност на Arduino - селекция от начини
За да създадете домашна метеорологична станция или термометър, трябва да научите как да сдвоявате Arduino дъската и устройство за измерване на температура и влажност. Измерването на температурата може да се справи с използване на термистор или цифров сензор DS18B20, но за измерване на влажност използвайте по-сложни устройства - сензори DHT11 или DHT22. В тази статия ще обясним как да измерваме температурата и влажността с помощта на Arduino и тези сензори.
Измерване на термистора
Най-лесният начин да определите температурата е да използвате РТС, Това е вид резистор, чието съпротивление зависи от околната температура. Има термистори с положителен и отрицателен температурен коефициент на съпротивление - PTC (наричани също позистори) и NTC термистори, съответно.
На графиката по-долу виждате температурната зависимост на съпротивлението. Пунктираната линия показва зависимостта за отрицателен TCS термистор (NTC), а плътната линия за положителен TCS термистор (PTC).
Какво виждаме тук? Първото нещо, което ви хваща окото е, че графикът за PTC термистора е нарушен и ще бъде трудно или невъзможно да се измери редица температурни стойности, но графикът за NTC термистора е повече или по-малко равномерен, въпреки че той е очевидно нелинеен. Какво означава това? Използването на NTC термистор е по-лесно да се измери температурата, защото е по-лесно да разберете функцията, чрез която нейните стойности се променят.
За да преобразувате температурата в устойчивост, можете ръчно да премахнете стойностите, но това е трудно да се направи у дома и ви е необходим термометър, за да определите действителните стойности на температурата на средата. В таблиците с данни на някои компоненти такава таблица е дадена например за поредица от NTC термистори от Vishay.
След това можете да организирате превода през клоните, като използвате функцията, ако ... else или смяна. Ако обаче в таблиците с данни няма такива таблици, трябва да изчислите функцията, чрез която съпротивлението се променя с температура.
За да се опише тази промяна, съществува уравнението на Steinhart-Hart.
където A, B и C са константи на термистора, определени чрез измерване на три температури с разлика най-малко 10 градуса по Целзий. В същото време различни източници показват, че за типичен 10 kΩ NTC термистор те са равни на:
B - бета коефициент, той се изчислява въз основа на измерването на съпротивлението за две различни температури. Посочва се или в листа с данни (както е показано по-долу), или се изчислява независимо.
В този случай B се посочва във формата:
Това означава, че коефициентът е изчислен на базата на данни, получени при измерване на съпротивлението при температури от 25 и 100 градуса по Целзий, и това е най-често срещаният вариант. Тогава тя се изчислява по формулата:
B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)
Типична схема на свързване на термистор към микроконтролер е показана по-долу.
Тук R1 е постоянен резистор, термисторът е свързан към източника на захранване, а данните се вземат от средната точка между тях, диаграмата условно показва, че сигналът се подава на щифт A0 - това аналогов вход Arduino.
За да изчислите съпротивлението на термистор, можете да използвате следната формула:
R на термистора = R1⋅ ((Vcc / Voutput) -1)
За да преведете на разбираем за arduino език, трябва да запомните, че arduino има 10-битов ADC, така че максималната цифрова стойност на входния сигнал (напрежение 5V) ще бъде 1023. Тогава, условно:
-
Dmax = 1023;
-
D е действителната стойност на сигнала.
След това:
R на термистора = R1⋅ ((Dmax / D) −1)
Сега използваме това, за да изчислим съпротивлението и след това да изчислим температурата на термистора, използвайки бета уравнението на език за програмиране за Arduino, Скицата ще е така:
DS18B20
Още по-популярен за измерване на температура с.Ардуино намери цифров сензор DS18B20. Той комуникира с микроконтролера чрез интерфейса с 1 проводник, можете да свържете няколко сензора (до 127) към един проводник и за достъп до тях ще трябва да разберете идентификационния номер на всеки от сензорите.
Забележка: трябва да знаете идентификационния номер, дори ако използвате само 1 сензор.
Схемата за свързване на сензора ds18b20 към Arduino изглежда така:
Има и паразитен режим на захранване - схемата на връзката му изглежда така (имате нужда от два проводника вместо три):
В този режим правилната работа не е гарантирана при измерване на температури над 100 градуса по Целзий.
Цифровият датчик за температурата на DS18B20 се състои от цял набор от възли, като всеки друг SIMS. Можете да гледате вътрешното му устройство по-долу:
За да работите с него, трябва да изтеглите библиотеката на Onewire за Arduino, а за самия сензор се препоръчва да използвате библиотеката DallasTemperature.
Този пример с кодове показва основите на работа с 1 сензор за температура, резултатът в градуси Целзий се извежда през серийния порт след всяко отчитане.
DHT11 и DHT22 - сензори за влажност и температура
Тези сензори са популярни и често се използват за измерване на влажност и околна температура. В таблицата по-долу посочихме техните основни разлики.
Схемата за свързване е доста проста:
-
1 заключение - хранене;
-
2 заключение - данни;
-
3 заключение - не се използва;
-
4 заключение - общата жица.
Ако сензорът ви е направен под формата на модул, той ще има три изхода, но не е необходим резистор - той е вече споен към платката.
За да работим, се нуждаем от библиотеката dht.h, тя не е в стандартния набор, така че трябва да бъде изтеглена и инсталирана в папката библиотеки в папката с ардуино IDE. Той поддържа всички сензори в това семейство:
-
DHT 11;
-
DHT 21 (AM2301);
-
DHT 22 (AM2302, AM2321).
Примерно използване на библиотеката:
заключение
В днешно време създаването на собствена станция за измерване на температура и влажност е много просто благодарение на платформата Arduino. Цената на такива проекти е 3-4 сто рубли. За живота на батерията, а не за изход към компютър, може да се използва показване на символи (описахме ги в скорошна статия), след това можете да изградите преносимо устройство за използване както у дома, така и в колата. Напишете в коментарите какво още бихте искали да научите за прости домашни занаяти на ардуино!
Вижте също по тази тема:Популярни сензори за Arduino - връзка, диаграми, скици
Вижте също на e.imadeself.com
: