ESP32 BLE Beacon

このページをAIに渡す

いつものAIに相談

Gemini・その他のAI

このページの情報を添えて、仕組みや使い方、つくりたいものを相談できます。

Geminiを開く

質問文をコピーして、Geminiの入力欄に貼り付けてください。

質問文を確認

目次

はじめに

ESP32を使ったBLE Beacon型の環境センサアプリケーションの例です。 GATT ServerのAttributeにセンサデータを入れることで、データをブロードキャストするBeaconとして動作するとともに、 外部から接続要求があった場合にはサーバクライアント型の通信を行い、Characteristicでログデータのやり取りを行います。

Beacon型で発生するパケットの受信失敗によるデータの損失を、ESP32内の不揮発メモリにセンサデータを残すことで防ぎます。 ユーザは任意のタイミングで接続してログデータを読み出す事ができ、データ転送完了後にはすぐにBeaconモードに移行することで電力の消費を大幅に抑えます。

サンプルのソースコード

使用するスケッチやツールのソースコードは下記のリポジトリで閲覧可能です。

Sample-Sketches/ESP32_BLE_Beacon at master · Leafony/Sample-Sketches

用意するもの

  • Leafony ESP32 Wi-Fi Kit
  • Leafony Basic Kit
  • Raspberry Pi
  • Androidスマートフォン
  • USB microケーブル

使用するリーフ

TypeNameQ’ty
AP02ESP32 MCU1
AI014-Sensors1
M2 screw2

動作方法

サンプルのプロジェクトを動かす手順について説明します。各ソースコードの動作の仕組みについて理解したい場合は、後述する仕組みをご覧ください。

1. ESP32リーフにスケッチを書き込む

ESP32リーフとPCをUSBで接続し、Arduino IDEでinoファイルを書き込んでください。

サンプルコードにはESP32 Logging Libraryが使用されています。
Arduino IDEの「ツール → Code Debug Level」を任意のレベルに設定することでシリアルモニタにデバッグメッセージが表示されるようになります。

2. ビーコンスキャナアプリを実行

AdvertisingパケットのScanningにはNode.jsで動くアプリを使用します。
Node.jsが動く環境であれば動作環境は問いませんが、今回は屋外に定点設置するBeacon受信機とすることを想定し、 Raspberry Pi 4を使ってアプリの動作方法について解説します。

必要なパッケージをインストールしてアプリ実行します。

cd ./tools/node-scanner
npm install
npm start

3. ログ取得アプリを実行

ログデータの取得とグラフの表示にはWebアプリケーションを使用します。

ESP32 Sensors Logger

仕組み

BLE Beaconの仕組み

GATT

Advertising

Characteristic

リーフ写真
技術資料・サンプル・Q&Aから探せます