Сигнализатор замерзших труб на arduino

Как не переплачивать за Умный Дом. Защита от потопа (антипротечка)

В статье представлен прагматичный подход по созданию одного из элементов Умного Дома — экономной защиты от потопа (антипротечки) на базе универсального контроллера домашней автоматизации.

Главные отличия от ранее представленных на хабре решений данной задачи – простота реализации, относительно дешево + для повторения не надо быть программистом.

Правда паять все равно придется, но всего 2 раза.

Введение

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

И часто в комментариях встречаются сожаления о том, что мол никто пока не родил одновременно мощный, простой в освоении и экономный способ реализации Умного Дома для обывателей. То надо паять, то кодить, причем часто на разных языках: и для микроконтроллера, и для веб и так далее.

А так чтоб взял, купил запчасти-кубики за недорого и сам лично запустил – такое редко встречается. Вот я и решил вставить свои 5 копеек, так как похоже, мне как раз попался один из вариантов реализации Умного Дома, который может подойти для многих прагматически настроенных потребителей.

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

Итак, по моей «пирамиде потребностей Маслоу для Умного Дома» (с) – важность сигнализации и предотвращения потопа находится на том же уровне, что и важность сигнализации о вторжении или появлении дыма.

Пирамида потребностей Маслоу для Умного Дома

Ибо масштаб трагедии может быть ужасающим:
Ввиду того, что я недавно обзавелся универсальным контроллером умного дома и уже реализовал более важный функционал — я решил, что пора «постелить соломки».

Проблема

Итак, захотелось в случае обнаружения протечки воды – получать оповещение (смс и/или email) и, чтобы автоматически перекрывалась подача воды в квартиру. А также иметь возможность открывать и перекрывать воду «вручную», в том числе удаленно через интернет.

Решение

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

Датчик протечки

Самый сложный момент во всей системе.

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

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

Данный подход имеет ряд недостатков: одним из главных является окисление не позолоченных контактов со временем.

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

За основу был взят китайский беспроводной магнитоконтактный (герконовый) датчик MD-209R.

В моем случае был выбран относительно дешевый датчик-клон, совместимый с протоколом передачи PowerCode (фирмы Visonic), так как это один из беспроводных протоколов, поддерживаемых моим контроллером.

Параллельно встроенному геркону я подпаял 2 провода, замыкание которых фактически приводят к срабатыванию датчика. Итак, после нехитрых манипуляций с паяльником получилось это:

Клапан с электроприводом

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

Свой макет я испытывал на китайском клапане с электроприводом под трубу на 1/2 дюйма.

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

Радиореле

Для подачи питания на привод я закупил на ebay вот такое двухканальное радиореле из списка совместимых с контроллером. Тип YKT-02XX-433Внутри установлена так любимая китайскими производителями микросхема-кодер 1527.

В нем стоят 10-амперные реле, поэтому, в принципе, ими можно коммутировать почти любую бытовую нагрузку до 250В. Ограничение 2 кВт. Для управления электроприводом этого более чем достаточно, так как привод клапана питается от 12 В и по паспорту потребляет всего 4 Вт, причем только во время изменения состояния клапана.

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

Таким образом, мы «почти аппаратно» защищаемся от одновременной подачи напряжения на «открытие» и «закрытие» на соленоид электропривода клапана вследствие каких-либо глюков. Схема подключения клапана, приемника:

Управление

В качестве «мозгов» системы я применил Наносервер NS1000 — универсальный контроллер отечественного производителя 1-М Умным Домом. Возможности контроллера, которые так или иначе используются в данном проекте: • Поддержка сверхбюджетных беспроводных датчиков и радиореле.

• Выполнение сценариев оффлайн (даже без интернет). • Оповещение о событиях через смс и по электронной почте. • Элементарное составление «сценариев» работы системы без написания кода. • Возможность управление устройствами со смартфона (Android). • Управление через WEB.

• Ведение «логов».

Сценарии

В процессе настройки контроллера нужно учесть следующий нюанс: Герконовый датчик посылает сообщение о срабатывании когда размыкается, а нам надо чтобы при замыкании. Соответственно, в условии запуска сценария нужно указать не включение датчика, а выключение. И не по состоянию, а по изменению. Чтобы оповещения не повторялись циклически.

И сценарий на открытие клапана по команде с брелка или со смартфона: В WEB-интерфейсе облачного сервиса это выглядит так:Для ручного управления устройствами ничего «программировать» не надо – после добавления в систему, управление каждым устройством автоматически становится доступно из Личного кабинета через WEB-интерфейс и с Android-приложения.

Вид панели WEB-управления Умным Домом через интернет:Внешний вид Android-приложения

Что в результате?

Цель достигнута. При срабатывании датчика протечки, я получаю смс-оповещение вида «Хозяин, у нас потоп!» и клапан автоматически перекрывается в течение менее 30 секунд. Так же, я имею возможность не автоматически открывать и закрывать клапан, путем нажатия на кнопки брелка, со смартфона или с браузера через интернет.

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

Понятно, что в том виде, как оно представлено на фотографиях, в реальности оно долго и надежно работать не сможет. Блок питания привода клапана, радиореле, да и сам датчик нужно еще поместить в пластиковые коробочки с хоть какой-то степенью защиты.

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

Другими словами — аппетит приходит во время еды. Благо дело, что для наращивания функционала не надо звать «сертифицированных» специалистов, чтобы они что-то подкрутили в системе. Все это можно элементарно сделать самому, благодаря простоте принципов настройки универсального контроллера.

Немного о ценах:

Наносервер NS-1000 — 44$ Датчик магнитоконтактный MD-209R — 13$ Радиореле — 10$ Клапан- 15$ Итого (без учета доставки) = 82$ Не так уж и дешево. Но это если не учитывать, что наносервер используется не только для фукнции антипротечки. Ведь на нем реализована система охранной и пожарной сигнализации и другие возможности…

P.S

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

Мне тут же расхотелось врезать дополнительную запорную арматуру в систему водоснабжения и я заказал такой привод. Жду. Update 2: Пока соль да дело, производитель контроллера анонсировал датчик протечки.

Судя по информации, датчик использует бесконтактный принцип определения появления воды, что само по себе уже довольно необычно.

Также он интересен тем, что не «заточен» под «бренд» и может использоваться не только с системой 1-М Умный Дом, а и с любой системой, работающей по протоколу PowerCode. Фактически он передает посылку аналогичную датчику MD-209R, который я применил для своей антипротечки.

Цена, похоже, тоже будет сравнима — 9.9$.

Поглядим…

Источник: https://habr.com/post/376023/

Датчик протечки и дождя ардуино

В этой статье мы узнаем, как можно использовать датчик протечки ардуино. Такие датчики часто называют по-разному: датчик дождя, влаги, капель, протечки.

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

Идеальный вариант для несложных проектов на Arduino Uno, Mega, Nano.

Описание датчика

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

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

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

Модуль датчика состоит из двух частей:

  • «Сенсорная» плата обнаружения капель. Она отслеживает количество попавшей на неё влаги. По сути, сенсор представляет собой простой переменный резистор, замыкаемый водой в разных местах, что вызывает изменение сопротивления.
  • Вторая часть датчика – сдвоенный компаратор (как правило, LM393, но возможны варианты LM293 и LM193). Его главная задача — преобразование значения с сенсора в аналоговый сигнал от 0 до 5 вольт.

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

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

  • Аналоговый. Значение, получаемое контроллером, будет варьироваться от 0 до 1023. Где 0 – все затопило или идет ливень, сенсор очень влажный, 1023 – сухая погода, сенсор сухой (в некоторых датчиках встречаются противоположные значения, 1023 – максимальная влажность, 0 – максимальная сухость).
  • Цифровой. Выдает высокое (5В) или низкое напряжение в случае превышения некоторого порога. Уровень порога срабатывания регулируется с помощью подстроечного резистора.

Подключение датчика протечки и дождя к ардуино

Для подключения датчика к ардуино понадобится сама плата (UNO, Mega, Nano или любая другая) и сам датчик. Если вы хотите проверять интенсивность осадков, то рекомендуется расположить датчик не горизонтально, а под некоторым углом, чтобы накапливаемые капли стекали вниз.

Схема подключения модуля датчика протечки к ардуино:

  • VCC (вход питания) – должен совпадать для соединенной схемы ардуино по напряжению и току. То есть в данном случае 5В;
  • GND – заземление;
  • АO – аналоговый выход;
  • DO — цифровой выход.

Аналоговый выход присоединяем к аналоговому пину микроконтроллера, например, A1. Цифровой выход, соответственно подключается к одному из цифровых пинов. Напряжение можно подать с вывода 5В платы ардуино, земля соединяется с землей.

При подключении датчиков протечки в реальных проектах надо обязательно предусматривать защиту электронной части модуля от попадания влаги!

Читайте также:  Автономная автомобильная сирена

Пример скетча

#define PIN_ANALOG_RAIN_SENSOR A1 // Аналоговый вход для сигнала датчика протечки и дождя
#define PIN_DIGITAL_RAIN_SENSOR 5 // Цифровой вход для сигнала датчика протечки и дождя void setup(){ Serial.

begin(9600);
}
void loop(){ int sensorValue = analogRead(PIN_ANALOG_RAIN_SENSOR); // Считываем данные с аналогового порта Serial.print(“Analog value: “); Serial.println(sensorValue); // Выводим аналоговое значение в монитр порта sensorValue = digitalRead(PIN_DIGITAL_RAIN_SENSOR); // Считываем данные с цифрового порта Serial.

print(“Digital value: “); Serial.println(sensorValue); // Выводим цифровое значение в монитр порта delay(1000); // Задержка между измерениями
}

В данном скетче мы просто считываем значения с датчика и выводим их в монитор порта.

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

Пример проекта дождевой сигнализации

Рассмотрим пример с использованием звуковой сигнализации в виде подключенного зумера на цифровом выходе D6. При желании можно вместо сигнализации подключить реле и выполнять различные операции с размыканием сети. В скетче полученные данные мы будем передавать в монитор порта по UART-интерфейсу.

Скетч для проекта с сигнализацией

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

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

Задержка между обнаружением влаги и срабатыванием звукового сигнала составляет чуть больше 30 секунд.

#define PIN_RAIN_SENSOR A1 // Аналоговый вход для сигнала датчика протечки и дождя
#define PIN_ALERT 6 // Цифровой выход для сигнализации
#define MAX_COUNTER 30 // Пороговое значение для счетчика
#define ALERT_LEVEL 300 // Пороговое значение для счетчика int curCounter= 0; // Счётчик для сбора “статистики”, который увеличивается на 1 каждую секунду после срабатывания датчика void setup(){ Serial.begin(9600); pinMode(PIN_ALERT, OUTPUT); pinMode(PIN_RAIN_SENSOR, INPUT); // Можно не указывать, т.к. это значение по умолчанию
}
void loop(){ int sensorValue = analogRead(PIN_RAIN_SENSOR); Serial.println(sensorValue); // Выводим значение в монитр порта delay(300); // короткая задержка // Если накопили достаточно оснований для включения сигнализации if (curCounter >= MAX_COUNTER){ digitalWrite(PIN_ALERT, HIGH); // Срабатывание сигнализации curCounter = MAX_COUNTER; // Защита от переполнения переменной } // Определяем уровень влажности if (sensorValue < ALERT_LEVEL){ // В очередной раз убедились, что все влажно, увеличиваем счетчик curCounter++; }else { // Интенсивность дождя не превышает порога digitalWrite(PIN_ALERT, LOW); // Выключаем сигнализацию curCounter = 0; // Обнуляем счетчик } delay(1000); // Задержка между измерениями }

Подведение итогов

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

Подключается датчик очень легко – с помощью аналогового или цифрового выходов. Для получения значения в скетче используется стандартная функция analogRead (или digitalRead для цифрового пина).

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

Источник: https://ArduinoMaster.ru/datchiki-arduino/datchik-protechki-i-dozhdya-v-arduino-opisanie-shemy-sketchi/

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

Используем плату Ардуино и ультразвуковой модуль для создания своими руками проекта по определению уровня воды в баке.

Когда может пригодиться?

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

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

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

Мы решим эту задачу с совершенно другим подходом к знанию уровня воды – с использованием ультразвукового модуля и Ардуино. Преимущество этого метода заключается в том, что он бесконтактный, поэтому такие проблемы, как коррозия электродов, не будут влиять на эту систему. Кроме того, этот индикатор уровня воды Arduino намного проще устанавливать, чем обычные системы.

Как работает индикатор уровня воды Arduino?

Этот индикатор уровня воды Ардуино использует ультразвуковой датчик или, по-другому, Ping датчик для определения уровня воды в баке. Датчик Ping измеряет расстояние, используя гидролокатор.

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

Этот проект может быть реализован на одной из плат Arduino, если микроконтроллером платы является непосредственно микроконтроллер ATmega 328.

Комплектующие

По традиции переходим к комплектующим, набор деталей довольно большой:

1 Микроконтроллер ATMega328P или плата Arduino
1 HC-SR04 ультразвуковой модуль (также известный как датчик PING)
1 10K резистор
1 Кристалл 16 МГц
2 22pf дисковые конденсаторы
Провода-перемычки
1 Регулятор LM7805 5V
1 9В батарея и разъем
1 Электролитический конденсатор 10uF
1 Макетная плата (или печатная плата)
1 Инструмент для зачистки проводов

Схема соединений

Все детали нужно собрать соответственно диаграмме выше. Сразу заметим, что в данной схеме на макетную плату размещается микроконтроллер ATmega328. Если вы используете плату Arduino, вы можете просто установить соединения для светодиодов и ультразвукового датчика.

Скетч для Ардуино

Скопируйте прилагаемый ниже скетч в Arduino IDE и найдите строку “int d = 18;” и измените «18» на глубину вашего резервуара в сантиметрах.

Уровень воды Ардуино

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 // Обратите внимание, что нумерация контактов arduino// отличается от выводов микроконтроллераint d = 18; // Введите глубину вашего резервуара в сантиметрахint trig = 11; // Прикрепите триггер ультразвукового датчика к пину 11int echo = 10; // Прикрепите эхо ультразвукового датчика к контакту 10int pin1 = 2; // Высший уровеньint pin2 = 3;int pin3 = 4;int pin4 = 5;int pin5 = 6;int pin6 = 7; // Самый низкий уровеньvoid setup() {pinMode (pin1, OUTPUT); // Установка контактов для управления вводом / выводомpinMode (pin2, OUTPUT);pinMode (pin3, OUTPUT);pinMode (pin4, OUTPUT);pinMode (pin5, OUTPUT);pinMode (pin6, OUTPUT);}void loop(){ digitalWrite(pin1, LOW); // Сброс светодиодовdigitalWrite(pin2, LOW);digitalWrite(pin3, LOW);digitalWrite(pin4, LOW);digitalWrite(pin5, LOW);digitalWrite(pin5, LOW);// Установите переменные для продолжительности пинга,// и расстояние в дюймах и сантиметрах:long duration, in, cm; // 'in' – дюймы и 'cm' – сантиметры// PING запускается HIGH-импульсом в 2 или более микросекундах.// Дайте короткий LOW импульс заранее, чтобы обеспечить чистый HIGH-импульс:pinMode(trig, OUTPUT);digitalWrite(trig, LOW);delayMicroseconds(2);digitalWrite(trig, HIGH);delayMicroseconds(5);digitalWrite(trig, LOW);// Этот же вывод используется для считывания сигнала от PING:// HIGH-импульс, продолжительность которого – это время (в микросекундах)// от отправки пинга до приема его эха от объектаpinMode(echo, INPUT);duration = pulseIn(echo, HIGH);// Преобразовать время в расстояниеin = microsecondsToInches(duration);cm = microsecondsToCentimeters(duration);delay(100);if (in

Источник: https://ArduinoPlus.ru/uroven-vody-arduino/

Управление печным отопление при помощи Arduino — Сообщество «Arduino для автомобиля» на DRIVE2

Печь для отопления гаража/дома/дачи

Полный размер

Сама печь с рубашкой

Зима подкралась незаметно. Но я то подготовился. Еще летом на ум пришла простенькая идейка собрать печь которая могла бы растапливаться на твердом топливе (Дрова, уголь, торфянные брикеты, все что горит ) и поддерживать температуру при прогорание топлива с помощью ТЭНа.

Полный размер

Схема системы отопления

Печь выполнена из листового стали СТ3 толщиной 3мм. Так как печь в рубашке, толще не вижу смысла ставить ибо теплоноситель не дает перегорать металлу. Чертеж скину в Kompas V16
В качестве радиатора используется труба профильная 80х40. Простая закольцовка по периметру дома.

ТЭН — 2 квт Ariston — отапливаемая площадь 78м.кв. полностью утеплена объем системы теплоносителя примерно 30л мощности для поддержания хватает, даже при -10 за бортом, дома заданные +23

ТЭН с термореле, которое выполняет чисто функцию дополнительной защиты

Насос циркуляционный ZOX ZX 32-6 — пока не доработал автоматику работает на минимальной скорости, чего вполне достаточно .

Хороший насос — сопоставим грундфосу

Система контроля выполнена на платформе Arduino Uno + (3 датчика температуры DS18b20, Часы реального времени DS3231, Дисплей HD44780 LCD 16×2, Bluetooth модуль HC-06, двух канальное реле для arduino (ВАЖНО ДЛЯ ТЭНа данное реле не подходит ! Приобретите для него Твердотельные Реле SSR-40 DA ), а так же мелочевка корпус от автомата, провода, автомобильные тактовые кнопки, потенциометр, резисторы на 4.9кОм) Схема обвязки Ардуино прилагается…

Полный размер

Используйте твердотельные Реле SSR-40 DA

В программе пока написал 4-ре режима работы:
1. Автоматический — пока горит печь, микроконтроллер управляет включением и выключением циркуляционного насоса в зависимости от разности температур труб.

Далее проверяется таймер если время в таймере соответствует заданному интервалу, и температура в этот момент ниже заданной, то включается ТЭН, который выключится с окончанием заданного интервала или при превышение температуры выше чем на три градуса от заданной.

2. Ручной -самостоятельно в интерфейсе контроллера выбираем что включить, а что выключить.

3. Печь — Управление только циркуляцией теплоносителя как в первом режиме.

4. Электро — в зависимости от разности температур труб, происходит вкл/выкл насоса. В зависимости от заданной температуры вкл/выкл ТЭН.

На главном экране отображается температуры 3-х датчиков (Температура линии нагнетания, линии всасывания, помещения) и часы.

Полный размер

Главный Экран

На втором экране выбирается режим работы.
На третьем отображается Потери градусов в час и в минуту.

Полный размер

Экран расхода

На остальных экранах задаются параметры работы.

В устройстве (правда в начальной стадии) добавлена функция передачи данных по каналу Bluetooth (При наличие модуля HC-06) или через usb на пк. Для этого через программу ТЕРМИНАЛ необходимо отправить команду. По команде “1” — устройство отправит все показатели, а по команде “l” — включит подсветку устройства.

Скетч будет на моей странице

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

Архив с чертежами скетчем ифотографиями

cloud.mail.ru/public/HGxh/smv4KtxJZ

Официальная страница проекта

Источник: https://www.drive2.ru/c/454422384397517260/

Умный водопровод

avrki@avrki.ru

Дата: 28 Июня 2015. Автор: Алексей

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

Долго думать не пришлось. Решил вопрос просто. Купил бочку на 60 литров для пищевых продуктов и воткнул в нее сверху трубу из магистрали, а снизу просверлил отверстие и подключил на всас насосной станции. Получилось здорово, я еще параллельно избавился от завоздушивания системы, так как у нас из магистрали прет много воздуха.

Но вот не задача, а как контролировать наполнение воды в бочке. А что будет если опять отрубят воду. В общем родился следующий проект:
Вода в бочке набирается по умолчанию из магистрали. Если в магистрале нет воды, то бочка наполняется из колодца. В колодце плавает дренажный насос. Насосом управляет силовое реле.

Так же ведется контроль давления в системе по средством датчика давления от ВАЗ-2103 (на прибор). Я к стати для этого датчика написал библиотеку и скоро ее выложу. Теперь алгоритм. Модуль управления смотрит на датчик воды в бочке и анализирует ее количество. Бочка разделена на так называемые уровни. Первый уровень самый низкий идет как 25% и заполняет бочку на 1/4.

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

Так же модуль увеличивает счетчик попыток заполнить бочку из магистрали. Данный счетчик будет щелкать только при прохождении границы между первым уровнем и вторым. В чем задумка.

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

Читайте также:  Мягкий пуск стартерного электродвигателя постоянного тока

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

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

Позвонил в сервисный центр, сказали что модуль управления с заменой встанет фактически по цене новой насосной станции. Не, я так просто не сдамся. В конце концов если на замену насосную, то почему бы и не разобрать и не попробовать самому отремонтировать. Разобрал, посмотрел и нашел косяк. Внутри реле, для связи воды с механикой, установлена мембрана с толкателем.

Так вот эта мембрана от времени растянулась и ее уже не хватало для преодоления усилия пружины. Не долго думая я просто перевернул мембрану, как многие советовали на форумах и собрал. Включил. Работает, отрубается как надо. Замечательно. Уехал в город. Через три дня отец звонит и говорит что насосная станция шпарит без остановки и жмет изо всех сил. Блин, опять та же фигня.

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

Собственно получилась дублирующая система, которая перехватывает инициативу, когда механика не справляется. Кажись все. Зы. Вечером пошел душ принять и поймал еще одну граблю. Завис контроллер датчика уровня воды и выдовал постоянно 75% заполнения бочки. Ну естественно модуль управления думая что воды хватает особо и не чухался, а я в душе, вода водопадом.

Короче насосная высосала всю воду и стала плеваться воздухом вперемешку с водой. Хорошо, решаем эту проблему. В контроллере датчика уровня запустил часовую собаку и при зависании та рестартует МК. Со стороны модуля управления добавил контроль минимального давления в 0,7 атмосфер.

То есть еслти давление упало ниже 0,7 атмосфер, значит воды нет и нечем поднимать давление, отключаем питание насосной станции. Вроде бы все хорошо, но есть еще одна огромедная грабля, на которую я наступил сразу. В первом варианте я питание насосной станции посадил на РПЛ-131 на НЗ контакт и при необходимости отрубить питание насосной станции я просто хотел подтягивать реле.

Обмотка реле рассчитана на 220 переменки. Хорошо, у меня же есть блок реле. Но вот засада, как только отрабатывало реле, МК просто сходил с ума, а на экране появлялось полная бессмыслица. Электро-магнитные помехи мать их за ногу. Не буду расписывать как я с этим боролся, расскажу лишь результат. Модуль управления был переделан и на его плате установлены 5 вольтные реле.

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

Ну подумав что все так жестко я съездил в магазин и купил 20 метром металлорукова в ПВХ оплетке, этакий гламурный душевой шланг. Загнал в него линию питания насосной станции, а в другой рукав загнал UTP для снятия информации с датчика уровня воды. Все это дело заземлил и вывел наружу всю силовую часть. Вот только после таких процедур все заработало без сбоев.

С теорией закончили, переходим к железу. Датчик уровня воды. Первой мыслью были герконы, но вспомнив о вечно сломанных датчиках уровня тосола в девятке я отмел ее сразу. Второй идеей были электроды с транзисторными ключами. Чем эта тема закончилась, я писал здесь и повторять не буду. Третий вариант сулил конец моим мучениям и я прикупил себе УЗ дальномер для Arduino.

Все бы было хорошо, но эта падла наевшись конденсата сходила с ума. Дальше я пытался заменить УЗ головки на герметичные, но они не работали вообще. Потом я вычитал в документации что герметичные УЗ головки работают от 30 см и отмел этот датчик в утиль. Герконы подмигнули мне в магазине и я купил 6 штук. И так датчик уровня все таки стал герконовым.

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

Затем поверх еще одна термоусадка. Получится эдакий хлыст с пучком проводов. В строительном магазине нужно купить 10 мм дюралевую трубку. Отрезать ее по длине равной глубине бочки плюс 15 см. С одной стороны нарезается резьба М10х1.0 длиной 3 см, а с другой М10х1.0 длинной 20 см. Далее нужно найти какой нибудь кусок пластика диаметром больше 15 мм.

Я взял кусок капролона диаметром 30 мм и просверлить в нем отверстие 9 мм не до конца. Затем нарезал резьбу М10х1.0. Это будет пробка для герметизации. С учетом того что капролон все таки промокает, я залил отверстие трубы клеем “Момент”. Поплавок.

Для изготавления поплавка я взял коробку от CD балванок на 10 штук (Обязательно ту которая закручивается по резьбе, а не тремя зазубринами). Берем черное дно и срезаем самый кончик палки на которую нанизываются диски. Эта палка должна превратиться в трубку. Ее внутренний диаметр как раз идеально подходит для 10 мм трубки.

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

Далее отскабливаем остатки клея от магнита и почистив его нанизываем на штырь вместо CD дисков. После обильно смазываем “Моментом” резьбу и закручиваем крышку. Так же не забываем смазать клеем верхушку. После высыхания получится шикарный поплавок. Теперь осталось его на низать на трубку с герконами. Для крепления к крышке бочки, нужно купить в магазине запчастей две медные гайки М10х1.

0 и зажать ими трубку в крышке. За счет того что верхняя резьба была нарезана довольно длинная, можно отрегулировать высоту датчика. Головка. Я ее точил из дюрали на токарном станке. Если у вас нет токарного станка, что скорее всего так и есть, то можно купить в радиомагазине алюминиевую коробку и так же двумя гайками закрепить ее. Почему я предлагаю именно алюминиевую.

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

Я в датчик закладывал 6 герконов с надеждой передачи данных по RS-485 интерфейсу, но потом передумал и передаю лишь показание 4 датчиков значениями 0, 1, 2 и 3. То есть на линиях “Датчик 0″ и Датчик 1” передаются номера герконов. Питание датчика идет по одной из пар сетевого кабеля UTP. Сам кабель проложен в металлорукрве, который заземлен.
Датчик уровня воды подводка.

Датчик уровня воды. Вид. Светодиоды вокруг это для подсветки бочки. Так легче смотреть уровень воды.
Прокладка кабеля до модуля управления. Модуль управления. Эту штуку я решил сделать в корпусе под DIN рейку.
Схема модуля управления. Плата модуля управления. Расположение выводов. Плата модуля управления. Внешний вид.

Так же на модуле управления установлены две кнопки, желтая и зеленая. Желтая пробуждает дисплей от спячки, а зеленая включает/выключает подсветку бочки. Программно просто замыкает/размыкает 6 реле. На схеме есть еще 4 кнопки, но из-за геометрии корпуса я их не выводил. ЖК дисплей с кнопками выведены на отдельную плату и соединены плоским шлейфом на 10 проводов.

Разъем для подключения дисплея находится справа на плате. Слева внизу это разъем ISP для программирования МК. Один нюанс. Обязательно отключите JTAG. Он будет мешать. Плата ЖК дисплея. Управление клапаном заведено на реле 3. Так как клапан работает от 12 вольт, то он не мешает модулю и не сносит ему голову. А вот управление насосами необходимо развести.

Поэтому реле 1 и 2 управляют силовыми реле, а те в свою очередь управляют насосами. Реле 1 управляет питанием насосной станцией (подключено по схеме НЗ), а реле 2 управляет насосом колодца (подключено по схеме НО). Силовое реле выглядит так. Силовое реле. Так же как и модуль управления, силовые реле собраны в корпусе под DIN рейку. Сами реле я использовал TR90-12VDC-SC-A.

Ток при НО 30А, а при НЗ 40А. Напряжение 240 вольт переменка. Для насосов с лихвой. Силовое реле. плата В итоге силовая часть стала выглядеть так. Силовая часть. Датчик давления. Что это за монстр и как с ним бороться я писал здесь. Установку датчика рекомендую сделать как можно ближе к модулю управления. У меня расстояние 15 см. Правда пришлось трубу вести до шкафа. Переходник с М14х1.5 на G1/2 я выточил на токарном станке из дюрали. Но если нет токарного станка, то такие переходники продаются в сантехнических магазинах. Либо купить пруток дюрали Д16Т диаметр 20 мм и нарезать на нем резюбу плашкой G1/2, а внутри просверлить отверстие 13 мм и нарезать резьбу метчиком. Для того чтобы прикрепить провод на корпус датчика, я припаял к нему болт М3 и между шайбами зажал провод. Датчик давления. Собственно вот и все. На дисплей выводится давление, уровень заполнения бочки и число попыток заполнить бочку из магистрали. Так же справа внизу появляются буква “К” “Н” “М”. “К” – работает колодезный насос. “М” – открыт клапан магистрали. “Н” – отключено питание насосной станции. И в правом верхнем углу появляется буква “L” сигнализирующая о том что включена подсветка бочки. А и вот еще, на плате есть пищалка, которая пикает при нажатии на кнопочки. Все. Будут вопросы пишите. Проекты плат для DipTrace.
Проекты с программами для микроконтроллеров под AtmelStudio 6.2

Последняя фотка… А зачем кран у датчика?

А если снять приспичит, пальцем затыкать)))

вот этим И оно дешевле чем это Почти в 10 раз.

Супер, а пока свинчен датчик вода хлещет во все стороны)))))

Получается, что это единственный кран?! Я раньше тоже везде краны ставил, а потом понял, что это неоправдано. Пользовался я ими 1 раз, а некоторыми и вообще ни одного раза. За 3 года, потом ремонт и все они теперь лежат в мешке.)) Пришел к выводу, что ставить на каждую хреновину по крану прикольно, но бесполезно и экономически не оправдано…

Как сказать. Я вот пожалел кран на кухонный смеситель, мол нафик его, а соединение потекло. Как менять? Вода горячая 100 литров.

Все просто, перекрываем магистраль и открываем горячую воду. Стравливается избыточное давление и вуаля. Горячая вода не тячет.)) У меня тоже есть бойлерные водонагреватели. 😉

Вуаля-то вуаля, да в магистрали у меня 100 литров ресивер и 100 литров бойлер.

Читайте также:  Бортовой компьютер для эбу bosch 7.9.7+ на msp430

Блин, у меня 150л боллер. Физически находистя выше всех водоразборных точек. Ресивир только на осмосе и в обратку он не дает. И из бойлера не течет, если ему воздуха не давать. А на фотке под ресивиром, что за кран? В принципе все спаяно и все куплено. Спор пуст. 🙂

У бойлера это обратный клапан, а не кран. А под ресивером для слива.

Источник: http://www.avrki.ru/articles/content/voprovod/

Arduino для начинающих. Урок 9. Подключение датчика температуры и влажности DHT11 и DHT22

Продолжаем серию уроков “Arduino для начинающих”. Сегодня мы разберем подключение к Arduino датчиков температуры и влажности DHT11 и DHT22.

Датчики DHT11 и DHT22 не обладают высоким быстродействием и точностью, но зато просты, недороги и отлично подходят для обучения. Они выполнены из двух частей — емкостного датчика влажности и термистора. Чип, находящийся внутри, выполняет аналого-цифровое преобразование и выдает цифровой сигнал, который можно считать с помощью любого микроконтроллера.

Список деталей для сборки модели

Для сборки проекта, описанного в этом уроке, понадобятся следующие детали:

  • плата Arduino (подробнее, о том как выбрать Arduino здесь);
  • датчик DHT11 или DHT22 (можно купить, например, здесь или здесь);
  • Breadboard;
  • резистор на 10 кОм;
  • программа Arduino IDE, которую можно скачать с сайта Arduino.

Датчик DHT11 входит в состав набора из 37 датчиков и других компонентов за $37.

Датчики DHT11 и DHT22

Чем отличаются датчики DHT11 и DHT22?

Две версии сенсоров DHT похожи друг на друга и имеют одинаковую распиновку. Их отличия в характеристиках. Спецификации:

Сенсор DHT11:

  • определение влажности в диапозоне 20-80%
  • определение температуры от 0°C до +50°C
  • частота опроса 1 раз в секунду

Сенсор DHT22:

  • определение влажности в диапазоне 0-100%
  • определение температуры от -40°C до +125°C
  • частота опроса 1 раз в 2 секунды

Таким образом, характеристики датчика DHT22 лучше по сравнению с DHT11, и поэтому он чуть-чуть дороже. Снимать показания чаще, чем раз в 1-2 секунды не получится, но, возможно, для вашего проекта более высокое быстродействие и не требуется.

Подключение сенсоров DHT к Arduino

Датчики DHT имеют стандартные выводы и их просто установить на breadboard.

Датчики DHT имеют 4 вывода:

  1. питание.
  2. вывод данных
  3. не используется.
  4. GND (земля).

Между выводами питания и вывода данных нужно разместить резистор номиналом 10 кОм.

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

Схема подключения датчика с резистором:

Схема подключения датчика DHT к Arduino

Arduino скетч

Воспользуемся библиотекой DHT.h, созданной специально для датчиков DHT. Ее можно скачать здесь. Для использования нужно поместить скачанную папку в в папку /libraries.

Пример программы для работы модели с датчиком DHT22 (можно просто скопировать в Arduino IDE):
#include “DHT.

h” #define DHTPIN 2 // номер пина, к которому подсоединен датчик // Раскомментируйте в соответствии с используемым датчиком // Инициируем датчик DHT dht(DHTPIN, DHT22); //DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); dht.

begin(); } void loop() { // Задержка 2 секунды между измерениями delay(2000); //Считываем влажность float h = dht.readHumidity(); // Считываем температуру float t = dht.readTemperature(); // Проверка удачно прошло ли считывание. if (isnan(h) || isnan(t)) { Serial.println(“Не удается считать показания”); return; } Serial.

print(“Влажность: “+h+” % “+”Температура: “+t+” *C “); }При использовании датчика DHT11 закомментируйте строку:
DHT dht(DHTPIN, DHT22);
И раскомментируйте строку:
//DHT dht(DHTPIN, DHT11);
Загрузите скетч в контроллер и проверьте правильность работы при помощи Сервис->Монитор порта:

Показания температуры и влажности (Монитор порта)

Вы должны увидеть температуру и влажность. Изменения можно увидеть, например, выдыхая на датчик (как для затуманивания окна). Дыхание увеличивает влажность.

Источник: http://edurobots.ru/2015/02/arduino-dlya-nachinayushhix-urok-9-podklyuchenie-datchika-temperatury-i-vlazhnosti-dht11-i-dht22/

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

   Для изготовления датчика, или индикатора уровня воды в баке, цистерне, бассейне и другой ёмкости, можно применить микросхему 4093 (отечественная 561ТЛ1) либо на микроконтроллере Ардуино. Начнём с первого варианта.

Схема датчика уровня на CD4093

Необходимые для датчика материалы

  • 2 микросхемы 4093;
  • 2 панельки для микросхем;
  • 7 по 500 ом резисторы;
  • 7 по 2,2 Мом резисторы;
  • батарея 9 В;
  • гнездо для батареи;
  • плата для схемы 10 х 5 см;
  • 8 латунных винтов для датчиков;
  • двухсторонний скотч или шурупы для крепления коробки к стене;
  • сетевой кабель. Длина кабеля зависит от расстояния от резервуара для воды до места, где будет расположен дисплей.

   Итак, основа – это CI4093, что имеет четыре элемента. В этом проекте использовано две микросхемы. Тут мы имеем порты с одним входом на высоком уровне, а другие подключенные через резистор, обеспечивая высокий логический уровень. При помещении в эту логику нулевого входного сигнала, выход инвертора будет на высоком уровне и включает светодиод. Всего использовано семь из восьми элементов, из-за ограничений в кабельной сети.

   Сбоку размещена линейка светодиодов разных цветов, указывающая на уровень воды. Красные индикаторы – воды совсем мало, жёлтые – бак наполовину пуст, зелёные – полный. Центральная большая кнопка используется для подключения насоса и накачки бака.

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

Схема подключения датчика

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

   В собранном виде схема находится в коробке и установлена на стене.

Второй вариант схемы датчика уровня

   Это полностью функциональный контроллер уровня воды, управляемый МК Arduino. Схема отображает уровень воды в баке и переключает двигатель, когда уровень воды опускается ниже заданного уровня. Она автоматически отключает мотор, когда бак полный.

Уровень воды и другие важные данные отображаются на ЖК-дисплее 16х2 точек. В авторском варианте схема контролирует уровень воды в дренажном баке (резервуаре). Если уровень бака низкий, электродвигатель насоса не включится, что обеспечивает защиту двигателя от холостого хода.

Дополнительно звуковой сигнал генерируется, когда уровень в дренажном баке слишком низкий.

   Схема уровня воды с помощью контроллера Arduino показано выше. Датчик в сборе состоит из четырех алюминиевых проволок длинной в 1/4, 1/2, 3/4 и полный уровень в баке. Сухие концы этих проводов подключены к аналоговым входам A1, A2, A3 и A4 Arduino соответственно. Пятый провод размещен в нижней части бака. Резисторы R6 – R9 уменьшают потенциал входов.

Сухой конец провода подключен к +5V DC. Когда вода касается конкретного зонда, происходит электрическое соединение между зондом и +5V, потому что вода обладает некоторой электропроводностью. В результате ток течет через зонд и этот ток преобразуется в пропорциональное ему напряжение.

Arduino читает падении напряжения по каждому из входных резистор для зондирования уровня воды в баке. Транзистор Q1 включает зуммер, резистор R5 ограничивает ток базы Q1. Транзистор Q2 управляет реле. Резистор R3 ограничивает ток базы Q2. Переменник R2 используется для регулировки контрастности ЖК-дисплея. резистор R1 ограничивает ток через его LED подсветку.

Резистор R4 ограничивает ток через светодиодный индикатор питания. Полную программу для контроллера на Arduino можно загрузить тут.

   Схемы автоматики

Источник: http://elwo.ru/publ/skhemy_avtomatiki/datchik_urovnja_vody/28-1-0-738

Сигнализатор замерзших труб на Arduino

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

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

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

Шаг 1: Видео данного проекта

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

Компоненты:
Микроконтроллер Arduino
Терморезистор
Резистор номиналом 10 кОм
Длинные проводники
Светодиоды
Пьезо-устройство звуковой сигнализации
Корпус
Печатная плата
Стакан ледяной воды
Полиэтиленовый пакет

Инструменты:
Паяльник
Нож

Шаг 3: Сборка датчика температуры

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

При изменении температуры изменяется сопротивление терморезистора. Это в свою очередь приводит к изменению напряжения между двумя резисторами. Данное изменение напряжения измеряется микроконтроллером Arduino.

Подключите один вывод постоянного резистора к выводу GND на Arduino. Далее подключите второй вывод к аналоговому входу. Один вывод терморезистора подключите к выводу 5V, а второй вывод терморезистора к тому же аналоговому входу. Теперь вы можете использовать функцию AnalogRead для измерения изменения напряжения.

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

Шаг 4: Программный код Arduino

Здесь представлен пример программного кода, который позволяет использовать ваш датчик температуры

int AlarmOneInputPin = 0; // sensor connected to analog pin 0
int AlarmOneOutputPin = 9; // Alarm connected to digital pin 9 int AlarmOneInputValue = 0; // variable to store the value read
int AlarmOneTriggerValue = 350; // alarm set value void setup()
{ pinMode(AlarmOneOutputPin, OUTPUT); // sets the digital pin as output Serial.begin(9600); // setup serial
} void loop()
{ AlarmOneInputValue = analogRead(AlarmOneInputPin); // read the input pin Serial.println(AlarmOneInputValue); // debug value if(AlarmOneInputValue < AlarmOneTriggerValue) // flash the alarm if the sensor value is below the trigger value { digitalWrite(AlarmOneOutputPin, HIGH); // turns the alarm on delay(1000); // waits for a second digitalWrite(AlarmOneOutputPin, LOW); // turns the alarm off delay(1000); // waits for a second } else { digitalWrite(AlarmOneOutputPin, LOW); // turns the alarm off delay(1000); // waits for a second } }

Шаг 5: Калибровка датчика

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

Теперь используйте функцию AnalogRead на микроконтроллере Arduino для измерения напряжения между двумя резисторами. Результат будет отображаться по шкале значений от 0 до 1023 (что эквивалентно напряжению от 0 до 5В). В моем случае датчик зафиксировал величину 300. Т.е. данное значение и есть точка замерзания. Поэтому для данного значения необходимо активировать аварийный сигнал.

Для установки значения аварийной температуры откройте файл с кодом программы и установите значение переменной “AlarmOneTriggerValue” на 300 (или на свое значение).

Шаг 6: Создание устройства аварийной сигнализации

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

Какой бы из элементов сигнализации вы бы не использовали, необходимо помнить, что цифровые выводы поддерживают максимальный выходной ток не выше 40 мА.

Поэтому для более мощной нагрузки необходимо собрать схему управления с использованием реле или мощного транзистора.

Сначала я собрал прототип устройства аварийной сигнализации на макетной плате. Далее я его спаял на небольшой печатной плате. Я подсоединил отрицательный вывод устройства сигнализации к выводу GND на Arduino, а положительный вывод к цифровому выводу 9.

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

Шаг 7: Установка датчика температуры внутрь стены

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

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

Шаг 8: Используйте датчик для контроля ваших труб

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

Вы можете добавить еще несколько датчиков, по количеству аналоговых входов на микроконтроллере. Один микроконтроллер Arduino Uno позволяет контролировать до шести датчиков.

Подобный датчик можно использовать в качестве устройства автоматического управления электрическим нагревателем труб. В этом случае понадобится управляющая цепь реле или модуль PowerSwitch Tail

Оригинал статьи

Прикрепленные файлы:

  • Frozen_Pipe_Alarm_Code.ino (1 Кб)

Источник: http://cxem.gq/arduino/arduino139.php

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