Как определить наличие воды с помощью всего двух проводов
Я не знаю, относится ли этот вопрос сюда или к 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, о котором я действительно не знаю)
ОТРЕДАКТИРОВАНО:
На этом изображении представлена задняя часть устройства с датчиком, внутренний провод напрямую подключен к GND, а внешний провод подключен к GPIO_33. Это все, никаких скрытых разъемов или чего-то еще.
@Gazouu, 👍1
Обсуждение1 ответ
Лучший ответ:
Поскольку у вас есть всего два оголенных провода, вода просто образует резистор между ними.
Вы можете использовать его как часть резистивного делителя с постоянным резистором между аналоговым входом и +3,3 В. Сопротивление между проводами изменится с бесконечного (сухого) на гораздо меньшее (мокрое), и это отобразят показания, полученные от АЦП.
Вам придется поэкспериментировать с разными сопротивлениями, чтобы получить разумные значения, но начните с 10 или 100 кОм. Если вы используете очень высокое сопротивление (порядка 1 МОм или более), вы можете даже использовать его как простой переключатель и подключить к цифровому входу.
Однако имейте в виду, что этот метод вызовет небольшой электролиз, в результате чего один электрод будет разрушен, а на другом появится дополнительный материал. По этой причине может быть полезно подключить резистор к выводу GPIO вместо прямого подключения к +3,3 В и переключить вывод GPIO ВЫСОКИЙ, когда вы хотите выполнить чтение (для обеспечения питания), и НИЗКИЙ (или ВХОД), когда в другое время (чтобы отключить питание). Это значительно увеличит срок службы вашего датчика воды.
Хм, устройство уже функционально, и мне не нужно добавлять электронные детали. (по данным производителя). Мне просто нужен способ получить значение, которое я думаю, @Gazouu
Я не знаком с ESP32, но вы можете сделать это, включив внутренний подтягивающий резистор на выводе GPIO., @Majenko
- Библиотека емкостных датчиков на D1 Mini
- ESP32-CAM не читает BME680
- Существует ли точная процедура подключения между esp32 и ультразвуковым датчиком(HC-SR04)?
- Драйверы для чипа последовательного порта CH9102X
- ESP32: отключить детектор отключения питания
- Преобразование строки в IP-адрес
- Какую плату выбрать в PlatformIO для ESP Wroom 32?
- esp32 Stack canary watchpoint срабатывает
Вам придется показать нам, что это за загадочный датчик., @Majenko
@Маженко Я отредактировал вопрос с фотографией устройства, @Gazouu
То есть это буквально два оголенных провода? Ничего больше?, @Majenko
Да, вот и все, один подключен к GPIO_33, а другой к ЗЕМЛЕ., @Gazouu