Telegramは、モバイル制御のすべての目的でRaspberryPiと組み合わせるのに最適なアプリケーションです。非常に優れた開発者サポートがあり、Telegramボットのパフォーマンスを向上させるために多くの機能がまもなくリリースされる予定です。前のチュートリアルでは、ラズベリーパイ用のテレグラムボットをセットアップする方法を学びました。また、それとチャットして、画像、ドキュメント、オーディオファイルを共有する必要があることも学びました。
次に、Telegramを使用してRaspberry PinのGPIOピンを制御する方法を学習して次のステップに進み、ボットにハードウェアサポートを提供します。このチュートリアルでは、4つのLEDをRaspberry Pi GPIOピンに接続し、Telegramの自然言語(チャットのように)を使用してそれらを切り替えます。面白そうですね。始めましょう。
必要な材料:
- 4つのLED(任意の色)
- Raspberry Pi(インターネット接続付き)
- ブレッドボード
- 接続線
前提条件:
チュートリアルに進む前に、Raspberry Piがインターネットに接続されており、PiでPythonプログラムを実行できることを確認してください。また、前のチュートリアルを読んで、Raspberry Pi Piを使用してTelegramボットをセットアップする方法を確認してください。プロジェクトを進めるために、そのようなものに精通していることを前提としています。
Raspberry Piを初めて使用する場合は、RaspberryPiの紹介記事とその他のRaspberryPiチュートリアルに従ってください。
回路図:
RaspberryPiとTelegramAndroid Appを使用してLEDを制御するための回路図は、4つのLEDといくつかの接続線にすぎません。Raspberry PiGPIOピンは3.3VTTLで動作するため、電流制限抵抗は必要ありません。以下の回路に従って、LEDを接続してください。
次の表は、4つのLEDの接続のピン番号とGPIO番号を決定するのに役立ちます。
導かれたターミナル |
ピン番号 |
GPIO番号 |
緑の陽極 |
ピン31 |
GPIO 6 |
赤い陽極 |
ピン33 |
GPIO 13 |
黄色の陽極 |
ピン35 |
GPIO 19 |
ホワイトアノード |
ピン37 |
GPIO 26 |
4つすべてのカソード |
ピン39 |
接地 |
以下は、上記の表に従って4つのLEDが接続されている回路図です。
接続すると、ハードウェアのセットアップは次のようになります。
ラズベリーPythonプログラム:
ハードウェアの準備ができたら、Pythonプログラムに進むことができます。このプログラムでは、Telegramボットから送信されたデータ(メッセージ)を読み取り、それに応じてLEDを切り替える必要があります。より自然にするために、各文をチェックしてプログラム内でそれらの文をハードコーディングする代わりに、単語をチェックしてそれに応じて進めることができます。
したがって、プログラムは主に2つの単語をチェックします。それらはオンとオフです。これらの2つの単語のいずれかを検出すると、白、黄、緑、赤などの他のキーワードを検索します。それぞれのカラーLEDは、単語が検出された場合にのみ切り替えられます。また、検出された単語の文字列を更新して、電報ボットにメッセージを送り返します。
完全なプログラムは、このページの下部に見つけることができます。そのすぐ下で、プログラムを意味のある小さなジャンクに分割して説明しました。
このプログラムを機能させるには、 テレポットを ダウンロードしてRaspberryPiにインポートする必要が あり ます。前のチュートリアルでは、Raspberry Pi内にテレポートをダウンロードしたので、次に示すように、GPIOライブラリと一緒にプログラムにテレポートをインポートする必要があります。
RPi.GPIOをGPIOとしてインポートtelepot.loopからtelepotをインポートimportMessageLoop
このプログラムを使用してLEDライトを制御し、LEDの色は白、黄、赤、緑になります。それらは回路図に示されているピンに接続されています。これらのLEDのピン名を色に基づいて定義し、プログラムで使用できるようにします。
白= 26黄= 19赤= 13緑= 6
次のステップは、これらすべてのLEDピンを出力ピンとして定義し、以下の行を使用してデフォルトでオフになっているように定義することです。
#LEDホワイトGPIO.setup(white、GPIO.OUT)GPIO.output(white、0)#最初はオフ#LEDイエローGPIO.setup(yellow、GPIO.OUT)GPIO.output(yellow、0)#最初はオフ#LED赤GPIO.setup(red、GPIO.OUT)GPIO.output(red、0)#最初はオフ#LED緑GPIO.setup(green、GPIO.OUT)GPIO.output(green、0)#最初はオフ
前のチュートリアルで学習したように、Raspberryボットが実行する必要のあるすべてのアクションは関数アクション内で定義されます。ここでは、ボットにモバイルから送信されたメッセージをリッスンさせ、それをいくつかのキーワードと比較し、それに応じてLEDを切り替える必要があります。
モバイルから送信するメッセージごとに、チャットIDとコマンドがあります。このチャットIDは、プログラムが送信者に返信するために必要です。したがって、以下に示すように、チャットIDとメッセージを保存します。
chat_id = msgコマンド= msg
これで、電話から送信したものはすべて、変数 コマンドに 文字列として保存されます。したがって、私たちがしなければならないのは、この変数のキーワードをチェックすることだけです。Pythonには、ここで物事を簡単にするコマンドがあります。たとえば、 コマンド 変数に格納されている文字列に「on」という単語が含まれているかどうかを確認する必要がある場合は、次の行を使用できます。
コマンドで「オン」の場合:
同様に、すべてのキーワードをチェックし、「オン」を受け取ったら、ユーザーが言及した色のチェックに進みます。これも、同じキーワードを比較することにより、同じコマンドによって実行されます。また、ステータスメッセージとしてユーザーに返信できる message という名前の文字列を更新します。
if'on 'in command:message = "Turned on" if'white' in command:message = message + "white" GPIO.output(white、1)if'yellow 'in command:message = message + "yellow" GPIO.output(yellow、1)if'red 'in command:message = message + "red" GPIO.output(red、1)if'green' in command:message = message + "green" GPIO.output(green、1 )if'all 'in command:message = message + "all" GPIO.output(white、1)GPIO.output(yellow、1)GPIO.output(red、1)GPIO.output(green、1)message = message + "light(s)" telegram_bot.sendMessage(chat_id、message)
上に示したように、「緑」、「白」、「赤」、「黄色」、「すべて」、「オン」などの特定のLEDのみのキーワードを探します。ジョブが完了すると、何が起こったかについてユーザーにメッセージを送り返します。同じ方法は、ライトをオフにするために使用することができますだけでなくオフ。
if'off 'in command:message = "Turned off" if'white' in command:message = message + "white" GPIO.output(white、0)if'yellow 'in command:message = message + "yellow" GPIO.output(yellow、0)if'red 'in command:message = message + "red" GPIO.output(red、0)if'green' in command:message = message + "green" GPIO.output(green、0 )if'all 'in command:message = message + "all" GPIO.output(white、0)GPIO.output(yellow、0)GPIO.output(red、0)GPIO.output(green、0)message = message +「light(s)」telegram_bot.sendMessage(chat_id、message)
Raspberry PiとTelegramボットを使用したLEDの制御:
LEDを接続し、Pythonでプログラムを起動します。ボットのトークンアドレスを変更したことを確認してください。そして、必要なコマンドの入力を開始します。たとえば、赤と黄色のライトをオンにするには、次のコマンドのいずれかを使用できます。
1.赤と黄色のライトをオンにします
2.赤と黄色を右にオンにします
3.赤と黄色について
4.Pleaseは入れに黄色と赤の光
ご覧のとおり、ボットはキーワードのみを検索し、文内の他の単語を無視します。このようにして、ボットは自然に話すことができます。プロジェクトの完全な作業は、このページの最後にあるビデオで見つけることができます。
どうぞ!プロジェクトで遊んで楽しんでください。あなたは今それを全く新しいレベルに持っていくことができます。両方のチュートリアルを組み合わせることで、世界中のどこにいてもスマートフォンからハードウェアを制御し、メッセージ、オーディオ、画像、さらにはドキュメントの形でRaspberryPiから入力/結果を取得することができます。LEDをリレーやACアプライアンスに置き換えると、スマートフォンで制御されるホームオートメーションになる可能性があります。だから、あなたの創造性を使って、あなた自身のクールなプロジェクトを構築してください…
あなたがプロジェクトを気に入って、似たようなものを作るのを楽しんだことを願っています。コメントセクションで問題が発生した場合はお知らせください。喜んでサポートさせていただきます。また、あなたのクールなアイデアを私と共有し、私たちが何を構築できるかを見てみましょう。