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

У цій статті ми зберемо розумний пристрій 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 за доступною ціною з доставкою по Україні!
Набір перетинок (мама-мама) 40шт 10см
Набір з'єднувальних дротів для поєднання плат контролера з периферією без пайки. Підходять під станд..
50.09грн.
Світлодіодна матриця 8х8 з керуючим контролером MAX7219
Готовий блок світлодіодної матриці 8х8 з підтримкою каскадного увімкнення декількох ідентичних модул..
87.37грн.
Кнопка металева герметична 16мм (латунь, IP65, 3A, без фіксації)
Надійна вологозахищена кнопка без фіксації діаметром 16 мм. Виготовлена з латуні з нікелевим покритт..
82.91грн.
Корпус пластиковий 85x58x33мм з прозорою кришкою
Герметичний корпус для саморобних електронних пристроївМатеріал - пластикРозміри 85 x 58 x 33 мм..
116.22грн.
Шестерня для зубчатого ременю на 36 зубців під вісь 5 мм
Використовується для передачі та редукції обертаючого моменту від двигуна до вісі 5 ммКількість зубц..
79.68грн.





