Главная » Начинающим
Призовой фонд
на апрель 2018 г.
1. Осциллограф DSO138
Паяльник
2. Тестер компонентов LCR-T4
Сайт Паяльник
3. 100 руб.
От пользователей

Измерение относительной влажности воздуха психрометрическим методом при помощи МК

Если погуглить по фразе "измерение влажности при помощи микроконтроллера", то поисковая система предложит вам использовать специальные датчики для измерения влажности - SHT21, DHT11 (DHT12, DHT21), BME280. HR202L (HR31), HTU21D и так далее. Зачастую эти датчики работают по шине I2C, и подключить их можно не более 1-2 штук к одному микроконтроллеру (например, BME280 и SHT21). Датчики семейства DHT требуют отдельный вывод микроконтроллера каждому датчику, да и точность их не велика. Точность датчиков BME280 выше чем у DHT11, но подключить их можно всего 2 . Но что делать если необходимо измерять влажность сразу в нескольких точках одновременно. да ещё и с достаточно высокой точностью? Что делать если точки измерения разнесены на значительные расстояния? Выход - использовать датчики температуры DS1820, для которых есть и герметичное исполнение для измерения температуры жидкости. Часть датчиков будет измерять температуру воздуха, другая часть температуру воды. расчеты будет проводить микроконтроллер, благо они не сложные. А теперь собственно к алгоритму измерения влажности.

Что бы измерить относительную влажность в процентах необходимо использовать формулу 

где е - парциальное давление водяного пара,

Ec(t) - давление насыщенного водяного пара. при температуре t (температура сухого термометра).

Что бы измерить парциальное давление пара, необходимо использовать формулу

где Ec(t') - давление насыщенного водяного пара. при температуре t (температура влажного термометра),

А - психрометрический коэффиицент: 0,795е-6 при естественном движении воздуха или 0,662е-6 при принудительном обдуве 2 м/с,

р - общее давление парогазовой смеси в гПа,

t - температура сухого термометра,

t' - температура влажного термометра,

а - еще один коэффициент равный 0,00115 (в подробности вдаваться не буду).

Температуру мы замерили, коэффициенты есть, необходимо вычислить давление насыщенного водяного пара, вычислить два раза, для сухого и влажного термометров. Это можно сделать по этой формуле (которую я не буду использовать, потому и не буду рассматривать её подробнее)

или по упрощенной, но менее точной формуле

где Е0=6,1121 гПа,

а = 17,5043

в = 241,2

t - температура (воды или воздуха, смотря в какую формулу вы собрались подставлять вычисленное значение)

Эту формулу я и буду использовать.

Сразу возникает вопрос насколько точна упрощенная формула. Ответ выражен в виде графика.

В пределах от 0 до 54 градусов по Цельсию погрешность примерно равна 0,1%, затем она начинает возрастать и при температуре 80 градусов составляет 1%, что все же выше точности датчика DHT11.

Я проверил эти формулы при помощи программы SMathStudio и получил достоверные, совпадающие с психрометрическими таблицами результаты.

Теперь собственно перейдем к программе для МК. Я специально не добавил в программу функции измерения температуры, так же закоментировал все выводы в serial port и задержки, для того что бы проверить, какой размер занимает скомпилированная программа. Несмотря на то, что программа была написана в ArduinoIDE, который не отличается бережным использованием памяти МК, размер скомпилированной программы составил всего 444 байт и 9 байт под переменные. 

Полный код программы для ArduinoIDE привожу ниже.

int Tc = 30; //температура сухого термометра
int Tv = 25; //температура влажного термометра

void setup() {
//  Serial.begin(9600);
}

void loop() {
//  Serial.print("Tc=");
//  Serial.println(Tc);
//  Serial.print("Tcv=");
//  Serial.println(Tv);
///  Serial.print("HR=");
  float Hum=HR(Tc, Tv);
//  Serial.println(Hum);
//delay(1000);
}

float HR(float Tc, float Tv)
{
  float Ec = E(Tc);
  float Ev = E(Tv);
  float e1 = Ev - 0.7945 * (Tc - Tv);
  float HR = 100.0 * (e1 / Ec);
  return HR;
}

float E(float T)
{
  float E = 6.1121 * exp((17.5043 * T) / (241.2 + T));
  return E;
}

Для того, чтобы увидеть результат работы программы в терминале уберите комментарии.

Поскольку давление насыщенного водяного пара необходимо вычислить два раза, для сухого и влажного термометров, то это формулу я вывел в отдельную функцию. Измерение давления здесь не производится и установлено давление воздуха 1000 гПа. 

P.S. Что можно измерить ещё двумя термометрами? Поскольку мы уже научились вычислять влажность воздуха, то можно так же вычислить точку росы по формулам 

и индекс жары по формуле (которая тоже является упрощенной формулой, подробнее смотрите на https://en.wikipedia.org/wiki/Heat_index )

где T и Air temperature - температура воздуха (формулу рисовал не я, не знаю почему так отделили),

Н - относительная влажность в процентах.

Эти формулы я так же проверил в программе SMathStudio, и они так же выдали достоверные результаты.

И наконец стоит рассказать о недостатке такого способа измерения влажности - необходимо постоянно доливать воду в колбу с влажным термометром.

Надеюсь эта короткая заметка будет вам полезна как начинающим, так и более опытным радиолюбителям.

Теги:

Опубликована: 0 2
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (12) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
+1
Лекс 59 #
Метод имеет право на существование. Имеет и большие "НО". Автор указал не все недостатки психрометров.
Даже если использовать дистиллированую воду, то все-равно придется периодически менять ткань или вату, подводящую воду к влажному датчику температуры. Гниение. А если заливать не дистиллят, то проблемы утраиваются.

Защищать все это от движения воздуха, не говоря уж о прямых лучах солнца. Т.е. требуется периодическое (вряд ли сильно реже, чем раз в неделю) техническое обслуживание. А так ли уж важна такая точность? С ДНТ все будет куда проще и стабильнее. Решайте сами, стоит ли идти таким путем на нескольких точках, разнесенных на значительные расстояния.
Ответить
-1

[Автор]
mefi73 #
Главное все таки не точность, а измерение влажности во многих точках так, что бы не занимать много выводов МК.
Ответить
0
dkg10 #
Но ведь этот метод требует уже как миним 2 датчика температуры на канал измерения влажности. Тем более таких как 18В20. Непонятно как их настраивать , если все зависит от их собственной внутренней настройки, да ещё - от помех и обстановки ЭМ влияния. Лучше уж придумать сорбирующий влагу кристалл + преобразователь "ёмкость-частота" и тогда не париться насчет ограничения на число каналов измерения влажности.
Главное все таки не точность, а измерение влажности во многих точках
Но в статье то вы обратное утверждаете
Но что делать если необходимо измерять влажность сразу в нескольких точках одновременно. да ещё и с достаточно высокой точностью?
Отредактирован 27.01.2018 05:57
Ответить
0

[Автор]
mefi73 #
Точность этого метода выше чем у большинства датчиков влажности. Главное верно замерить температуры.
Ответить
0
vavaav #
Что означает "другая часть температуру воды". Зачем измерять температуру воды, если обычно измеряют увлажненный термометр? При этом термометр не погружают в воду, а увлажняют капиллярным способом.
Ответить
0

[Автор]
mefi73 #
Конечно же термометр в фитиле, а не непосредственно воду. А какую температуру будет иметь смоченный термометр и вода? Если нет движения воздуха, а коэффициент используется именно для воздуха без движения.
Отредактирован 21.01.2018 22:50
Ответить
+1
Goodefine #
А какую температуру будет иметь смоченный термометр и вода? Если нет движения воздуха, а коэффициент используется именно для воздуха без движения.
Разную. Вся фишка в том, что вода испаряясь с поверхности фитиля охлаждает его и термометр. Скорость испарения (а значит и степень охлаждения) будет зависеть от влажности. Если запихнуть термометр в воду, то градиент температур, обусловленный испарением там будет только на поверхности, в тонком слое воды, который за счет высокой теплопроводности воды практически не будет заметен.
Ответить
0

[Автор]
mefi73 #
Именно. Конечно, вместо фразы "температура воды" стоит использовать фразу "температура поверхности воды".
Ответить
0
dkg10 #
А ещё представьте себе: КТО будет обходить эти увлажняемые термометры и проверять насколько они "правильно" увлажняются?
Ответить
+1
andro #
Интересно какое время идёт на расчёт, сколько времени уйдёт на расчёт показаний скажем с десяти датчиков?
Ответить
0

[Автор]
mefi73 #
Формуля простая и расчитывается довольно быстро (в тактах МК сказать не могу, но задержек не замечал).
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Набор начинающего радиолюбителя
Набор начинающего радиолюбителя
Тестер ESR, полупроводников, резисторов, индуктивностей Ручной фен 450 Вт с регулировкой температуры
вверх