技術ノート ハードウェア Raspberry Pi を使用して LED インジケーターを構築する (電子メール、天気予報など)

Raspberry Pi を使用して LED インジケーターを構築する (電子メール、天気予報など)

Raspberry Pi は、天気予報や新着メールなど、あらゆる種類のプロジェクトにインジケーター ライトを取り付けるのに最適なコンパクトなプラットフォームです。Pi に LED モジュールを接続していくつかのセットアップを行う方法について説明しますので、読み続けてください。基本的な通知。

なぜこれをやりたいのか?

楽しいから。プロジェクトから得られるメリットを正確に説明する小さな宣伝文を上部に含める多くのチュートリアルとは異なり、この場合の宣伝文は非常に短いです。なぜなら、メリットは単純に楽しむことだからです。

Raspberry Pi は、遊んだり、電子機器を実験したり、プログラミングを学習したりするのに最適なデバイスです。たとえば、キッチンに周囲の雨を知らせるインジケーターを必要とする人はいませんが、これを作るのは楽しい練習であり、嵐の可能性がある日に傘を持っていくことを思い出させるのに最適です。

Raspberry Pi で LED インジケーターを作成する (電子メール、天気予報など)

私が必要なものは何?

チュートリアルを使わずに作業を進めるには、いくつかのことが必要です。まず、以前のチュートリアル 「HTG Guide to Getting Started with Raspberry Pi」 をすでに読んでいることを前提としています (したがって、Raspberry Pi への Rasbian のインストールまでの基本は理解されています)。

このプロジェクトを低予算で実行したい場合は、最新モデルの Raspberry Pi はこの仕事にはかなりのやり過ぎであると自信を持って言えます。無理に押し込んだ古い Raspberry Pi の埃を吹き飛ばすことをお勧めします。クローゼットにしまっておくか、eBay などで安い中古品を拾ってきます。予算的には、新品の 35 ドルの現行世代の Pi を購入するよりも、eBay で 10 ~ 15 ドルで落札された Raspberry Pi 1 モデル A またはモデル B のほうが、このプロジェクトには最適です。

Raspbian がインストールされた機能する Pi ユニットに加えて、次のものが必要です。

  • LEDBorg モジュール 1 個 (英国から米国への送料は $4 で、最大 $5.00、すべての Raspberry Pi モデルで動作)。
  • 1 クリア Raspberry Pi ケースは 特定の Pi モデルと互換性があります。

注: 透明/つや消し Pi ケースは完全にオプションですが、現在不透明なケースを使用している場合、LED インジケーターは内側に隠れます。ケースに穴を開けて光を外に出すか、 Adafruit Industries のこの ようなブレークアウト キットを備えた GPIO 延長ケーブルを使用して、LEDBorg を Raspberry Pi に接続する必要があります。ブレークアウト ケーブルを使用すると、プロジェクトの費用が約 8 ドル追加されますが、物の中や照らしたいものの下に LED をより簡単に配置できるため、最終製品をカスタマイズする可能性が高まります。

Raspberry Pi を使用して LED インジケーターを構築する (電子メール、天気予報など)

LEDBorg のインストール

もちろん、完全にゼロから LED インジケーターを自分で構築することもできますが (検索エンジンで調べれば、そうした人がたくさん出てきます)、Piborg 組織は非常にコンパクトで安価な LED モジュールである LEDBorg を製造しているため、私たちには不可能です。これを Raspberry Pi LED インジケーター プロジェクトの基礎として使用することに抵抗はありません。

モジュールは、Pi の GPIO ピンに直接フィットするように設計されているため、取り付けは簡​​単です。まず、Pi の電源を切り、ケースを開けます。

インストールプロセスの最も重要な部分は、LEDBorg アイコンが Raspberry Pi ボード上の RCA モジュールに最も近くなるようにモジュールの向きを変えることです (これにより、LEDBorg の端が、張り出した部分のある Pi ボードの端と同一平面になります) LEDBorg の一部が Pi ボードの上にぶら下がっており、端から外れていない)。上の写真をご覧ください。

Pi ボードを開いたまま、特に透明なケースを使用している場合は、オンボード LED インジケーター (USB ポートの隣) をカバーするのに最適な時期です。電源とネットワークのインジケーター ライトが非常に明るいため、LEDBorg インジケーターがわかりにくくなるのは避けたいです。

私たちは白い絶縁テープの層でそれを覆いました。これで十分に暗くなったので、引き続き参照できるようになりましたが、LEDBorg よりもはるかに暗くなったので、気を散らすことはなくなりました。

LEDBorg を取り付け、必要に応じて Pi の LED インジケーターを絶縁テープで覆ったら、ケースを閉じて元に戻します。チュートリアルの次の段階に進む前に、Pi を起動します。

Raspberry Pi を使用して LED インジケーターを構築する (電子メール、天気予報など)

LEDBorg ソフトウェアのインストール

PiBorg は、コマンド ラインから LEDBorg にアクセスするための GUI コントローラーとドライバーの両方を含む、LEDBorg 用の優れたソフトウェア パッケージを提供します。

始める前に、Rasbian のバージョンと Raspberry Pi ボードのリビジョン番号に適したパッケージを取得していることを確認する必要があります。

Raspberry Pi ボードに取り付け穴がない場合は、リビジョン 1 です。Raspberry Pi に取り付け穴 (USB ポートの近く、電源ポートと HDMI ポートの間にある) がある場合は、リビジョン 2 です。また、カーネルのバージョンを知る必要があります。 Rasbian インストールの。ターミナルを開き、次のコマンドを入力して確認します。

uname -r

リビジョン番号とカーネル番号を取得したら、 ここの「パッケージ」セクションにアクセスして パッケージのリンクを取得できます。この例では、3.6.11 カーネルを備えたリビジョン 1 ボードを使用しているため、raspbian-2013-02-09-rev1.zip ファイルを取得します。

すべての機能をインストールするには、Pi でターミナルを開く必要があります。次に、次のコマンドを入力して LEDBorg パッケージをインストールします。

注: 3 番目のコマンドの URL を、ボードとカーネルの組み合わせのパッケージの URL に置き換える必要があります。

mkdir ~/ledborg-setup

cd ~/ledborg-setup

wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip

setup.zipを解凍します

chmod +x インストール.sh

./install.sh

この時点で、LEDBorg ドライバーの GUI ラッパーとドライバー自体がインストールされました。 Raspbian デスクトップに GUI ラッパーのアイコンが表示されます。

次に、LEDBorg アイコンをクリックして GUI ラッパーを起動します。次のようなカラー ピッカー インターフェイスが表示されます。

モジュールが機能していることを確認するには今が最適です。黒以外の色を選んで試してみてください。いくつかの色を選択してテストしてみます。

いいね!明るく、このプロジェクトのために注文したケースのつや消しプラスチックは適度な拡散を提供します。次に進む前に LED モジュールをさらに試したい場合は、「デモ モード」をクリックします。

デモ モードでは、さまざまな速度ですべての色を循環させたり、高出力/低出力をチェックしたり、LED モジュールのペースを試したりすることができます。

ここのデモ モード セクションでは、LEDBorg を多くのインジケーターの最初のインジケーターに変えることもできます。 [色] セクションで CPU を選択すると、LED が緑、黄、赤に変化し始め、Raspberry Pi の ARM プロセッサの負荷を示します。途中で [速度] を [低速] に変更することをお勧めします。[高速] にすると LED の更新が速すぎて、CPU インジケーターが便利ではなく邪魔になります。

GUI インターフェイスを使用して色を選択するだけでなく、RGB 値を使用して端末から色を選択することもできます。ターミナルを開き、次のコマンドを入力して LED をオフにします。

echo "000" > /dev/ ledborg
 echo "000" > /dev/ ledborg

LEDBorg が RGB 値を処理する方法は、0 はチャンネルがオフであることを意味し、1 はチャンネルのパワーが半分であることを意味し、2 はチャンネルがフルパワーであることを意味します。たとえば、001 は、赤チャネルを 0%、緑チャネルを 0%、青チャネルを 50% のパワーに設定します。

値を 002 に変更すると、LED 出力は青色のままですが、青色チャンネルの出力が 100% になるため、より明るくなります。値を 202 に変更すると、赤と青がフルパワーで組み合わされてマゼンタ色になります。

LED を手動で操作する方法がわかったので、スクリプトを使用して LED を単純なライトから実際のインジケーターに変える方法を見てみましょう。

Raspberry Pi を使用して LED インジケーターを構築する (電子メール、天気予報など)

LEDBorg を雨インジケーターとして設定する

チュートリアルのこの部分では、Ledborg LED モジュールを、現在地の天気予報に基づいて雨インジケーターに変えるために、いくつかのことを組み合わせていきます。 Python スクリプトを使用して天気 API を呼び出し、その日の降水確率を読み取り、LED をオフから明るい青色に切り替えて、予想される雨を示します。

まず、Weather Underground の API アクセス キーを取得する必要があります。個人使用および小規模な開発プロジェクトの場合、API は無料です。 ここから Weather API サインアップ ページにアクセスし 、API キーにサインアップします。

API キーを取得したら、Weather Underground にアクセスし、監視したい都市を検索します。私たちの場合は、カリフォルニア州サンフランシスコを監視します。サンフランシスコの予想ページの URL は次のとおりです。

http://www.wunderground.com/US/CA/San_Francisco.html

私たちの目的にとって重要な部分は、URL の最後の部分です: /CA/San_Francisco.html。これを使用して、API ツールの予測 URL を編集します。ベース URL は次のとおりです。

http://api.wunderground.com/api/あなたの API キー/forecast/q/STATE/CITY.json

API キー、2 文字の州コード、Weather Underground の検索結果から取得した URL からの都市名を入力することで、米国の任意の都市の予報を生成できます。

API キーと州/都市を挿入した API URL を取得したら、Leafpad を使用して Pi 上に新しいテキスト ドキュメントを作成し、次のコードを貼り付けることで、次の Python スクリプトを編集できます。

from urllib2 import urlopen
import json
from urllib2 import urlopen
import json
req = urlopen('http://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json < a href = "http://api.wunderground.com/api/0e02b324b8e4dbd8/forecast/q/CA/San_Francisco.json')" > ') </ a >
parsed_json = json.load(req)
pop = int (parsed_json[ 'forecast' ][ 'txt_forecast' ][ 'forecastday' ][ 0 ][ 'pop' ])
req = urlopen('http://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json < a href = "http://api.wunderground.com/api/0e02b324b8e4dbd8/forecast/q/CA/San_Francisco.json')" > ') </ a >
parsed_json = json.load(req)
pop = int (parsed_json[ 'forecast' ][ 'txt_forecast' ][ 'forecastday' ][ 0 ][ 'pop' ])

# 以下はデバッグ値です。

# ハッシュを編集して変更します

# テストする 0 ~ 100 の整数

# LED の応答。

# ポップ = 0

print 'Current chance of precipitation is {}.' .format(pop)
 print 'Current chance of precipitation is {}.' .format(pop)
# The default setting is to turn on the LED
# for any chance of rain above 20%. You can adjust
# the value in "if pop > 20:" as you wish.
# The default setting is to turn on the LED
# for any chance of rain above 20%. You can adjust
# the value in "if pop > 20:" as you wish.
if pop > 20:
LedBorg = open( '/dev/ledborg' , 'w' )
LedBorg.write( '002' )
del LedBorg
print ( 'Rain!' )
else :
LedBorg = open( '/dev/ledborg' , 'w' )
LedBorg.write( '000' )
del LedBorg
print ( 'No rain!' )
if pop > 20:
LedBorg = open( '/dev/ledborg' , 'w' )
LedBorg.write( '002' )
del LedBorg
print ( 'Rain!' )
else :
LedBorg = open( '/dev/ledborg' , 'w' )
LedBorg.write( '000' )
del LedBorg
print ( 'No rain!' )

ファイルを wunderground.py という名前で /home/pi/ ディレクトリに保存します。ターミナルを開き、次のコマンドを入力します。

Pythonのwunderground.py

API キーと州/都市コードを正しく入力すると、次のような応答が返されるはずです。

お住まいの地域で降水量が予測されている場合、LEDBorg の出力は次のようになります。

雨の日を待ってスクリプトを適切にテストするのは面倒です。今日お住まいの地域で雨が降る可能性がなく、LED が点灯するのを確認したい場合は、wunderground.py スクリプトを編集して、13 行目の「pop = Pop」パススルー値を 60 などの 20 より大きい値に置き換えます。私たちの予測が戻ってきたということです。完了したら、行を「pop = Pop」に戻すことを忘れないでください。

最後のステップは、LED インジケーターを最新の状態に保つために、保存したばかりのスクリプトを定期的に自動的に実行する cron ジョブを設定することです。このタスクはこのスクリプトとそれに続く電子メール インジケーターの両方に必要であるため、他のスクリプトの設定方法を示した後で cron ジョブの設定について説明します。

Raspberry Pi を使用して LED インジケーターを構築する (電子メール、天気予報など)

LEDBorg を Gmail インジケーターとして設定する

受信箱に新しいメールが届くとドーパミンが分泌されるのが嫌いな人はいないでしょうか。チュートリアルのこの部分では、LEDBorg を新しい Gmail インジケーターとして使用する方法を説明します。前回と同様に、外部入力 (この場合は API ではなく Atom フィード) と単純なスクリプトを組み合わせて LED を駆動します。

Python RSS/Atom フィード読み取りツールである FeedParser をインストールして、Python インストールの機能を少し拡張する必要があります。ターミナルを開き、次のコマンドを入力します。

sudo easy_install feedparser

インストールが完了したら、Gmail チェック スクリプトの作成を開始できます。再度、Leafpad を使用して、次のテキストをエディターに貼り付けます。ユーザー名とパスワードを、確認したい Gmail アカウントのユーザー名とパスワードと一致するように変更します。

import feedparser
 import feedparser

# Enter your Gmail username
# and password. Don't include
# the @gmail.com portion of
# your username.

# Enter your Gmail username
# and password. Don't include
# the @gmail.com portion of
# your username.
username = "username"
password = "password"
username = "username"
password = "password"
mail = int (feedparser.parse( "https://" + username + ":" + password + "@mail.google.com/gmail/feed/atom" )[ "feed" ][ "fullcount" ])
 mail = int (feedparser.parse( "https://" + username + ":" + password + "@mail.google.com/gmail/feed/atom" )[ "feed" ][ "fullcount" ])

# 以下はデバッグ値です。

# ハッシュを編集して変更します

# テストする整数を 0 または 1 にします

# LED の応答。

メール数 = 0

if mail > 0 :
LedBorg = open( '/dev/ledborg' , 'w' )
LedBorg.write( '020' )
del LedBorg
print ( 'Mail!' )
else :
LedBorg = open( '/dev/ledborg' , 'w' )
LedBorg.write( '000' )
del LedBorg
print ( 'No mail!' )
if mail > 0 :
LedBorg = open( '/dev/ledborg' , 'w' )
LedBorg.write( '020' )
del LedBorg
print ( 'Mail!' )
else :
LedBorg = open( '/dev/ledborg' , 'w' )
LedBorg.write( '000' )
del LedBorg
print ( 'No mail!' )

スクリプトを gmailcheck.py として保存します。ターミナルを開き、次のコマンドを入力します。

Python gmailcheck.py

Gmail の受信トレイにメールがある場合、LED が緑色に変わり、次のような応答が表示されます。

Gmail の受信トレイにメールがある場合、LedBorg は次のようになります。

レイン チェック スクリプトと同様に、デバッグ値が含まれています。新しい電子メールがない場合は、自分自身に電子メールを送信して受信トレイの数を 1 に増やすか、コメント ハッシュを編集してデバッグ行を「mail = 1」に変更してスクリプトをテストすることができます。テストが完了したら、忘れずに行を元に戻してください。

チュートリアルの次のセクションに進み、Gmail スクリプトがスケジュールに従って実行されるように設定します。

Raspberry Pi で LED インジケーターを作成する (電子メール、天気予報など)

スクリプトを実行するための Cron ジョブの設定

操作するスクリプトが 2 つあるので、それらを 1 日中実行して LED インジケーターを最新の状態に保つために cron ジョブを設定する必要があります。

最初に行うことは、以前の実験で LED がオンになっている場合はオフにすることです。ターミナルで次のように入力します。

エコー “000” > /dev/ledborg

コマンドラインを使用している間に、cron エディターを開くことができます。これまでに cron ジョブを設定したことがない場合は、 こちらの使用ガイドを確認することを 強くお勧めします。とはいえ、ここでは基本的なスケジュールを設定する手順を説明します。

ターミナルで次のように入力します。

sudo crontab –e

これにより、Nano テキスト エディターで Raspbian cron テーブルが開きます。矢印キーを使用して一番下までスクロールします。ここで、Python スクリプトの定期的な cron ジョブをセットアップします。

Rain スクリプトを設定する場合は、cron テーブルに次の行を入力します。

*/5 * * * * python /home/pi/wunderground.py

CTRL+X を押して終了します。既存の cron テーブルを保存して上書きするには、「はい」を選択します。 cron テーブルに入力した値「*/5 * * * *」により、スクリプトが 5 分ごとに永久に実行されるように設定されます。

5 分ごとは、雨の予想をチェックするスクリプトにとっては適切な時間間隔です — これは少し強引すぎると主張することもできます — しかし、電子メールの最新情​​報を常に把握しようとすると、少し長すぎます通知のスパン。 Gmail 通知スクリプトのスケジュールを設定している場合は、cron テーブルに次の行を入力します。

*/1 * * * * python /home/pi/wunderground.py

このエントリは、更新通知をより迅速に行うために gmailcheck.py スクリプトを毎分実行します。


それだけです! if/else ステートメントを私たちのスクリプトから取り出して、まったく新しい変数で試してみることで、独自の Python スクリプトを試すことができます。データの入力ソースが見つかったら、それを Python スクリプトの変数に変換できます。株式市場の平均値、花粉の数、Twitter での言及など、API があればそれを周囲の LED インジケーターに変換できます。 。

最後に、このプロジェクトに取り組むために使用したすべての素晴らしいリソースに感謝したいと思います。私がプログラムを積極的に書いてから 10 年以上が経ちましたが、埃や錆を取り除くのに数回ノックする必要がありました。 /r/LearnPython の寄稿者は、Weather Underground の API 出力をいじるのを手伝ってくれました。Mitch Tech の Michael が Gmail Atom フィードをどのように扱った かを研究したことで、LEDBorg 用の解析が簡単になり、 Code Academy で Python 学習モジュールを学習でき ました。これまで使用したことのない言語の基本的な構文と構造を理解するのに最適な方法です。

「 Raspberry Pi を使用して LED インジケーターを構築する (電子メール、天気予報など)」に関するベスト動画選定!

【メモリー4GB】7000円の超小型高性能PC RaspberryPi 4Bを購入! 性能は?組立, OSインストール。 | ラズベリーパイ
はじめてのラズベリーパイ〜Lチカをするための配線とLED