Добрый день, в оранжерее поддерживается постоянная высокая влажность(95-99%), какой датчик влажности подойдет для таких условий(большая влажность, конденсат)? Был DHT22, датчик влажности вышел из строя.
Войдите на сайт для отправки комментариев
Сб, 25/10/2014 — 14:28
Зарегистрирован: 14.02.2013
humidity sensor dixell XH20P ,к примеру , для влажности выше 90 проц. выход 4-20 мА
Использую SHT1x, который постоянно подвержен воздействию горячего водяного пара. Вроде, пока работает. Удобно, что цифровой и нормальная точность без калибровки. Однако кусается цена
До получаса в день. Находится просто в пластмассовой «коробочке», специальной защиты датчика от влажности нет. Сама ардуина не находится под воздействием влажности
Да нет там ничего мутноватого: две температуры, таблица пересчета — и все. А, да, еще надо следить за тем, чтобы в резервуаре «мокрого термометра» всегда была вода. 🙂 Т.е., два герметичных DS18B20, подключенных по 1-wire, решат проблему измерения влажности. К сожалению в земле такой метод не работает.:(
Да нет там ничего мутноватого: две температуры, таблица пересчета — и все. А, да, еще надо следить за тем, чтобы в резервуаре «мокрого термометра» всегда была вода. 🙂 Т.е., два герметичных DS18B20, подключенных по 1-wire, решат проблему измерения влажности. К сожалению в земле такой метод не работает.:(
Пока не пойму как реализовать таблицу пересчёта в коде. Получается один датчик должен быть в емкости с водой внури оранжереи, а другой снаружи?
Пока не пойму как реализовать таблицу пересчёта в коде. Получается один датчик должен быть в емкости с водой внури оранжереи, а другой снаружи?
А вот описание способа вычисления без таблиц: http://otvet.mail.ru/question/22462363
Основная психрометрическая формула выглядит следующим образом: F= [E – A (t-t) P]/e, Где: e — максимальная упругость водяного пара при температуре сухого термометра; E- максимальная упругость водяного пара при температуре мокрого термометра; A — постоянная психрометра, зависит от скорости потока; P — атмосферное давление, принимается равным 1000 гПа=100000 Па; (t-t) — разность показаний сухого и мокрого термометров. Эта формула позволяет получить точное значение относительной влажности. Как видно из этой формулы, на результат вычисления, кроме температур, оказывают влияние давление и коэффициент, зависящий от скорости потока. Для примера примем Тс=20,0оС Тм=16,5оС. Будем считать, что давление в камере выращивания равно нормальному атмосферному давлению и составляет Р=1100 гПа. В камерах выращивания вешенки рекомендуется создавать воздушный потокv=0,2 м/с. При таких условиях истинное значение относительной влажности воздуха будетравно 64%.
Relative humidity from temperature and wet bulb temperature
If you know the air temperature and the wet bulb temperature, you first want to calculate the actual mixing ratio of the air(W) using the following formula.
W=actual mixing ratio of air
Cp=specific heat of dry air at constant pressure(J/g)~1.005 J/g
Cpv= specific heat of water vapor at constant pressure(J/g)~4.186 J/g
Lv=Latent heat of vaporization(J/g)~2500 J/g
Tc=air temperature in degrees Celsius
Twb=wet bulb temperature in degrees Celsius
Eswb=saturation vapor pressure at the wet bulb temperature(mb)
P=atmospheric pressure at surface~1013 mb at sea-level
Датчики температуры и влажности
Существует большое число разновидностей датчиков для измерения температуры с разной точностью, степенью защиты от внешних условий и другими параметрами. Кроме описанных ниже датчиков, есть ещё модели TMP36, MAX6675, MAX31855, DS18B20.
Датчик температуры LM35
Датчик температуры LM35 позволяет очень просто получать значения температуры. Вам нужно получить показания с аналогового вывода, сделать несложные математические вычисления и получить готовый результат.
У датчик три вывода: питание и земля по краям и средний для вывода данных.
Точность составляет почти 0.75-1 градусов. Интервал показаний от -55 до +150. Но в большинстве случаев используются показания от 0 до 105. Если вам нужны отрицательные температуры, то используйте датчик TMP36.
Скетч для работы с датчиком.
const int analogIn = A0; int value = 0; double voltage = 0; double celsius = 0; void setup() < Serial.begin(9600); >void loop() < value = analogRead(analogIn); voltage = (value / 1023.0) * 5000; celsius = voltage * 0.1; Serial.print("Temperature in C text-info" >Датчик температуры и влажности DHT11
Существует семейство датчиков влажности и температуры DHT (DHT11, DHT22 и др.), которые используются для построения домашней метеостанции. Одновременно измерять температуру и относительную влажность выглядит оправданным, поскольку второе напрямую зависит от первого. Так, повышение температуры батарей центрального отопления приводит к уменьшению относительной влажности воздуха.
Считается, что оптимальное значение влажности около 50% — именно при такой влажности растения, люди и животные чувствуют себя комфортно.
DHT11
Датчик температуры и влажности DHT11 является дешёвым датчиком, который удобно использовать в домашних условиях в учебных целях. Он не обеспечивает точные показания и имеет ограниченный диапазон измерений. Но тем не менее, он очень популярен из-за своей простоты. Существуют более дорогие аналоги, в частности его старший брат DHT22.
Датчики DHT состоят из двух основных частей: ёмкостный датчик влажности и термистор. Также в корпусе установлен простенький чип для преобразования аналогового сигнала в цифровой. Считывать цифровой сигнал на выходе достаточно просто, можно использовать любой контроллер, не только Arduino.
Технические характеристики
Питание от 3 до 5В
Максимально потребляемый ток - 2.5мА при преобразовании (при запросе данных)
Рассчитан на измерение уровня влажности в диапазоне от 20% до 80%. Точность измерений в диапазоне 5%
Измеряет температуру в диапазоне от 0 до +50 градусов с точностью ±2°C
Частота измерений не более 1 Гц (одно измерение в секунду)
Размер корпуса: 15.5 мм x 12 мм x 5.5 мм
Сам датчик представляет собой синий прямоугольник с решёткой. Имеет четыре ножки, одна из которых (третья) не используется. Ножки имеют стандартное расстояние между собой и прибор легко устанавливается на макетную плату.
VCC - Питание от 3 до 5 В
DATA (OUT) - Вывод данных
NC - Не подключается
GND - Земля
При подключении используйте подтягивающий резистор к VCC и рекомендуется конденсатор (фильтр по питанию между VCC и GND).
Модуль KY-015 с датчиком DHT11
Хороший вариант - готовая плата с резистором и конденсатором. Она имеет три вывода, которые можно воткнуть в макетную плату.
DHT11 достаточно медленно конвертирует измеренные значения, считывайте показания не чаще, чем раз в секунду.
Модуль должен быть защищён от солнечного света и других излучений, имеющих в спектре ультрафиолетовую часть. Могут привести к повреждению газы, содержащие диоксид серы, пары соляной кислоты. Высокая концентрация паров этанола приведёт к полному повреждению чувствительного слоя датчика.
DHT22
По форм-фактору датчик похож на своего собрата. Может встречаться название Aosong AM2302.
Более точный датчик DHT22 имеет преимущества перед DHT11.
Диапазон температур от -40° до +80° (сравните с 0°..+50°). Точность измерений в диапазоне ±0.5°
Уровень влажности 0-99.9%. Точность измерений в диапазоне 2-4%.
Рекомендуемая частота чтения данных - не чаще, чем один раз в 2 секунды.
Учитывая широкий диапазон, датчик можно применять в сложных системах: вентиляция, кондиционирование, метеорологические станции
Диапазон питания датчика составляет +3.3. +5.5В, поэтому его можно использовать в платах Arduino с пониженными напряжениями. Рекомендуемая длина кабеля, соединяющего DHT22 с MCU при питании от 3.3В не должна превышать 100 см.
Библиотека для DHT
Измерим температуру и влажность воздуха при помощи датчика DHT11.
Следует подключить подтягивающий резистор на 10 кОм между питанием и сигналом. У меня такого не оказалось, я подключил резистор на 2.2 кОм, вроде не сгорело. Для датчика DHT22 резистор не обязателен.
Также встречается модульное исполнение датчика с тремя ножками и готовым установленным резистором. Такой модуль может быть предпочтительнее. Как правило ножки подписаны, трудностей быть не должно.
Следует помнить, что один датчик будет использовать строго один цифровой пин, поэтому при сложной конструкции из нескольких датчиков учитывайте данное обстоятельство.
У меня получилась следующая схема.
Первую ножку датчика соедините с питанием на 5В (красный провод), вторую - с пином номер 2, третью пропускаем, а четвёртую соединяем с GND (чёрный провод). Также вставляем на плату резистор - одна ножка соединяется с первой ножкой датчика, а вторая со второй.
Следующий шаг - установка библиотеки. В сети существует много библиотек для данного датчика. Популярна библиотека GitHub - adafruit/DHT-sensor-library: Arduino library for DHT11DHT22, etc Temp & Humidity Sensors. Скачиваем архив и переименовываем папку в DHT, папку размещаем в общей папке для библиотек Arduino libraries.
Второй и удобный способ - установка через менеджер библиотек. Открываем Tools | Manage Libraries. и в поиске диалогового окна вводим DHT. Найдётся несколько библиотек, выбираем библиотеку от Adafruit. Устанавливайте версию 1.2.3. Если вы будете устанавливать версию 1.3.0 или выше, то вам придётся также установить ещё библиотеку Adafruit Unified Sensor, без неё скетч не будет компилироваться.
После установки библиотеки, запускаем IDE и находим пример File | Examples | DHT sensor library | DHTtester.
Скетч по умолчанию рассчитан на датчик DH22, поэтому вам нужно сначала закомментировать строчку #define DHTTYPE DHT22 и снять комментарий с строчки #define DHTTYPE DHT11.
Полностью скетч выглядит следующим образом.
// Example testing sketch for various DHT humidity/temperature sensors // Written by ladyada, public domain #include "DHT.h" #define DHTPIN 2 // what digital pin we're connected to // Uncomment whatever type you're using! #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301) // Connect pin 1 (on the left) of the sensor to +5V // NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1 // to 3.3V instead of 5V! // Connect pin 2 of the sensor to whatever your DHTPIN is // Connect pin 4 (on the right) of the sensor to GROUND // Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor // Initialize DHT sensor. // Note that older versions of this library took an optional third parameter to // tweak the timings for faster processors. This parameter is no longer needed // as the current DHT reading algorithm adjusts itself to work on faster procs. DHT dht(DHTPIN, DHTTYPE); void setup() < Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); >void loop() < // Wait a few seconds between measurements. delay(2000); // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true); // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t) || isnan(f)) < Serial.println("Failed to read from DHT sensor!"); return; >// Compute heat index in Fahrenheit (the default) float hif = dht.computeHeatIndex(f, h); // Compute heat index in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); >
Запускаем скетч и наблюдаем за результатами в Serial Monitor. Датчик считается очень медленным, поэтому не следует делать слишком маленькую задержку, в примере используется пауза на две секунды.
Пример проверялся летом в жаркий день. Результаты вполне правдоподобны. Если подышать на датчик (помните в детстве мы дышали на стекло?), то влажность увеличится (и температура). Через какое-то время показания будут медленно возвращаться к первоначальным.
В составе библиотеки также есть файл с именами функций.
DHT Класс датчика. Объявляем объект класса: DHT dht(DHTPIN, DHTTYPE);. В первом параметре объявляем пин, во втором - тип датчика begin() Запускаем датчик readTemperature() Без параметров функция измеряет в градусах Цельсия. Вызов readTemperature(true) вернёт значения в градусах Фаренгейта convertCtoF() Конвертирует из одной системы в другую convertFtoC() Конвертирует из одной системы в другую computeHeatIndex() Выводит индекс жары. По умолчанию используется индекс на основе градусов Фаренгейта, где нужно указать градусы и влажность. Для температуры по Цельсию нужно указывать три параметра computeHeatIndex(t, h, false) readHumidity() Функция для измерения влажности read() Что-то считывает
Дополнительные материалы для DHT
Fritzing-Library/DHT11 Humitidy and Temperature Sensor.fzpz at master · adafruit/Fritzing-Library · GitHub - в составе Fritzing нет датчика DH11. Скачайте данный файл и перетащите его на окно программы. Теперь вы сможете составлять схемы с его участием (смотри мой скриншот выше). В программе он будет находиться в разделе MINE.
Датчик температуры и влажности DHT11 (DHT22) - здесь дана дополнительная информация о работе датчика в модульном исполнении, ссылка на даташиты, примеры кода без библиотеки, графики.
Модуль датчика температуры KY-001
Модуль состоит из датчика температуры воздуха с цифровым представлением данных. Основной компонент – микросхема DS18B20, преобразующая температуру корпуса в информацию передаваемую по последовательной двухпроводной шине данных 1-Wire. На шину данных можно установить несколько датчиков. Можно применять для измерения температуры воздуха в помещении и на открытом воздухе.
Также на модуле установлен резистор сопротивлением 4,7 кОм и светодиодный индикатор включения питания.
Технические характеристики
Питание: напряжение 3…5,5 В, ток 10 мА
Диапазон измерения температуры -55…125 °С/-57°F to 257°F
Разрешающая способность: 9…12 бит
Точность ±0,5 °С в диапазоне -10…+85 °С
Время измерения при разрешающей способности 12 бит составляет 0,75 с
Для работы с модулем используются дополнительные две библиотеки.
#include #include // Data wire is plugged into pin 2 on the Arduino #define ONE_WIRE_BUS 2 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); void setup(void) < Serial.begin(9600); Serial.println("Dallas Temperature IC Control Library Demo"); // IC Default 9 bit // If you have troubles consider upping it 12. // Ups the delay giving the IC more time to process the temperature measurement sensors.begin(); >void loop(void) < // call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus Serial.print("Requesting temperatures. "); sensors.requestTemperatures(); // Send the command to get temperatures Serial.println("DONE"); Serial.print("Temperature for Device 1 is: "); // You can have more than one IC on the same bus. 0 refers to the first IC on the wire Serial.print(sensors.getTempCByIndex(0)); >
Модуль датчика температуры KY-013
Датчик является аналоговым, но использовать его нужно не для измерения конкретных температур, а для слежения за превышением пороговых значений. В модуле используется PTC-термисторы - при повышении температуры растёт и сопротивление.
При работе с датчиком пробуйте менять местами землю и питание, часто маркировка ошибочна.
void setup() < Serial.begin(9600); >void loop() < double U = analogRead(A0); // напряжение double R = (10230000 / U) - 10000; // сопротивление Serial.print("R = "); Serial.print(R); Serial.print(" U text-info" >Модуль датчика температуры KY-028
Датчик применяется для контроля температуры воздуха в помещении: регулятор температуры, автоматика систем отопления, автоматизация систем вентиляции.
Датчик грубо оценивает величину температуры, но умеет точно определять превышение порогового значения.
Технические характеристики
Напряжение питания: 3,3 – 5,5 В
Рабочая температура: 0 – 70°C
У датчика имеется два вывода: аналоговый и цифровой. Аналоговый позволяет получить температуру, цифровой - превышение установленного порога.
KY-028 | Arduino ---------------- A0 | A G | GND + | 5V D0 | D
Основной элемент датчика – терморезистор, который соединён со входом микросхемы компаратора LM393YD. С помощью подстроечного резистора выполняется настройка порога срабатывания компаратора. Так устанавливается температурный порог. При превышении температурой установленного порога на цифровом выходе D0 будет высокий уровень напряжения. Если температура мала, то на выходе D0 низкий уровень.
Датчик содержит два светодиодных индикатора. Индикатор L1 сообщает о подаче питания. Светодиод L2 включается при превышении температурой окружающего воздуха установленного порога. С его помощью удобно проводить настройку модуля.
При включении на выходе A0 присутствует напряжение соответствующее температуре в комнате. Эта температура известна лишь приблизительно. Для повышения точности можно использовать температуру тела (сожмите терморезистор пальцами), в этом случае мы узнаем напряжение аналогового выхода при температуре 36,6°C. На эти данные можно опираться в дальнейшем. Другой вариант - температура таяния льда 0°C. Используйте пакетик с таящим льдом или снегом из холодильника, чтобы получить новое значение напряжения, которому можно верить.
int led = 13; // LED pin int digitalPin = 2; int analogPin = A0; int digitalVal; // digital readings int analogVal; //analog readings void setup() < pinMode(led, OUTPUT); pinMode(digitalPin, INPUT); Serial.begin(9600); >void loop() < digitalVal = digitalRead(digitalPin); if(digitalVal == HIGH) // if temperature threshold reached < digitalWrite(led, HIGH); // turn on LED >else < digitalWrite(led, LOW); // turn off >// Read the analog pin analogVal = analogRead(analogPin); Serial.println(analogVal); delay(100); >
Arduino и датчик влажности почвы
Ёмкостный датчик влажности почвы позволяет, как понятно из названия, измерять влажность почвы. В отличие от обычных резистивных датчиков не окисляется со временем и не теряет своих свойств и точности.
Питание: 2.5.. 5V
Аналоговый выход: ~0.8.. 2.5V
Подключение
Подключается к питанию (GND, VCC), выход AOUT – на любой аналоговый пин:
Примеры
Выведем показания с датчика в порт. Он подключен в аналоговый пин 0, поэтому читаем как analogRead(0) :
void setup() < Serial.begin(9600); >void loop()
Открываем порт и наблюдаем показания.
Прежде чем делать автоматический полив, нужно знать диапазон показаний датчика, изучив значения из монитора порта. У меня получилось так:
Окружение датчика
Показания (Arduino 5V)
Показания (Wemos Mini 3.3V)
Воздух
500
670
Прижал палец
300
350
Сухая земля
260
330
Мокрая земля
180
280
Сделаем простую условную конструкцию, которая будет включать бортовой светодиод на плате, если земля слишком сухая:
// порог срабатывания #define DRY_SIGNAL 230 void setup() < // пин светодиода как выход pinMode(LED_BUILTIN, OUTPUT); >void loop() < // если земля сухая - включаем светодиод if (analogRead(0) >DRY_SIGNAL) < digitalWrite(LED_BUILTIN, HIGH); >else < digitalWrite(LED_BUILTIN, LOW); >delay(500); >
Домашнее задание
Попробовать датчик в горшке с цветком. Полить цветок
Связанные уроки
Датчик влажности почвы, емкостной
в корзину >
Перейти в корзину и оформить заказ.
+7 968 454 17 38
+7 968 437-41-12
Обсудить вопросы приобретения, не технические! *Доступно общение только текстовыми сообщениями, звонки и аудио сообщения не обслуживаются
С этим товаром берут
Мембранный насос 385, 6 - 12В
Конструктор ПВХ Чёрный «Корпус Set Box XL»
Piranha Uno R3
Шлейф «мама-мама» (3 pin, 100 см)
Силовой ключ N-канал (Trema-модуль)
Описание товара
Подробное описание товара
Общие сведения:
Предлагаем вашему вниманию емкостной датчик влажности почвы, который идеально подойдет для систем автополива растений, наблюдений изменения влажности почвы, системы сигнализации о протечке грунтового трубопровода и замеров уровня жидкости. Датчик основан на технологии шунтирования высокой частоты. В отличии от традиционного датчика влажности этот датчик не подвержен коррозии. С 10.03.2022 датчик получил дополнительный защитный слой из цапонлака.
Характеристики:
Напряжение питания Vcc: 5 В или 3,3 В
Напряжение на выходе датчика при Vcc 5В: ~3 . 1,75В; при Vcc 3,3В: ~2 . 1В
Выход датчика инверсный
Максимальный потребляемый ток: < 5,3 мА, при Vcc = 5 В и датчик погружён в грунтовую воду.
Глубина погружения в почву: 65 мм
Рабочая температура: 0 . 85 °С
Габариты: 105х16х7 мм (с учётом колодки выводов)
Вес: 5 г
Подключение
Для удобства подключения к Arduino воспользуйтесь Trema Shield, Trema Power Shield, Motor Shield или Trema Set Shield.
Аналоговый выход датчика Signal (S) подключается к любому аналоговому входу Arduino.
Датчик можно подключить к постоянному или управляемому питанию.
Комплектация
1x Датчик влажности почвы;
1x Трёхпроводной шлейф;
Ссылки
Добавлен в корзину ✓
Убедитесь, что у вас есть все необходимое для вашего проекта – ниже представлен выбор необходимых дополнительных услуг!