[IoT] Arduino MKR WiFi1010を搭載したテレグラムボット
コンポーネントと消耗品
| × | 1 |
このプロジェクトについて
このプロジェクトは、ArduinoをTelegram BotAPIとインターフェースする方法を示しています。このプロジェクトは、U-BLOXのESP32モジュールを搭載した新しいMKR WiFi1010ボードを中心に構築されています。
この段階では、プロジェクトは概念実証にすぎず、何ができるかを示すだけなので、このために必要なのはArduinoボードだけです。
しかし、テレグラムボットとは何ですか?
ボットは、人ではなくソフトウェアによって操作される単なるTelegramアカウントであり、多くの場合、AI機能を備えています。教える、再生する、検索する、ブロードキャストする、思い出させる、接続する、他のサービスと統合する、さらにはモノのインターネットにコマンドを渡すなど、何でもできます。 (Telegramによるクレジット:https://telegram.org/blog/bot-revolution)
この例では、単純なIoTデバイスを構築するArduinoにコマンドを渡します。簡単なコマンドに応答し、組み込みのLEDのオン/オフも切り替えます。想像力を働かせましょう...(たとえば、1つまたは複数のリレーをI / Oピンに接続し、スマートフォンでヒーターやエアコンシステムのオン/オフを切り替えることを想像してみてください)。
>
ステップ1:必要なもの <図> <図>
このプロジェクトには次のものが必要です:
- ArduinoストアのArduinoMKR WiFi 1010:https://store.arduino.cc/arduino-mkr-wifi-1010
- Arduino IDE 1.8.5以降:https://www.arduino.cc/en/Main/Software
- ArduinoをPCに接続するためのマイクロUSBケーブル
- インターネット接続には、SSIDとパスワードが必要です。自分のホームルーターを使用して、ブロックされていないことを確認することをお勧めします。
- ブランドに関係なく、スマートフォンにインストールされている電報アプリ。PC版とWeb版もここで確認してください!
ステップ2:IDEをインストールする <図> <図> <図>
ええ、私は知っています、私は知っています...あなたのほとんどはすでにPCにArduino IDEをインストールしていますが、このチュートリアルは初心者も対象としています。
したがって、まず、選択したArduino IDE 1.8.5をダウンロードします(「非管理者」のzipファイルまたはexeファイル)
1.8.5バージョンをお勧めします。古いバージョンはテストしておらず、プロジェクトで使用されている新しいボードはまったくサポートされていません。
次に、新しいボードとそのドライバをインストールする必要があります。
- IDEを起動します
- ツールから メニューはボードを選択します 次に、プロセッサリストの一番上で、ボードマネージャを選択します。 。
- 新しいMKRWiFi1010が含まれているArduinoSAMDボードが見つかるまで、新しいウィンドウをスクロールします(画像を参照)。
- そのタブをクリックするか、タブ内の[詳細情報]をクリックして、最新バージョンを選択してインストールします。
- インストールが完了するのを待ちます。ドライバのインストールも処理します
- このボードには新しいWiFiライブラリも必要です。スケッチ、ライブラリを含めるを選択してください。 およびライブラリの管理。 Wifininaを検索し、上記のプロセッサで行ったようにインストールします。
次に、新しいArduinoボードを接続し、Windowsがドライバーのインストールを完了するのを待ちます。
ツール->ボードから メニューには新しいボードがあり、MKR WiFi1010を選択します。
このプロジェクトには、Giancarlo BacchioによるESP8266TelegramBotライブラリという別の特別なライブラリが必要です。ライブラリは、このボードで動作するように少し変更されているため、スケッチのフォルダに含まれています。
正しいCOMポートを選択し、ボード情報の取得を使用してボードをテストします コマンド。
おめでとうございます。IDEはこれで完了です。
ステップ3:テレグラムボットを作成する <図> <図> <図>
新しいTelegramボットの作成は非常に簡単です。
Telegramアプリを開き、検索バーに@BotFatherと入力して、彼とチャットを開始します(image1).BotFatherは...ボットファクトリです。新しいボットを作成し、その設定を変更するのに役立ちます。
/ start の後 コマンドを実行すると、ヘルプリスト(image2)が表示されます。
- 「 / newbot 」と入力します (image3)ボットの名前を入力します。名前は連絡先の詳細などに表示されます。
- BotFatherはユーザー名を尋ねます。ユーザー名は短い名前で、メンションやtelegram.meリンクで使用されます。ユーザー名の長さは5〜32文字で、大文字と小文字は区別されませんが、ラテン文字、数字、およびアンダースコアのみを含めることができます。 ボットのユーザー名は「bot」で終わる必要があります。例: 「tetris_bot」または「TetrisBot」 。
- 名前とユーザー名の両方が有効な場合は、TOKENと呼ばれる長い文字列を受け取ります。これは、Telegramサーバーとの通信に使用される個人の「キー」です。今のところ、PC上のテキストファイルにコピーして貼り付けてください。後でArduinoコードで使用します。失っても心配ありません。チャットを再度開いて / token と入力してください。 新しいものを生成します。
すべての手順はここで説明されています:https://core.telegram.org/bots#6-botfather
高度な (オプション)
チャットを再度開き、 / help と入力します
/ setuserpic をクリック(または入力)します ボットの画像をアップロードするには、 / setabouttext をクリック(または入力)します。 ボットの[概要]セクションを設定するには:ボットのプロフィールページにこのテキストが表示され、誰かと共有するとボットへのリンクとともに送信されます。
/ setdescription をクリック(または入力)します ボットの説明セクションを設定します。 「このボットは何ができるか」というタイトルのブロックで、ボットとのチャットを開くと、この説明が表示されます。
ステップ4:スケッチを変更、アップロード、テストする <図> <図> <図> <図>
ソフトウェアをArduinoMKR WiFi1010ボードにアップロードする時が来ました。
添付のスケッチをダウンロードして解凍します。何をしているのかわからない場合は、名前やフォルダを変更しないでください。
変更
スケッチを開きます。いくつかの情報を入力する必要があります(image1)、
arduino_secrets.hタブに移動します:
- WiFiネットワーク情報を見つけて、ネットワーク名(SSID)とパスワードを入力します。
- テレグラムボット情報を見つけて、@ BotFatherから提供された名前、ユーザー名、トークンを入力します
アップロード
ボードがIDEで正しく(image2)接続されていることを確認してから、コードをコンパイルしてみてください。コンパイルがうまくいったら、ボードにアップロードしてください。数秒で完了します。
問題が発生した場合は、タイプミスを確認して再試行してください。
テスト
[重要!]スケッチはログをIDEに送信します。プロセッサには、ネイティブUSBポート(Leonardoボードなど)があります。電源を入れると、コードはシリアルモニターが実行されるまで待機します。それで、それをPCに接続させて、シリアルモニターを開きます。 Arduinoは最初にインターネットに接続し、次にTelegramサーバーのポーリングを開始して新しいメッセージを探します(画像3)。
次に、お好みのデバイスでTelegramを開き、検索ボックスにボットの名前を入力します(「bot」で終わるユーザー名ではありません)。それとチャットを開きます。
ボットとのチャットを開始する最初のコマンドは、 / start です。 、Arduinoがウェルカムメッセージで応答します。ヘルプと入力します。 (スラッシュなしで)、サポートされているコマンドのリストで応答します。すべてを試すことができます(image4)。
テストは終了です。何かが機能していない場合は、スケッチに入力されている情報(名前、ユーザー名、トークンなど)を確認してください。
証明書 テレグラムサーバーへの接続でエラーが発生した場合(ログ:ボットが接続されていません):
- ツールを開く-> Wifi101 / wifininaアップデーター
- ボードが接続されていることを確認し、アップデータツールの左側にあるポートを確認します。ボードがそこにある必要があります
- [アップデータスケッチを開く]をクリックしてボードにアップロードします
- アップロード後、アップデータでボードの最新のファームウェアを選択し、[ファームウェアの更新]をクリックします
- 更新後、アップデータの[SSL証明書]セクションで[ドメインの追加]をクリックし、ダイアログで[telegram.org:443を書き込む]をクリックして、[OK]を押します。
- [証明書をwifiモジュールにアップロード]をクリックします
- このスケッチをボードにアップロードします
ステップ5:改善 <図>
コードを見ると、新しいコマンドを実装してユーザーに答えるのは非常に簡単です。
新しいコマンド
新しいコマンドごとにサブを書くことができます。すべての潜水艦がコマンドの完了を処理し、(最終的には)ステータス情報をユーザーに返します。
ユーザーの制限
もちろん、このプロジェクトは単なるデモです。 Telegramユーザーは誰でもあなたの家に接続して、不要なコマンドを送信できます。あなたはこれを望まない!。
さて、image1を見ると、2人のユーザーが接続していることがわかります。ご覧のとおり、各ユーザーには独自のユーザーIDがあります。コード側で少し作業するだけで、許可されたユーザーのみをフィルタリング(またはリストを作成)できます。コードを調べて、ユーザーID番号を傍受してみてください。次に、よく知られているユーザーからのみコマンドを実行します。
ハードウェア
ハードウェア側では、多くのセンサーとリレーをArduinoのI / Oピンに接続できます。
注意:このプロジェクトで使用されるボードは3.3V耐性です!!!必要に応じて電圧レベルシフターを使用してください!このボードの詳細とヒントについては、https://www.arduino.cc/en/Guide/MKRWiFi1010
をお読みください。以上です、お楽しみください!
コード
- MKR1010Bot_V1_02.zip
MKR1010Bot_V1_02.zip C / C ++
Telegram Botスケッチプレビューなし(ダウンロードのみ)。
製造プロセス