Zenreader: 4,7-дюймовый RSS-ридер E-Ink на базе ESP32

zenreader47дюймовыйrssридерeinkнабазеesp32

Мне давно нужен был своего рода КПК с экраном E-Ink, который позволял бы мне читать в Интернете, не напрягая глаз. Но Kindle действительно отстой как устройство для чтения новостей, потому что экспериментальный браузер никогда не работает правильно.

Я не знаю, что такое люди из Amazon. думая, когда они заставляют браузер так сильно отстой. Допустим, я хочу прочитать статью из Hacker News. Браузер неправильно отображает HN, вздох. Когда я нажимаю на ссылку, отрисовка страницы занимает 32 секунд. По прошествии 10 секунд браузер отображает статью как браузер для настольных ПК / планшетов и уменьшает ее масштаб. Таким образом, разрешение – включить режим чтения, который требует от меня нажатия меню с тремя точками и режима статьи. Если повезет, я увижу статью в несколько презентабельном виде. Но он не переворачивает одну страницу за раз, он работает как планшет, поэтому он прокручивает пиксели за раз. Когда я закончил со всей этой ерундой и хочу вернуться к HN, он возвращается на страницу статьи без включенного режима чтения и отображает все заново, заставляя меня ждать и нажимать еще раз. Это еще не все: браузер время от времени не возвращается назад, что очень расстраивает.

Недавно я наткнулся на M5Paper с большим экраном и беспроводным чипсетом. Я думал, что это может почесать мой зуд. Так что я пошел дальше и собрал прошивку, чтобы сделать ее читателем RSS E-ink, который в основном работает на данный момент. Вы можете увидеть это в действии здесь:

ESP 32 – это микроконтроллер с очень маленьким объемом оперативной памяти, который не совсем подходит для работы с HTML и т. д. Поэтому мне пришлось использовать Raspberry Pi в качестве прокси-сервера рендеринга и преобразовать RSS и текст на странице так, чтобы ESP 36 может переварить. Идея состоит в том, чтобы преобразовать XML RSS в JSON и преобразовать любой URL-адрес статьи в открытый текст с помощью скрипта nodejs через HTTP API SaaS или как вы его называете. Тем не менее, я думаю, что расширяю возможности маленького контроллера. В любом случае, он работает большую часть времени – или, по крайней мере, я надеюсь, не хуже, чем Kindle. По крайней мере, теперь я могу листать по одной странице.

Screenshot

Screenshot

Я работал над этим только два дня назад, поэтому есть много шероховатостей, и мой прокси-сервер Raspberry Pi может выйти из строя в любой момент, поэтому будьте осторожны и не злоупотребляйте им. Он буквально сейчас работает в сеансе tmux, и когда он умирает, он не вернется, если я вручную не подключусь к Pi, чтобы воскресить скрипт. Но я подумал, что было бы полезно выложить код пораньше, чтобы всем было проще экспериментировать с ним. Возможно, вы тоже могли бы внести свой вклад в это.

Вы можете получить клиентский код, который работает на ESP 32 / M5Paper на https://github.com/htruong/zenreader . Я не делаю серверный код доступным сейчас, потому что он запутан и теперь работает на утиной ленте. Но в основном вы должны ответить на две конечные точки, одна для RSS-канала прокси xml-to-json и один для преобразования режима чтения статей .

Надеюсь, у вас достаточно мотивации, чтобы вы встали и начали взламывать E-Ink вместе со мной.