Баловством с контроллерами на тот момент уже слегка занимался, поэтому решил что мне нужен контроллер ну и самый простой датчик температуры (он же терморезистор) — замечательно, сказано сделано, приобрел в местном магазине эти вещи спаял на макетке, опробовал самую простую автоматику типа греешь датчик дыханием — загорается светодиод, датчик остывает — светодиод гаснет. Получилось примерно вот такое:
Замечательно, работает! встал следующий вопрос — дыхание это все понятно но хотелось бы конкретные значения температуры, после долгого высчитывания значений напряжений и перевода их в температуру у меня вышло более менее точные значения температуры которую я наблюдал на мониторе компьютера принимая значения с COM порта. Тоже порадовался этому достижению (казалось бы что надо человеку для радости). Тут пришла мысль, а вот бы без компа смотреть значения температуры, да и вообще отдельное устройство работающее само по себе и если надо общающееся с компом — это вроде как будет интересно. Вариант с семисегментными индикаторами отмелся как-то очень быстро — не интересно типа. решил делать вывод на ЖКИ.
Использовал такой индикатор, начал разбираться что там и как какие бывают что им там требуется, тестировал на макетной плате и пришел к такому выводу — требуется им инициализация начальная причем зависит от конкретно используемого индикатора, и при работе соблюдения всяких задержек, подумал что если у меня аналоговый датчик температуры с преобразованием по времени индикатор тоже всякие задержки, а еще надо механизм открывания окна скорее всего на двигателе делать там тоже по времени рассчитывать придется.
В общем решил я делать отдельный модуль который будет заниматься выводом информации (в дальнейшем прозвал его модуль вывода текстовой информации МВТИ), а основной контроллер задумываться о том что там какие-то задержки даже не будет, к тому же память экономит. Решил использовать стандартный интерфейс COM порта (RS-232). Задача стояла такая: модулем принимаю символы по RS-232 вывожу на ЖКИ, перед началом производится вся полагающаяся инициализация, соблюдаются все нужные задержки, делаются всевозможные проверки типа количества выводить 40 символов, переходы на новую строку, и таблица соответствия символов кодировки данных приходящих с COM порта и ЖКИ, очень хотелось чтобы вывод был на русском языке.
Занялся этим вопросом — создал схему, развел плату и нужно было заняться ее изготовлением, что-то у меня плохо шла технология ЛУТ, и решил я попробовать сделать это в Китае, прочитал целую статью про это на хабре, и решил заказать там же где и у них в статье было написано, сайт производителя плат. Минимальный заказ у них 5 штук и 1 в довесок бесплатно добавляют (в общем по любому в цене выгоднее чем у нас заказывать). Заказал у них эти 5 штук, подумал пригодится если еще такие модули делать буду, они получаются универсальные можно просто к компу на нуль модемный кабель посадить и выводить что-нибудь (питание еще от блока подать). Прислали через месяц мне платы, напаял туда элементы написал прогу для контроллера который на в модуле, затестировал, и в первом приближении мне понравилось, потом потихонечку доводил по мере того как что-то находил. Конечный вариант вышел такой.
Теперь у меня выводилась температура на ЖКИ в виде: Температура 23 градуса, встала новая проблема она прыгала при малейшем дунавении ветерка типа открытии двери окна, сам мимо прошел — сделал усреднение, получилось вроде нормально. Температура это конечно хорошо но захотелось мне еще туда и время выводить. Попробовал сделать и это, добавил коду, обнаружил что есть недочеты при выключении питания — оно сбивается и его надо каждый раз выставлять. Опыта работы с контроллерами не хватало и со временем выходило не очень, секунды были разные и быстро набегали ошибки. Попробовав то се, начал думать как быть, развивался ардуино и появились дешевые модули реального времени, на том и порешил.
Взял себе ардуино Леонардо с 2-мя UART портами (один под модуль вывода текста, второй штатный для соединения с компом), модуль реального времени. С библиотеками проблем не было, кода в инете и примерах достаточно, быстро написал код, оттестил его и радовался жизни — время пошло и дата тоже была и при выключении время не сбивалось, сплошь замечательная жизнь. Но и тут мне не сиделось не понравилось что на маленьком экранчике ЖКИ очень уж мелко время показывает, надо бы что-нибудь придумать, и решил я сделать модуль вывода времени на семисегментных индикаторах. Семисегментного индикатора с двумя точками хорошего размера себе не нашел. использовал 2 сдвоенных плюс 2 светодиода под точки, решил плату также как и предыдущую делать, но не делать ее частотной, а с микросхемами памяти которые хранят состояние часов и минут т.е. время записывается туда 1 раз в минуту, дальше пины свободны для других задач. получился вот такой вот модуль:
Дальше нашел подходящий корпус, приобрел блок питания на Ali, собрал работает — глаз радует:
Следующий шаг механизм открывающий окно. У меня окно деревянное открывается на бок узкая и длинная форточка до верха. Тут было потеряно не мало времени пока не подобрал боле-менее подходящий вариант для системы которая занимается открытием и закрытием окна. На последний момент механизм выглядит таким образом:
Все собиралось из подручных средств, тяги были взяты от механизма дверцы шкафа бара (еще советской конструкции), шаговый двигатель от принтера (драйвер на микросхеме L293), белая пластиковая деталь — напечатана на 3D принтере. Несколько раз конструкция, облегчалась и переделывалась, на текущий момент свою функцию выполняет, не совсем ей доволен — так что планирую ее модернизацию. Для примера записана программа так что при температуре более 27 открывает окно, менее 24 градусов закрывает окно, но запланировано проветривать по времени с ориентированием на температуру: если температура во время проветривания понижается быстро то проветривание небольшое по времени, при этом чаще происходит само проветривание и наоборот.
Ссылка на видео открытия и закрытия окна
На последок: Получилось достаточно своеобразное устройство с возможностью дальнейшего впихивания в него какого нибудь функционала, типа включения по времени датчиков освещенности — этакий нано умный дом.
P.S.: Выслушаю мнения, идеи, комментарии и пр.
Комментарии (72)
HarryMorgan
28.01.2016 13:56+2Окно в закрытом состоянии не сквозит? Обычно требуется прилагать достаточно большое усилие, чтобы плотно прижать форточку к раме.
Vasilii_B2
28.01.2016 14:23Прижать плотно — это действительно проблема, но говорить что сквозит я бы не стал.
shuvaevgl
28.01.2016 14:08+2Еще вопрос про окно: сильным порывом ветра не оторвет всю удерживающую конструкцию?
Vasilii_B2
28.01.2016 14:36Не было сильного ветра чтобы проверить, но проверял дергая окно за ручку — держится довольно неплохо.
iliasam
28.01.2016 14:13+3Не верю, что Arduino Leonardo не справилась бы одновременно с управлением индикатором напрямую и управлением двигателем.
Кроме того, есть специальные переходники I2C-HD44780.
Интересно, чем обусловлен выбор контроллера в PLCC корпусе?
И пунктуацию статьи нужно поправить — читать тяжело.Vasilii_B2
28.01.2016 14:49Думаю что Леонардо сможет справиться с этими задачами, но я специально придерживался модульности т.к. планируется увеличить функционал устройства — чтобы каждая задача (вывод информации, вывод времени) выполнялась в своем куске железа/программы и в центральном управляющем контроллере о мелких нюансах не задумываться, тут же экономия пинов, памяти и уменьшения ошибок программного обеспечения. Переходник лишь меняет интерфейс — а модуль занимается инициализацией, соотношением символов кодировки с ком порта на кодировки ЖКИ, инициализация новых символов, ограничения по размеру окна ЖКИ. Выбор контроллера в PLCC корпусе обусловлен его наличием на тот момент))
Mr_Destiny
28.01.2016 15:33+2Один мой знакомый утверждает, что ардуина — это стрельба из пушки по воробьям.
Не могу похвастаться достаточными знаниями по электронике чтобы поддержать или развенчать это утверждение, но предположу что вся эта контроллерная история имела целью не только решить задачу просто и эффективно, а скорее попробовать всяких разных штук и поиграться с волшебными коробочками и проводочками :).
PS: а нано-умный дом это новый супер-тренд, можно хоть сейчас продавать в СколковоVasilii_B2
28.01.2016 16:15На первую часть сказал бы «На вкус и цвет товарища нет» — кто как хочет/может тот так и делает вопрос чисто филосовский!
По поводу P.S. — с Вашей легкой руки буду считать себя правообладателем нового трендового словосочитания «нано-умный дом»)))Mr_Destiny
28.01.2016 17:17+1Да я ж не спора ради, наоборот поддерживаю версатильность подходов к проблеме.
К стати, про модульность не подумал до Вашего комментария, но идея мне нравится. Когда (если) буду что-то железячить, постараюсь её вспомнить.
Когда начнете загребать миллиарды с нового тренда — приду за отчислениями))
9mm
28.01.2016 16:45+2ардуина — это стрельба из пушки по воробьям
Так-то оно так, но, nano можно купить за 300 р. — его хватит, за глаза, для кучи задач. В комплекте идёт IDE — да, говённая, зато запускается сразу, без регистрации и СМС, на любой платформе.
По мне так идеальная штукенция для поделок «на коленке».Sleepwalker_ua
28.01.2016 22:00+2а можно и еще дешевле, если взять у китайцев впрок. Попадалось мне, пак 5 нано по цене что-то около 6-7 долларов у хорошего продавца. Так что на тысячу рубликов можно закупиться довольно-таки прилично, даже с текущим курсом.
AlexanderS
28.01.2016 14:38А что это у вас за такой блок питания? Покупной? Или откуда-то снят?
Vasilii_B2
28.01.2016 15:11Блок пинтания на Ali покупал рублей 300 стоил, покупал 2 штуки но ими страшно не доволен, быстро выходят из строя (гуляет напряжение)
Psih
28.01.2016 14:51Прикольно, жаль со стеклопакетами работать не будет, там ручку нужно поворачивать.
Вот вам мысль на доработку — датчик CO2 добавить, и впускать свежий воздух, когда концентрация повышается до не комфортных уровней. Ибо CO2 на нашу умственную деятельность влияет гораздо хуже, чем повышенная температура :)Vasilii_B2
28.01.2016 15:16Датчик CO2 это конечно хорошо, но вот стоимость на него хороша))
Vasia529
28.01.2016 16:35mq-125 стоит условные сто рублей
Vasilii_B2
28.01.2016 16:39+1Не нашел информации о таком датчике — мне сомнительно что он будет нормальным, может ссылкой поделитесь?
Sleepwalker_ua
28.01.2016 22:01достаточно сделать редуктор и взять моторчик помощнее. Ну и конечно механизм ручки отрегулировать и смазать от души тефлонкой. После этого открывать и закрывать окно можно мизинцем левой руки, совершенно не напрягаясь ;-)
imhoil
29.01.2016 09:58+1Погуглите «климатический клапан для пластиковых окон»
Вырезается кусок уплотнительной резинки сверху откидного окна, прикручивается такая штука. Шторку открывать-закрывать можно вручную. Даже при температуре -30 шторку еще ни разу не закрывал при нормально работающем отоплении. В комнате всегда свежий воздух. А при жаре все равно спасет только кондей.
newborn83
28.01.2016 14:52+1Если жарко, то надо отрегулировать батареи (источник тепла).
Если не помогло, то наладить вентиляцию.
Открывать окно рациональнее не по температуре, а по концентрации СО2.
Kaktuzyatko
28.01.2016 14:52Впечатляет…
Особенно впечатлился разнице между макеткой и готовым устройством, как в корпусе все аккуратно уложено, проведено и разъем этот синий сзади для проводов… Прям восторг :)
А в видео двигатель громко так работает, это эффект записи или правда громко? По ночам не будит?Vasilii_B2
28.01.2016 14:56Да двигатель работаетдовольно громко но быстро привыкаешь (ночью не просыпаюсь),
MELCHIOR1
28.01.2016 14:56А если термореле на транзисторе? или компараторе
а что бы ночью не открывало фотореле
ну или термостат врезать в батарею
ведь получился целый компьютер для открывания форточкиVasilii_B2
28.01.2016 15:04Батареи не регулируются, к тому же проветривать (и ночью в том числе) все равно нужно. Автоматизация на «термореле на транзисторе» стандартная логика получается, я запланировал делать проветривание по времени с ориентациией на температуру, к тому же у меня теперь есть часы (которые не нужно подводить если вдруг пропало питание).
MELCHIOR1
28.01.2016 15:10терморегулятор для радиатора отопления сейчас глянул от 900 руб.
проветривать ночью — может быть шум — кому как, я только в ..+30… на ночь оставляю
Mixim333
29.01.2016 18:52Почему «батареи не регулируются»? Как понял, квартира не новая, отопление сделано по принципу «подача-обратка» (две трубы отопления, по одной заходит вода «с низу в верх» по другой уходит «с верху в низ»)? Если «да», то что мешает летом просто врезать сантехнический кран и перекрывать свою батарею?
У самого в 2 комнатах квартиры так сделано, а в третьей в 90е годы, когда было холодно и батарея ничерта не грела, сантехники обрезали основную подачу для других квартир и вся жидкость по стояку с тех пор течет по нашей батарее и если мы ее перекроем, то на 10м этаже трубы вполне могут перемерзнуть.
Alexeyslav
28.01.2016 15:02+1Для внутренней коммуникации между девайсами можно было использовать UART, тогда можно запросто выбросить преобразователи RS-232, а для связи с компьютером использовать… ESP8266. Если уж делать интерфейс под ЖК почему бы тогда не использовать 128x64 ЖК индикаторы? И шрифт можно покрупнее, и с подсветкой кстати…
LevOrdabesov
28.01.2016 15:04Проделанная работа заслуживает уважения!
Так как сам занимаюсь вопросом вентиляции, позволю себе дать несколько советов на будущее:
термодатчик имеет смысл физически удалить от окна. Иначе проветриваться будет только область вокруг окна;
жарко не из-за вентиляции, а из-за адски топящих «чугуниевых» батарей с нерасчётным (больше, чем надо на комнату) количеством секций. Себе на чугунные батареи поставил краны, закрываю, когда жарко;
открытое окно в большом городе – зло. Шумно и грязь летит;
Но вентилировать надо. Так что автор – молодец.Vasilii_B2
28.01.2016 15:06Спасибо, Шумно и грязь — это все понятно, но свежий воздух он все равно нужен.
serafims
29.01.2016 16:13против грязи и немного от шума сделал как-то себе на окно (деревянная рама со стеклопакетом) снаружи раму, по размерам она как створка, по периметру имеет резиновые прокладки для герметизации, закрыта стеклом, а внизу часть площади этой створки через перемычку отделена под фильтр воздуха примитивный, между двух решеток вентотверстий из магаза вставил пылесосный фильтр грубый. Стало очень чище! (1 этаж прям на дорогу) И можно открывать окно надолго, поток воздуха не такой мощный и не дует. А стекло не снижает светопропускание.
Jmann
28.01.2016 15:16Я вот тоже думаю, Ардуина бы вполне справилась, кстати — можно было бы заюзать Малинку с тачскрином. Что за микроконтроллер Atmel в PLCC?
maestr086
28.01.2016 15:19Честно говоря не понимаю подхода с проветриванием. Для себя я просто один раз с датчиком CO2 отрегулировал проветривание в квартире так, что бы в обычных режимах использования не было высоких концентраций углекислого газа. Неделю потратил.
С тех пор больше проветривание не трогал. Дополнительная регулировка достигается дверьми: если нет никого в комнате — дверь закрываешь, меньше тепла уходит. Теперь дома тепло, никаких сквозняков и всегда свежий воздух. Конечно, если много гостей приходит, то приходится приоткрывать окно. И плита электрическая, с газовой, конечно, сложнее.iliasam
28.01.2016 15:49+1А каким образом регулировали проветривание?
maestr086
28.01.2016 17:15+1Регулируемая щелевая вентиляция сверху пластиковых окон.
Хотел поставить на кухне вентилятор в вытяжку с регулировкой от датчика CO2, но необходимости нет. Причем на кухне приточная вентиляция вообще закрыта наглухо — хватает приходящего воздуха из комнат, без какого-либо вентилятора.
uve
28.01.2016 17:30Откройте для себя бризер
LevOrdabesov
28.01.2016 19:01Это если вытяжка нормально работает и денег на подогрев не жалко.
Киллер-решение – системы вентиляции вроде Lossnay, с притоком-вытяжкой и рекуператором.
makaroff
28.01.2016 19:13+1Бризер — круто, но не дёшево. Можно поставить недорогой приточный клапан вентиляции и наколхозить к нему моторчик и датчики. Датчики примастрячить где нибудь на расстоянии 2-3 метров и общаться с ними по радио.
gaucer
28.01.2016 22:49А если за окном дождь в сторону окна идет? Не будут капли попадать внутрь помещения?
Vasilii_B2
28.01.2016 23:26Будут. В принципе проветривание идет недолго поэтому это будет не так страшно. Если вдруг Вы утром перед уходом на работу откроете окно и только вечером его сможете закрыть, тут думаю проблем будет больше.
Swasher
28.01.2016 22:51Для измерения температуры проще и точнее будет использовать датчик DS18B20. Совокупив его с Arduino Pro Mini, все, окромя силовой части, вместится в спичечный коробок.
maxus01
29.01.2016 09:59Подскажите, где можно посмотреть подобные самодельные проекты со схемами и исходными кодами.
Vasilii_B2
29.01.2016 13:26Попробуйте поисковиком со словами «ардуино своими руками», мне не часто встречались сайты с самодельными проектами.
Sleuthhound
29.01.2016 11:24На месте автора, я бы изучил тему обратного клапана для вентиляции. Это куда более правильный способ вентилирования помещения.
Vasilii_B2
29.01.2016 13:44Я не делал систему вентиляции, и я сомневаюсь что сам по себе обратный кланпан для вентиляции решит проблему вентиляции!
Sleuthhound
29.01.2016 14:45Открытое окно — это тоже вентиляция, только естественная и не самая лучшая, хотя бы в плане того, что если у Вас в комнате взрослые люди или еще того хуже дети, то из-за потока холодного воздуха их может продуть, да и в помещении с открытым окном банально становится холодно + в открытое окно может прилететь все что угодно. Вариант с обратным клапаном + простой вентилятор позволяет контролировать процесс проветривания, хотя в чистом виде это не спасает от сквозняка, для этого нужно ставить еще фильтр, который как раз спасет комнату от попадание частиц пыли, насекомых, пуха и прочего мусора, для 1-3 этажа это очень актуально.
Знакомые поставили у себя над батареей вот такую штуку, вроде остались очень довольны, никаких сквозняков, шуму и насекомых + её можно автоматизировать с минимальными переделками.Vasilii_B2
29.01.2016 20:53Давайте не путать вентиляция и систему вентиляции, сомневаюсь что можно контролировать без какой либо автоматики вентиляцию помещения с помощью «обратного клапана + простой вентилятор». Я не сколько не возражаю если вы в своем проекте будете применять обратный клапан с вентилятором, мне этот вариант не подходит.
onupirat
30.01.2016 20:10Открыть окно лень, а разработать такую штуку нет?
vlivyur
30.01.2016 23:55+1Так такую штуку раз разработал и потом можно не работать. А без неё постоянно придётся бегать окно открывать-закрывать.
Vasilii_B2
02.02.2016 13:23Разрабатывалась эта штука естественно не потому что просто лень открывать окно, иногда нет возможности открывать окно — ночью когда спишь или ушел на работу, система сама будет это делать контролируя время и температуру проветривания, не создавая постоянных сквозняков.
alexpp
Монументально! Кстати, вы можете добавить в корпус датчик СО2, и проветривать не только при повышении температуры, но и при превышении нормальных показателей углекислого газа. Это будет даже полезнее.
arefinden
и кнопку форсированного проветривания: ткнул, окно на распашку и минимальная температура чуть ниже, чем когда внутри комнаты кто-то есть(градусов 16-18), после чего окно закрыть
radyno
У меня была мысль сделать похожую штуку. Но я планировал ее разделить на две части — сначала регистрировать температуру/влажность/еще что-нибудь и каждые полчаса опрашивать сеня — комфортно ли мне. На основании полученных данных определить комфортные показатели, а потом уже реализовывать открывание окна так, чтобы обеспечить эти самые комфортные показатели. Но до реализации так и не добрался.
Vasilii_B2
В своем случае придерживался одного важного совета «не ставь перед собой сразу больших целей — нужны маленькие победы они не дадут песиимизму развиваться»
AllexIn
Неа, нельзя вешать на датчик СО2.
Окно будет постоянно туда сюда болтаться.
Сам собираю вентиляцию, вентиляция включается при достижении 800ppa и отключается при 750.
В итоге Период включено->выключено всего около 15 минут. В сулчае с окном будет тоже самое — оно будет открываться/закрываться каждые 15 минут. Что не приемлемо с механической точки зрения.
То есть, если ориентироваться на СО2 — надо другую систему делать.
blind_oracle
Гистерезис увеличить ещё больше может?
AllexIn
К сожеланию бессмысленно. Выше 800 — уже считается не комфортная для существования зона.
А ниже 750 проветривать тяжело и бессмысленно.
Дело в том, что зависимость нелинейная и если для проветривания с 800 до 750 требуется 10-15 минут, то с 750 до 700 уже 30 минут. При этом «надышевается» обратно очень быстро, может пару-тройку минут выиграете.
lorc
так может у вас просто большие проблемы с вентиляцией в доме? Окно — это хорошо, но должна быть и естественная вентиляция через «естественные щели».
AllexIn
Естественно я борюсь по возможности с «естественными щелями». Поэтому активную вентиляцию и сделали. :)
Neck
Тут суть в том что нужно управлять не окном, а потоком поступающего воздуха. Если открывать окно, то поток слишком большой. Конечно проветрится за более короткое время, если ранее не проветривать вообще. Но если поддерживать режим, то конечно это энергетически не выгодно.
Можно, например, просверлить в раме вентиляционные отверстия и открывать их по одному, регулируя тем самым поток поступающего воздуха. Или вообще сделать отверстие длинным и сплошным и к нему сдвижную заслонку, со штифтом на винтовой передаче, управляемый шаговым двигателем. Если уровень CO2 увеличивается, открыть заслонку больше, если уменьшается закрыть чуть меньше, все ближе и ближе к баллансному одному положению для такого количества людей в комнате. Меньшие изменения — более тонкая настройка.
Пределом может служить пропускная способность вент каналов в кухне и ванной. Но для этого нужно принимать во внимание щели под межкомнатными дверями и вентиляционные отверстия в двери в ванную и кухню (которых у многих вообще нет).
proudmore
Относительно нормальные датчики CO2, c которых можно получить количество ppm, к сожалению, даже в китае стоят от 2.5 тысяч. В принципе, можно и купить, но я б не стал, пожалуй. Хотя зарплату повыше, и купил бы)