Интересное устройство представлено на 2015 премии HACKADAY. HACKADAY — конкурс, где за лучший продукт, который может изменить мир, автору будет предоставлено путешествие в космос! Мое внимание привлек Twitter принтер, который хоть и не выиграл, но привлек мое внимание за использованным в нем модуль esp8266.
https://youtu.be/nNNOWU3ugfk
Как только автору стали доступный ESP8266 модули он попытался сделать несколько проектов, но ничего хорошего из них, чтобы подать заявку на участие в HackADay, пока не наткнулся на этот милой портативный принтер и решил превратить его в Twitter принтер! Сначала он хотел сделать все, на одном модуле, но вскоре стало ясно, что у него не было достаточно лошадиных сил / RAM (оперативной памяти) что бы обработать весь сайт Twitter. Отказавшись от использования сторонних API он решил взять другой маршрут:
Я создал интернет страницу PHP на моем сервере для разбора Twitter что бы получить отдельные твиты. И в то время как запрос выполняется на сервере, почему бы не сделать это предварительно, отформатировав страницы, так чтобы модуль просто получал страницу и направлял ее на печать принтера как есть? Программа написанная на PHP также может отслеживать последние твиты и отправить только последние из них!
Так вот как это работает: модуль загружает страницу наш сайт/tweet.php?usr=ESP1 и сервер отслеживает Последние твит-дается на устройство, основываясь на имени в параметре «USR». Она делает это путем создания файла на основе этого параметра и хранения идентификатор последнего твита который был отправлен, так что программа будет анализировать только последние твиты, а не отправлять всю страницу. В видео удален файл индекса, так как сервер посылал мне последние семь твитов.
Затем программа разделяет последние твиты на 24 символа в строке, и отправляет обратно результат в текстовом формате.
Сценарий работы модуля написан на языке LUA, но как известно такие скрипты не поддерживается модулем из коробки, только AT команды, поэтому нам необходимо прошить сам модуль например на ESP8266 NodeMCU. Для тех, кто не знаком с данной прошивкой ESP8266 NodeMCU — это интерпретатор языка LUA, созданный специально для модуля ESP8266, который не только облегчает сам процесс создания прошивки, но и ускоряет его и освобождает нас от использования внешнего микроконтроллера, или готовой электронной площадки Arduino или ей подобной. Ознакомиться и скачать последнюю прошивку можно в статье ESP8266 NodeMCU.
Модуль ESP8266 запросит страницу, и направить ответ на последовательный порт, и заснет в течение нескольких минут. ESP8266 NodeMCU интерпретатор LUA позволяет использовать сторожевой таймер по умолчанию! Это очень удобно, если нвы не хотите использовать его на стороне сервера. В электронной части, нет ничего особенного, просто надо использовать стабилизатор на 3.3V для питания модуля и двух 2N7000 МОП-транзисторов для включения и выключения принтера.
Спасибо, хорошая статья получилась!