ラズベリーパイでLEDインジケーターを作成する(Eメール、天気、その他)
Raspberry Piは、あらゆる種類のプロジェクト(天気予報、新しいEメールなど)にインジケータライトを取り付けるための優れたコンパクトなプラットフォームを作成します。LiモジュールをPiに接続して基本的な通知を設定する方法を説明します。.
なぜこれをしたいのですか?
楽しいからプロジェクトから得られる利益を正確に概説したチュートリアルの多くとは異なり、この事例では利益が単純に楽しいものであるため、かなり短いです。.
ラズベリーパイは遊んだり、エレクトロニクスを試したり、プログラミングを学ぶのに最適なデバイスです。だれも ニーズ たとえば、台所の周囲の雨のインジケータですが、建物を建てるのは楽しい練習であり、嵐の可能性がある日には傘を持っていくことを忘れないでください。.
私には何が必要なのだろう?
チュートリアルに沿って進むには、いくつか必要なことがあります。最初に、私たちはあなたが既に私たちの以前のチュートリアルに従っていると仮定します:(そしてRaspberry PiにRasbianをインストールするための基本をカバーしている).
予算内でこのプロジェクトを実行する場合は、自信を持って最新モデルのRaspberry Piがその仕事にはやり過ぎであることを自信を持って伝えることができます。クローゼットの中やeBayなどから安い中古のものを選ぶ。ラズベリーパイ1モデルAまたはモデルBが10ドルから15ドルでeBayから販売されていることを考えれば、この予算に見合うだけの予算は、まったく新しい35ドルの現行世代のパイを購入するのにぴったりです。.
Raspbianがインストールされた機能的なPiユニットを持っていることに加えて、あなたは以下のものが必要です:
- 1個のLedBorgモジュール(イギリスからアメリカへ4ドルの出荷で〜5.00ドル、すべてのラズベリーパイモデルで動作します).
- このようなあなたの特定のPiモデルと互換性のある1クリアラズベリーパイケースラズベリーパイ1モデルBケース.
注意: 透明/つや消しのPiケースは完全にオプションですが、現在不透明なケースを使用している場合は、LEDインジケータは内側に隠れます。ケースの穴を切ってライトを消すか、Adafruit Industriesのブレイクアウトキット付きのGPIO延長ケーブルを使用してLedBorgをRaspberry Piにつなぐ必要があります。ブレイクアウトケーブルを使用すると、プロジェクトの費用が約8ドル増加しますが、LEDを物の中や照明したいものの下に簡単に配置できるという点で、最終製品をカスタマイズする可能性が高くなります。.
LedBorgのインストール
あなたはきっとあなた自身で完全にゼロからのLEDインジケーターを造ることができました(そして検索エンジンの問い合わせはそうした多くの人々を見いだすでしょう)。 Raspberry Pi LEDインディケータプロジェクトの基礎としてそれを使用することに抵抗する.
PiのGPIOピンの上に直接収まるように設計されているので、モジュールの取り付けは簡単です。まず、Piの電源を切り、ケースを開けます.
インストールプロセスの最も重要な部分は、LedBorgアイコンがRaspberry Piボード上のRCAモジュールに最も近くなるようにモジュールを配置することです(したがって、LedBorgのエッジは、張り出したPiボードのエッジとぴったり重なります)。 LedBorgの一部はPiボードの上にぶら下がっていますが、端からはみ出していません。上の写真を見てください.
Piボードを開いている間は、特にクリアケースを使用している場合は、オンボードLEDインジケータ(USBポートの隣)をカバーするのに最適な時期です。あなたはそれがあなたのLedBorgインディケータを読むことを混乱させたくないです.
我々は白い電気テープの層で私たちを覆いました。これは十分にそれらを参照できるようにそれらを薄暗くしました、しかし彼らはLedBorgよりずっと薄暗かったです.
LedBorgをインストールし、必要に応じてPiのLEDインジケータを電気テープで覆ったら、ケースを元に戻します。チュートリアルの次の段階に進む前に、Piを起動してください。.
LedBorgソフトウェアのインストール
PiBorgは、コマンドラインからLedBorgにアクセスするためのGUIコントローラーとドライバーの両方を含むLedBorg用の素晴らしいソフトウェアパッケージを提供します。.
始める前に、あなたのRasbianのバージョンとあなたのRaspberry Piボードのリビジョン番号に合った正しいパッケージを入手していることを確認する必要があります。.
Raspberry Piボードに取り付け穴がない場合は、リビジョン1です。RaspberryPiに取り付け穴がある場合(USBポートと電源とHDMIポートの間にある場合)、それはリビジョン2です。カーネルのバージョンも知っておく必要があります。あなたのRasbianインストールの端末を開き、次のコマンドを入力して確認します。
uname -r
リビジョン番号とカーネル番号を入手したら、ここにあるPackagesセクションにアクセスしてパッケージのリンクを入手できます。今回の場合、3.6.11カーネルのRevision 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 install.sh
./install.sh
これで、LedBorgドライバ用のGUIラッパーとドライバ自体がインストールされました。 RaspbianデスクトップにGUIラッパーのアイコンが表示されます。
先に進み、LedBorgアイコンをクリックしてGUIラッパーを起動してください。あなたはそのようにカラーピッカーインターフェースに扱われるでしょう:
モジュールが機能していることを確認するのに最適なタイミングです。それを試してみるために、黒のために保存、任意の色を選びます。いくつかの色を選んでテストします。
いいね!それは明るく、そして我々がプロジェクトのために注文したケースのつや消しプラスチックは適度な拡散を提供します。先に進む前にLEDモジュールでもっと遊びたい場合は、Demo Modeをクリックしてください。
デモモードでは、さまざまな速度ですべての色を切り替えたり、高/低出力をチェックしたり、それ以外の場合はLEDモジュールをペースに合わせることができます。.
デモモードセクションでは、LedBorgを多くの指標のうちの最初のものに変えることもできます。 [色]セクションで[CPU]を選択すると、LEDが緑色から黄色、そして赤色に変わり始め、Raspberry PiのARMプロセッサの負荷を示します。早いうちにSpeedをSlowに変更することをお勧めします。FastはLEDの更新が早すぎるため、CPUインジケータが邪魔になります。.
GUIインターフェイスを使用して色を選択するだけでなく、RGB値を使用して端末から色を選択することもできます。端末を開き、次のコマンドを入力してLEDを消灯します。
echo "000"> / dev / ledborg
LedBorgがRGB値を処理する方法は、0がチャンネルがオフ、1がチャンネルがハーフパワー、2がチャンネルがフルパワーであることを意味します。したがって、たとえば001では、赤チャンネルを0%、緑チャンネルを0%、青チャンネルを50%に設定します。.
値を002に変更すると、LED出力は青のままになりますが、青チャンネルは100%の出力になるため、明るくなります。値を202に、フルパワーで赤と青を組み合わせてマゼンタ色にします。.
LEDを手動で操作する方法がわかったので、スクリプトを使用してLEDを単純なライトから実際のインジケーターに変える方法を見てみましょう。.
LedBorgを雨の指標として設定する
チュートリアルのこの部分では、場所の天気予報に基づいてLedBorg LEDモジュールを雨のインジケータに変えるために、いくつかのことを組み合わせます。 Pythonスクリプトを使用して天気APIを呼び出します。天気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/YOUR API KEY / forecast / q / STATE / CITY.json
APIキー、2文字の州コード、およびWeather Undergroundの検索結果から取得したURLから都市名を入力して、米国の都市の予測を生成できます。.
APIキーと都道府県を挿入したAPI URLを作成したら、Leafpadを使用してPiに新しいテキストドキュメントを作成し、次のコードを貼り付けることで、次のPythonスクリプトを編集できます。
urllib2からのインポート
jsonをインポート
req = urlopen( 'http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json')
parsed_json = json.load(req)
pop = int(parsed_json ['forecast'] ['txt_forecast'] ['forecastday'] [0] ['pop'])#以下はデバッグ値です。.
#ハッシュを編集して変更する
#テストする0から100までの整数
#LEDの反応.#pop = 0
現在の降水量はです。 'format(pop)
#デフォルト設定はLEDをオンにすることです
#20%を超える雨が降る可能性がある場合。調整できます
#あなたが望むように "if pop> 20:"の値.
ポップ> 20の場合:
LedBorg = open( '/ dev / ledborg'、 'w')
LedBorg.write( '002')
デルレボルグ
印刷する( 'Rain!')
それ以外の場合
LedBorg = open( '/ dev / ledborg'、 'w')
LedBorg.write( '000')
デルレボルグ
印刷する( '雨が降りません!')
ファイルをwunderground.pyとして/ home / pi /ディレクトリに保存します。端末を開き、次のコマンドを入力します。
python wunderground.py
APIキーと都道府県コードを正しく入力した場合は、次のような応答が返されます。
あなたの地域の降水量が予測されるならば、あなたのLedBorg出力はそのように見えるはずです:
スクリプトを正しくテストするために雨の日を待つのは面倒です。今日あなたの地域で雨が降らず、LEDを点灯させたい場合は、wunderground.pyスクリプトを編集して、13行目の「pop = pop」パススルー値を60などの20より大きい値に置き換えます。私たちの予測が戻ってきたこと。完了したら、行を「pop = pop」に戻すことを忘れないでください。.
最後のステップは、LEDインジケーターを最新の状態に保つために、先ほど保存したスクリプトを自動的に実行するようにcronジョブをセットアップすることです。このタスクは、このスクリプトとそれに続く電子メールインジケーターの両方に必要なので、もう一方のスクリプトの設定方法を説明した後に、cronジョブの設定について説明します。.
LedBorgをGmailのインディケータとして設定する
受信箱に新しいEメールが表示されることに伴う、ドーパミン修正を好まない人はいますか?チュートリアルのこの部分では、LedBorgを新しいGmailインジケーターとして使用する方法を説明します。前回と同様に、外部入力(この場合はAPIではなくAtomフィード)とLEDを駆動する簡単なスクリプトを組み合わせる予定です。.
Python RSS / Atomフィード読み取りツールであるFeedParserをインストールして、Pythonインストールの機能を少し拡張する必要があります。端末を開き、次のコマンドを入力してください。
sudo easy_installフィードパーサー
インストールが完了したら、Gmailチェックスクリプトを作成して作業を開始できます。もう一度、Leafpadを使用して、次のテキストをエディタに貼り付けます。確認したいGmailアカウントのユーザー名とパスワードと一致するようにユーザー名とパスワードを変更します。.
フィードパーサーのインポート
#Gmailのユーザー名を入力してください
#とパスワード含めない
#の@ gmail.com部分
# あなたのユーザーネーム.
username = "ユーザー名"
password = "パスワード"
mail = int(feedparser.parse( "https://" +ユーザー名+ ":" +パスワード+ "@ mail.google.com/gmail/feed/atom")["feed"]["fullcount"])
#以下はデバッグ値です。.
#ハッシュを編集して変更する
#テストする0または1の整数
#LEDの反応.#メール= 0
メール> 0の場合
LedBorg = open( '/ dev / ledborg'、 'w')
LedBorg.write( '020')
デルレボルグ
印刷する( 'Mail!')
それ以外の場合
LedBorg = open( '/ dev / ledborg'、 'w')
LedBorg.write( '000')
デルレボルグ
印刷(「メールなし!」)
スクリプトをgmailcheck.pyとして保存します。端末を開き、次のコマンドを入力します。
python gmailcheck.py
Gmailの受信トレイに電子メールが届いている場合は、LEDが緑色に変わり、次のような応答が表示されます。
Gmailの受信トレイにメールがある場合、LedBorgは次のようになります。
レインチェックスクリプトと同じように、デバッグ値を含めました。新しいEメールがない場合は、受信箱の数を1に増やすためにEメールを自分で送信するか、またはコメント・ハッシュを編集してデバッグ行を「mail = 1」に変更してスクリプトをテストすることができます。テストが終了したら、必ず行を元に戻してください。.
チュートリアルの次のセクションに進んで、Gmailスクリプトをスケジュールどおりに実行するように設定します。.
スクリプトを実行するためのCronジョブの設定
2つのスクリプトを使用できるようになったので、LEDインジケータを最新の状態に保つために1日を通してスクリプトを実行するためにcronジョブを設定する必要があります。.
最初にしたいことは、以前の実験でLEDが点灯している場合は、それを消すことです。端末タイプ:
echo“ 000”> / dev / ledborg
まだコマンドラインを使っている間に、cronエディタを開くことができます。これまでにcronジョブを設定したことがない場合は、ここでそれを使用するためのガイドをチェックすることを強くお勧めします。とは言っても、ここで基本スケジュールの設定を順を追って説明します。.
端末タイプ:
sudo crontab -e
これにより、NanoテキストエディタでRaspbianのcronテーブルが開きます。矢印キーを使って一番下までスクロールします。これが、Pythonスクリプト用の定期的なcronジョブを設定する場所です。.
rainスクリプトを設定したい場合は、cronテーブルに次の行を入力してください。
* / 5 * * * * python /home/pi/wunderground.py
Ctrl + Xを押して終了します。既存のcronテーブルを保存して上書きするには、yesを選択します。 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学習モジュールを勉強したことを知りました。私が今まで一度も使ったことのない言語の基本的な構文と構造を理解するための素晴らしい方法.