Ардуино уровень воды: делаем индикатор своими руками

Делаем датчик для Ардуино своими руками

Как сделать датчик протечки воды своими руками для Ардуино ► соберем простой датчик воды Arduino из подручных материалов, которые есть в каждом доме.

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

Данный датчик можно будет использовать при создании проектов «умного» полива грядок или комнатных цветов. Благодаря недорогим компонентам и простоте своей работы датчик воды для Ардуино можно сделать самостоятельно. Чтобы сделать датчик протечки воды своими руками потребуется: два гвоздя, несколько проводов, резистор на 220 Ом, клеммники и небольшой набор инструментов.

Как сделать аналоговый датчик своими руками

Для этого проекта нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • самодельный датчик воды;
  • 1 светодиод и резистор на 220 Ом;
  • провода «папа-папа» и «папа-мама».

Собираем датчик протечки воды своими руками

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

Фото. Схема датчика воды своими руками и подключение к Ардуино

Далее необходимо ослабить контакты, выкрутив винты. Согласно схеме на фото вставьте в крайние контакты гвозди и зачищенные концы проводов. Левый и средний контакт следует соединить резистором с номиналом 220 Ом. В правый контакт также вставляется зачищенный конец провода. Осталось лишь подготовить контакты на всех проводах, для подключения датчика воды к плате Ардуино.

Проверка самодельного датчика на Ардуино

Теперь вы знаете, как сделать датчик воды своими руками для Ардуино, осталось лишь проверить правильность работы и показания прибора. Для этого мы используем скетч из предыдущего занятия «Кружка робототехники на Ардуино» и соберем схему с автоматическим включением и выключением светодиода, подключив самодельный датчик воды к Ардуино (смотри фото сборки схемы выше).

Скетч для самодельного датчика воды Ардуино

В первой строчке скетча мы присвоили имя x для значений c входа A0. С помощью оператора int , мы указали, что значения x могут принимать только целое число. Условный оператор if позволяет нам определить действие при истинном условии. Показания датчиков могут разниться — это зависит от токопроводимости материалов. Добавьте в воду соль и наблюдайте за изменениями показания с датчика.

Датчик уровня воды

Товары

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

Содержание:

Обзор датчика уровня воды

Arduino Датчик уровня воды предназначен для определения уровня воды в различных емкостях, где недоступен визуальный контроль, с целью предупреждения перенаполнения емкости водой через критическую отметку.

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

  • + – питание датчика;
  • – – земля;
  • S – аналоговое значение.

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

Технические характеристики модуля

  • Напряжение питания: 3.3-5 В;
  • Ток потребления 20 мА;
  • Выход: аналоговый;
  • Зона обнаружения: 16×30 мм;
  • Размеры: 62×20×8 мм;
  • Рабочая температура: 10 – 30 °С.

Пример использования

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

  • Плата Arduino Uno
  • Датчик уровня воды
  • Динамик 8 Ом
  • Резистор 500 Ом
  • Транзистор КТ503е
  • Соединительные провода

Соберем схему, показанную на рисунке.

Запустим Arduino IDE. Создадим новый скетч и внесем в него следующие строчки Аналоговый вывод датчика подключен к аналоговому входу Arduino, который представляет собой аналого-цифровой преобразователь (АЦП) с разрешением 10 бит, что позволяет на выходе получать значения от 0 до 1023. Значение аналоговых сигналов на аналоговом входе Arduino для трех уровней погружения были определены экспериментальным путем: > 400 – минимальное погружение; > 500 – средний уровень погружения; > 600 – большое погружение. Соответственно для каждого уровня погружения на динамике воспроизводится звуковой сигнал разной частоты: минимальное погружение – 293 Гц (нота ре 1 октавы); средний уровень погружения – 466 Гц (нота си-бимоль 1 октавы); большое погружение – 587 Гц (нота ре 2 октавы). При отсутствии погружения звуковой сигнал на динамике не воспроизводится.

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

Недавно у меня появилась необходимость определять критический уровень жидкости в емкости и сигнализировать об этом. Первым делом я, конечно, отправился искать готовый датчик уровня воды на просторах aliexpress. Но ни чего подходящего за разумные деньги там не нашлось, поэтому поиски перенеслись на форумы и сайты электронщиков. Там тоже не удалось откопать ни чего простого в реализации и дешевого. Делать нечего, прошлось изобретать самому – несколько часов проектирования и датчик готов. За основу был взят обычный геркон, который срабатывает при приближении к нему магнита.

Принцип работы датчика уровня воды

Идею работы датчика, как бы это ни было смешно, я подсмотрел в смывном бочке унитаза. Датчик оборудован поплавком, который держится на шарнирном соединении. Шарнир находится посередине подвижного рычага. На одном краю рычага расположен поплавок, который приводит в движение всю конструкцию, при изменении уровня воды. А на другом краю рычага крепится магнит, который в зависимости от положения поплавка, то приближается, то отдаляется от геркона. Геркон же, в свою очередь, прикреплен к неподвижной части датчика и срабатывает на замыкание, только когда поплавок поднят жидкостью, а магнит соответственно приблизился.
Для лучшего понимания работы датчика, ниже приведена картинка с двумя положениями датчика.

Датчик был напечатан на 3D принтере, магнит «выдран» из динамика от старых и не рабочих наушников, ну а геркон уже пришлось купить – стоимость его 10 руб. Таким образом, датчик обошелся совсем дешево и получился довольно качественным. Единственное, что нужно его немного довести до ума, пропитав или просто покрыв, смолой или лаком. Это увеличит срок годности датчика, поскольку он будет постоянно соприкасаться с жидкостью.

Подключение геркона к arduino

Датчик готов, остается только подключить его к ардуино и написать простую прошивку. По сути, весь датчик состоит из одного геркона и магнита, все остальное, это просто корпус. Поэтому подключение элементарное: геркон не имеет полярности, поэтому все что нужно, это подключить одним электродом к 5V, а другим к любому цифровому или аналоговому пину. И не забыть притянуть геркон к земле через резистор номиналом от 10 кОм. Все то же самое, что и с обыкновенной кнопкой. Но на всякий случай, для ясности, ниже приведена схема подключения.

Код для определения положения датчика уровня воды

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

Послесловие

Вдруг, кто-то захочет повторить датчик, то пишите мне на почту или в комментарии, я скину 3d-модели и даже могу помочь с их печатью 🙂

Датчик уровня воды в резервуаре своими руками: схема, компоненты, тесты, программирование на Arduino

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

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

Мы подумали, что с использованием современной электроники можно изменить эту традицию и сделать её более автоматизированной. При помощи нескольких программистских уловок, мы смогли использовать Ардуино и ультразвуковой модуль для измерения расстояния до водной поверхности (I) с достаточной надежностью и точностью до +/- нескольких миллиметров. Это значит, что мы смогли рассчитать объем (V), используя диаметр колодца (D) и его глубину (L) с точностью до +/- 1 литра.

Поскольку колодец располагается примерно в 25 метрах от дома, а мы хотели поместить дисплей датчика дома, мы решили использовать два Ардуино и передавать данные от одного из них к другому. Если вам захочется, то проект можно переделать под использование всего одного Ардуино. Почему мы не использовали беспроводной интерфейс? Во-первых, из за простоты использования — провод меньше подвержен порче влагой. Также потому, что мы хотели избежать использования аккумуляторов в той части, в которой располагался датчик. С помощью провода мы можем передавать как данные, так и питание по одному кабелю.

  1. Модуль Ардуино в доме — это основной модуль Ардуино. Он отправляет сигнал на Arduino в колодце, получает замеры расстояния и отображает рассчитанный объём оставшейся воды на дисплее.
  2. Модуль Ардуино в колодце и ультразвуковой модуль просто получают сигнал из дома, запускают процесс измерения и отправляют обратно информацию о расстоянии от датчика до воды. Схема встроена в непроницаемую коробку с пластиковой трубкой, прикреплённой к той стороне, где находится ультразвуковой модуль. Трубка нужна для того, чтобы снизить уровень помех, сократив поле зрения датчика таким образом, чтобы ему была видна только вода.

Шаг 1: Компоненты, тесты, программирование

В этом проекте используются следующие компоненты:

  • 2 модуля Ардуино (один для измерения уровня жидкости, второй для отображения результатов на дисплее)
  • Обычная 12V батарейка
  • Ультразвуковой модуль HC-SR04
  • Модуль LED дисплея MAX7219
  • Телефонный кабель — 25 метров, 4 жилы: питание, заземление и 2 провода для данных
  • Коробка для установки электроники
  • Горячий клей
  • Паяльник

Для того, чтобы убедиться, что все работает как надо, мы все спаяли, соединили и проверили «на коленке». В интернете есть много программ, работающих с ультразвуковыми датчиками и дисплеями, так что мы просто использовали то, что нашли в интернете, чтобы проверить, что замеренное расстояние верно (картинка 1) и что мы можем поймать ультразвуковое отражение с поверхности воды (картинка 2). Также мы проверили, что ультразвуковой датчик уровня воды передаёт данные на длинные расстояния, чтобы у нас не было проблем при установке.

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

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

Финальную версию рабочего кода для обеих плат Ардуино можно найти здесь: ссылка

Шаг 2: Общественные работы

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

Шаг 3: Соединяем и устанавливаем все компоненты

Соедините всё также, как при тестировании — всё должно заработать. Помните о том, что пин TX на одном Ардуино соединяется с пином RX на втором модуле, и наоборот. Как видно на картинке 1, для питания модуля Ардуино в колодце, мы использовали обычный телефонный кабель.

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

Шаг 4: Калибровка

Удостоверьтесь в том, что дистанция между датчиком и поверхностью воды измерена корректно. Калибровка состоит лишь в том, чтобы замерить диаметр колодца и его полную глубину — эти данные нужны для измерения объема жидкости. Чтобы получить точные данные, мы также настроили другие параметры программы (время между замерами, параметры частичного обновления, количество изначальных замеров).

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

Заметка: В настоящее время преобразование времени-расстояния не корректируется при изменении скорости звука из-за колебаний температуры. Это будет хорошим дополнением в будущих доработках, так как температура в колодце заметно меняется.

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Источники:

http://3d-diy.ru/wiki/arduino-datchiki/arduino-datchik-urovnya-vody/

http://vk-book.ru/datchik-urovnya-vody-primer-podklyucheniya-gerkona-k-arduino/

http://masterclub.online/topic/14262-datchik-urovnya-vody-v-rezervuare

http://arduinoplus.ru/avtomatika-na-baze-mikrokontrollera-arduino/

Ссылка на основную публикацию