Моя матушка страдает амнезией, и примерно два года назад я поставил у неё дома E-Ink дисплей, чтобы упростить ей самостоятельную жизнь. В итоге этот дисплей прекрасно работает по сей день, и я решил поделиться основными моментами его настройки для тех, кому он может пригодиться в похожих ситуациях.
▍ Пациент
В июне 2022 года после длительных хирургических вмешательств у моей мамы в виде побочного эффекта развилась антероградная амнезия: она утратила способность формировать новые долгосрочные воспоминания. Тем не менее память человека — это не просто одна неврологическая система, так что изредка мама какие-то вещи всё же запоминает. Но чаще всего, если она что-то слышит или видит, то через несколько минут уже об этом не помнит.
Для профессиональных медиков состояние моей мамы в некотором роде напоминает деменцию — амнезия относится к типичным симптомам этого расстройства — но по факту деменции у неё нет. Одно из отличий этих заболеваний (насколько я понимаю) в том, что деменция является прогрессирующей, а амнезия стабильной. Излечиться от них нельзя.
Возможно, я как-нибудь напишу о своём опыте ухода за мамой, но пока просто скажу, что такой вид амнезии не пожелаешь и худшему врагу.
▍ Потребности
Моя мама до сих пор живёт одна в своей квартире. И поскольку она ничего толком не запоминает, то каждый день пребывает в лёгкой тревоге по поводу того, где находятся её взрослые дети, и всё ли с ними в порядке. Ей кажется, что она давно ни с кем из нас не общалась. Проявляется эта тревожность в виде очень частых сообщений и звонков.
Бумажные записки и прочие средства напоминания особо не помогали, да и, в любом случае, даже если они не терялись, то очень быстро становились неактуальны.
Раньше мы ей звонили, сообщая, что с нами всё хорошо, но буквально через пять минут она уже снова волновалась. Наша мама не имеет привычки проматывать историю сообщений, поэтому после прочтения очередного она его тут же забывала, как будто и не получала.
Тогда я подумал установить у неё дома какое-нибудь неназойливое, постоянно включённое устройство, которое бы показывало маме заметки, написанные мной и другими родственниками.
▍ Требования
Мне нужно было найти дисплей, который бы:
- Мог бесперебойно работать в течение нескольких месяцев.
- Позволял нам с родственниками легко размещать на нём сообщения, которые будут оставаться видимыми, пока их не заменят.
- Был достаточно большим и читаемым даже без очков.
- Не требовал какого-либо взаимодействия для активации или прочтения заметок, а простое прикосновение к нему не нарушало отображение.
- Был устойчив к сбоям сети.
- Не светил в ночное время.
- Не требовал аппаратных доработок (я больше по программной части).
- Загружал сразу экран с сообщениями (не требуя дополнительно запуска приложения).
- Не был загажен службами подписки или магазином проприетарного ПО.
- Имел адекватную стоимость.
- Не выбивался из общего антуража квартиры.
▍ Устройство
Ориентируясь на все эти требования, я искал E-Ink дисплей, размером с планшет, который бы нёс на борту WiFi-модуль и имел хороший браузер.
Одним из устройств, которое вроде как подходило под мой запрос, оказался
BOOX Note Air2 Series. На тот момент он стоил $500, что довольно дорого, но всё равно дешевле экранов, предназначенных для коммерческого использования. Позиционируется этот планшет как устройство для ведения заметок и чтения электронных книг. Кроме того, он имеет встроенный веб-браузер, а его размер позволяет читать отображённый на дисплее текст с расстояния в пару метров.
Но в сети я не нашёл ответа на очень важный вопрос — сможет ли этот девайс автоматически запускать браузер, открывая заранее заданную стартовую страницу. К счастью, получив заказанный дистанционно Note Air2, я убедился, что он на это вполне способен.
Внешне планшет выглядит весьма приятно и не слишком технологично. Дисплей у него чёткий, хорошо читается и обновляется достаточно быстро, чтобы не вызывать дискомфорта. По умолчанию подсветка экрана была активна, но мне удалось её отключить.
Я даже нашёл под планшет небольшую металлическую подставку, чтобы он больше походил на фотографию в рамке.
▍ ПО для веб
Поскольку само устройство оказалось вполне подходящим, очередным шагом по плану шло написание простого сайта для управления отображением на нём информации. Сайт должен был состоять из всего двух страниц:
- Доски с сообщениями (Board), которая бы отображалась при загрузке устройства. Моей маме нужно видеть только эту страницу.
- Страницы «Compose», на которой мы с родственниками писали бы и сохраняли сообщения для отображения на доске.
Как я уже говорил, устройство должно иметь ресурс для непрерывной работы в течение нескольких месяцев и быть устойчивым к возможным перебоям в сети или обслуживании. При этом мне также требовалась возможность удалённого обновления не только отображаемых сообщений, но и самого ПО, отвечающего за их показ.
С учётом всех этих потребностей я разделил страницу «Board» на внешнюю оболочку и внутреннюю часть:
- Внешняя оболочка выступает в качестве обёртки внутренней страницы, которую она каждый час перезагружает, применяя возможно внесённые за это время изменения ПО. Если сеть в этот момент отключена, и внутренняя страница не перезагружается, то оболочка просто повторяет попытку ещё через час. Для повышения надёжности этого механизма я минимизировал количество логики оболочки и не использовал в ней никаких внешних зависимостей.
- Внутренняя страница отвечает за фактическое отображение сообщений. Каждые 5 минут она опрашивает простой веб-сервис на предмет наличия данных и выводит их. Здесь я тоже применил минимум логики, но без нескольких зависимостей не обошлось.
Ну а поскольку отлаживать что-либо на устройстве возможности нет, я по максимуму придерживался чистого HTML и CSS, добавив лишь немного JavaScript и полностью отказавшись от использования фреймворков или сторонних библиотек.
Страница «Compose» представляет собой простую веб-форму, которую мы с родственниками можем использовать для составления и сохранения сообщений. Я настроил форму так, чтобы она хорошо работала с экрана телефона, позволяя писать послания в любое удобное время. Небольшой манифест веб-приложения позволяет сохранять эту страницу в виде иконки на основном экране телефона для быстрого доступа.
В целом сайт получился миниатюрный и за исключением сервиса, который описан ниже, состоит из одних статических файлов.
▍ Визуальный дизайн
Меня беспокоило то, что экран может перегореть, поэтому я сделал так, чтобы страница «Board» случайным образом меняла области для отображения сообщений. Прочие визуальные элементы вроде даты и времени тоже перемещаются с одной стороны на другую, чтобы никакой пиксель не оставался постоянно активен.
Для стилизации текста записей я выбрал бесплатный шрифт
Architect’s Daughter, создав впечатление написания от руки. Метки при этом отображаются шрифтом
Open Sans.
Некоторая сложность возникла с увеличением размера текста сообщений. Иногда сообщение состоит из одного-двух слов, а порой из нескольких предложений — поэтому при использовании одного размера шрифта не получится выводить и те, и другие. Я не нашёл способа реализовать автоматическое увеличение шрифта на чистом CSS так, чтобы текстовый элемент с переносом слов отображался без клиппинга.
В итоге я написал для этого небольшую JS-функцию: она делает текст невидимым (с помощью CSS-свойства
visibility: hidden
), пытается отобразить текст при очень большом размере, после чего поочерёдно пробует всё меньшие размеры, пока не найдёт такой, при котором весь текст входит. Найдя оптимальный размер, функция снова делает сообщение видимым.
▍ Сервис
Для управления отображением достаточно небольшого объёма текстовых данных, поэтому я обрадовался, найдя минималистичный сервис
JsonStorage, который идеально подошёл для моего проекта. Весь текст и метаданные текущего набора сообщений сохраняются в одном объекте JSON. Страница «Compose» может сохранять данные в этом сервисе с помощью запроса
POST
, а страница «Board» — извлекать эти данные с помощью
GET
.
Сервис JsonStorage предоставляет бесплатный пробный уровень (tier), с которого я начал, но мне он настолько понравился, что я в итоге перешёл на базовый уровень стоимостью 1$/месяц (сейчас он стоит $5/месяц).
▍ Проверка и установка
Я занимался настройкой ПО где-то две недели, попутно проверяя его в режиме непрерывной долговременной работы. Меня приятно удивило, что дисплей Boox продолжал прекрасно функционировать и, похоже, мог оставаться активен неограниченное время.
После всех этих проверок 12 ноября 2022 года я установил его в квартире мамы, запустил, подключил к сети WiFi и перезагрузил, убедившись, что в новой обстановке всё исправно работает.
Маму подаренный планшет очень порадовал.
▍ Ретроспектива
Несмотря на амнезию, матушка запомнила о существовании планшета и его назначении, так что теперь она просто ждёт поступления на него наших сообщений.
Если мы сообщаем ей о каких-то наших планах, то она часто спрашивает, не отправили ли мы соответствующее оповещение на MomBoard. С другой стороны, нам приходится следить за актуальностью доски и постоянно её обновлять. Если мы забываем убрать сообщение, которое утратило актуальность, оно начинает сбивать маму с толку.
Если оглянуться назад, то этот планшет, по сути, стал единственным средством из всех нами опробованных, которое реально помогло улучшить качество жизни мамы (и нашей). Одна из причин его успешности в том, что ей не пришлось ничего изучать. После утраты способности запоминать новую информацию для неё стало практически невозможным освоение новых навыков или выработка новых привычек.
Надёжность планшета превзошла все мои ожидания. Однажды возникло подозрение, что он сломался, но по факту проблема оказалась в WiFi-роутере. После его замены всё продолжило прекрасно работать. Что касается моего ПО, то его написание в максимально простой форме и использование чистых веб-технологий определённо помогло избежать лишних багов.
Выглядит планшет отлично, и по-прежнему показывает сообщения круглые сутки.
Кому интересно, исходники ПО для MomBoard
лежат на GitHub.
Telegram-канал со скидками, розыгрышами призов и новостями IT 💻