Скільки разів ви прокидалися від холоду влітку чи восени, забувши закрити вікно перед сном? Надто спекотно — задушливо, надто холодно — застуда. Рішення є: автоматичне регулювання вікна, залежно від температури повітря в кімнаті!

У цій статті ми зберемо розумний пристрій Arduino, який самостійно відкриває або закриває вікно при зміні температури. Пристрій підходить як для квартири, так і для дачі або теплиці.

Що нам знадобиться
  • Плата контролера Arduino Nano / Uno
  • Датчик температури DS18B20
  • Мотор-редуктор 12 В та шпилька з гайкою (актуатор)
  • Два кінцевики (limit switch) для фіксації крайніх положень
  • Модуль реле або транзисторний драйвер (наприклад, L298N)
  • Блок живлення на 12 В для двигуна
  • Провід, макетна плата або паяння
Принцип роботи

Температурний датчик постійно вимірює температуру в приміщенні. Якщо вона перевищує задане значення (наприклад, 26 ° C), Arduino активує двигун і відкриває вікно. Якщо температура опускається нижче 22°C – вікно закривається.

Два кінцівки запобігають надмірному руху — мотор вимикається при досягненні крайнього становища.

Схема підключення
Компонент Піни підключення до Arduino
DS18B20 D2 + резистор 4.7 кОм між DATA та +5В
Кінцівник "відкрито" D5 (з підтяжкою до VCC через INPUT_PULLUP)
Кінцівник "закрито" D6 (аналогічно)
Реле "відкрити" D3
Реле "закрити" D4
Мотор Підключається до реле або L298N
Блок живлення 12В Живить двигун і, при необхідності, Arduino через стабілізатор

Приклад коду

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2
#define RELAY_OPEN 3
#define RELAY_CLOSE 4
#define LIMIT_OPEN 5
#define LIMIT_CLOSE 6

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

const float TEMP_OPEN = 26.0;
const float TEMP_CLOSE = 22.0;

void setup() { 
pinMode(RELAY_OPEN, OUTPUT); 
pinMode(RELAY_CLOSE, OUTPUT); 
pinMode(LIMIT_OPEN, INPUT_PULLUP); 
pinMode(LIMIT_CLOSE, INPUT_PULLUP); 

sensors.begin(); 
Serial.begin(9600);
}

void loop() { 
sensors.requestTemperatures(); 
float temp = sensors.getTempCByIndex(0); 
Serial.println(temp); 

if (temp > TEMP_OPEN && digitalRead(LIMIT_OPEN) == HIGH) { 
digitalWrite(RELAY_CLOSE, LOW); 
digitalWrite(RELAY_OPEN, HIGH); 
} 
else if (temp < TEMP_CLOSE && digitalRead(LIMIT_CLOSE) == HIGH) { 
digitalWrite(RELAY_OPEN, LOW); 
digitalWrite(RELAY_CLOSE, HIGH); 
} 
else { 
digitalWrite(RELAY_OPEN, LOW); 
digitalWrite(RELAY_CLOSE, LOW); 
} 

delay(3000);
}

ArduinoМонтаж актуатора

Виконавчий механізм — звичайний мотор-редуктор із довгою шпилькою. До гайки, що рухається шпилькою, кріпиться кронштейн, з'єднаний з рамою вікна. Таким чином, при обертанні шпильки вікно буде відкриватися або закриватися.

Важливо: не забудьте встановити кінцевики для автоматичної зупинки двигуна в крайніх положеннях!

Поради та доопрацювання
  • Додайте екран та кнопки для ручного налаштування температури
  • Інтеграція з Wi-Fi (ESP32) для віддаленого керування
  • Використовуйте металеві шестерні в редукторі — вони довговічніші
Висновок

Тепер ви знаєте, як своїми руками зібрати автоматичне керування вікном за температурою повітря. Такий проект покращить комфорт вашого будинку, допоможе заощаджувати енергію та уникнути застуд.

Усі необхідні модулі та компоненти ви можете придбати прямо в нашому інтернет-магазині Arduino за доступною ціною з доставкою по Україні!

<< Проекти << Усі товари >> Статті, уроки >>

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Аудіо штекер 3,5мм папа з гвинтовим клемником

Аудіо штекер 3,5мм папа з гвинтовим клемником

Стерео штекер 3,5 мм для монтажу електричних кіл передачі звукового сигналу за допомогою гвинтового ..

94.08грн.

Найпростіший спосіб перевірки GSM-модуля

Найпростіший спосіб перевірки GSM-модуля

Бувають миті в житті розробника, коли нас виводить із себе така штуковина як GSM модуль до любительс..

Arduino функції та як з ними боротися

Arduino функції та як з ними боротися

Ця стаття із серії уроки Arduino. Тема цього уроку: Arduino функції і як з ними боротися.Ми дізнаємо..

Модуль блока питания 12В 250мА

Модуль блока питания 12В 250мА

Зручний модуль живлення з 220В AC в 12В постійного струму. Розроблений для встановлення на друковану..

155.85грн.

Модуль реле 8-канальний 5В 10А

Модуль реле 8-канальний 5В 10А

8-канальный модуль реле для підключення напряму до дискретного виходу контролера. Світлодіодна індик..

262.46грн.