ダイソーのリモコンシャッターをESP32で通信するためのヘルパー関数
ダイソーのBluetoothリモコンシャッターをESP32でハックする の記事で行った、ダイソーのリモコンシャッターをESP32で通信するためのロジックを、ライブラリ化してみましたのでご紹介いたします。その名も「BlueShutHacker」です!
BlueShutHackerのリポジトリとインストール
リポジトリ
BlueShutHackerは、下記リポジトリでMITライセンスで公開中です。 GitHub - aragig/BlueShutHacker: ダイソーのリモコンシャッターをESP32で通信するためのヘルパー関数
ライブラリのインストール
リポジトリからzipファイルなどでダウンロードしていただき、SharedBlueShutHacker.hとSharedBlueShutHacker.cppファイルをプロジェクト内に適宜配置してください。
PlatformIOをお使いの方でしたら、platformio.iniに次のように記述することで自動インストールできます。
platformio.ini
[env]
lib_deps = https://github.com/aragig/BlueShutHacker.git
BlueShutHackerの使い方と解説
cpp
#include <Arduino.h>
#include "BLEDevice.h"
#include "BlueShutHacker.h"
#define LED_PIN 13
BlueShutHacker blueShutHacker;
void updateLedState(boolean state) {
Serial.println("updateLedState");
digitalWrite(LED_PIN, state ? HIGH : LOW);
}
void onButtonClick(boolean state) {
updateLedState(state);
}
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
blueShutHacker.begin(onButtonClick);
}
void loop() {
blueShutHacker.handler();
delay(10); // 高負荷防止
}
スキャンする時間の設定
コンストラクタに引数を渡すことで、スキャンする時間の設定ができます。次のコードでは60秒スキャン時間を設けています。
cpp
BlueShutHacker blueShutHacker(60);
コールバック関数の登録
setup内の次のコードで、ボタン押下時のコールバックイベントを登録します。cpp
blueShutHacker.begin(onButtonClick);
コールバックされる際に、ボタンの状態をstateで返します。iOS と androidボタンの判別はありませんので、どちらのボタンが押されてもstate=trueになります。また、ボタンを離した瞬間にstate=falseが発生するようになってます。
cpp
void onButtonClick(boolean state) {
updateLedState(state);
}