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

В этой статье мы соберем умное устройство на 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 по доступной цене с доставкой по Украине!
Кнопка без фиксации R16-503 со светодиодом
Кнопка с подсветкой нажимная без фиксацииПростой монтаж. В передней панели устройства просто нужно п..
38.21грн.
Arduino Nano 3.0
Миниатюрная плата контроллера из линейки Aduino на базе микропроцессора ATMEGA328P-AU (это тот же ко..
179.44грн.
Управление servo-мотором через COM-порт Arduino
Опишем программу управления серво-мотором командами с COM-порта на примере контроллера Arduino Leona..
Символьный LCD индикатор 16х2 синий
Символьный двухстрочный жидкокристаллический индикатор. 16 символов в одной строке.Синяя подсветкаСо..
83.25грн.
Адаптер для радио модуля NRF24L01
Модуль, облегчающий подключение радио приемо-передатчика NRF24L01 к любительским контроллерамНа..
26.73грн.





