最新のニュースを常に把握するのは大変で、時にはちょっとした助けが必要になることもあります。RSSフィードは、大量のニュースを素早く理解するのに最適な方法です。もちろん、RSSフィードにアクセスしたり、コンピューターにRSSリーダーをインストールしたりすることもできますが、見出しだけを表示するシンプルな専用デバイスがあったらどうでしょうか?
これは、Python コードを使用して RSS フィード (たとえば Tom's Hardware フィード) を読み取り、上位 5 つの見出しを LCD 画面に表示するRaspberry Piプロジェクトです。
- Raspberry Pi OSとGPIOピンを備えたRaspberry Piのあらゆるモデル
- このようなI2C LCDスクリーン
- メス-メスのジャンパー線 4 本
1.次のコマンドを入力して、LCD 画面を使用し、RSS フィードを操作するためのPython ライブラリをインストールします。
sudo pip3 install rpi-lcd feedparser2.設定>> Raspberry Piの設定からI2Cインターフェースを有効にします。

3.図に従って I2C LCD 画面を接続します。

4. Thonnyを起動します。スタートメニューの「プログラミング」の下にあります。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
5.新しいファイルに 、LCD 画面を使用したり、プロジェクトのペースを制御したり、RSS フィードを読んだり、最後にテキストをチャンクに操作したりするため の Python コードのライブラリをインポートします。
from rpi_lcd import LCD
from time import sleep
import feedparser
import textwrap6. Tom's Hardware からの RSS フィード データを保存する 「tom」というオブジェクトを作成します。
tom = feedparser.parse("https://www.tomshardware.com/uk/feeds/all")7. LCD への接続を作成し、コードを 1 秒間一時停止します。
lcd = LCD()
sleep(1)8. forループを使ってコードを5回繰り返します。見出しを5つ以上表示したい場合は、(5) をより大きな数値に変更してください。
for i in range(5):9. Tom's Hardware RSSフィードのエントリを出力します。iの値はforループが1周するごとに増加し、最大5になります。
print(tom['entries'][i]['title'])
10. splitというオブジェクトを作成し、RSSフィードの16文字のチャンクを保存します。チャンクのサイズは、LCDの16文字の画面サイズに合わせて設定されます。
split = textwrap.wrap(text, 16)11. splitというオブジェクトを作成し、RSSフィードの16文字のチャンクを保存します。チャンクのサイズは、LCDの16文字の画面サイズに合わせて設定されます。
split = textwrap.wrap(text, 16)12. LCD 画面の最初の行に「Tom's Hardware」(またはニュースソースの名前)と表示します。
lcd.text("Tom's Hardware", 1)13.分割されたオブジェクトの内容を LCD 画面に出力するための別の for ループを作成します。
for i in range(len(split)): lcd.text(split[i], 2) sleep(0.5)14. LCD 画面を消去する前に 1 秒間の一時停止を追加します。
sleep(1)
lcd.clear()
15.コードをTomsRSSFeed.pyとして保存します。
16.完全なコードリストと照らし合わせてコードを確認します。
from rpi_lcd import LCD
from time import sleep
import feedparser
import textwrap
tom = feedparser.parse("https://www.tomshardware.com/uk/feeds/all") lcd = LCD()
sleep(5)
for i in range(5): print(tom['entries'][i]['title']) text = tom['entries'][i]['title'] split = textwrap.wrap(text, 16) lcd.text("Tom's Hardware", 1) for i in range(len(split)): lcd.text(split[i], 2) sleep(0.5) sleep(1)
lcd.clear()
17. 「実行」をクリックしてコードを開始します。
