Самодельный датчик протечки на ESP32
Привет всем. Осенью времени появилось побольше, опять немного занялся своим любимым хобби, нраица мне ардуины всякие помучить.
Захотелось сделать датчик протечки. Оказалось, что для этого достаточно двух гвоздиков или винтов. Хотя специализированные датчики стоят копейки, захотелось из говна и палок попробовать. Попробовал – получилось. Текст писал сам, помогал ИИ.
Общая идея датчика: вода замыкает контакты, esp32 это ловит и шлёт нам привет.
Итак, нам нужно:
2 винтика
Есп32
Батарейки
Резистор на 10кОм.
В качестве корпуса взял контейнер от еды. Можно и напечатать на 3Д. Но контейнер тоже неплох, он даже плавать если что сможет.
Закрепляем 2 винтика на расстоянии около 5-7 мм между контактами.
Схема подключения простейшая (куда что втыкать)
Винт №1 — соединяем проводом с пином GND (земля). На платах их обычно несколько, можно взять любой, например, тот, что рядом с 5V.
Винт №2 — соединяем проводом с пином GPIO4 (на многих платах он подписан как D4).
Резистор на 10 кОм — одним концом цепляем к пину 3.3V (это питание логики, не путать с 5V!). Вторым концом — к тому же пину GPIO4, куда идет провод от второго винта.
Зачем нужен резистор и как это всё работает
Дело в том, что цифровые пины микроконтроллера очень чувствительные. Если оставить пин «висеть в воздухе» (ни к чему не подключен), он начинает ловить любые помехи — от вай-фая, от проводов, от вашей руки. В итоге он будет хаотично показывать то «вода», то «сухо».
Чтобы этого не было, в электронике используют подтяжку (pull-up). Резистор на 10 кОм ставится между пином и питанием (3.3V). Он как бы «притягивает» пин к плюсу, чтобы в сухом состоянии там была стабильная единица.
Как работает вся связка:
Сухо: Винт №1 сидит на земле (GND). Винт №2 подключен к пину GPIO4, и к нему же через резистор подтянуто питание 3.3V. Цепь между винтами разорвана. Ток через резистор течь не может, поэтому на пине железно держится высокий уровень (HIGH).
Вода: Вода — это не дистиллят, в ней есть соли, так что она отлично проводит ток. Когда вода замыкает два винта, пин GPIO4 соединяется с землей напрямую (через воду). Сопротивление воды во много раз меньше нашего резистора на 10 кОм. Поэтому всё напряжение уходит в землю, а на пине резко падает уровень до низкого (LOW).
ESP32 видит, что пин «просел» до нуля — значит, пришла вода. Отправляем уведомление. Убрали воду — резистор снова вернул пин в единицу — отправили сообщение, что всё высохло.
Собираем, проверяем. Вначале замыкал контакты пальцем, не реагировал. Замкнул болтом – сработало (загорелся синий светодиод на плате). Ура. Затем протестил в тарелке с водой.
Датчик просто так бесполезен, нужна система уведомлений. Есп32 умеет в вай фай, поэтому проблем с этим нет: бот ТГ, Макс, e-mail, sms если есть модуль GSM. Я использовал сервис уведомлений на телефон. Ссылку давать не буду, а то мой прошлый пост удалили посчитав за рекламу :(
Датчик работает нормально. Скетч попозже добавлю куда нить.




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