Для сборки измерителя уровня воды я стоял перед выбором метода измерения – контактный или бесконтактный. К контактным относятся резистивный, конденсаторный и индуктивный методы, из бесконтактных способов наибольшее распространение получили визуальный, радарный и ультразвуковой. Чтобы не повлиять на качество воды в емкости мы прибегнем к одному из бесконтактных методов измерения уровня жидкости.
Все бесконтактные методы основаны на одном принципе: сигнал уходит, проходит определенное время, сигнал возвращается. Визуальный метод использует оптический сигнал, он достаточно точный, но если датчик загрязнится, то он вообще перестанет работать.
При использовании радарного метода измерения уровня используются высокочастотные радиоволновые сигналы, из-за этого метод не подходит для использования в домашних условиях. Ультразвуковой метод аналогичен радарному, только вместо радиоволн используются ультразвуковые волны. Этот способ подходит нам как нельзя лучше, из-за того, что ультразвуковые сенсоры легко найти и они недороги.
Измеритель уровня жидкости я сделал на базе микроконтроллера Arduino Mega2560 (можно взять любой контроллер Arduino).
За любые повреждения, полученные в процессе сборки автор статьи ответственности не несет.
Содержание статьи
Шаг 1: Материалы
Материалы для датчика уровня воды в резервуаре:
- Arduino (Uno, Mega 2560,…)
- ультразвуковой датчик измерения расстояния HC SR04
- провода для подключения датчика к контроллеру
- оргстекло для корпуса (опционально)
Шаг 2: Немного теории
Для начала я расскажу вам немного об ультразвуковом способе измерения уровня жидкости. Смысл все бесконтактных приборов измерения уровней заключается измерении расстояния между трансивером и поверхностью жидкости. Трансивер посылает короткий ультразвуковой импульс и измеряется время, за которое сигнал идет до поверхности жидкости и обратно до трансивера. Из-за того, что плотность жидкости выше, чем плотность воды, ее поверхность отразит ультразвуковой импульс.
У ультразвукового метода измерения есть свои минусы:
- Из-за длины импульса остается маленькое окно для приема отраженного сигнала, потому что трансивер продолжает испускать сигнал. Проблема решается достаточно просто: сенсор размещается на несколько сантиметров выше максимального уровня жидкости, позволяя приемнику начать прием сигнала.
- Из-за ширины луча имеются ограничения в диаметре используемой емкости. Если диаметр будет слишком мал, отраженный от поверхности жидкости сигнал будет отражаться и от стенок емкости, тогда данные могут быть ложными.
- Прежде чем установить счетчик в бак на постоянное место, его протестировали на эти два момента. Стабильные данные получены на расстоянии минимум 5 см от сенсора. Это значит, что сенсор нужно установить не ниже 5 см над уровнем жидкости. Также не было отраженных от стен бака сигналов при диаметре сосуда 7,5 см (высота 0,5 м). Эти результаты были учтены при установке сенсора в бак.
Шаг 3: Водяной бак
Вода в систему полива будет поступать самотеком. Поэтому бак должен быть установлен выше уровня пола. Бак сделан из метровой канализационной трубы диаметром 16 см. Труба разделена на две секции. В нижней секции располагаются клапана, верхняя будет собственно резервуаром с водой. В качестве крышки резервуара используется заглушка. К заглушке крепится ультразвуковой датчик измерения расстояния. Для устойчивости бак установлен в деревянный короб, в котором установлена электроника и аккумулятор.
Высоту столба жидкости кодируем в процентах, точкой отсчета будут показания счетчика от 6 см (100%), и до 56 см (0%), 6 см – удаление от поверхности воды.
Бак сделан из трубы для простоты вычислений объема (цилиндиреская форма без изменений диаметра).
Шаг 4: Схема соединения ультразвукового датчика и контроллера
Сначала припаиваем к ультразвуковому датчику провода (витая пара, без экранирующего покрытия или фольгированная). Потом помещаем датчик в самодельный корпус из оргстекла. Корпус герметизируем и крепим на крышку бака. Корпус сделан по ходу дела и не является обязательной деталью, поэтому его нет на фото и нет инструкций по изготовлению, так что импровизируйте, если решили сделать его.
Следуя приложенной схеме, подключите датчик к контроллеру.
Шаг 5: Программа
Программа по измерению расстояния конвертирована в программу по определению уровня воды.
Сначала посылается сигнал, затем он возвращается, измеряется время между передачей и приемом сигнала, а полученные данные преобразуются в сантиметры. Сантиметры, в свою очередь, преобразуются в проценты и через последовательное соединение эти данные передаются на компьютер. Также можно подсчитать оставшийся в резервуаре объем воды.
Файлы
Шаг 6: Проверка
Так как потом этот водяной бак будет использоваться в автоматической системе полива с двухступенчатым регулятором, необходимо измерить показатели потока. Выходной поток из бака зависит от гидростатического давления внутри него.
Любой человек, знакомый с основами гидродинамики, знает, что гидростатическое давление уменьшается при снижении уровня воды. Чтобы полив растений осуществлялся одинаковым объемом воды, нужно иметь возможность контролировать время, в течение которого клапан остается открытым. Зная показатели потока, можно подсчитать, какой объем воды может вытечь из бака за определённое время, и таким образом определить время, в течение которого клапан должен быть открытым.
Чтобы проверить точность работы нашего измерителя уровня воды наполните резервуар водой до максимального уровня. Затем откройте клапан, чтобы вся вода вытекла. Бак опустел до 2% из-за того, что конструкция сделана таким образом, чтобы предотвратить вытекание остатков. На картинке приложена диаграмма ступенчатой функции, по этой диаграмме мы можем приблизительно оценить на каком уровне воды происходит изменение (с помощью Excel, Matlab или другой вычислительной программы).
Датчик уровня воды, собранный своими руками работает в соответствии с ожиданиями.
Шаг 7: Применение в проектах
Собранный измеритель уровня воды с ультразвуковым датчиком является образцом. Если мы хотим применять измеритель в проектах, как самодельных, так и полупромышленных, нужно провести испытания на износостойкость и водостойкость. После проведения испытания будет ясно, подходит ли измеритель для использования в каких-либо проектах. Прямо сейчас я могу лишь сказать, что датчик работает нормально то время, которое прошло после сборки.
Из-за того, что метод измерения уровня воды бесконтактный, вода не загрязняется. Сам датчик вышел совсем недорогим по себестоимости, а это значит, что его можно использовать в самодельных проектах.