Я работаю программистом, пишу всякие сервисы и фичи для наших продаванов и не только. Но у меня есть одна особенность - иногда чешутся руки.
Мы работаем с системой SalesForce и у них есть красивое лого.
Идея пришла сразу:
* Это же лого больше и в объеме
* Светодиоды по бокам для индикации
* Управление через телегам и слак бота
* Индикация состояния системы. Например: зеленый - всё хорошо, красный - всё плохо, желтый - что-то работает
* Свистелки, перделки
Чтобы висело это великолепие и вдохновляло коллег.
Сразу скажу, всё сделать не удалось, но фундамент для расширения заложен.
Материалы:
* Для основы взял пенокартон. Он очень легкий, но отлично держит форму.
* Несколько метров адресных светодиодов
* Пара листов матового пластика для рассеивания света
* Клей для пенокартона
* Ардуина на базе ESP3866 (NodeMCU) с Wi-Fi на борту
* Повышающий стабилизатор напряжения DC-DC 5V
* Макетная плата, провода, телефонные коннекторы
* Акриловая краска и коллеры
Инженерная часть:
Начать решил по правильному - с чертежа. Взял лого и обвёл в вектор в Fusion360. Идея была как можно меньше заниматься резкой руками особенно фигурной. Округлые формы мне всегда давались плохо, даже на бумаге.
Небольшой скетч я экспортировал и отдал в контору которая занимается резкой материала на проттере. На выходе получились вот такие заготовки.
Красил я всё несколько раз и в разных состояниях, так что про покраску позже.
Заготовки я склеил между собой 3мя стойками из 3х рулонов уплотнителей для окон. Клеил на клей для пенокартона.
Далее нужно было сделать основание для светодиодов по всей длине облака. Я вырезал полосу пенокартона нужной длины и ширины. Затем сделал продольные прорези, чтобы прорезать первый слой картона. Эта заготовка отлично гнётся и держит форму. Такие полосы проклеил по периметру облачка. Стягивал всё малярным скотчем.
Экспериментально выбрал глубину при которой свет от светодиодов рассеивается достаточно чтобы не было видно отдельных светодиодов, но не тускнел. Этого оказалось не достаточно, и надо либо делать глубже, либо класть лист бумаги прямо на светодиодную ленту.
Затем приклеил адресные светодиоды к основанию на заводское клейкое основание
Получилось 3 ряда по 73 шутки. Пропаял контакты и на конце вывел 3 информационных провода в телефонные коннекторы.
Несколько раз уже пользовался такими коннекторами. Очень удобно если нужно отсоединять провода.
Теперь начал обклеивать матовым пластиком по периметру и как финишное покрытие плоскостей. Сначала думал обойтись малярным скотчем или бумагой, но смотрелось очень плохо.
Пластик нашел в магазине для художников, оказался очень классный. Легко режется, рассеивает свет и выглядит красиво.
Так же всё стягивал малярным скотчем.
Маленький лакхак. Так как я подозреваю, что возможно в будущем Ардуина может быть заменена на RasberryPI да и просто для доступа к управляющей плате, я на самом верху оставил отверстие в пластике. Оно закрывается крышкой из такого же пластика на магнитах.
После сборки самого облачка занялся изготовлением управляющей платы. Получилось не ахти как, но работает. Опыта было получено просто космос. В следующий раз будет лучше, даже прикупил по этому поводу супер паяльник.
Ардуина и светодиодные ленты питаются от одного блока питания 5V для телефона по USB. Перед ардуиной по питанию поставил повышающий стабилизатор. Иначе светодиодные ленты, при включении ярких цветов, просаживают напряжение при котором ардуина выключается (понял я это не сразу). Ну и немножко горячего клея, чтобы работало это всё лучше.
Ну и покраска. Как только все склеилось и подклеилось несколько раз, обклеил белый пластик малярным скотчем и мягким валиком покрасил в цвет боковины облачка. Цвет подбирал на глаз, вроде получилось похоже. Использовал акриловую краску и голубой коллер. Идеально было бы отколлеровать в цвет по HEX коду, но я не нашел где это сделать на таком маленьком объеме.
Программная часть:
Сильно углубляться в код не буду. Сразу для себя решил, что это будет С++, хоть это не мой профиль. Нравится мне иногда испытывать себя. Работал в PlatformIO
Что умеет облако:
* Подключаться по Wi-Fi и ждать команды из телеграмм бота. Обновление запрашивается раз в полсекунды API запросом.
* Разбирать команды и исполнять их: /start /held - присылает доступные команды. /led работа со светодиодными лентами: включить/выключить цвет, запустить радугу. /status возвращает статус системы и IP адрес для обновления
* Обновляться по воздуху. Для обновления прошивки нет необходимости снимать облако и доставать управляющую плату. Достаточно быть в одной сети.
* При обновлении показывается статус обновления заполнением зеленым светом на желтом фоне
* Нет утечек памяти
Использовал стандартные библиотеки ESP3866, FastLED для работы с светодиодными лентами, UniversalTelgramBot для работы с ботом, SimpleCLI для разбора команд ну и парочка самописных обвязок.
К сожалению сделать всё не удалось, так как проект стал затягиваться и занимать место дома. Решил, что добью до рабочего состояния, а обновлять буду по мере желания.
Ну и в финале небольшое видео работы в режиме радуги
В ближайшее время отвезу в офис и повешу над местом где сидит (сидела) наша команда, надеюсь это поможет кому ни будь найти вдохновение. А у меня опять чешутся руки...