Погреб на балконе, термо шкаф для хранения овощей.

Всем привет. Я тут новенький. Решил написать про свою поделку.
Надеюсь тут ардуинщиков не бьют :-)


Так случилось, что с переездом в новую квартиру остро встал вопрос с зимним хранением солений и овощей. Мы люди старой закалки и египетскую картошку из супермаркета не едим. Поэтому по старинке каждую осень запасаем не свою, но фермерскую.



Итак решено одну из лоджий оставить холодной и там устроить погреб по городскому. Т.е. поддерживать температуру от 2 до 7 градусов. Поскольку к лету все съедается, то летом там хранится барахло (см.фото) и охлаждения на летний период не будет.

Сооружаем утепленный шкаф. Каркас дерево. Гипсокартон с двух сторон, внутри утеплитель. Дверь (теклопакет) нашлась бесплатно.

Чтобы внутри тепло равномерно распределялось, нужно было сделать продуваемые полки и отсек для овощей и обеспечить циркуляцию воздуха.

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



Через все полки проходит вентиляционная труба, сверху которой находится вентилятор. Низ трубы заканчивается тройником, распределяющим поток в две стороны.


Первоначально идея была такова: внизу напротив выходов тройника устанавливались два прожектора по 150вт., которые включались вместе с вентилятором. Теплый воздух проходил по бокам полок, а так же через овощи и остальные полки вверх где и засасывался вентилятором.

Потом от идеи прожекторов пришлось отказаться.Картошка зеленела. Был установлен один конвектор на 500вт.

Первоначально включением нагрева и вентилятора управлял термодатчик с магнитным пускателем. Температуру внутри/снаружи показывала китайская поделка. Свет включался вручную. И вот решил я заменить это дело Arduino.

Задача:

  • Поддержание температурного режима внутри герметичного шкафа в пределах 2-7 гр. в холодном помещении.
  • Отображение температуры и влажности внутри и снаружи шкафа
  • Управление обогревателем и конвекцией внутри шкафа (термодатчик)
  • Управление освещением по откр./закр. Двери (геркон)
  • Управление подсветкой экрана ( включение от кнопки на корпусе на несколько секунд и при включении обогрева)

Вот так выглядит наружний блок (фото делал летом):



Сверху видна кнопка включения подсветки экрана и наружний температурный датчик.

Внутренний датчик такой же марки находится в центре шкафа внутри. Снизу разъем micro-USB на случай апгрейда софта.

Вся эта конструкция пережила уже несколько зим. Вот перечень недостатков, которые выявились:

— При хранении овощей внутри здорово повышается влажность. Как решить пока не знаю. Просто иногда проветриваю шкаф. Возможно поставлю тихоходный вентилятор выдувающий воздух наружу. Как скажется на темп. режиме?
— Иногда экран начинает моргать сам по себе, после открытия/закрытия двери. Похоже на косяк в моей первой программе. Лечится перезагрузкой. Буду разбираться.

Необходимые детали:
  • 1PCS Nano V3.0 AVR ATMEGA328P-AU Moudle Board +Mini USB Cable FOR Arduino`s IDE
  • New 5V 2-Channel Relay Module Shield for Arduino ARM PIC AVR DSP Electronic 10A
  • Датчик температуры влажности DHT22
  • Дисплей на 2 строки
  • Геркон
  • Кнопка без фиксации. Я использовал для кратковременного включения подсветки экрана.
  • Блок питания на 5, 7.5 или 9 вольт.
  • Корпус по вкусу.

Всего примерно 1100р.
К этому всему надо еще паяльник и руки.

Назначение входов ардуино:

D2- выход реле нагрева
D3- выход реле свет
D4-D10- выход LCD
D11- вход датчика тепмература/влажность снаружи
D12- вход датчика тепмература/влажность внутри
A7- датчик двери
A0- кнопка вкл. подсветки

Вот собственно скетч, заливаем с компа через USB:


#include <LiquidCrystal.h>
#include "DHT.h"
//init DHT
#define DHTPIN1 12     // what pin we're connected to
#define DHTTYPE1 DHT22   // DHT 22

DHT dht1(DHTPIN1, DHTTYPE1);

#define DHTPIN2 11     // what pin we're connected to
#define DHTTYPE2 DHT22   // DHT 22
DHT dht2(DHTPIN2, DHTTYPE2);

int on=2;// переменная с порогом вкл
int off=7;// переменная с порогом выкл

// вход от геркона
int analogPin = 0;
int val = 0;
int val2= 0;

// подсветка
int ledPin = 10;

LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

void setup() {
//pinMode(A0, INPUT); // кнопка подсветки
//pinMode(A7, INPUT); // кнопка подсветки
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);

// выключим подсветку
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // подсветка off

pinMode(2, OUTPUT); //нагрев
pinMode(3, OUTPUT); //свет

digitalWrite(2,HIGH); // rele 2 off
digitalWrite(3,HIGH); // rele 3 off

//инициируем lcd
lcd.begin(16, 2);
dht1.begin();
}

void loop() {
// вывод температуры и влажности 1
int h = dht1.readHumidity();
float t = dht1.readTemperature();
// check if returns are valid, if they are NaN (not a number) then something went wrong!
lcd.setCursor(0, 0);

if (isnan(t) || isnan(h)) {
lcd.println("Failed read from DHT");
} else {
lcd.print("In  T=");
lcd.print(t);
lcd.setCursor(13, 0);
lcd.print(h);
lcd.print("%");
}

// вывод температуры и влажности 2
int h2 = dht2.readHumidity();
float t2 = dht2.readTemperature();

// check if returns are valid, if they are NaN (not a number) then something went wrong!
lcd.setCursor(0, 1);
if (isnan(t2) || isnan(h2)) {
lcd.println("Failed read from DHT");
} else {
lcd.print("Out T=");
lcd.print(t2);
lcd.setCursor(13, 1);
lcd.print(h2);
lcd.print("%");
}

// если температура больше заданной выключаем нагрев и подсветку
if (t>=off) {
digitalWrite(ledPin, LOW); // подсветка выкл
digitalWrite(2,HIGH); // нагрев выкл
}
else if (t<=on)  // включим нагрев и подсветку
{
digitalWrite(ledPin, HIGH); // подсветка вкл
digitalWrite(2,LOW); // нагрев вкл
}

// читаем вход с кнопки
val = digitalRead(A0);    // read the input pin
if (val==LOW)
{
digitalWrite(ledPin, HIGH); // подсветка on
delay (3000);
}
else if (t>on && val==HIGH)
{
digitalWrite(ledPin, LOW); // подсветка off
}

val2 = digitalRead(A1); //читаем геркон
if (val2==HIGH)
{
digitalWrite(3, LOW); // реле свет вкл
digitalWrite(ledPin, HIGH); // подсветка on
delay (100);
}
else
{
digitalWrite(3, HIGH); // реле свет выкл
digitalWrite(ledPin, LOW); // подсветка off
delay (100);
}

//lcd.setCursor(15, 0);
//lcd.print(!(digitalRead(2)));
//lcd.setCursor(15, 1);
//lcd.print(!(val2));
}

19 комментариев

avatar
На мой взгляд, для борьбы с излишней влажностью достаточно сделать шкаф менее герметичным. Например прорезать сбоку отверстие и закрыть его плотной тканью, а ещё лучше — войлоком.
А про мигающий дисплей — проверь самое последнее условие в своей программе — похоже, в нём…
avatar
Без проблем. Если делать без плюшек, можно использовать готовый термостат.
Например такой.
avatar
Ну вот тот, на который я дал ссылку работает без проблем. У него достаточно неплохие настройки. Гистерезис и т.д.
Прицепить к нему нагрев и вентилятор и нормально будет.
avatar
Иногда экран начинает моргать сам по себе, после открытия/закрытия двери.
Эти симптомы как-бы говорят нам, что терморегулятор несовместим с магнитными бурями…
avatar
Так и есть. Вот только как от этого избавиться?
avatar
клево ) я тоже вожусь с ардуино и расберри… Чейчас в процессе у меня следующаяя задача:

Arduino + DHT22+LCD16x2+Реле(Тройка-модуль)+увлажнитель.
На данный момент сделан вывод температуры и влажности на дисплей, следующий этап подключение реле с увлажнителем. Заключительным этапом будет пост )
avatar
я хочу сделать что-то вроде пластикого бокса прозрачного + подключить ИК порт и пару LED лент, чтобы устройство еще и развлекательные функции выполняло, кроме включения и выключения увлажнителя. Вот думаю как бокс сделать самому… удобно.
avatar
Я пилю щас часы календарь с беспроводным датчиком температуры. На LED матрице большой, которую за аквариум на стену повешу. Пост сделаю.



avatar
а можно первую фотку с обратной стороны?)
avatar
и полный перечень компонентов ) узнал только DHT22, модуль времени и собственно «нану» =)
avatar
Фотки с обратной стороны пока не нашел. Если найду кину.
Все верно. Там еще UBEC стабилизатор. Для того чтобы не делать матрице отдельного питания. Ей надо 5в.
И приемник на 433Мгц. Для приема данных с внешнего датчика.
avatar
avatar
Да он. Перемычкой ставится 5/6в.
Опубликовал топик. Предлагаю туда переместиться.
we.cs-cs.net/blog/206.html
avatar
Вот у прошлом годе как раз закупил на балкон готовый ларь. Погребок называется. Исполнение минималистичное, конечно (через год на крышке слезла краска и под ней черный металл ржавый, пенопласт тонкий и изнутри ничем не закрыт), но с задачей справляется, если его допилить нормальным термостатом. Ибо в комплекте каппилярный термостат от холодильника, наверное. Так вот он если включил обогрев, то выключает его, когда картошка уже начинает поджариваться. А поджариваться она начинает, потому что нагревательный элемент на 220В очень быстро и сильно разогревается. Такой дисбаланс выяснил заранее с помощью цифрового термометра. Тоже хотел сделать что-то крутое на контролере, но времени не было. Заказал в китае простецкий термостат:
мышкуйте...
Запилил его в корпус и запараллелил со штатным в качестве резерва. Получилось так:
девайс под подоконником, внутри которого протащил все провода
Над нагревателем на решетку положил лист картона с зазорами, чтобы не жарил. Ну и отлично все сохранилось до весны. Правда в морозы приходилось подкручивать гистерезис, т.к. углы таки норовили промерзнуть. Также заклеивал вентиляцию сверху, через нее задувало сильно.
Комментарий отредактирован 2015-11-28 20:16:05 пользователем asnik
avatar
Неплохо.
Я правда еще тестил вот такой термостат. Он чем удобен питание 220v, ну и в корпусе уже. А начинка думаю та же.
Комментарий отредактирован 2015-11-28 20:30:06 пользователем romku
avatar
Да, ссылку видел, интересно. Тогда почему-то такой не нашел. А что за датчик у него в комплекте?
avatar
А лет 20 назад на родной квартирке был приобретен ларь из фанеры (с 2-х сторон) с пенопластом 5см толщиной. Внутри съемная обрешетка из реечек по всем сторонам, чтобы воздух циркулировал. Нагреватель из гетинакса, внутри которого видимо заделана проволока, так что он не жарит. И самое ценное — термостат без реле. У него какой-то хитрый принцип. Включение сигнализируется светодиодом. Этот диод моргает редко, когда тепло, а при похолодании частота включения постепенно увеличивается. Причем девайс аналоговый, частота не дискретная. Получается, что нагреватель всегда теплый именно до той степени, что сейчас требуется. И конвекция идет постоянно. Работает замечательно по сей день без вентилятора внутри и без дырок для вентиляции. Вот такой принцип мне больше нравится, чем релюхи. Но сейчас таких уж не сыскать(
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.