8.7 ESPカメラとTelegramボット

このプロジェクトでは、お気に入りのメッセージングアプリケーションとESP32を統合する方法をデモンストレーションします。今回はTelegramを使用します。

Telegramボットを作成し、どこからでも回路を制御したり、写真を撮影したり、フラッシュを管理することができます。さらに、誰かがデバイスのそばを通るたびに、新しい写真を撮影してTelegramアカウントに通知を送信します。

必要な部品

このプロジェクトでは、以下のコンポーネントが必要です。

全てのキットを購入することは非常に便利です。リンクはこちらです:

名前

このキットのアイテム

リンク

ESP32 Starter Kit

320+

ESP32 Starter Kit

以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

ESP32 WROOM 32E

BUY

ESP32カメラ拡張ボード

-

ブレッドボード

BUY

ジャンパーワイヤ

BUY

抵抗器

BUY

LED

BUY

PIR動きセンサーモジュール

BUY

Telegramボットの作成

  1. Google Play または App Store にアクセスして Telegram をダウンロードしてインストールします。

  2. Telegram アプリで botfather を検索し、表示されたらクリックして開きます。または、このリンクに直接アクセスします:t.me/botfather。

    ../../_images/sp230515_135927.png
  3. 開くと、チャットウィンドウが表示されます。コマンド /start を送信します。

    ../../_images/sp230515_140149.png
  4. /newbot と入力し、指示に従ってボットを作成します。成功すると、BotFatherは新しいボットのアクセスリンクとAPIを提供します。

    ../../_images/sp230515_140830.png

Telegramユーザーの承認

誰でも作成したボットとやりとりできるため、情報が漏洩するリスクがあります。これに対処するため、承認されたユーザーにのみボットが応答するようにしたいと考えています。

  1. Telegram アカウントで IDBot を検索するか、リンクを開きます:t.me/myidbot。

    ../../_images/sp230515_144241.png
  2. コマンド /getid を送信します。後でプログラムで使用するために、提供されたIDを保存します。

    ../../_images/sp230515_144614.png

コードのアップロード

  1. まずカメラを接続します。

  2. 回路を組み立てます。

    ../../_images/iot_7_cam_telegram_bb.png
  3. コードを開きます。

    • esp32-starter-kit-main\c\codes\iot_7_cam_telegram ディレクトリにある iot_7_cam_telegram.ino ファイルを開くか、Arduino IDEにコードをコピーします。

    • ボード(ESP32 Dev Module)と適切なポートを選択した後、 アップロード ボタンをクリックします。

    • "Unknown COMxx"が常に表示されますか?

    • ここでは UniversalTelegramBotArduinoJson ライブラリを使用しており、 Library Manager からインストールできます。

  4. 次の行を見つけて、あなたのWiFiの詳細に <SSID><PASSWORD> を置き換えます。

    // Replace the next variables with your SSID/Password combination
    const char* ssid = "<SSID>";
    const char* password = "<PASSWORD>";
    
  1. 次の行を更新し、@IDBotから取得したTelegram IDで <CHATID> を置き換えます。

    // Use @myidbot to find out the chat ID of an individual or a group
    // Also note that you need to click "start" on a bot before it can
    // message you
    String chatId = "<CHATID>";
    
  2. 次の行を更新し、@BotFatherから提供されたTelegram BOTのトークンで <BOTTOKEN> を置き換えます。

    // Initialize Telegram BOT
    String BOTtoken = "<BOTTOKEN>";
    
  3. 正しいボード(ESP32 Dev Module)とポートを選択した後、 アップロード ボタンをクリックします。

  4. シリアルモニターを開きます。IPアドレスが表示されれば、正常に実行されたことを意味します。

    Connecting to xxxx
    ESP32-CAM IP Address: 192.168.18.76
    Init Done!
    
  5. これで、Telegramを通じてESP32とやり取りすることができます。

    ../../_images/sp230515_161237.png