Приветствую! С помощью замечательной прошивки уважаемого MaksM сделал себе вот такую штуку
Теперь есть мысль прикрутить RSS ленту, ну чтобы в режиме бегущей строки отображались пять заголовков например яндекс новостей.
Начал гуглить на эту тему и нашел проект но он на LCD а мне нужно на 7219. Здесь www.variableindustries.com/web-to-lcd-2/
Вот кусок кода отвечающий за парсинг новостей
ВНИМАНИЕ: Спойлер![ Нажмите, чтобы развернуть ][ Нажмите, чтобы скрыть ]
//----------------------------------------------------------------------------------|
// BBC NEWS
//----------------------------------------------------------------------------------|
#ifdef BBCNEWS // http://feeds.bbci.co.uk/news/rss.xml?edition=us
char dataServer[] = "feeds.bbci.co.uk"; // base URL of site to connect to
char dataPage[] = "/news/rss.xml?edition=us"; // specific paget to conenct to
const char *elements[] = {"<title><![CDATA["}; // list of elements to search for
char *elementPreLabels[] = {"BBC NEWS: "}; // labels to display before data
char *elementPostLabels[] = {""}; // labels to display after data
const char dataEnd = '/'; // character that marks the end of data
int normalStartBias = 0; // characters after element start that data begins
int normalEndBias = -4; // characters before end charater that data ends
const char elementCols[] = {1}; // formatting for display
#define LONGDATA // use "longdata" formatting (useful for news)
#define INSTANCENUMBER 2 // find this instance of the element on the page
#define SPECIALREPLACE // replace special characters
const byte maxDataLength = 80; // longest possible length of element data
char charBuf[150]; // total length of elements plus extra for +IPD reprints
const long reloadDelay = 20000; // time between page reloads
//#define CUSTOMNEWLINECHAR '\r' // always looks for \n but we may want to find onother character
//#define BIGTEXT // use big font for data display
//#define BIGLABELS // use big font for data labels
//#define GRID // align to grid
//#define CUSTOMBIAS // if certain data elements need custom start/end postitions
#ifdef CUSTOMBIAS
const char *customBiasElements[] = {""}; // the elements that need custom start/end positions
int customStartBias = 0; // characters after element start that data begins
int customEndBias = 0; // characters before end charater that data ends
#endif
#endif
Но опять же тут буржуйские новости которые мне не подходят))
Есть еще проект вот здесь hackaday.io/project/16398-esp8266-based-rss-feed-on-color-oled но там библиотеки насколько я понял на питоне, тоже не подходит.
Теперь вопросы:
1. Как внедрить этот код в прошивку Макса? Может можно через опцию конструктор кода? Но там надо на С писать, а я не силен в этом.
2. Может быть можно это все как-то организовать через MQTT? Ну например есть какой-нибудь домашний сервер на малинке например, он как-то читает ленту и передает на модуль, а ESP уже отображает на экране.
Помогите разобраться. Спасибо.
Я понял.
Вчера попробовал отправить GET запросом строчку текста на дисплей и получилось! Родилась такая идея. На сервере majordomo к примеру крутится скрипт который парсит новости и посылает периодически строку на модуль. Вот и все!
Единственное не получилось отправить длинную строку из 10 слов, почему-то требует ввода аутентификации, но дальше дело не идет. Если сократить строку до 5 слов, то все нормально проходит.
Какова длина посылаемой строки может быть, не пробовали?
Да и еще просьба, если будет возможность, добавьте пожалуйста опцию выравнивания отображения часов по горизонтали. У меня 6 модулей и часы отображаются только на 4 модулях - сдвинуты влево. Спасибо.
10 слов - это ничего не значит, нужна точная длина текста в символах, при этом русские символы занимают 2 байта. Ограничение тут конечно есть - модуль не резиновый, но в разумных пределах длину текста можно увеличить, нужно смотреть..