Давно подмывало написать статью. Вуаля.
Я не помню как я стал завсягдатаем хабра, но сколько читал всегда для меня выделялась одна тема — умный дом (и сопутствующая автоматизация которая до «умной» не дотягивала). Итак, пол года я читал хабр пока не наткнулся в одной из статей о умном доме на мысль о том, что умный дом надо начинать проектировать до того как делать в своем жилье ремонт. Эта мысль мне показалась здравой. В добавок, я молодой IT-специалист и жилья своего не имею, но надеюсь что это временно.
Пока я думал о полноценных умных домах, системах принятия решений, датчиках и диммерах по всему пространству время шло, пока однажды я не наткнулся на статью о управляемых жалюзи на arduino. Сейчас в меня полетят камни от тех кто не любит ардуино, но я в ответ замечу что:
И вот я решил начать и для начала нужно было заиметь собственно arduino. Мой взгляд пал на arduino uno rev3(такой себе компромисс функционала и скупости), а так как выбирать периферию мне было лень/некогда/не знал что необходимо (нужное подчеркнуть), то я заказал на ebay у китайцев набор с длинным списком нужного и не очень. Для начала решил поиграться и запустить стандартные скетчи. Инфракрасный пульт дистанционного управления, сервопривод, шаговый двигатель, разнообразное мигание диодами и LCD 16х2, на все это ушло несколько часов и вдоволь наигравшись я стал думать как из этого слепить первого предка умного дома.
Наверное стоит тут обрисовать что за функционал я закладывал на этом этапе:
В наборе было все для реализации вышеуказанных задач. Жалюзи было решено повесить на сервопривод (SG-90) прикрепив к оси жалюзи непосредственно, благо угол поворота сервопривода аккурат около 180 градусов. Пульт и инфракрасный приемник были в наборе, ручное управление через потенциометр. Фоторезистор, термодатчик (LM35), пачка резисторов и модуль реле — все в наборе. Часы и будильник чисто программные решения.
Пол для ушло на вычитывание гайдов и даташитов, сборки на макетке и написание скетчей на коленке. К сожалению фотографий того вороха проводов на макетной плате у меня нет ведь статья изначально не сама цель, а пишу я потому что наверняка кому то пригодится, а кто то и мне совет даст.
Тогда пришло желание это все аккуратно собрать и скомпоновать. Начался новый виток проектирования. Вычитывая гайды и статьи было решено сделать что то на подобии своего шилдика. Кроме того в процессе сбора первого варианта обнаружилось что память «ардуньи» быстро кончается, а функционал еще не полон. Тогда я пересмотрел свои взгляды и остановился где-то на таком:
Кроме того я долго думал над проблемой дисплея. Для его функционирования напрямую нужно минимум 6 пинов, для arduino uno это роскошь. Эксперименты со сдвиговыми регистрами типа 595 серии подтолкнули что найти адекватную библиотеку для него это не тривиальная задача, а плясать с бубном очень не хотелось. В дополнение 3 цифровых пина тоже жалко, особенно когда можно использовать 2 аналоговых. Я нашел решение в виде I2C шины и ее расширителя PCF8574. Библиотека завелась с пол пинка и я остановился на этом решении.
О том как я проектировал плату, паял первый «не успех» со сдвиговыми регистрами 595 серии на макетной плате, травил, паял и программировал я напишу в следующей статье. Конечно, это все при условии что эта статья будет кому-то интересна.
Я не помню как я стал завсягдатаем хабра, но сколько читал всегда для меня выделялась одна тема — умный дом (и сопутствующая автоматизация которая до «умной» не дотягивала). Итак, пол года я читал хабр пока не наткнулся в одной из статей о умном доме на мысль о том, что умный дом надо начинать проектировать до того как делать в своем жилье ремонт. Эта мысль мне показалась здравой. В добавок, я молодой IT-специалист и жилья своего не имею, но надеюсь что это временно.
Пока я думал о полноценных умных домах, системах принятия решений, датчиках и диммерах по всему пространству время шло, пока однажды я не наткнулся на статью о управляемых жалюзи на arduino. Сейчас в меня полетят камни от тех кто не любит ардуино, но я в ответ замечу что:
- умный дом это система «действий», а не вычислений, компьютер для такой задачи избыточное решение, arduino для такой задачи минимальное решение(хотя я приближаюсь к решению что все же несколько ниже минимального);
- «главное начать». если думать о чем то великом, но не делать даже малого, то результата не будет и опять таки arduino тут не худший вариант для старта;
- то что говорят в каждой статье об arduino «бла бла бла arduino очень прост бла бла бла». суть в том что действительно порог вхождения ну очень низок, хотя этот пункт я добавил скорее для количества и для того что бы начать мне хватило и первых двух.
И вот я решил начать и для начала нужно было заиметь собственно arduino. Мой взгляд пал на arduino uno rev3(такой себе компромисс функционала и скупости), а так как выбирать периферию мне было лень/некогда/не знал что необходимо (нужное подчеркнуть), то я заказал на ebay у китайцев набор с длинным списком нужного и не очень. Для начала решил поиграться и запустить стандартные скетчи. Инфракрасный пульт дистанционного управления, сервопривод, шаговый двигатель, разнообразное мигание диодами и LCD 16х2, на все это ушло несколько часов и вдоволь наигравшись я стал думать как из этого слепить первого предка умного дома.
Наверное стоит тут обрисовать что за функционал я закладывал на этом этапе:
- управление жалюзи(первая автоматизация)
- управление через пульт дистанционного управления(почему нет? удобно же)
- ручная регуляция (вот сядут батарейки и что тогда делать?)
- датчик освещенности (для автоподстройки в течении дня)
- часы (для авторегулирования в зависимости от времени суток)
- будильник (раз есть часы то почему бы не сделать будильник?)
- реле на 220В (опять ссылка на будильник; в теории при срабатывании должны открыться жалюзи, включиться свет и зазвенеть будильник)
- термодатчик (просто он был в наборе и контролировать температуру всегда полезно)
В наборе было все для реализации вышеуказанных задач. Жалюзи было решено повесить на сервопривод (SG-90) прикрепив к оси жалюзи непосредственно, благо угол поворота сервопривода аккурат около 180 градусов. Пульт и инфракрасный приемник были в наборе, ручное управление через потенциометр. Фоторезистор, термодатчик (LM35), пачка резисторов и модуль реле — все в наборе. Часы и будильник чисто программные решения.
Пол для ушло на вычитывание гайдов и даташитов, сборки на макетке и написание скетчей на коленке. К сожалению фотографий того вороха проводов на макетной плате у меня нет ведь статья изначально не сама цель, а пишу я потому что наверняка кому то пригодится, а кто то и мне совет даст.
Тогда пришло желание это все аккуратно собрать и скомпоновать. Начался новый виток проектирования. Вычитывая гайды и статьи было решено сделать что то на подобии своего шилдика. Кроме того в процессе сбора первого варианта обнаружилось что память «ардуньи» быстро кончается, а функционал еще не полон. Тогда я пересмотрел свои взгляды и остановился где-то на таком:
- концепция решения — плата(шилд)не значительно выступающая за размеры arduino uno, элементы и разъемы на ней, устройства — подключаются отдельно шлейфами;
- проблема памяти — памяти не хватает, а желание нарастить функционал только росло, решено было вынести часы из программной в аппаратную область (DS1307|DS1302);
- решено нарастить функционал за счет модуля голосового управления и инфракрасного приемника(об этом позже).
Кроме того я долго думал над проблемой дисплея. Для его функционирования напрямую нужно минимум 6 пинов, для arduino uno это роскошь. Эксперименты со сдвиговыми регистрами типа 595 серии подтолкнули что найти адекватную библиотеку для него это не тривиальная задача, а плясать с бубном очень не хотелось. В дополнение 3 цифровых пина тоже жалко, особенно когда можно использовать 2 аналоговых. Я нашел решение в виде I2C шины и ее расширителя PCF8574. Библиотека завелась с пол пинка и я остановился на этом решении.
О том как я проектировал плату, паял первый «не успех» со сдвиговыми регистрами 595 серии на макетной плате, травил, паял и программировал я напишу в следующей статье. Конечно, это все при условии что эта статья будет кому-то интересна.