
В качестве датчика протечки использовал дешевый китайский датчик water sensor Funduino. Он видимо проектировался для установки в вертикальном положении с подключением сверху. Для установки на полу переделал датчик. Выпаял трехконтактный штырьковый разъем. Вместо него отпилил и впаял трехконтактную ответную часть для штырькового разъема. Разъем припаял со стороны, противоположной контактным полоскам датчика. Промазал клеем из термопистолета вокруг стыка разъема и платы датчика. Для защиты от воды детали схемы также залиты термоклеем из клеевого пистолета. Использовал прозрачный пруток клея, чтобы было видно светодиод индикации питания. Толщину слоя заливки сделал примерно 3 мм для облегчения доступа воды к контактным полоскам.
Устройство можно собрать на Arduino Uno или Arduino Nano. На фото показан макет устройства, собранный на Arduino Nano.

Схема конструкции проста. Динамик подключен к Arduino через электролитический конденсатор 100 мкФ. Плюсовой вывод конденсатора подключите к выводу D9, Минусовой вывод подпаяйте к выводу динамика. Второй вывод динамика подключите к контакту GND Arduino. Вывод S (Сигнал) датчика протечки подключите к контакту A0 Arduino. Контакты + и — датчика подключены соответственно к контактам 5V и GND. Динамик поставил 0,5ГДШ-2 сопротивлением 8 Ом. Можно использовать любой небольшой 8-Омный динамик мощностью 0,5 - 1 Вт.
Скетч Water_Sensor
==================
int water; // присваиваем имя для значений датчика с аналогового входа A0
const int speakerPin = 9; // подключим динамик к пину 9
void setup()
{
pinMode(A0, INPUT); // к входу A0 подключим датчик протечки
Serial.begin(9600); // подключаем монитор порта
}
void loop()
{
int duration = 250; // длительность звучания
int frequency = 3000; // частота звука
water = analogRead(A0); // переменная "water" находится в интервале от 0 до 1023
if (water > 100) {
tone(speakerPin, frequency, duration); // включаем звук, если значение > 100
}
Serial.println(water); // выводим значение датчика на монитор
delay(1000); // задержка в одну секунду
}
При считывании сигнала с датчика протечки переменная water принимает значения от 0 до 1023. Сухому датчику соответствует значение 0 или близкое к нему. При значении больше 100 включается звук на четверть секунды. Звук будет повторяться каждую секунду, если значение остается больше 100.
Динамик, подключенный через конденсатор, дает не очень громкий звук. Для увеличения громкости можно добавить каскад на транзисторе.
Макет устройства с транзисторным каскадом

Отсоедините конденсатор от платы и отпаяйте от вывода динамика. К выводу D9 подключите резистор 510 Ом - 1 КОм. Второй конец резистора подключите к базе n-p-n транзистора. Возьмите n-p-n транзистор средней мощности с постоянным током коллектора 1 - 1,5 А. Подойдут транзисторы КТ815, КТ972 или импортные BD167, BD815, BC639, BD137 и другие n-p-n транзисторы с током коллектора до 1,5 А. Я поставил BD137. Вывод динамика подключите к коллектору транзистора. Второй вывод динамика подключите к 5V. Эмиттер транзистора соедините с GND.

Устройство в режиме ожидания потребляет ток ~ 15 мА, при срабатывании датчика ток ~ 250 мА при напряжении питания 5 В. Обычно Arduino запитывается от бестрансформаторного блока питания, который втыкается в розетку сети. Такие блоки питания не имеют гальванической развязки с сетью, т.е. устройство находится под напряжением сети. Питать устройство с датчиком протечки от такого блока питания опасно. Для безопасной работы устройство надо запитать от аккумулятора. Если это Arduino Uno, то аккумулятор 7 - 12 В можно подключить к разъему внешнего питания. Для увеличения громкости вывод динамика вместо 5V лучше подключить к плюсу аккумулятора. Аккумулятор должен обеспечивать ток нагрузки не менее 0,5 - 1 А.
Устройство нужно расположить в недоступном для воды месте в стороне от датчика. Провода, идущие к датчику и сам разъем заключите в термоусадочную трубку.
Чтобы датчик не упал на бок, прижмите планку датчика к полу небольшим, но увесистым грузом на расстоянии примерно 5 мм от края, как показано на фото.

Использованные ресурсы
1. https://ampermarket.kz/base/ex29-water-level-sensor/?ysclid=m8qh7edb6e578794945
2. https://2150692.ru/faq/18-wiki/80-kak-podklyuchit-k-arduino-8-omnyj-dinamik
3. Марголис, М. Arduino. Большая книга рецептов. - 3-е изд. - СПб.: БХВ-Петербурr, 2021 стр. 447-448
4. https://seaforum.aqualogo.ru/profile/972-svyaz/content/page/3/?type=forums_topic_post
5. https://www.radiolibrary.ru/reference/transistor-imp/bd137.html
|