Сигнализатор замерзших труб на Arduino
Скоро придет настоящая зима и к ней нужно подготовиться. Если вы живете в холодном климате, тогда вам необходимо позаботиться о проблеме замерзания труб. Существует много превентивных мер, которые вы можете предпринять, например, заизолировать трубы и больше не думать об этом. Но мы пойдем другим путем. В данном проекте пойдет речь о простом сигнальном устройстве, которое будет вас оповещать, когда трубы становятся слишком холодными и появляется опасность их замерзания.
Шаг 1: Видео данного проекта
Шаг 2: Используемые компоненты
Ниже указаны компоненты и инструменты, используемые в данном проекте.
Компоненты:
Микроконтроллер 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 (или на свое значение).