Raspberry Piは常に楽しく、簡単にプロジェクトを構築できます。その強力なARMアーキテクチャとオープンソースのLinuxベースのオペレーティングシステムは、プロジェクトをすぐにオンラインにするのに大いに役立ちました。このチュートリアルでは、Telegramと呼ばれる人気のチャットアプリケーションを介して、Raspberry Piと携帯電話の間でデータ(ファイル/写真/ビデオ/オーディオ/テキスト)を共有する別の興味深い方法を学習します。
Telegramを初めて使用する人にとっては、Whatsappと非常によく似た、Android用のPlayストアで利用できるチャットベースのアプリケーションです(iPhoneとWindowsでも利用できます)。 Playストアでのダウンロード数は1億回を超え(2017年5月10日現在)、Whatsapp(指を交差させた)よりも高速で機能的であると人々は主張しています。このアプリケーションの特別な機能の1つは、ボットをサポートしていることです。つまり、このスマートフォンアプリケーションは、人間だけでなく機械でも使用できます。私たちの場合、マシンはRaspberryPiになります。ボットとして機能する方法についてRaspberryPiをトレーニングすると、誰でも(公開すると)、通常の人とチャットするようにRaspberry Piとチャットでき、写真、写真、ドキュメント、オーディオファイルを共有することもできます。あなたはそれをあなた自身のパーソナルアシスタントになるように訓練することさえできます、クールに聞こえますか?を構築する方法を学びましょうラズベリーパイテレグラムボット。
必要な材料:
- インターネットに接続されているRaspberryPi
- テレグラムアプリケーションを実行するモバイル。
このプロジェクトに関係するハードウェアはそれほど多くないので、Piを持って椅子でリラックスし、以下の手順に従ってください。Raspberry Piを初めて使用する場合は、RaspberryPiの紹介記事とその他のRaspberryPiチュートリアルに従ってください。
ステップ1:モバイルにTelegramをインストールする
最初のステップは、モバイルにTelegramをインストールすることです。TelegramはAndroid、IOS、さらにはWindowsプラットフォームでも利用できるので、Telegramアプリケーションをダウンロードしてください。すべてのアプリケーションと同様に、Telegramの使用を開始するための小さなサインアップ手順があり、ホーム画面に到達するまでそれを続けます。
ステップ2:ボットファーザーと話す
次のステップは、ボットの父に新しいボットを作成するように要求することです。ホーム画面の右上隅に検索アイコンが表示されます。それをクリックして、「botfather」という名前を検索します。Botfatherはそれ自体がボットであり、新しいボットを作成するためのガイドを提供します。次の図に示すように、[開始]をクリックして、/ newbotを選択します。これで、ボットはボットの名前やボットのユーザー名など、いくつかの詳細を要求します。これらの詳細を入力し、ユーザー名を覚えておいてください。将来必要になるためです。
ステップ3:アクセス用のトークンを取得する
ボットをcircuitdigest、ユーザー名をcircuitdigestBotと名付けました。このプロセスの後、ボットファーザーはアクセス用のトークンを提供します。これはボットのパスワードのようなもので、人々はこのトークンキーを使用してボットのプログラムを制御できます。したがって、安全に保管し、誰とも共有しないでください。このトークンキーを受け取ったら、RaspberryPiに移ります。
ステップ4:RaspberryPiにTelegramをインストールするためのTelepot
RaspberryPiでTelegramBotを使用することは、Telepotと呼ばれるPythonパッケージによって可能になります。Lxターミナルで次のコマンドを使用して、このパッケージをRaspberryPiにインストールする必要があります
sudo apt-get install python-pip sudo pip install telepot
TelepotがRaspberryにインポートされると、Pythonプログラムでこのパッケージを使用して、Telegramボットと通信できます。
ステップ5:RaspberryPiのプログラミング
Telegramで作成したボットは赤ちゃんのようなもので、何をどのように行うかを教えない限り、それ自体では何もできません。この教育は、RaspberryPiとPythonスクリプトを介して行うことができます。このチュートリアルでは、メッセージ、写真、音声、ドキュメントの送信など、いくつかの基本的なアクションを実行するようにボットをプログラムしました。したがって、特定のコマンドを言うと、特定のアクションで応答します。コマンドとアクションは次の表にリストされています。
テレグラムからのコマンド |
RaspberryPiによる応答 |
/こんにちは |
文字列「Hi!CircuitDigest」 |
/時間 |
現在の時刻で返信します |
/ロゴ |
画像で返信(CircuitDigestのロゴ) |
/ファイル |
(現在のプログラムを含む)ファイルで応答します |
/オーディオ |
デモオーディオファイルで返信します |
上記のアクションを実行するための完全なプログラムは、このページの下部にあります。しかし、そのすぐ下で、プログラムがどのように機能するかを理解するのに役立つ、プログラムの重要なスニペットについて説明しました。
最初のステップは、すべてのライブラリをインポートすることです。ここでは、Telegramボットを使用するためにテレポートライブラリが明らかに必要になります。また、time、timedateライブラリを使用して、Raspberrypiの現在の時刻を読み取ります。次に、値が格納されているオブジェクトを作成します。
import time、datetime import telepot from telepot.loop import MessageLoop now = datetime.datetime.now()
次のステップは、モバイルのTelegramアプリからの着信コマンドに基づいてアクションを実行するための関数を作成することです。ここで、関数の名前はactionです。ボットが生き返るのはこの関数の内部です。ボットはそれ自体で会話を開始することはできません。何かを尋ねた場合にのみ応答できます。したがって、何かを尋ねるたびにチャットIDがあります。このチャットIDはアドレスに似ていますが、ボットが返信できるのはこのチャットIDを使用する場合のみです。したがって、最初のステップは、チャットIDとそれが私たちに伝えようとしているメッセージを読むことです。また、デバッグのために受信したメッセージを出力します。
def action(msg):chat_id = msg command = msg print '受信:%s'%コマンド
関数内のさらに下で、このコマンドを事前定義されたテキストと比較し、特定のタスクを実行します。この最初のコマンドは / hi になり、「Hi!CircuitDigest」
if command == '/ hi':telegram_bot.sendMessage(chat_id、str( "Hi!CircuitDigest"))
次のコマンドは / time で、これに現在の時刻を返信します。すでに時刻と日付があります。ここでは、時間と分に基づいて分割し、 str 関数を使用して追加し ます 。
elifコマンド== '/ time':telegram_bot.sendMessage(chat_id、str(now.hour)+ str( ":")+ str(now.minute))
次のコマンドは / logo で、ボットはURLから画像を取得して送信します。画像は、URLまたはハードディスクから送信できます。ここでは、CircuitDigestのロゴを表示するURLを使用しました。
elifコマンド== '/ logo':telegram_bot.sendPhoto(chat_id、photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
次のコマンドは / fileで 、 Aisha.py という名前のファイルをハードディスクから送信します。ディレクトリのアドレスを変更することで、任意のファイルを送信できます
elifコマンド== '/ file':telegram_bot.sendDocument(chat_id、document = open( '/ home / pi / Aisha.py'))
最後のコマンドは / audioになり ます。これはハードディスクから任意のmp3ファイルを送信できます。ここではデモとしてtest.mp3というオーディオファイルを使用しました。
elifコマンド== '/ audio':telegram_bot.sendAudio(chat_id、audio = open( '/ home / pi / test.mp3'))
さて、これが最も重要なステップです。ここで、TelegramボットにPythonスクリプトへのアクセスを許可します。ここでは、ボットとしてアウト名前 telegram_botを し、それを私は、プライバシーの問題として私のトークンの最後の数桁を削除した以下の行では、ステップ3で私たちのbotfatherによって与えられたトークンアドレスを割り当てます。また、印刷を使用してボットの詳細をシェル画面に表示します。これにより、動作していることに気付くことができます。
telegram_bot = telepot.Bot( '468382312:AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX')print(telegram_bot.getMe())
プログラムがどのように機能するかを理解したことを願って、次のステップに進みましょう。
ステップ6:RaspberryPiでプログラムを実行する
前に述べたように、完全なプログラムはこのページの最後にありますが、ここから同じものをダウンロードすることもできます。コードを開いたら、プログラムのトークンアドレスをトークンアドレスに変更してください。
ここでPythonコードを実行すると、次のようなシェルウィンドウにボットの詳細が表示されます。
ここで、私のボットユーザー名はcircuitdigestBotです。ここでボットの名前を取得した場合、それはすべてが順調に進んでいることを意味します。
「 稼働中 」と表示されたら、ボットがアクションの準備ができており、コマンドに応答できることを意味します。
ステップ7:出力を楽しむ
あとは、ボットがプログラムにどの程度反応しているかを確認するだけです。私の場合は「circuitdigestBot」というボット名を検索してください。ユーザー名ではなくボット名を検索します。ユーザー名はボットで終わる必要があります。
ボットを開いたら、[スタート]をクリックして、/ hi、/ time、/ file、/ logo、/ audioなどのコマンドを入力すると、それに応じて返信されます。
シェルスクリプトを使用して、スクリプトが現在何に応答しているかを確認できます。完全な作業は、このページの最後にあるビデオで見つけることができます。
ステップ8:ハイタッチをください
チュートリアルを理解し、このRaspberry piテレグラムボットを作成し、TelegramAppを使用してRaspberryPiと 通信できるようになることを願っています。ああ!問題が発生した場合は、コメントセクションからお知らせください。折り返しご連絡いたします。また、このプロジェクトがどのように気に入ったか、または今後のプロジェクトでこれを使用して何を構築してほしいかを教えてください。
また、次のチュートリアルでは。コマンドの送信方法を変更し、Raspberry Piのハードウェアに関連するものに変更することで、これをよりクールに見せます。