Как я делал удаленное управление теплом в гараже.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Для обогрева своего гаража, я использую 2 "конвектора". Один конвектор включен постоянно на +5 градусов, для поддержания плюсовой температуры, второй "конвектор" включается по необходимости.


Раньше приходилось бегать, включать его, уходить домой, ждать час-два пока температура поднимется до комфортных +20, но это быстро надоело, одолела лень и я решил применить максимально бюджетный вариант удаленного включения на Arduino.


Что необходимо было купить:

Arduino nano: https://ru.aliexpress.com/item/Freeshipping-1PCS-Nano-3-0-co...

146 руб

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Модуль ENC28J60: https://ru.aliexpress.com/item/2PCS-ENC28J60-Ethernet-LAN-Ne...

165 руб

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Датчик температуры DHT22: https://ru.aliexpress.com/item/1pcs-DHT22-digital-temperatur...

151руб

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Реле: https://ru.aliexpress.com/item/5PCS-LOY-1-Channel-5V-Relay-M...

40руб

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Коротко о подключении всего этого барахла.


Модуль ENC28J60:

VCC к 5V

GND к GND

SCK к Pin 13

SO к Pin 12

ST к Pin 11

CS к Pin 10


Реле:

S к Pin 2

Vcc к 5V

GND к GND


Датчик температуры DHT22:

Vcc к 3.3V

GND к GND

DATA к Pin4

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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


Что из этого вышло:


#include "DHT.h"

#include <EEPROM.h>

#define DHTPIN 4

#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

#include <EtherCard.h>

static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; // MAC Address должен быть уникальным в локальной сети

static byte myip[] = { 192,168,1,222 }; // Постоянный IP адресс нашей страницы

byte Ethernet::buffer[1000];

BufferFiller bfill;

// Начальные данные

int LedPins[] = {

2,3,5,6,7,8,9};

int t=0;

int h=0;

boolean PinStatus[7];

const char http_OK[] PROGMEM =

"HTTP/1.0 200 OK\r\n"

"Content-Type: text/html\r\n"

"Pragma: no-cache\r\n\r\n"

"\r\n"

"<meta charset='UTF-8'>"

"<meta name='viewport' content='width=device-width, initial-scale=1.0'>"

"<meta http-equiv='refresh' content='10'/>";

const char http_Found[] PROGMEM =

"HTTP/1.0 302 Found\r\n"

"Location: /\r\n\r\n";

const char http_Unauthorized[] PROGMEM =

"HTTP/1.0 401 Unauthorized\r\n"

"Content-Type: text/html\r\n\r\n"

"<h1>401 Unauthorized</h1>";

// Подключаем Ethernet порт HR911105A и датчик DHT22

void setup () {

if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0)

Serial.println( "Failed to access Ethernet controller");

ether.staticSetup(myip);

for(int i = 0; i <= 7; i++)

{

pinMode(LedPins[i],OUTPUT);

PinStatus[i]=EEPROM.read(i);

digitalWrite(LedPins[i],PinStatus[i]);

}

dht.begin();

}

// Получаем данные от DHT22

static void ReadDHT22()

{

h = dht.readHumidity();

t = dht.readTemperature();

}

// Оформление Web страницы

static word homePage() {

bfill = ether.tcpOffset();

bfill.emit_p(PSTR("$F"

"<title>Гараж</title>"

"<p style=\"text-align: center;\"><br />Конвектор: <br> <span style=\"font-size: 4em;\"><a href=\"?ArduinoPIN2=$F\">$F</a></span>"),

http_OK,

PinStatus[0]?PSTR("off"):PSTR("on"),

PinStatus[0]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"));

bfill.emit_p(PSTR(

"<br><br>Температура: <br> <span style=\"font-size: 4em;\">$D C</span> <br /><br />Влажность:<br> <span style=\"font-size: 4em;\"> $D %</span></p>"),t, h);

return bfill.position();

}

void loop () {

delay(1); // Задержка

word len = ether.packetReceive();

word pos = ether.packetLoop(len);

if (pos) // check if valid tcp data is received

{

ReadDHT22();

bfill = ether.tcpOffset();

char *data = (char *) Ethernet::buffer + pos;

if (strncmp("GET /", data, 5) != 0) {

bfill.emit_p(http_Unauthorized);

}

else {

data += 5;

if (data[0] == ' ') {

homePage();

}

else if (strncmp("?ArduinoPIN2=on ", data, 16) == 0) {

PinStatus[0] = true;

digitalWrite(LedPins[0],PinStatus[0]);

EEPROM.write(0,PinStatus[0]); // записываем в ячейку EEPROM №0, текущее состояние LedPins[0].

bfill.emit_p(http_Found);

}

else if (strncmp("?ArduinoPIN2=off ", data, 17) == 0) {

PinStatus[0] = false;

digitalWrite(LedPins[0],PinStatus[0]);

EEPROM.write(0,PinStatus[0]);

bfill.emit_p(http_Found);

}

else {

// Page not found

bfill.emit_p(http_Unauthorized);

}

}

ether.httpServerReply(bfill.position()); // send http response

}

}


Коротко о данном скетче:

В память ардуины (EEPROM) сохраняется информация о последнем положении кнопки реле, перебои со светом нам не страшны, положение кнопки всегда отражает реальное состояние реле, не будет такого, что на странице выводится OFF а на самом деле ON.


Далее подключаю сборку к локалке, для питания использую старую зарядку от мобильного телефона.


Вызываю страницу по IP адресу, который мы задали в начале скетча: http://192.168.1.222


Получаю страницу с данными:

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Всё открывается, данные с датчика верные, реле на нажатие кнопки реагирует, положение запоминает.


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

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост
Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост
Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Собрал все в корпус, закрепил модули термоклеем.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Когда моделировал корпус, особо головой не думал, по этому реле почему-то сделал по середине… Лучше было его разместить с краю. Ну да ладно, и так сойдет…

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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


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

Провел интернет в гараж. Купил недорогую направленную Wi-Fi антенну, поставил её на карниз пока вот так, летом если дойдут руки и не будет лень сделаю нормальный кронштейн.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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


Теперь гараж с домом у нас в одной сети и самое время настроить виртуальный сервер на домашнем роутере.


Прописываем порт который мы открываем например 7777, прописываем IP нашей системы 192.168.1.222, прописываем порт по которому будет доступна наша страница, для доступа из браузера порт 80.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

При наличии статического IP адреса от провайдера, наша система теперь доступна откуда угодно по адресу http://нашip:порт


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


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

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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


Спасибо за внимание. Если есть вопросы, готов ответить )

Arduino & Pi

1.4K постов20.6K подписчиков

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

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

Да это гараж не совсем для машины, это мастерская в гараже.

раскрыть ветку (3)
4
Автор поста оценил этот комментарий
Тогда понятно ) для меня гараж-это место для машин.
Автор поста оценил этот комментарий

на 6-й картинке я понял- мне теплый гараж нахрен не нужен.

1
Автор поста оценил этот комментарий

Dir-320 косящий под асус, знаем, проходили)

3
Автор поста оценил этот комментарий

Не, очень вредно скорее то, что вода тает испаряется и машина стоит в излишне влажном помещении где тупо гниет. Для избежания этой проблемы достаточно установить обычный канальный вентилятор, как правило 160 диаметра достаточно. Две трубы и пара диффузоров и вуаля. Кстати если вам нужны качественные и недорогие вентиляторы... )))

раскрыть ветку (15)
2
Автор поста оценил этот комментарий

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

раскрыть ветку (14)
3
Автор поста оценил этот комментарий

На 250 кубов или диаметр? Если кубов то это такие маленькие канальные, обычно на втулках если дешевый. Я предположу, что вы его установили вертикально, а это болезнь всех втулочных, со временем они раздалбываются и вибрируют. Если всё таки горизонтально, значит скорее всего не зафиксировали, мы как правило спереди и сздаи вентилятора протягивали саморезы (если он внутрь трубы вставляется), чтобы он вперед назад не бегал ну и конечно когда собираешь, то уплотнительной лентой, например алюминизированной. А если он такой который вставляется по типу фланцев там в трубу и там в трубу. И везде плотно зафиксирован  и он сам и труба, то или он качества говенного или брак заводской. Но в любом случае зашивать была не самая лучшая идея, т.к. даже на шарикоподшипниках (исключаем заводской брак) он через 5-7 лет скорее всего выйдет из строя.

раскрыть ветку (13)
Автор поста оценил этот комментарий

Вот он, негодяй:

Вентилятор центробежный канальный приточно-вытяжной ЭРА (ERA) CYCLONE-EBM 100 BB D 100 мм 265 м³/ч

Установлен горизонтально с наклоном ~30 гр., притянут к потолку монтажной перфолентой за патрубки. Начал колбасится через пол года использования, подсунул между корпусом и потолком картон, но это лишь сгладило шум, вибрация как от детского перфоратора. Дело усугубляется тем, что к нему через тройник подключен диффузор, установленный в пластиковом потолке, всё это создаёт непередаваемую атмосферу "праздника"...

раскрыть ветку (12)
Автор поста оценил этот комментарий

Ну эра это праздник конечно ))) Не буду называть производителей, но смотрите и меняйте на вентилятор на шарикоподшипниках, он дороже раз эдак в пять. Зато никакого шума вообще не будет ) А эти. Суть в том, что моторчик вращает втулку, ни о какой виброизоляции там конечно нет и речи, и со временем втулка раздалбливается и начинает вибрировать и визжать как свиноматка даже при установке в горизонтальном, а если есть небольшой наклон даже, то нагрузка на втулку увеличивается и раздалбливается место соединения быстрее. Или вообще оттуда его нафиг выдерните и поставьте на шарикоподшипниках накладной вентилятор. И да кстати эровские, домовент, вентс на втулках и пр. не дают заявленных кубов, они очень маленькое давление в сети способны создать, поэтому если воздуховод порядка 3х метров их производительность падает раза эдак в четыре ) В отличие от тех же на шарикоподшипниках. Это я лично замерял опытным путем )

раскрыть ветку (11)
1
Автор поста оценил этот комментарий
дороже раз эдак в пять

15 кРуб что ли???

Всё ж таки прошу назвать проверенных производителей, чтоб не раскидываться кровно заработанными, ибо сами продавцы зачастую не могут внятно объяснить, втулка там или подшипник. По давлению не критично, ибо на всос магистраль от силы 0,8 м, на "высос", включая сам стояк - 3 м и вот оно небо. Куда критичней - шум... С такой вибрацией скоро он мне весь каркас с металлопрофиля разберёт и плитка поотваливается )))


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

раскрыть ветку (10)
Автор поста оценил этот комментарий

Оу прошу прощения, у вас полупромка жиж. Я только сейчас разглядел. Тогда проблема в плохой центровке, такое тоже бывает. Но если хотите бесшумное, то два варианта, существуют шумоизолированные боксы для таких вентиляторов, продаются в русклимате. Или поставить малошумный канальный, продаются в благовесте (TD silent). И та и другая фирма присутствуют почти во всех крупных городах России. Или вообще вентилятор на улицу вынести и поставить шумоглушитель в системе. У вас случайно не кухонная вытяжка в роли этого вентилятора?

раскрыть ветку (9)
Автор поста оценил этот комментарий

Благодарю за инфу! Вентилятор в роли вытяжки из туалета и ванной (в ванной "поджат" диффузором). На улицу будет пролематично вынести, т.к. дом многоквартирный, просто последний этаж и в стояке отдельный вентканал в небо.

Изначально планировал кухонную вытяжку (и доп. диффузоры) подключить к этому канальнику, но не нашёл "зонт" без вентилятора, везде говорят - экзотика.

раскрыть ветку (8)
Автор поста оценил этот комментарий

Зонт можно взять любой и выкинуть потроха или заказать в жестяном цеху и покрасить порошковой краской. Но я бы в любом случае не советовал объединять кухню с туалетом, даже при наличии обратных клапанов. А для ваших целей хватило бы и чего послабже. Например Silentub-200 до 15кв.м. общих ванна + туалет, суется прям в вентканал, только уплотните, и вообще не слышно. А ставить тот что вы поставили. Это простите микроскопом гвозди забивать. Если конечно у вас не квадратов 20-25 ванна+ туалет.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

Да, про зонт я как то не подумал... Объединять я не хотел, под это дело второй вент. канал есть. А производительность обусловлена тем, что я люблю подымить, сидя на белом камне :-) Поэтому, чтоб воздух не застаивался... Прикрутил к нему контроллер на ардуино, который постепенно убавляет обороты после выключения света и тянет ещё 15 минут примерно на 10% мощности.

раскрыть ветку (6)
Автор поста оценил этот комментарий

Верно, но тёплый пол, вроде как, эту проблему решает.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку