Нужны часы, но много хотелок? Сделай сам!

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

Это мои новые часы сделал сам :)

Предыстория.

Когда я устроился в ИД «Комитет» (а это было в конце лета / начале осени 2020 года), я захотел купить себе часы, которые будут показывать и московское время, и новосибирское время. Искал долго, искал везде.

Критерии поиска были следующие:

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

В общем, губа не дура =D

В итоге немножко остепенился со своими хотелками и взял себе пару часов из ИКЕА, оба белые. На этом я вроде как успокоился — стало удобно сразу видеть и московское, и новосибирское время (не вычитая без конца 4 часа и постоянно ошибаясь).

В темноте вообще не видно ничего

Со временем понял для себя в них недостаток — подсветка включается только при переворачивании, не очень удобно, если надо время посмотреть при слабом освещении.

Хочешь увидеть время - вороти часы

Наступил декабрь. Я как обычно готовился к новому году, закупал подарки, работал, наряжал елку, работал, читал статьи, работал. И тут я наткнулся на одну интересную статью, после которой я загорелся сделать также.

Ламповые часы из статьи

Подумал, закуплюсь материалами на 2 штуки часов, сделаю по аналогии и буду в шоколаде — мои хотелки (не все конечно, но основные) будут удовлетворены. Но что-то пошло не так: )

Меня смутил процесс изготовления плат (да, когда то в универе я этим занимался, но это было еще в прошлом десятилетии, а память уже не та, все таки мне уже 26 лет как никак).

Ну и стал просто читать всякие статьи про часы. И наткнулся на еще одну вдохновляющую статью.

Может показаться, что часы делают только на хабре, но это не так:) Просто привел самые интересные статьи.

Итак, поехали.

Были каникулы, поехал кататься по городу и заодно закупился деталями для проекта.

Собрал, установил операционную систему raspbian (создана специально для малинки) на sd-карту, подключил и начал процесс создания часов.

Установил vscode, для raspbian нужно было выбрать Linux ARM или ARM64 сборку тут. Установил гит, установил node.js (да, часы я решил написать именно на js, привычный мне язык программирования, да и развился он до такой степени, что в умных домах уже обитает).

Не знал вообще с чего начать, поэтому стал пробовать управлять пинами по этой обучалке (пришлось докупить breadboard, светодиоды и резисторы). По незнанию купил сильно мощные (которые большие), их даже не использовал, но может потом заюзаю где-нибудь.

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

Панель состоит из светодиодов SK6812 (по сути это копия светодиодов WS2812, но с отдельным белым светодиодом). Стал искать для нее js-библиотеку. Для своей панели не нашел, но нашел для WS2812. Попробовал ее (результат на фото ниже, логику вывода цифр уже задавал сам).

Настольный вентилятор заюзал для охлаждения малинки

Мне захотелось включить белый светодиод. Стал искать дальше. Перепробовал все эти форки. Белый светодиод не загорался. Решил залезть в дерби си++ =O. За основу взял эту либу, ранее пытался ее использовать, но она при установке не компилировала сишный модуль. Копался в си++ коде, копался неделю, добился того, что все стало компилироваться, светодиоды стали работать, но белый светодиод так и не заработал =(.

В конце концов я подумал, зачем мне для часов белые светодиоды, забил (пока что) на попытки запустить их и принялся делать часы. Делал на двух компах — на малинке и на маке (на маке просто код удобнее писать, да-да, губа не дура =D). На маке писал тесты и ту часть, которая не требовала проверки на светодиодах. Получилось хорошо.

В итоге.

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

Чтобы решить эту проблему, заказал датчик освещенности, сделаю адаптивную яркость:) . Ниже на фото показал, как примерно может изменяться яркость (на третьей фотке она самая максимальная).

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

Перепробовал кучу решений (эти, эти, также утилиты pm2, forever). В некоторых случаях часы запускаются, но не идут. В некоторых случаях показывалось время последней активности малинки. Думал, возможно дело в интернете — из-за того, что он долго подключается при запуске, часы не могут сразу запуститься. Проверил — нет, дело не в нем. Пока что включаю вручную, позже разберусь, в чем дело.

Мое решение не претендует на идеальное, для меня главное, что оно уже работает =) А дальше буду улучшать и добавлять всякие фишки, типа: по кнопке вывести температуру в Новосибирске (кнопки можно увидеть на 5 фотке выше, красные), дату показать или забабахаю игру — змейка, аналог хромовского дракончика, аналог звездолета и т.д., подключив к малинке геймпад, ну и тому подобное. Сделаю еще корпус, чтобы было красиво и удобно: ).

Замерял, сколько памяти съедает программа, за 10 часов работы вроде немного, большее время не замерял.

Если кому-то будет интересно, то исходный код лежит тут, ридми как-нибудь потом напишу. Возможно)).

Еще в процессе создания вспомнил свою курсовую, кому интересно, можете почитать =).

0
48 комментариев
Написать комментарий...
Ol Ka

Данил, часы выглядят чудесно — особенно если учесть тот факт, что это практически DYI.

Но тебя самого разве не беспокоит то, что ты мало того, что так повёрнут на времени (что ты, по твоим же словам, даже одно время буквально переворачивал будильники), но ещё и так пристально следишь за его ходом сразу в двух населённых пунктах? 🙁

Ответить
Развернуть ветку
Большой жёлтый робот

Возможно, это Крис Нолан. У него пунктик на времени

Ответить
Развернуть ветку
Данил Чугаев
Автор

Спасибо))
Не беспокоит)) Для работы мне нужно московское время, т.к. работаю удаленно, следить за двумя часовыми поясами сразу удобно

Ответить
Развернуть ветку
TaijiquanGaoshou

А что есть DYI ?

Ответить
Развернуть ветку
Ol Ka

Do Yourself It 🤭

Ответить
Развернуть ветку
Aleksey Paschenko
Ответить
Развернуть ветку
Ol Ka

Так-то это была самоирония из-за моей слишком явной опечатки 😌

Ответить
Развернуть ветку
Aleksey Paschenko

Не выкупил)) 

Ответить
Развернуть ветку
Robert Slavo

полностью согласен. Это очень круто и кастомно)

Ответить
Развернуть ветку
Evil Pechenka

Ждём следующей итерации.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Ленин-гриб

Кстати, где бы такую штуку купить... 

Ответить
Развернуть ветку
Evil Pechenka

На Aliexpress есть:

Ответить
Развернуть ветку
Anton Chigaev

Данил, ты точно свою фамилию правильно написал? ;-)

Ответить
Развернуть ветку
Данил Чугаев
Автор

Ахах =D точно))

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
vic smirnoff

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Nastia Gorokhova-Alekseeva

А эти не время показывают?)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Павел Исаков

Часы на raspberry?
Да что с тобой не так? 
В следующий раз собери часы на PC...

Ответить
Развернуть ветку
Oleg Zarubin

Лучше кластер использовать. Для надежности.

Ответить
Развернуть ветку
Mihail

Слушайте, node.js для часов...
Бурные аплодисменты 😁
А вообще круто, хабр переехал сюда

Ответить
Развернуть ветку
Topre

Я тоже люблю делать своими руками... но тут я пошел и купил себе divoom pixoo.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Данил Чугаев
Автор

Возможно кому-то тусклые, но время видно))
А когда долго рядом с ними сидишь, понимаешь, что яркость норм, не отвлекает

Вот так выглядит без рассеивания)) глаза выжигает вживую и это при минимальной яркости

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Maxim Syabro

У меня все мысль взять E-ink и собрать бесполезный дашбоард на распберри. Спасибо, пошел гуглить :)

Ответить
Развернуть ветку
Настя Горохова-Алексеева

!! Хочу часы на e-ink, потому что не люблю лампочки светящие в глаз. Но пока все, что видела из экранов, было не самым бюджетным для того чтобы было не жалко попробовать и забить, если не получится:( (баксов 200, кажется)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Артем Баев

На первую полосу, пожалуйста

Ответить
Развернуть ветку
Игорь Алексеев

Зачем rasp когда есть esp8266 c кучей проектов часов + выкачивают погоду по wifi https://www.hackster.io/FilippoOnesti/esp8266-clock-using-max7219-led-matrix-display-b036c7 https://www.youtube.com/watch?app=desktop&v=2I_us9NhIvM

Ответить
Развернуть ветку
Данил Чугаев
Автор

Просто захотелось)) чтоб дорабатывать и добавлять всякое интересное

Ответить
Развернуть ветку
Дюгаева Оксана

Вот что делает желание с упорством)) Красавчик)

Ответить
Развернуть ветку
Павел Исаков

вот что делает отсутствие образования, конструирование всякой дичи.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Алексей Фролов

Во сколько они обошлись?

Почему не стали покупать что-то вроде радио-часов, мастерить небольшую полочку и ставить сверху еще одни?

Ответить
Развернуть ветку
Max Fomenko

Интересно выглядит

Ответить
Развернуть ветку
Николай Кузнецов

Можно же было просто купить два 10" андроидных планшета и поставить Weather Night Doc free. А если взять старые модели с  microHdmi то и подключить к любому монитору. 

Ответить
Развернуть ветку
Данил Чугаев
Автор

Можно, но такое решение не совсем подходит, если хочется дорабатывать и добавлять всякие модули и делать прикольные штуки с ними))

Ответить
Развернуть ветку
Николай Кузнецов

Видел на гугл-маркет программу,которая позволяет свой дизайн часов, поищите. 

Ответить
Развернуть ветку
Илья Попов

Полезная вещь. Если добавить дату тоже будет великолепно.👍

Ответить
Развернуть ветку
Aleksey Paschenko

Данил, если я правильно понял проблему, то надо отдельный модуль часов реального времени с внешним питанием (там всего-то батарейка CR2032). Тогда часы будут идти всегда, даже когда Малина спит или выключена. И тогда вся ее задача сводится к выводу данных модуля на лед. матрицу. 

Либо обновлять время из интернета. 

Ответить
Развернуть ветку
Данил Чугаев
Автор

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

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Данил Чугаев
Автор

Смотря для чего подойдёт)) если заморачиваться и делать подобные часы то нужно подбирать подсветку с адресными диодами, но лучше панель светодиодную взять

Если просто для освещения то подойдёт и можно без контроллера, а просто блок питания купить

В моем случае я использую Raspberry pi model b+

Ответить
Развернуть ветку
Vladlena Chugaeva

Классно!

Ответить
Развернуть ветку
Vladlena Chugaeva

+

Ответить
Развернуть ветку
Vladlena Chugaeva

+

Ответить
Развернуть ветку
Vladlena Chugaeva

+

Ответить
Развернуть ветку
45 комментариев
Раскрывать всегда