Сделал погодную станцию из читалки. Паяльник даже не включал
У меня лежала без дела электронная книга. Исправная, с хорошим экраном, но большую часть времени просто занимала место. Выбрасывать её незачем, продавать тоже не хотелось: в отпуске или в дороге она ещё пригодится. Захотелось придумать ей какое-нибудь занятие на оставшееся время.
В интернете таких проектов хватает: из старых читалок делают часы, календари, погодные станции и домашние информационные панели. Стал смотреть, как это устроено, и во многих интересных переделках обнаружил примерно один путь: разобрать книгу, достать экран, подобрать к нему контроллер и подключить к другой плате.
С пайкой у меня проблем нет, но здесь сам подход показался странным. Читалка ведь уже представляет собой работающий компьютер: у неё есть процессор, Wi-Fi, питание, корпус и подключённый экран. Зачем выламывать из одного компьютера дисплей, чтобы подключать его к другому и заново собирать всё остальное? Если книга исправна, хотелось сначала попробовать обойтись тем, что в ней уже есть.
В моей был браузер. Отсюда и возникла идея: пусть открывает страницу и показывает на ней часы с погодой. А раз уж делать свой вариант, то с шахматами и поэтессами — календарём, новостями и всем остальным, что захочется добавить на экран. Так постепенно получился EINKTIME — полностью бесплатный проект для превращения читалки в настольную информационную панель.
Что можно поручить книжному браузеру
Начал с часов и погоды. Для такого экрана E-Ink подходит хорошо: цифры читаются при дневном свете, без подсветки ничего не светит в лицо, изображение больше похоже на печатную страницу. Поставил книгу на подставку — время и прогноз видны с рабочего места. Понадобилась для чтения — закрыл страницу и взял с собой. Корпус целый, внутри всё осталось на своих местах.
Но браузеры у читалок бывают довольно своеобразные. Интерфейс, который спокойно работает на телефоне, на книге может отображаться криво или вообще не запуститься. Поэтому я перенёс сборку изображения за пределы устройства: читалка получает уже готовую картинку и периодически её обновляет. Часы, календарь, графики и надписи нарисованы заранее, книжному браузеру остаётся показать результат.
Для передачи используется статичный GIF. Настраиваются число оттенков и разбиение изображения на части: некоторые старые браузеры небольшие файлы загружают надёжнее одного большого. Для самой страницы предусмотрен и простой HTML-вариант. На совместимости пришлось задержаться дольше, чем на первых часах с погодой.
Погода берётся из Open-Meteo для выбранного города. Это прогноз и метеоданные, собственных датчиков у книги от этого не появляется. Если нужна температура в комнате, её можно получить из внешнего источника, например из Home Assistant.
Как собрать свой экран: от отдельных информеров до готового виджета.
Как из погоды получился конструктор
На книжном экране после часов и температуры оставалось немало места. Добавил календарь, затем новости, курсы валют и заметки. Быстро стало понятно, что один макет на всех не подойдёт: кому-то нужны часы на весь экран, кому-то расписание рядом с погодой, а кому-то вообще показатели домашнего сервера. Вместо набора отдельных страниц сделал редактор.
Экран делится на зоны, которые можно объединять и заполнять информерами. У каждого блока настраиваются шрифты, размеры, выравнивание, отступы, фон и рамки. Результат виден в предпросмотре. Размер и поворот задаются под конкретную книгу, город, часовой пояс и форматы данных — в региональных настройках.
Город для погоды, базовая валюта, единицы измерения и первый день недели задаются в общих настройках.
Сейчас в редакторе 25 типов информеров. Перечислю их по задачам, потому что за названиями не всегда понятно, зачем всё это может понадобиться.
Для обычного домашнего экрана есть цифровые и аналоговые часы, календарь, ежедневник с ручными событиями или подключением iCal, прогноз погоды и обратный отсчёт до выбранной даты. Можно собрать расписание на неделю, оставить рядом напоминание и видеть, сколько дней осталось до поездки. Погоду можно вывести компактной строкой или отдать ей весь экран с крупными значками и подробностями.
Для новостей и чтения — RSS, текстовые заметки и карточки с текстом и изображением из внешнего источника. Получается, например, утренний экран: время, погода и несколько заголовков из выбранной ленты. Для фотографий, иллюстраций и логотипов есть отдельный блок изображения, а для ссылки, которую удобно открыть с телефона, — QR-код.
Для финансов — курсы валют, криптовалюты и графики. Базовую валюту выбираете сами; она также подбирается по региону при регистрации. Историю валютного курса можно показать без своего сервера: для этого графика есть источник данных Банка России. Если данные у вас свои, можно передавать JSON и строить линии, столбики, области, круговые и кольцевые диаграммы.
Для работы сделал оперативную панель: один важный показатель крупно, несколько вторичных рядом и график за семь дней. Например, необработанные заказы, очередь обращений или остатки товара. Данные приходят по URL в JSON, поддерживается Bearer-токен. Размер подписей и чисел настраивается отдельно, чтобы значение действительно можно было прочитать издалека.
Для тех, кто следит за техникой, есть монитор доступности. Задаёте адрес, строку, которая должна присутствовать в ответе, и интервал проверки от минуты. Пока строка на месте — всё в порядке, исчезла — авария. Для состояния оборудования можно использовать светофор с двумя или тремя секциями, шкалу прибора или графический термометр. Есть блоки для качества воздуха, энергопотребления и данных Home Assistant.
Для коротких сообщений — уведомления со значком и текстом: посылка приехала, задача выполнена, пора что-то проверить. Расположение значка и надписи меняется, данные можно получать со своего сайта. Форматы внешних данных с примерами описаны прямо в редакторе соответствующего информера.
Шрифтов тоже несколько разных семейств: книжные, моноширинные, рукописные, узкие и сегментные, под ЖК-индикатор. Можно включить случайный выбор и подпись названия, если хочется посмотреть, какой лучше подходит к своему макету.
Готовые макеты тоже есть
Собирать экран с нуля необязательно. Готовую композицию можно сохранить как виджет, а затем применить к другой книге с подгонкой под её размеры. После применения получается отдельная копия: можно поменять информеры и оформление, не затрагивая оригинал.
Для начала я собрал двадцать композиций под разные задачи. Есть «Тихое утро» с часами и погодой, «Книжный уголок», «Финансовый день», «Бухгалтерский контроль», «Инфраструктура под контролем» и «Инженерная смена». Есть отдельные варианты с курсами валют и графиками. Посмотреть их можно в открытом каталоге без регистрации.
Свои варианты может предложить в каталог любой пользователь. Перед публикацией макеты проходят автоматическую модерацию, очередь проверяется раз в час. Названия, описания и текстовые подписи переводятся на семь языков. Если хочется показывать несколько композиций, их можно отметить в списке и включить смену по порядку или случайно с нужным интервалом в минутах.
Почему проект бесплатный и где всё это работает
Если каждую минуту рисовать и отдавать изображения для всех книг с одного сервера, рост числа пользователей быстро станет моей проблемой. Поэтому постоянную работу экранов я вынес в аккаунты Cloudflare самих пользователей.
На EINKTIME остаются редактор, аккаунты, каталог и сохранение настроек. А в Cloudflare Workers разворачивается приложение, которое получает погоду и RSS, собирает изображение и отдаёт его книге. При обычной работе экран обращается туда напрямую. Мой сервер участвует, когда вы настраиваете макет, но не обслуживает каждое обновление часов.
Настройка: браузер → EINKTIME → ваш Cloudflare.
Работа экрана: читалка ↔ ваш Cloudflare ↔ источники данных.
Для пользователя установка запускается в один клик из кабинета EINKTIME: нужно войти в свой аккаунт Cloudflare и подтвердить подключение, дальше приложение разворачивается автоматически. Копировать код, выпускать API-токены вручную или арендовать сервер не требуется. Если книг несколько, подключение Cloudflare одно, а у каждого экрана свои адрес, макет и настройки.
Используется бесплатный тариф Workers с его лимитами. Так нагрузка от экранов распределяется между аккаунтами владельцев, а мне не нужно оплачивать общий поток изображений. Это и позволяет оставить проект полностью бесплатным.
Кроме того, работу экранов обслуживает инфраструктура Cloudflare, а не один мой сервер. Для такой задачи это хороший запас надёжности. Конечно, доступ к самому Cloudflare из своей сети стоит проверить заранее: если провайдер мешает загружать изображения, настройки читалки этого не исправят.
Адрес экрана открывается без авторизации, поскольку его должен читать книжный браузер. Учитывайте это при выборе данных: закрытые рабочие календари и секретную информацию на такой экран выводить не стоит.
Что проверить на своей читалке
Главное практическое ограничение — засыпание. Для постоянного экрана нужно, чтобы книга могла оставаться включённой, сохраняла Wi-Fi и продолжала обновлять страницу. Подключённый кабель сам по себе этого не гарантирует: некоторые прошивки всё равно отправляют устройство спать.
С E-Ink это легко пропустить: изображение остаётся на месте даже после засыпания. Поэтому проверять нужно по изменению времени, оставив страницу работать дольше обычного таймера сна. Инструкции по моделям и настройкам собираю на отдельной странице; все существующие читалки я, разумеется, не проверял.
Я использую этот вариант как стационарный: книга стоит на подставке с подключённым питанием. На телефоне проект тоже работает, но затевался он именно ради E-Ink. Если подходящей книги дома нет, на Авито их хватает. Перед покупкой под эту задачу стоит проверить конкретную модель: браузер, Wi-Fi, загрузку страницы и возможность отключить сон.
Где попробовать
Проект находится на einktime.com. Можно сначала посмотреть готовые виджеты, затем зарегистрироваться, собрать свой экран и подключить Cloudflare.
У меня в результате получилось именно то, с чего я начинал: книга перестала лежать без дела, при этом осталась пригодной для чтения. Если попробуете на своей, напишите модель, прошивку и как решили вопрос со сном. Это поможет собрать нормальный список совместимости, а не гадать по наличию браузера в характеристиках.


























































































































