Как определить наличие воды с помощью всего двух проводов

Я не знаю, относится ли этот вопрос сюда или к SE электроники.

Производитель только что прислал мне персонализированное устройство, включающее ESP-32 и датчик воды.

Моя проблема в том, что я не знаю, как получить данные датчика воды (есть вода или нет).
Когда я использовал Arduino Nano и датчик воды Funduino, было легко получить значение, поскольку у этого датчика есть 3 разъема (VCC, GND, Data), мне просто нужно было выполнить базовый analogRead(DATA_PIN).

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

Итак, как определить наличие воды в Arduino, используя только эти 2 провода?

Что я пробовал:

  • Аналоговое чтение на выводе GPIO33
  • Цифровое чтение на выводе GPIO33
  • Попробуйте использовать TOUCH_PAD с этим контактом, используя touchAttachInterrupt(T8, callback, Threshold);, но обратный вызов так и не был вызван
  • Свяжитесь с производителем (он сказал, что все работает отлично, для тестирования он использовал touch_pad, но никогда не использовал Arduino IDE, только ESP-IDF, о котором я действительно не знаю)

schematic

ОТРЕДАКТИРОВАНО:

На этом изображении представлена задняя часть устройства с датчиком, внутренний провод напрямую подключен к GND, а внешний провод подключен к GPIO_33. Это все, никаких скрытых разъемов или чего-то еще.

Задняя часть устройства с этими двумя проводами

, 👍1

Обсуждение

Вам придется показать нам, что это за загадочный датчик., @Majenko

@Маженко Я отредактировал вопрос с фотографией устройства, @Gazouu

То есть это буквально два оголенных провода? Ничего больше?, @Majenko

Да, вот и все, один подключен к GPIO_33, а другой к ЗЕМЛЕ., @Gazouu


1 ответ


Лучший ответ:

5

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

Вы можете использовать его как часть резистивного делителя с постоянным резистором между аналоговым входом и +3,3 В. Сопротивление между проводами изменится с бесконечного (сухого) на гораздо меньшее (мокрое), и это отобразят показания, полученные от АЦП.

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

Однако имейте в виду, что этот метод вызовет небольшой электролиз, в результате чего один электрод будет разрушен, а на другом появится дополнительный материал. По этой причине может быть полезно подключить резистор к выводу GPIO вместо прямого подключения к +3,3 В и переключить вывод GPIO ВЫСОКИЙ, когда вы хотите выполнить чтение (для обеспечения питания), и НИЗКИЙ (или ВХОД), когда в другое время (чтобы отключить питание). Это значительно увеличит срок службы вашего датчика воды.

,

Хм, устройство уже функционально, и мне не нужно добавлять электронные детали. (по данным производителя). Мне просто нужен способ получить значение, которое я думаю, @Gazouu

Я не знаком с ESP32, но вы можете сделать это, включив внутренний подтягивающий резистор на выводе GPIO., @Majenko