Датчики уровнемеров и авторегуляторов уровня воды в баке

Для сборки измерителя уровня воды я стоял перед выбором метода измерения – контактный или бесконтактный. К контактным относятся резистивный, конденсаторный и индуктивный методы, из бесконтактных способов наибольшее распространение получили визуальный, радарный и ультразвуковой. Чтобы не повлиять на качество воды в емкости мы прибегнем к одному из бесконтактных методов измерения уровня жидкости.

Все бесконтактные методы основаны на одном принципе: сигнал уходит, проходит определенное время, сигнал возвращается. Визуальный метод использует оптический сигнал, он достаточно точный, но если датчик загрязнится, то он вообще перестанет работать.

При использовании радарного метода измерения уровня используются высокочастотные радиоволновые сигналы, из-за этого метод не подходит для использования в домашних условиях. Ультразвуковой метод аналогичен радарному, только вместо радиоволн используются ультразвуковые волны. Этот способ подходит нам как нельзя лучше, из-за того, что ультразвуковые сенсоры легко найти и они недороги.

Измеритель уровня жидкости я сделал на базе микроконтроллера Arduino Mega2560 (можно взять любой контроллер Arduino).

За любые повреждения, полученные в процессе сборки автор статьи ответственности не несет.

Шаг 1: Материалы

Материалы для датчика уровня воды в резервуаре:

  • Arduino (Uno, Mega 2560,…)
  • ультразвуковой датчик измерения расстояния HC SR04
  • провода для подключения датчика к контроллеру
  • оргстекло для корпуса (опционально)

Шаг 2: Немного теории

Для начала я расскажу вам немного об ультразвуковом способе измерения уровня жидкости. Смысл все бесконтактных приборов измерения уровней заключается измерении расстояния между трансивером и поверхностью жидкости. Трансивер посылает короткий ультразвуковой импульс и измеряется время, за которое сигнал идет до поверхности жидкости и обратно до трансивера. Из-за того, что плотность жидкости выше, чем плотность воды, ее поверхность отразит ультразвуковой импульс.

У ультразвукового метода измерения есть свои минусы:

  1. Из-за длины импульса остается маленькое окно для приема отраженного сигнала, потому что трансивер продолжает испускать сигнал. Проблема решается достаточно просто: сенсор размещается на несколько сантиметров выше максимального уровня жидкости, позволяя приемнику начать прием сигнала.
  2. Из-за ширины луча имеются ограничения в диаметре используемой емкости. Если диаметр будет слишком мал, отраженный от поверхности жидкости сигнал будет отражаться и от стенок емкости, тогда данные могут быть ложными.
  3. Прежде чем установить счетчик в бак на постоянное место, его протестировали на эти два момента. Стабильные данные получены на расстоянии минимум 5 см от сенсора. Это значит, что сенсор нужно установить не ниже 5 см над уровнем жидкости. Также не было отраженных от стен бака сигналов при диаметре сосуда 7,5 см (высота 0,5 м). Эти результаты были учтены при установке сенсора в бак.

Шаг 3: Водяной бак

Вода в систему полива будет поступать самотеком. Поэтому бак должен быть установлен выше уровня пола. Бак сделан из метровой канализационной трубы диаметром 16 см. Труба разделена на две секции. В нижней секции располагаются клапана, верхняя будет собственно резервуаром с водой. В качестве крышки резервуара используется заглушка. К заглушке крепится ультразвуковой датчик измерения расстояния. Для устойчивости бак установлен в деревянный короб, в котором установлена электроника и аккумулятор.

Высоту столба жидкости кодируем в процентах, точкой отсчета будут показания счетчика от 6 см (100%), и до 56 см (0%), 6 см – удаление от поверхности воды.

Бак сделан из трубы для простоты вычислений объема (цилиндиреская форма без изменений диаметра).

Шаг 4: Схема соединения ультразвукового датчика и контроллера

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

Следуя приложенной схеме, подключите датчик к контроллеру.

Шаг 5: Программа

Программа по измерению расстояния конвертирована в программу по определению уровня воды.

Сначала посылается сигнал, затем он возвращается, измеряется время между передачей и приемом сигнала, а полученные данные преобразуются в сантиметры. Сантиметры, в свою очередь, преобразуются в проценты и через последовательное соединение эти данные передаются на компьютер. Также можно подсчитать оставшийся в резервуаре объем воды.

Файлы

  • level_meter.ino

Шаг 6: Проверка

Так как потом этот водяной бак будет использоваться в автоматической системе полива с двухступенчатым регулятором, необходимо измерить показатели потока. Выходной поток из бака зависит от гидростатического давления внутри него.

Любой человек, знакомый с основами гидродинамики, знает, что гидростатическое давление уменьшается при снижении уровня воды. Чтобы полив растений осуществлялся одинаковым объемом воды, нужно иметь возможность контролировать время, в течение которого клапан остается открытым. Зная показатели потока, можно подсчитать, какой объем воды может вытечь из бака за определённое время, и таким образом определить время, в течение которого клапан должен быть открытым.

Чтобы проверить точность работы нашего измерителя уровня воды наполните резервуар водой до максимального уровня. Затем откройте клапан, чтобы вся вода вытекла. Бак опустел до 2% из-за того, что конструкция сделана таким образом, чтобы предотвратить вытекание остатков. На картинке приложена диаграмма ступенчатой функции, по этой диаграмме мы можем приблизительно оценить на каком уровне воды происходит изменение (с помощью Excel, Matlab или другой вычислительной программы).

Датчик уровня воды, собранный своими руками работает в соответствии с ожиданиями.

Шаг 7: Применение в проектах

Собранный измеритель уровня воды с ультразвуковым датчиком является образцом. Если мы хотим применять измеритель в проектах, как самодельных, так и полупромышленных, нужно провести испытания на износостойкость и водостойкость. После проведения испытания будет ясно, подходит ли измеритель для использования в каких-либо проектах. Прямо сейчас я могу лишь сказать, что датчик работает нормально то время, которое прошло после сборки.

Из-за того, что метод измерения уровня воды бесконтактный, вода не загрязняется. Сам датчик вышел совсем недорогим по себестоимости, а это значит, что его можно использовать в самодельных проектах.

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

Датчики доехали за 14 дней, упакованы были достаточно хорошо. Сами датчики в пакетиках:


Распаковываем:

Длина шнурка порядка 45 см:

Размеры:




Датчик очень легкий, вес:

Разъем имеет 4 контакта:

Слева направо:

— коричневый — питание

— желтый — сигнал

— синий — земля

— черный настройка

На датчике имеется индикатор, который при обнаружении воды, должен загораться, судя по описанию продавца. Питаться датчик умеет в диапазоне от 5 до 24 Вольта, что очень удобно. Корпус влагозащищенный (ip67), что позволяет размещать датчик на улице, либо во влажном помещении, не заботясь о его защите. чтобы сходу не ломать разъем, подключим модельные проводки:

У меня на даче имеется встроенный в стену самодельный регулируемый блок питания, подключим питание, 12 Вольт:


Подносим к бутылке с водой, индикатор загорается:

Если поднять выше уровня воды — индикатор гаснет:

Кстати если прислонить руку, индикатор также загорается:

Подключим мультиметр к проводкам питания, и убедимся в работоспособности

Далее: минус на землю, а плюс на вывод сигнала:

Подносим к бутылке и видим на выходе напряжение питания:

Если отвести датчик, напряжение на сигнальном выходе пропадает:

Выходной ток датчика в диапазоне 1-50 мА.

Продавец, заявляет работоспособность при питании в диапазоне 5-24 Вольта, попробуем снизить напряжение питания до 4-х Вольт:

Датчик отлично работает, попробуем снизить до 3-х Вольт:

Уверенная работа датчиков, позволяет сделать вывод об удачном его использовании с esp8266 без всяких преобразований — а это отличная новость!

При других напряжениях, датчик также хорошо работает:


Выходить за пределы 24-х Вольт я не решился.

Выставим 5 Вольт:

Датчик реагирует на свой пакетик:

Со стороны пробки бутылки тоже реагирует:

Приклеим двухсторонним скотчем 3М к бутылке:


Датчик отлично реагирует. При двух слоях скотча, датчик не всегда срабатывает:


Потребление составляет порядка 5-6 мА:


Ну и конечно попробуем применить в реальных условиях, работая с контроллером. В качестве контроллера возьмём Arduino Nano, также добавим индикаторный светодиод, получился такой комплект:

Светодиод подключим к выводу D3 и земле, а сигнальный выход датчика к выводу A0 (D14 — так как мы будем его использовать в цифровом режиме), также на датчик подадим питание от контроллера:

Учитывая, что датчик предназначен для воды, работая с ним очень важно защитится от дребезга контактов, например при волнах, когда работает насос. Также, я покажу как организовать такую защиту не пользуясь задержками в программе, собственно код:

// Текущее состояние сенсора
bool SensorState = false;
// Время начала смены
unsigned long SensorStartChange = 0;
// Защитный интервал между сменами состояния
unsigned long TIMEOUT = 3000;
// Текущее время
unsigned long CurrentTime = 0;

void setup() {
// Светодиод это выход
pinMode(LED_PIN, OUTPUT);
// Вначале не светим
digitalWrite(LED_PIN, LOW);
// Сенсор это вход
pinMode(SENS_PIN, INPUT);
}

void loop() {
// Устанавливаем текущее время
CurrentTime = millis();
// считываем сенсор
boolean CurrentState = digitalRead(SENS_PIN);
// если текущее состояние сенсора отличается считанного
if (CurrentState != SensorState) {
// если отсчет таймера смены состояния не начат, начинаем
if (SensorStartChange == 0) SensorStartChange = CurrentTime;
// если новое состояние приняло свое значение за время большее чем время таймаута
if (CurrentTime — SensorStartChange > TIMEOUT) {
// меняем состояние сенсора
SensorState=!SensorState;
// сбрасываем время начала смены состояния
SensorStartChange = 0;
// если текущее состояние сенсора 1, то включаем светодиод
if(SensorState){
digitalWrite(LED_PIN, HIGH);
// если текущее состояние сенсора 0, то выключаем светодиод
}else{
digitalWrite(LED_PIN, LOW);
}
}
// смена состояния не состоялась, сбрасываем таймер
}else{
SensorStartChange = 0;
}
}

Я прокомментировал все строчки, чтобы было все понятно. Инициализируем выходы и проверяем смену состояния сигнального выхода датчика с защитой от дребезга контактов. В данном коде, защитный интервал составляет 2019 мс = 3 секунды, часто этот интервал целесообразно увеличить до минуты, чтобы исключить влияние волн от насоса. Код простой, однако на его основе легко, например, организовать защиту от сухого хода насоса (очень нежелательно большинству насосов работать без воды), такие устройства стоят неразумных денег, а тут можно вполне обойтись малой кровью, да еще и реализовать автовосстановление работы насоса при появлении воды и еще ряд приятных плюшек — типа индикации. Для этого нужно такой датчик приклеить или как то закрепить ближе ко дну ёмкости, а насос подключить через реле управляемое контроллером. По умолчанию насос будет включен, как датчик распознает отсутствие воды — контроллер отключит насос, а при появлении воды — включит. Также на этом датчике можно организовать защиту от протечек, особенно учитывая его влагозащищенность, в общем, каждый сможет приспособить этот простой код под свои нужды. А главное датчики можно перемещать по ёмкости без ее повреждения — регулируя под себя уровни.

Видео иллюстрирующее работу датчика и контроллера с указанным кодом:

Я собрал такой макет для тестирования разных емкостей:

С макетом обошел дачный участок, датчик сумел обнаружить воду во всех неметаллических ёмкостях, включая довольно толстостенное ведро. Поэтому на текущем этапе могу его вполне рекомендовать, надежность покажет время.

Время реакции датчика составляет порядка 500 мс. Толщина стенки сосуда из диэлектрика может достигать 1 см.

Принцип работы датчика заключается в изменении ёмкости от паразитной ёмкости воды, при определенном пороге возникает резонанс и датчик срабатывает. Напряжение питание в диапазоне от 3 до 24 Вольта — никак не влияет на чувствительность.

Просили проверить чувствительность, так вот иллюстрация лучше всяких слов:

Как датчик протечек будет работать отлично.

Разные фотки по просьбам

с этим вообще никак — левый спирт:

фэри:

толстая канистра 40 литров:

дистиллированная вода:

крепкие напитки:


бутыль кулера в самом толстом месте:

уайт спирит — нет:

Через керамический унитазный бачок легко находит воду:



Открыл крышку, внутри залито компаундом, но имеется вывод потенциометра, после выкручивания вправо — датчик перестал реагировать на воду, после выкручивания влево начал реагировать на боковые прикосновения пальцем, похоже это регулировка чувствительности.

Если будет интересно, продолжу писать про свои дачные поделки.

Спасибо всем, кто дочитал этот обзор до конца, надеюсь кому-то данная информация окажется полезной. Всем полного контроля над своими водными ресурсами и добра!

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

Конструктивные особенности и принцип работы

Конструкция измерителей уровня жидкости в резервуаре определяется такими характеристиками:

  1. Функциональностью. По этому параметру все измерительные устройства этого класса классифицируют на уровнемеры и сигнализаторы уровня жидкости. Последние определяют конкретную точку наполненности емкости (максимальную и минимальную), а первые — постоянно контролируют уровень жидкости.
  2. Принципом работы. В основу этого параметра заложена акустика, оптика, магнетизм, электропроводность и так далее. От принципа действия устройства зависит область его применения.
  3. Методика измерения (бесконтактная или контактная).

Кроме того, конструктивные особенности устройства определяют тип технологической среды. Например, уровнемеры в баках с питьевой водой отличаются от приспособлений, которые предназначены для измерения наполненности резервуаров с промышленными стоками.

Разновидности датчиков

Все уровнемеры классифицируются по принципу их действия. Основные типы измерительных устройств:

  1. Поплавковый. Это самый простой вариант измерения уровня воды в баке. Конструкция поплавкового уровнемера включает в себя 2 геркона, магнит и поплавок. Когда уровень жидкости увеличивается, поплавок поднимается до первого геркона, который отключает реле двигателя. Если резервуар опустошается, поплавок опускается до второго геркона, который запускает реле и включает насос, перекачивающий жидкость из скважины. Герконовый датчик предельного уровня жидкости можно сделать своими руками. При этом он будет работать, даже если в резервуаре будет объемный слой пены.
  2. Ультразвуковой. Эта разновидность измерительных устройств применяется как для сухой, так и для жидкой среды. Ультразвуковые датчики могут иметь дискретный или аналоговый выход. То есть приспособление может постоянно контролировать уровень воды или ограничивать наполнение емкости при достижении конкретной точки. Такой уровнемер состоит из приемника, УЗ-излучателя и контроллера, отвечающего за обработку сигнала. Сигнализаторы ультразвукового типа являются беспроводными и бесконтактными, поэтому их можно устанавливать даже во взрывоопасных и агрессивных жидкостях.
  3. Электродный (кондуктометрический). Такие уровнемеры не подходят для емкостей с дистиллированной водой. Стандартная конструкция оснащена трехуровневым сигнализатором, в котором наполнение резервуара контролирует пара электродов, а третий — предназначен для аварийных ситуаций, для запуска режима активной откачки.
  4. Емкостный. С использованием таких уровнемеров можно точно идентифицировать предельное наполнение резервуара. Они подходят как для жидкостей, так и для сыпучих субстанций. Емкостные уровнемеры функционируют по такому же принципу, что и конденсаторы: измерение выполняется между пластинками чувствительного элемента. При достижении пикового значения на контроллер отсылается соответствующий сигнал. Иногда емкостные сигнализаторы работают по принципу «сухого контакта», при котором устройство срабатывает через стенку резервуара. Эти приспособления могут эффективно работать в очень обширном диапазоне температур, на их функционирование не влияет электромагнитное излучение. Такие эксплуатационные свойства расширяют область использования емкостных уровнемеров.
  5. Радарный. Эта разновидность сигнализаторов является универсальной, так как она работает с любыми видами технологических сред, включая взрывоопасные и агрессивные жидкости. При этом показания не будут изменяться под воздействием температуры и давления. Прибор излучает радиоволны в определенном частотном диапазоне. Приемник улавливает отраженный радиосигнал и определяет заполненность резервуара, руководствуясь периодом задержки сигнала. На датчик-измеритель не влияет температура и давление. Запыленность технологической среды тоже не сказывается на показаниях. Специалисты отмечают, что радарные приспособления обладают максимальной точностью, так как их погрешность не превышает 1 мм.
  6. Гидростатический. Этот тип сигнализатора позволяет измерять как текущее, так и предельное наполнение емкостей. Принцип работы гидростатического устройства базируется на измерении давления столба жидкости. Популярность таких датчиков обусловлена небольшой ценой и достаточной точностью.

Существуют и другие типы устройств, но они обладают специфичным назначением.

Правила выбора

Выбирать уровнемер для резервуаров необходимо с учетом большого количества факторов. Среди них:

  • состав воды;
  • объем емкости и материал, который был использован для ее изготовления;
  • потребность в контроле предельного и минимального уровня жидкости или мониторинг действительного состояния;
  • возможность внедрения автоматического управления в систему;
  • коммутационные возможности приспособления.

Для выбора бытовых устройств важно учитывать объем емкости, схему управления и принцип срабатывания.

Популярные модели

Современный рынок предлагает много моделей сигнализаторов. Самые популярные из них:

  1. ДЕ-1 (датчик емкостный). Чаще всего этот сигнализатор используется в агрессивных средах химической и металлургической промышленности. Он позволяет контролировать температуру и уровень сыпучих и жидких веществ. Нередко используется в установках аварийной защиты.
  2. ЭСУ-1 (электронный сигнализатор уровня). Корпус этой модели изготовлен из высококачественной стали и фторопласта. Чаще всего ЭСУ-1 устанавливают во взрывоопасных и агрессивных средах. Источник электропитания находится за пределами технологической среды. Датчик измеряет уровень нефти, спирта и воды. Блок питания выполнен из прочного алюминиевого сплава.
  3. РУ-305 (реле уровня). Этот прибор предназначен для контроля состояния жидких сред. Его корпус выполнен из особого материала и может с легкостью выдерживать температуры от -50 до +50 градусов Цельсия. Однако РУ-305 запрещается применять в агрессивных химических средах. Из недостатков этого уровнемера потребители отмечают лишь то, что он работает только в одном положении, без наклона. Измерение уровня осуществляется посредством перемещения магнита с поплавком и срабатывания герконом. Измерения имеют точность не более 5 мм.
  4. СУ-100 (сигнализатор уровня). Датчик для измерения уровня сыпучих и жидких веществ. В конструкции СУ-100 присутствует электромагнитное реле.
  5. Rosemount 5600. Этот радарный датчик уровня позволяет бесконтактно измерять любую разновидность веществ. Чтобы добиться максимально точных показаний, уровнемер необходимо правильно установить. Точность показаний устройства может ухудшаться из-за воздействия электромагнитного излучения. Корпус обладает взрывозащитной конструкцией и дисплеем, на котором отображается вся необходимая информация. Rosemount 2019 может использоваться для измерения температурных показателей в резервуаре. Чтобы в полной мере оценить возможности этого оборудования, ему необходима квалифицированная настройка с учетом диаметра трубопровода, длины уровнемера и расстояния между уровнем и опорной точкой.

Сложные модели целесообразно приобретать лишь для промышленного применения. Для бытовых целей подходят простейшие варианты уровнемеров.