Arduino MKR WiFi 1010でTelegram Botを作る – IoT入門ガイド
必要な部品と材料
- Arduino MKR WiFi 1010 × 1
プロジェクト概要
Arduino MKR WiFi 1010 (ESP32モジュール搭載) を使って、Telegram Bot APIと連携するIoTデバイスを構築します。このプロジェクトは概念実証 (PoC) であり、ボード単体で動作確認可能です。内蔵LEDのON/OFFをTelegramから操作し、将来的にはリレー接続で家電制御 (ヒーター、エアコン等) へ拡張できます。
Telegram Botとは?
ソフトウェアで動作するTelegramアカウント。AI機能を持たせたり、教育・ゲーム・検索・リマインダー・IoT機器制御など多用途に使えます。ここではArduinoへコマンドを送るインターフェースとして活用します。
準備するもの
- Arduino MKR WiFi 1010 (公式ストア)
- Arduino IDE 1.8.5以上 (ダウンロード)
- Micro-USBケーブル
- インターネット接続 (SSID/パスワード、自宅ルーター推奨)
- Telegramアプリ (スマホ/PC/Web版)
手順1: Arduino IDEのセットアップ
- IDEをインストール (ZIP版またはEXE版)
- ツール > ボード > ボードマネージャー で「Arduino SAMD Boards」を検索・インストール (MKR WiFi 1010含む)
- スケッチ > ライブラリをインクルード > ライブラリを管理 で「WiFiNINA」を検索・インストール
- ボードを接続し、ドライバーインストール完了を待つ
- ツール > ボード で「Arduino MKR WiFi 1010」を選択
- 専用ライブラリ
ESP8266TelegramBot(Giancarlo Bacchio氏作、本ボード用に修正済み) をスケッチフォルダに配置 - 正しいCOMポートを選び、「ボード情報の取得」で確認
手順2: Telegram Botの作成
- Telegramで @BotFather を検索しチャット開始
/start→/newbot- ボット名を入力 (連絡先などに表示される名前)
- ユーザー名を入力 (5-32文字、英数字とアンダースコア、**必ず `bot` で終わる** 例:
my_garden_bot) - 発行された TOKEN (長い文字列) をコピー保存 (紛失時は
/tokenで再発行可能) - 任意:
/setuserpic(アイコン),/setabouttext(プロフィール),/setdescription(説明) でカスタマイズ
手順3: スケッチの修正・書き込み・テスト
- 添付のスケッチ (
MKR1010Bot_V1_02.zip) を解凍・開く arduino_secrets.hタブで以下を設定:- WiFi SSID とパスワード
- Bot名、ユーザー名、TOKEN
- ボードとポートを確認し、コンパイル・書き込み
- 重要: シリアルモニターを開いたままにする (ネイティブUSBのため、モニター接続待ち状態から開始)
- Telegramでボット名検索 → チャット開始 →
/startで歓迎メッセージ確認 help(スラッシュなし) でコマンド一覧表示、各コマンドを試す
証明書エラー対処 (「Bot not connected」が出る場合)
- ツール > WiFi101/WiFiNINA アップデータ を開く
- ボードが認識されているか確認
- 「アップデータスケッチを開く」→ 書き込み
- 最新ファームウェアを選択し「ファームウェア更新」
- 「SSL証明書」セクションで「ドメイン追加」→
telegram.org:443入力 → OK - 「証明書をWiFiモジュールにアップロード」
- 本スケッチを再書き込み
改善・拡張のヒント
新しいコマンドの追加
コード内でサブルーチンを追加し、コマンド処理とステータス返信を実装するだけで簡単に拡張可能。
ユーザー制限 (重要!)
デフォルトでは誰でも操作可能。各ユーザーには固有の User ID があり、シリアルモニターで確認できます。コードで許可リストを作り、認証済みユーザーのみコマンド実行するように修正してください。
ハードウェア拡張
I/Oピンにセンサーやリレーを接続可能。注意: MKR WiFi 1010は3.3V動作。5Vデバイス接続時はレベルシフター必須。詳細は 公式ガイド 参照。
コード
MKR1010Bot_V1_02.zip
スケッチ全体は添付ZIPファイルに含まれます (プレビュー不可、ダウンロードしてご利用ください)。
製造プロセス
- GoPiGo v2をWindows 10 IoT Coreで拡張 - Raspberry Pi 3対応
- スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
- Arduinoオーディオ周波数検出器 – 高感度サウンドモジュールで最大音量ピークの周波数を測定
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
- ArduinoとNokia 5110ディスプレイで自作電圧計:ステップバイステップガイド
- SparkFun 7セグメントディスプレイで作る信頼性の高いArduinoカウントダウンタイマー
- 音声で家電を操作:GoogleアシスタントとBluetoothでArduino家電制御
- NextionディスプレイでFridgeyeアプリを構築:ステップバイステップガイド
- Arduinoで自作RCポルシェカー:ステップバイステップガイド
- Arduino UNOとEthernetシールドで太陽放射を測定する自作ピラノメーター