Bluetooth 経由で Android スマートフォンと通信するように ESP32 をセットアップおよびプログラムする方法

Bluetooth Jing Youde Android Sumatofonto Tong Xinsuruyouni Esp32 Wosettoappuoyobipuroguramusuru Fang Fa



ESP32 は、幅広い機能を備えたマイクロコントローラー ボードです。 Wi-Fi および Bluetooth モジュールが内蔵されています。これらのモジュールを両方使用すると、ESP32 をワイヤレスでプログラムできます。これにより、ESP32 周辺機器を制御するための長い配線接続を心配する必要がなくなります。

この記事では、ESP32 ボードを Android スマートフォンに接続し、Bluetooth 経由でデータを通信します。さらに、ESP32のGPIOピンに接続されたLEDをAndroidスマートフォンから直接制御してみます。

コンテンツ:







ESP32 Bluetooth LEとは

ESP32 は、Bluetooth Classic と、スマート Bluetooth とも呼ばれる Bluetooth Low Energy の両方をサポートするマイクロコントローラー ボードです。 BLE またはスマート Bluetooth は、エネルギー効率の高い通信に特化しているか、短距離通信や少量のデータ転送用に設計されています。



ESP32 の BLE 機能により、ESP32 は Bluetooth 通信でサーバーまたはクライアントとして機能できます。サービスの読み取りおよび書き込みなどのタスクを処理できます。また、接続を暗号化し、UART-BLE パススルー モードでのデータ送信用のシリアル ポート プロファイル (SPP) 接続を確立することもできます。 ESP32 Bluetooth は 4.2 プロトコルをサポートしています。これは、物理層 (PHY) やリンク層 (LL) などのさまざまな層と互換性があることを意味します。また、特にホスト コントローラー インターフェイス (HCI) もサポートしています。



ESP32 Classic と BLE Bluetooth の違い表を確認してください。





特徴 クラシック Bluetooth 低エネルギー Bluetooth (BLE)
通信タイプ 継続的な双方向コミュニケーション 断続的な、主に一方向のデータ バースト
動作範囲 最大100メートルまで到達可能 通常は 100 メートル以内で動作します
電力使用量 最大1ワットを消費します 範囲は10ミリワット~500ミリワット
転送速度 データ転送速度は 1 メガビット/秒から 3 メガビット/秒まで変化します 125キロビット/秒から2メガビット/秒をサポート
反応時間 遅延は約100ミリ秒 6ミリ秒の遅延による素早い応答
音声サポート 音声送信機能を搭載 音声送信機能がない

ESP32 Bluetooth の詳細については、ESP32 Bluetooth の記事を参照してください。

Android スマートフォンと Bluetooth 経由で通信するように ESP32 をプログラムする方法

Bluetooth プロトコルを使用して Android 携帯電話と通信できるように ESP32 をプログラムするには、ESP32 Bluetooth シリアル ライブラリをセットアップする必要があります。そのためには、ESP32 ボードがインストールされた Arduino IDE セットアップが必要です。



ESP32 Bluetooth を設定した後、Bluetooth シリアル Android アプリケーションをインストールする必要があります。これにより、Bluetooth シリアル通信を使用して Android 携帯電話から ESP32 に命令を送信できるようになります。

これらの各ステップを詳しく見てみましょう。

ESP32 Bluetooth を Android フォンに接続する手順

ESP32 ボードを Bluetooth 通信用にプログラムするには、次の手順に従います。

ステップ 1: ESP32 ボードを Arduino IDE にインストールする

Arduino IDE に ESP32 をインストールするには、この記事に記載されているガイドに従ってください。

Arduino IDE への ESP32 ボードのインストール

インストール後、ESP32 ボードを接続し、Arduino IDE を使用してプログラムすることができます。

ステップ 2: ESP32 Bluetooth コードをアップロードする

ESP32 ボードがインストールされると、Arduino IDE にさまざまなプリインストールされたライブラリとその例が表示されます。これらのライブラリはすべて ESP32 ボードに関連しています。 Bluetooth シリアル通信には ESP32 を使用します。 BluetoothSerial.h ライブラリのサンプルコード。

サンプルコードを開くには、Arduino IDE を開いて次の場所に移動します。 ファイル > 例 > BluetoothSerial > SerialtoSerialBT

このサンプル コードを開くには、ESP32 ボードが選択されていることを確認してください。

サンプル コードを開くと、Arduino IDE ウィンドウに次のコードが表示されます。

// Linuxhint へようこそ

#include 'BluetoothSerial.h'

//#define USE_PIN // ペアリング中に PIN が必要な場合は、コメントを解除してください
定数 チャー * ピン = 「1234」 ; // カスタム ペアリング PIN を定義します

文字列デバイス名 = 「ESP32」 ;

#if !定義(CONFIG_BT_ENABLED) || !定義(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth が有効になっていません! `make menuconfig` を実行して有効にします。
#endif

#if !define(CONFIG_BT_SPP_ENABLED)
#error シリアル Bluetooth が見つからないか、有効になっていません。 ESP32 チップでのみ使用できます。
#endif

BluetoothシリアルシリアルBT ;

空所 設定 ( {
シリアル。 始める ( 115200 ;
シリアルBT。 始める ( 装置名 ; //Bluetoothデバイス名
シリアル。 プリントフ ( 'デバイス ' % s 』がスタートする。 \n デバイスのペアリングを開始してください。 \n 装置名。 c_str ( ;
//Serial.printf('MAC アドレス %s のデバイス '%s' が開始されました。\nBluetooth とのペアリングを開始します!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
シリアルBT。 セットピン ( ピン ;
シリアル。 プリントイン ( 「PINを使用する」 ;
#endif
}

空所 ループ ( {
もし ( シリアル。 利用可能 ( {
シリアルBT。 書く ( シリアル。 読む ( ;
}
もし ( シリアルBT。 利用可能 ( {
シリアル。 書く ( シリアルBT。 読む ( ;
}
遅れ ( 二十 ;
}

コードをアップロードすると、画面に次のメッセージが表示されます。このメッセージは、ESP32 ボードがペアリングの準備ができていることを示します。

ステップ 3: コードの説明

コードは、必要なライブラリを組み込み、Bluetooth が利用可能かどうかを確認することから始まりました。また、Bluetooth デバイス名と PIN の変数も設定します。

の中に 設定() 関数では、シリアル ボー通信が定義され、Bluetooth デバイスがその名前で初期化されます。ペアリング時の認証用にカスタムPINを設定できます。

ループ() この機能は、シリアルおよび Bluetooth 接続上のデータを継続的にチェックします。これにより、ESP32 とペアリングされた Bluetooth デバイスとの間で双方向通信を確立できます。

ステップ 4: Android アプリケーションをインストールする

コードがアップロードされたら、次のステップは Android アプリケーションをインストールして Bluetooth 接続用に設定することです。

Play ストアを開いて、 シリアルBluetooth端子 応用。

インストール後、スマートフォンの Bluetooth 設定を開き、携帯電話を ESP32 Bluetooth に接続します。 Arduino IDE コードで PIN を定義している場合は、PIN を入力する必要があります。入力しないと直接接続されます。

次に、シリアル Bluetooth アプリケーションを開き、 デバイス オプション。

新しく開いたメニューから、ESP32 デバイスを選択します。このリストには、現在アクティブなすべての Bluetooth デバイスが表示されます。

ご覧のとおり、ESP32 Bluetooth が Android スマートフォンに接続されています。

接続をテストするために、文字列を送信します。ここでは 2 つの異なる文字列を送信しました。

同じ 2 つの文字列が Arduino IDE ターミナルにも表示されることがわかります。

ここでさらに一歩進んで、Android スマートフォン経由で ESP32 Bluetooth を使用して LED などの外部周辺機器を制御してみましょう。

ステップ 5: Bluetooth 経由で Android フォンを使用して LED を制御する

ESP32 と Android Bluetooth を使用して LED を制御するには、まず上記のコードを変更し、LED の GPIO ピンを定義します。その後、LED をオンまたはオフにするための値を設定する必要があります。

次に進むには、以下のコードをアップロードします。

#include // Bluetooth シリアル通信ライブラリをインクルードします

#define LED_PIN 15 // LED ピンを定義します

BluetoothシリアルシリアルBT ; // BluetoothSerial オブジェクトを作成する
バイト BT_INP ; // Bluetooth 入力を格納する変数

// Bluetooth と Bluedroid が SDK 設定で有効になっているかどうかを確認します
#if !定義(CONFIG_BT_ENABLED) || !定義(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth が有効になっていません。 `make menuconfig` を実行して有効にします。
#endif

空所 設定 ( {
  pinMode ( LED_PIN 出力 ; // LED ピンを出力として設定します
シリアル。 始める ( 115200 ;
シリアルBT。 始める ( 「ESP32」 ; // Bluetooth を「ESP32」という名前で初期化します
シリアル。 プリントイン ( 「Bluetooth デバイスをペアリングする準備ができました。」 ; // Bluetooth の準備ができていることを示します
}

空所 ループ ( {
// Bluetooth から読み取れるデータがあるかどうかを確認します
もし ( シリアルBT。 利用可能 ( {
BT_INP = シリアルBT。 読む ( ; // Bluetooth からの受信バイトを読み取ります
シリアル。 書く ( BT_INP ; // 読み取ったバイトをシリアル モニタにエコーします。
}

// 受信した Bluetooth データを確認し、LED の状態を設定します
もし ( BT_INP == 「1」 {
デジタル書き込み ( LED_PIN 高い ; // '1'を受信したらLEDを点灯
} それ以外 もし ( BT_INP == 「0」 {
デジタル書き込み ( LED_PIN 低い ; // '0'を受信した場合はLEDを消灯します
}
}

このコードは、ESP32 マイクロコントローラーが Bluetooth を使用して LED を制御するためのものです。 Bluetooth通信用のライブラリが含まれています。次に、LED ピンを定義し、ESP32 という名前のデバイスで Bluetooth を設定します。メインループは Bluetooth データを読み取り、受信したコマンドに基づいて LED をオンまたはオフにします (オンの場合は 1、オフの場合は 0)。

回路図

回路図はシンプルで、ピンに LED が接続されています。 D15 ESP32の。 LED 制御用に他の GPIO を定義できます。

関連している: ESP32 ピン配置リファレンス – 最終ガイド

ハードウェア

ハードウェアでは、ブレッドボード、ESP32 ボード、LED が必要です。 ESP32 をシステムに接続し、プログラムをそこにアップロードします。

次に、Android フォンの Bluetooth シリアル通信アプリケーションから 1 と 0 を送信します。

Android フォンから受信した同じ入力が Arduino IDE ターミナルに表示されます。

出力

High または 1 の値を送信すると LED がオンになり、同様に Low の値を送信すると LED がオフになります。

カスタムボタンを設定する

Serial Bluetooth アプリケーション内にカスタム ボタンを設定することもできます。たとえば、HIGH 値と LOW 値のボタンを作成できます。こうすることで、値を手動で入力する必要がなくなります。代わりに、ショートカット ボタンを押すだけで、設定した命令が実行されます。

注記: ボタン設定を開くには、ボタンを長押しします。

HIGH ボタンの値を設定するには、次の設定を定義します。

LOW ボタンの値と同様に、以下の設定を定義する必要があります。

Bluetooth を使用して ESP32 ボードを Android スマートフォンに接続することに成功しました。これを使用して多くのプロジェクトを作成できるようになりました。同様に、リレー回路を介して ESP32 Bluetooth を使用して家電製品を制御できます。

関連している: Arduino IDEを使用したESP32によるリレー

結論

ESP32 は、Wi-Fi および Bluetooth 機能を備えた高度なマイクロコントローラー ボードです。これらの内蔵モジュールは両方とも、高度なプロジェクトを設計し、周辺機器をワイヤレスで制御するのに役立ちます。同様に、ESP32 を Android スマートフォンに接続して、さまざまな操作を実行できます。そのためには、Bluetooth Serial Android アプリケーションをインストールする必要があります。インストールしたら、ESP32 Bluetooth のサンプル コードを開き、ボードにアップロードします。コードがアップロードされたら、Android スマートフォンを介してボードとペアリングできます。