Мне давно хотелось собрать простое и максимально дешёвое устройство, на котором показываются заголовки новостей. Самые подходящие экраны по соотношению площадь/цена это LCD. Одна из простых и дешёвых плат со встроенным wi-fi – это ESP8266 в исполнении NodeMCU.
Осталось решить вопрос откуда брать новости? Давным давно придумали формат RSS для распространения новостей, который до сих пор крупные новостные агентства и СМИ продолжают поддерживать.
Парсинг RSS и логику извлечения нужной информации из ленты новостей можно конечно возложить на микроконтроллер, но писать код на Си для этих целей мне не доставит удовольствие. Да и какой смысл гонять по сети объем в 100 раз больше чем тот который нужно для отображения на экране?
Чтобы упростить задачу нужна некая прослойка, которая по запросу будет брать с новостного сайта RSS ленту, вычленять самый свежий заголовок новости и возвращать в готовом виде для отображения на LCD экране.
Мне проще всего было написать такую прослойку на PHP:
<?
$i = 0;
$url = "https://www.bfm.ru/news.rss";
$rss = simplexml_load_file($url);
foreach($rss->channel->item as $item) {
if ($i < 1) {
if (($timestamp = strtotime($item->pubDate)) === false) { echo "Error..."; }
else { echo date('H:i', $timestamp).' '.'BFM:'.$item->title; }
}
$i++;
}
?>
Разместив этот код на любом адресе на собственном сервере (или хостинге), при обращении к нему получаем в ответ текстовую строку с заголовком новости, её напрямую и выводим на LCD экран.
Всю конструкцию собираем из подручных деталей в полноценное устройство.