\r\n\r\n

Raspberry Piのgmail通知ランプを作る

この簡単なラズベリーパイのプロジェクトでは、Gmailのメール通知ライトの作り方を学びます。pythonスクリプトは、未読のメールがあればライトを点灯させる...

この迅速かつ簡単なRaspberry Piのプロジェクトでは、** Gmailのメール通知ライトの方法を学習します。Pythonスクリプトは、未読のメールがある場合にライトを点灯させます。このプロジェクトは部品点数も少なく、1時間以内に完成しますもちろん、マインクラフトのレッドストーンブロックなど、透明なプラスチックに3DプリントしたものをLEDに着せるなど、自由自在です。最終的には以下のようになります。

必要なもの

  • ラズベリーピール 1個
  • チェストプレート×1
  • 220Ω抵抗×1
  • 5mmLED×1個
  • Gmailアカウント 1個
  • オス-メス接続ケーブル

ラズベリーの円周率であれば、円周率ゼロでもOKです。必要なのはGPIOピン1本だけで、特にCPUを使うわけでもありません。Piの初心者キットをお持ちの方なら、十分なパーツが揃っているはずです。

建設計画

これは非常にシンプルなプロジェクトです。発光ダイオード(LED)は、PiのGPIO(General Purpose Input Output)ピンに接続されています。非常にシンプルなPythonスクリプトが定期的に実行され、未読のメールをチェックし、それに応じてLEDを点灯または消灯させることができます。

ハードウェア

LEDのプラス(長い足)を抵抗に接続し、GPIOピン14に接続します。 GPIOピンはどれでも構いませんが、モデルによって若干異なるため、最初にピンを確認してください。マイナス端子(端が平らな短い足)をアースに接続してください。

円周率設定

PiにOS(オペレーティング・システム)がインストールされていれば、あまりセットアップは必要ありません(何が必要かは不明ですが?)インストール方法はこちらをご覧ください)。Piで新しいターミナル(左上 > メニュー > アクセサリ > ターミナル)を開きます(コーディング忍者になるためのショートカットをご覧ください)。Pythonスクリプトを格納するための新しいフォルダーを作成する必要があります。次のコマンドを入力します。

pwd

これは「Print working directory」の略で、現在いるフォルダを表示します(デフォルトでは「/home/pi」)。documentsフォルダに移動し、"gmailu python "という新しいディレクトリ(フォルダ)を作成します。

cd Documents/sudo mkdir gmail_python

mkdir」コマンドは、「makedirectory」の略です。以下のものがディレクトリ名として使用されます。これで、ディレクトリが表示されるはずです。

ls

もし間違いがあれば、このディレクトリは簡単に削除することができます。

sudo rm -r gmail_python

で新しいカタログに移動します。

cd gmail_python/

Pythonスクリプトを新規に作成する場合。

sudo nano check_messages.py

これでスクリプトが作成され、Nanoで編集できるように開かれます。もちろん、Vimなど他のプログラムを使ってもいいのですが、このツイートが私の気持ちを集約しています。

冗談抜きで、この2つの比較と総崩れをご覧ください。

CTRL+Xを押してNanoを終了し、ターミナルに戻ります。

パイソンセットアップ

Piのセットアップが完了したので、いよいよコードを書いていきます。このプロジェクトは、Charlie Kuoの素晴らしいGmail Pythonライブラリを必要とします。Githubからライブラリをダウンロードし、中身を解凍してください。その中に「gmail」というフォルダがあるはずです。フォルダごと"/home/pi/Documents/gmail_upython "にコピーしてください。

コマンドラインに切り替えて、もう一度スクリプトを開きます(上キーを押すと、以前に入力したコマンドをスクロールできます)。

sudo nano check_messages.py

ファイルがすでに存在する場合は開き、そうでない場合は作成されます。これはpythonのコマンドであることに注意してください。

import gmail, RPi.GPIO as GPIO, time # import modulesGPIO.setwarnings(False)GPIO.setmode(GPIO.BCM) # tell the Pi what headers to useGPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an outputg = gmail.login('[email protected]', 'YOUR PASSWORD')unread_messages = g.inbox().mail(unread=True)total_messages = 0for message in unread_messages:total_messages += 1if total_messages > 0:# there are unread emails, turn light onGPIO.output(14, True)else:# there are no unread emails, turn light offGPIO.output(14, False)

その際、ユーザー名とパスワードの入力が必要です。ご希望であれば、gmailプラグインの全ソースコードを閲覧することができます。これを行うのが面倒な場合(または2ファクタ認証を使用している場合)、OAuth2を使ってGmailに接続する必要があります。 このチュートリアルでは少し複雑な内容になっていますが、Googleに始めるための良いガイドがあります。

少しコードを分解してみましょう。Pythonのモジュールは特定の目的のために書かれたコードスニペットです(arduinoideのライブラリと似ています)。RPi.GPIOファイルはGPIOにアクセスするためのPi特有のモジュール、gmailは以前にダウンロードしたモジュール、timeはタイミング機能を提供するPythonに組み込まれているモジュールです。"GPIO.setmode" と "GPIO.setup" は、現在、Pi にピン 14 が出力であることを伝え、「Broadcom のピン番号」(BCMの詳細について)を参照してください。

この回線は、Gmailのアカウントに接続します。g "というオブジェクトを作成し、先にインポートしたgmailモジュールのログインメソッドを呼び出しています。gmailのメールアドレスとパスワードを忘れずに入力してください。

g = gmail.login('[email protected]', 'YOUR PASSWORD')

ここで、未読のメッセージをすべて取得し、"unread messages "という変数に格納します。

unread_messages = g.inbox().mail(unread=True)

unread=True "は、送信者や件名など、異なるパラメータに基づいてメッセージを取得するために変更することができます。詳しくは、API(Application Programming Interface)のドキュメントをご覧ください。

次に、forループを使って各メッセージをループさせます。

for message in unread_messages:total_messages += 1

Forループはとても便利です。同じコードブロックを何度も繰り返し、その都度微妙に値を変えていることが多い。このforループは、未読メッセージの各メッセージを繰り返し、「total \u messages」変数をインクリメントします。

最後に、簡単な "if "ステートメントを使って、未読のメッセージがあればLEDを点灯させ、そうでなければ消灯させるようにします。

Pythonは大文字と小文字を区別し、ホワイトスペースを使用することを覚えておいてください。コードの実行に問題がある場合は、こちらのサイトをお試しください。Pythonで貼り付けて、「validate above Python code」ボタンを押します。これは、Pythonにエラーがある場合、どのようなエラーがあるかを教えてくれるものです。

ターミナルに切り替えて、スクリプトを実行します。

python check_messages.py

このコマンドは、スクリプトを実行します。受信トレイのメールを手動で「未読」に変更してから、再度スクリプトを実行すると、LEDが点灯・消灯し、受信トレイの状況が反映されます。

クーロン設定

スクリプトが動作するようになったので、次は自動化する番です。cronジョブは、自動バックアップなどのタスクやスクリプトをスケジュールするために使用されます。Crontab(スケジュールされたタスクのリスト)を開くには。

crontab -e

スケジュールされたタスクがまだ設定されていない場合、このファイルは空になります(ドキュメントやコメントが含まれている場合があり、その場合はその前に \ が付きます)。すでにここに入力されている場合は、新しいコマンドを改行して入力するだけです: \

* * * * * python ~/pi/Documents/gmail_python/check_messages.py

5つの「星」("****")は、タスクが実行される頻度を指定します(例:毎週第2水曜日の2:00)。5つの星は、1分に1回ジョブを実行することを指定します。これは、許容される最小の間隔です(ジョブスケジューリングの詳細については、こちらをご覧ください)。次に、"python "は、スクリプトをpythonファイルとして実行するようスケジューラに指示する。最後に、"~/pi/Documents/gmailu pagues python/check_message.py" はスクリプトの絶対パスで、相対パスではうまくいきません。

もう、あなただけのGmail通知ランプを手に入れるべき!さまざまなニーズやフィルター(フィルターの使い方はこちら)に応じてメッセージを見つけるように変更したり、さまざまなコードのスニペットを実装することも簡単です。おそらく、メールベースのTwitterボットを作成できます(Pi Twitterボットの構築について詳しくはこちら)。

どのように通知ボックスを書くことになったとしても、その内容をぜひコメントで教えてください。

  • 2021-03-17 17:32 に公開
  • 閲覧 ( 29 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ