Монитор новостей

от автора

в

Мне давно хотелось собрать простое и максимально дешёвое устройство, на котором показываются заголовки новостей. Самые подходящие экраны по соотношению площадь/цена это LCD. Одна из простых и дешёвых плат со встроенным wi-fi – это ESP8266 в исполнении NodeMCU.

Осталось решить вопрос откуда брать новости? Давным давно придумали формат RSS для распространения новостей, который до сих пор крупные новостные агентства и СМИ продолжают поддерживать.

Парсинг RSS и логику извлечения нужной информации из ленты новостей можно конечно возложить на микроконтроллер, но писать код на Си для этих целей мне не доставит удовольствие. Да и какой смысл гонять по сети объем в 100 раз больше чем тот который нужно для отображения на экране?

Настольный монитор новостей из LCD экрана и ESP8266.

Чтобы упростить задачу нужна некая прослойка, которая по запросу будет брать с новостного сайта 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 экран.

Всю конструкцию собираем из подручных деталей в полноценное устройство.

Настольный монитор новостей из LCD экрана и ESP8266 вид сбоку.