Рубрика: News monitor

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

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

    Мне давно хотелось собрать простое и максимально дешёвое устройство, на котором показываются заголовки новостей. Самые подходящие экраны по соотношению площадь/цена это 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 вид сбоку.