категории: Микроконтролер вериги
Брой преглеждания: 9996
Коментари към статията: 0
Измерване на температура и влажност на Arduino - селекция от начини
За да създадете домашна метеорологична станция или термометър, трябва да научите как да сдвоявате Arduino дъската и устройство за измерване на температура и влажност. Измерването на температурата може да се справи с използване на термистор или цифров сензор DS18B20, но за измерване на влажност използвайте по-сложни устройства - сензори DHT11 или DHT22. В тази статия ще обясним как да измерваме температурата и влажността с помощта на Arduino и тези сензори.
![Измерване на температура и влажност на Arduino - селекция от начини Измерване на температура и влажност на Arduino - селекция от начини](https://e.imadeself.com/uploads/posts/2018-12/1544459538_35.jpg)
Измерване на термистора
Най-лесният начин да определите температурата е да използвате РТС, Това е вид резистор, чието съпротивление зависи от околната температура. Има термистори с положителен и отрицателен температурен коефициент на съпротивление - PTC (наричани също позистори) и NTC термистори, съответно.
На графиката по-долу виждате температурната зависимост на съпротивлението. Пунктираната линия показва зависимостта за отрицателен TCS термистор (NTC), а плътната линия за положителен TCS термистор (PTC).
![Температурна зависимост на съпротивлението Температурна зависимост на съпротивлението](https://e.imadeself.com/uploads/posts/2018-12/1544459423_2.jpg)
Какво виждаме тук? Първото нещо, което ви хваща окото е, че графикът за PTC термистора е нарушен и ще бъде трудно или невъзможно да се измери редица температурни стойности, но графикът за NTC термистора е повече или по-малко равномерен, въпреки че той е очевидно нелинеен. Какво означава това? Използването на NTC термистор е по-лесно да се измери температурата, защото е по-лесно да разберете функцията, чрез която нейните стойности се променят.
За да преобразувате температурата в устойчивост, можете ръчно да премахнете стойностите, но това е трудно да се направи у дома и ви е необходим термометър, за да определите действителните стойности на температурата на средата. В таблиците с данни на някои компоненти такава таблица е дадена например за поредица от NTC термистори от Vishay.
![Datashit Vishay TC Термистори Datashit Vishay TC Термистори](https://e.imadeself.com/uploads/posts/2018-12/1544459470_3.png)
След това можете да организирате превода през клоните, като използвате функцията, ако ... else или смяна. Ако обаче в таблиците с данни няма такива таблици, трябва да изчислите функцията, чрез която съпротивлението се променя с температура.
За да се опише тази промяна, съществува уравнението на Steinhart-Hart.
![Уравнение на Щайнхарт-Харт Уравнение на Щайнхарт-Харт](https://e.imadeself.com/uploads/posts/2018-12/1544459480_5.png)
където A, B и C са константи на термистора, определени чрез измерване на три температури с разлика най-малко 10 градуса по Целзий. В същото време различни източници показват, че за типичен 10 kΩ NTC термистор те са равни на:
![Константи на термистори Константи на термистори](https://e.imadeself.com/uploads/posts/2018-12/1544459501_6.png)
![](https://e.imadeself.com/uploads/posts/2018-12/1544459451_7.png)
B - бета коефициент, той се изчислява въз основа на измерването на съпротивлението за две различни температури. Посочва се или в листа с данни (както е показано по-долу), или се изчислява независимо.
![B - бета коефициент от листа с данни B - бета коефициент от листа с данни](https://e.imadeself.com/uploads/posts/2018-12/1544459418_8.png)
В този случай B се посочва във формата:
![бета съотношение бета съотношение](https://e.imadeself.com/uploads/posts/2018-12/1544459423_9.png)
Това означава, че коефициентът е изчислен на базата на данни, получени при измерване на съпротивлението при температури от 25 и 100 градуса по Целзий, и това е най-често срещаният вариант. Тогава тя се изчислява по формулата:
B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)
Типична схема на свързване на термистор към микроконтролер е показана по-долу.
![Схема на свързване на термистора към микроконтролера Схема на свързване на термистора към микроконтролера](https://e.imadeself.com/uploads/posts/2018-12/1544459421_10.png)
Тук R1 е постоянен резистор, термисторът е свързан към източника на захранване, а данните се вземат от средната точка между тях, диаграмата условно показва, че сигналът се подава на щифт A0 - това аналогов вход Arduino.
![Схема на свързване на термистора към микроконтролера Схема на свързване на термистора към микроконтролера](https://e.imadeself.com/uploads/posts/2018-12/1544459419_11.png)
За да изчислите съпротивлението на термистор, можете да използвате следната формула:
R на термистора = R1⋅ ((Vcc / Voutput) -1)
За да преведете на разбираем за arduino език, трябва да запомните, че arduino има 10-битов ADC, така че максималната цифрова стойност на входния сигнал (напрежение 5V) ще бъде 1023. Тогава, условно:
-
Dmax = 1023;
-
D е действителната стойност на сигнала.
След това:
R на термистора = R1⋅ ((Dmax / D) −1)
Сега използваме това, за да изчислим съпротивлението и след това да изчислим температурата на термистора, използвайки бета уравнението на език за програмиране за Arduino, Скицата ще е така:
![скица скица](https://e.imadeself.com/uploads/posts/2018-12/1544459502_12.png)
DS18B20
Още по-популярен за измерване на температура с.Ардуино намери цифров сензор DS18B20. Той комуникира с микроконтролера чрез интерфейса с 1 проводник, можете да свържете няколко сензора (до 127) към един проводник и за достъп до тях ще трябва да разберете идентификационния номер на всеки от сензорите.
Забележка: трябва да знаете идентификационния номер, дори ако използвате само 1 сензор.
![DS18B20 цифров сензор DS18B20 цифров сензор](https://e.imadeself.com/uploads/posts/2018-12/1544459451_13.png)
Схемата за свързване на сензора ds18b20 към Arduino изглежда така:
![Схема на свързване на сензора ds18b20 към Arduino Схема на свързване на сензора ds18b20 към Arduino](https://e.imadeself.com/uploads/posts/2018-12/1544459423_14.png)
![Схема на свързване на сензора ds18b20 към Arduino Схема на свързване на сензора ds18b20 към Arduino](https://e.imadeself.com/uploads/posts/2018-12/1544459490_15.jpg)
Има и паразитен режим на захранване - схемата на връзката му изглежда така (имате нужда от два проводника вместо три):
![Диаграма за свързване на сензори на Arduino Диаграма за свързване на сензори на Arduino](https://e.imadeself.com/uploads/posts/2018-12/1544461240_3.jpg)
В този режим правилната работа не е гарантирана при измерване на температури над 100 градуса по Целзий.
Цифровият датчик за температурата на DS18B20 се състои от цял набор от възли, като всеки друг SIMS. Можете да гледате вътрешното му устройство по-долу:
![Цифров сензор за температура DS18B20 Цифров сензор за температура DS18B20](https://e.imadeself.com/uploads/posts/2018-12/1544459426_18.jpg)
За да работите с него, трябва да изтеглите библиотеката на Onewire за Arduino, а за самия сензор се препоръчва да използвате библиотеката DallasTemperature.
![скица скица](https://e.imadeself.com/uploads/posts/2018-12/1544459512_19.png)
Този пример с кодове показва основите на работа с 1 сензор за температура, резултатът в градуси Целзий се извежда през серийния порт след всяко отчитане.
DHT11 и DHT22 - сензори за влажност и температура
![DHT11 и DHT22 - сензори за влажност и температура DHT11 и DHT22 - сензори за влажност и температура](https://e.imadeself.com/uploads/posts/2018-12/1544459429_20.jpg)
Тези сензори са популярни и често се използват за измерване на влажност и околна температура. В таблицата по-долу посочихме техните основни разлики.
![Схема на свързване на сензор за влажност към arduino Схема на свързване на сензор за влажност към arduino](https://e.imadeself.com/uploads/posts/2018-12/1544459476_21.jpg)
Схемата за свързване е доста проста:
-
1 заключение - хранене;
-
2 заключение - данни;
-
3 заключение - не се използва;
-
4 заключение - общата жица.
Ако сензорът ви е направен под формата на модул, той ще има три изхода, но не е необходим резистор - той е вече споен към платката.
![Схема на свързване на сензора за влажност под формата на модул към arduino Схема на свързване на сензора за влажност под формата на модул към arduino](https://e.imadeself.com/uploads/posts/2018-12/1544459554_22.png)
За да работим, се нуждаем от библиотеката dht.h, тя не е в стандартния набор, така че трябва да бъде изтеглена и инсталирана в папката библиотеки в папката с ардуино IDE. Той поддържа всички сензори в това семейство:
-
DHT 11;
-
DHT 21 (AM2301);
-
DHT 22 (AM2302, AM2321).
Примерно използване на библиотеката:
![Пример за използване на библиотеката Пример за използване на библиотеката](https://e.imadeself.com/uploads/posts/2018-12/1544459486_23.png)
заключение
В днешно време създаването на собствена станция за измерване на температура и влажност е много просто благодарение на платформата Arduino. Цената на такива проекти е 3-4 сто рубли. За живота на батерията, а не за изход към компютър, може да се използва показване на символи (описахме ги в скорошна статия), след това можете да изградите преносимо устройство за използване както у дома, така и в колата. Напишете в коментарите какво още бихте искали да научите за прости домашни занаяти на ардуино!
Вижте също по тази тема:Популярни сензори за Arduino - връзка, диаграми, скици
Вижте също на e.imadeself.com
: