Pet-проекты — маленькая жизнь

okm6sa9coc-jnjb1_zzt8f2nny4.jpeg

Я увлеченный человек. ИТ, несомненно, является основным увлечением. Но параллельно у меня появляются другие. Домашние животные, квартира, стройка. Везде я пытаюсь что-то заоверхедить. Одним из таких оверхедов стала разработка LED светильников для аквариума.

Казалось бы — что такого можно тут сотворить? Лампа лампой. Я тоже так думал. Но, как всегда, все гораздо сложнее, если мы этого захотим.
Я завел себе морской аквариум. Это очень важное замечание, т.к. с пресноводным его сравнивать совершенно невозможно. Основной фокус в морском аквариуме бросается на кораллы. Как вы думаете что это?

u8rhawbsajgs8lzvi7llpj1dbbs.png

Цветочки? А вот и нет. Это мягкий коралл. Простые мореманы называют его ксюхой (xenia pulse). Он примечателен тем, что пульсирует. Его розовые лапки сжимаются и разжимаются. Это потрясающее зрелище — целые поля пульсирующих кораллов! Стоимость таких кораллов не велика и иногда их даже отдают даром. Но в среднем, нужно готовить от 300р до 1000р за коралл.

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

Другой класс кораллов это LPS- крупнополипные жесткие кораллы. Их отличает от мягких наличие скелета.

06zoodhnaw5cq1i9ao-pr9nyq2a.png

Слева можно обнаружить тот самый оголившийся скелет. Цена такой прелести начинается от 10$ за полип. Т.е. вот то, что вы видите на картинке стоит… ну… где-то 500$.

Содержание этих кораллов уже другая история. Для них важны параметры воды и света. Знаете что нужно иметь, чтобы позволить себе такую красоту? Вот это:

lm_sjjchlmfxk8fcrz7arkp3ota.png

Это — САМП. Я не в курсе почему он так называется. Наверное как-то расшифровывается. Но для техномана это прям… то, что нужно.

Замыкает тройку — SPS. Мелкополипный жесткий коралл.

6jttrhxuuiauaiqint3ezt27t4c.png

Если фото с САМПом вам показалось страшноватым, то чтобы содержать таких малышек, нужно иметь (по-хорошему) отдельную комнату с оборудованием. Что-то типа этого:

l3uds3cltjgo6drcscjrqtg8hky.png

Цена таких пипсиков (фраг кораллов примерно 5×5х5 см) может легко начинаться от 500$.

Несомненно, все что на фото САМПа, очень интересно сделать самому. Раздолье для оверхеда и DIY. Но есть другой раздел содержания морского аквариума — свет.

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

В аквариуме вы можете встретить «солянку» из разных типов кораллов (мягкие, LPS, SPS). В природе они друг-друга даже не встречают. Живут в различных условиях и освещаются «разным солнцем».

Чем глубже кораллы живут, тем меньше к ним попадает «красной части спектра» из солнечного света и больше «синей». Это связано с естественной фильтрацией света морской водой. А вот светильник должен угодить всем. Если свет кораллам не нравится — они умрут. Или будут сильно страдать.

Второй важной функцией являются визуальные эффекты светильника. Они в целом имеют положительный эффект и на кораллы, но предназначены скорее для наблюдателя. Самые распространенные из них — закаты и рассветы.

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

Простора для фантазии ИТшника просто масса! И лунные циклы, и имитация погодных явлений, и освещение по настроению. «Темная тема», как не смешно, тоже нужна. Представьте, стоит у вас аквариум рядом с телевизором, а вы захотели посмотреть кино с семьей. Бац. И аквариум перешел в минимальное освещение.

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

Целью было создать самый простой и дешевый контроллер. Чип ESP8266 смотрелся тогда невероятно привлекательным по всем параметрам за исключением одного — у него не было достаточного количества ног для управления каналами светильника. Ах, да…

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

Вот для управления этими каналами чипу нужно по одной ноге на канал. А еще, немаловажным является параметры ШИМ на этих ногах. Если очень просто, то это частота мерцания. Вы можете встретить эту характеристику даже на обычных диодных лампах. Чем она выше, тем лучше.

В общем, одного чипа ESP8266 мне не хватило. Потратив немного времени я нашел еще один интересный чип — PCA9685. Осталось дело за малым — часы реального времени. Уж, этого добра полно на ардуино. Я взял DS3231.

В куче это стало выглядеть так:
a7iz8nbs3yw_pliufbvhuimt6ti.png

Вперед! К свершениям! — Подумал я, и сел за Arduino IDE. Быстро выяснилась еще деталь — поставляемая SDK на этот чип занимает практически все его ресурсы. Что-то запилить было конечно возможно, но что-то нормальное — нет.

Но цель-то была в оверхеде! Не долго думая, я объявил сее устройство IoT вещью и запилил к нему облако. На joomla!… И не надо так смеяться. Да, даже тогда я знал, что это не лучшее решение для облаков. Но это готовая CMS. Завоевывать мир я не собирался, а как налабать пару плагинов к ней — знал.

Нужно добавить, что на профильном форуме, как водится, меня конечно «поддержали». Сказали, что «верят в меня». Особенно товарищи, которые пытались родить подобное уже года три.

Через месяц я выкатил облако с прекрасным, замечательным UI, который подарил всему человечеству (кто сможет его реализовать) мой хороший друг. Ах жаль, что я не могу давать ссылки тут на подобные проекты.

jonic1arpocpgyweq2tij-8-hqm.png

И так, что я затащил:

  • Визуализацию спектра и в 2D и в 3D;
  • Трансляцию светового дня с любой точки мира;
  • Отображение в реальном времени значений датчиков;
  • Уведомление о выходе за предельные значения датчиков (для этого впилил тогда очень модные и неизведанные (ServiceWorkers);
  • Сделал элементы социалки (спектрами можно было делиться).

Но эпическим оверхедом стала инфраструктура. Тут нужно пояснить как работало облако с IoT.

Все тяжелые преобразования проводились в облаке. Трансляции по крону запускали пересчет программ для контроллеров. Контроллер же раз в минуту ходил GET запросом и получал очередную, актуализированную программу. Она была очень проста, что позволяло ее без проблем выполнять на ESP8266.

Так вот, чтобы вся эта «идиллия» не рухнула одномоментно, из-за недоступности моего облака, я сделал резервную площадку у независимого хостера. Мне даже «ума» хватило посмотреть как бы мне АС (автономную систему IP адресов) себе получить. Хорошо, что разум над умом восторжествовал.

Конечно, я прикрутил CloudFlare и настроил политику кэширования программ для контроллеров. Это позволило сократить обращения на бэкенд раз в 100. Короче… развернутая инфраструктура была готова к высоким нагрузкам! Тогда облаком пользовалось 9 человек. Но доступность… за 4 года облако так и не упало ни разу.

Читатель, я просто напомню, что речь сейчас идет про светильник. Для аквариума. А точнее про контроллер от него.

Наверное, тут стоило бы свое расчесанное ЧСЗ помазать детским кремом и лечь спать, но… мне этого показалось мало. Я решил сделать физический контроллер. И родилось это…

fhshax6vkl_cbn3gggw_jqbhqu8.png

До этого я никогда не держал паяльник в руках. Кстати, это мой первый контроллер, на который я сам монтировал всю комплектуху. Фенчиком. А потом заботливо поливал лачком plastic. Ммм… лапа моя! Горжусь тобой! (это я контроллеру)

И тут… у меня появился друг — электронщик. Это было просто счастье какое-то! Он оказался таким же увлеченным человеком. Только в сфере электроники. На пару мы начали штамповать разные «очень нужные» устройства.

Вместе мы выпустили первый «взрослый» контроллер, который на борту имел MCU. ESP умела его прошивать. Что позволяло по облаку отдавать обновления.

olinne6pvzwdx8judj-s7pldzfw.png

И тут, наконец я собрал свой светильник. Да, да… все это время над моим аквариумом висело нечто убогое из радиатора и каких-то матриц, которое включалось по механическому, китайскому таймеру. К сожалению, фото не сохранились. Но напоминало это скорее куча хлама, лежащего на аквариуме.

Как вы думаете, каким стал мой новый светильник?

fe1qlsvcu-umr9qm9xwvnyxqt48.jpeg

7bsig9fyfm-ovo97c5if_w19fgy.jpeg

Это именно то, о чем вы могли подумать. Это СВО (водянка). Именно так, не много и не мало, я решил скомпоновать свой светильник. Надо отметить, что он работает до сих пор.

Когда все было сделано, все оверхеды достигнуты, мы с другом задались вопросом —, а что теперь? Все дело в том, что аквариумисты из нас получились такие себе… пока мы ваяли все эти супер-крутые железки, наши аквариумы превратились в болото. И мы решили замутить бизнес. Т.е., вот это вот все, что мы наделали — продать.

Не буду развивать тут нытье, но… все, что мы наделали, попросту, никому не нужно оказалось. Обычные аквариумисты, в сущности, оказались простыми людьми. Которые в аквариуме ценят красоту кораллов, поведение рыбок и чтобы все просто работало.

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

dthodhj4k1fqphdpzedmeb0y3se.png

Вот на этом агрегате, который купил мой друг для наших pet-проектов

wulo9lmvvokovzi3gpy9c2bal0e.png

и замутил вот такую мастерскую:

jbng40pjdjyekzr17v-mh3w91ii.png

И пусть мы оказались плохие аквариумисты, но это был очень и очень интересный этап в нашей жизни.

Я узнал очень много нового об океане, о том как и чем живет там флора и фауна. Я узнал о физике света. Много узнал о материалах и их свойствах. Нам удалось пройти очень интересный путь по организации своего полного цикла производства (причем, я в Питере, а друг в Астане). Я узнал что такое IoT, какие там есть технологии. Увидел реального покупателя своего оверхеда и понял, почему бизнес бухтит на нас ИТшников, когда мы хотим что-то сделать, ну, оооооочень классно.

Но самое, самое главное — я получил отличного друга. С которым мы можем на пару сделать все, что захотим. Ради этого, можно было бы и еще раз весь путь пройти.

Ну, а еще, как мелочь, я ушел в WEB. В высоконагруженные системы. И моя ЗП увеличилась раза в три. Но это так… мелочи.

Любите свои pet-проекты!

© Habrahabr.ru