ダイソーのリモコンシャッターをESP32で通信するためのヘルパー関数

ダイソーのBluetoothリモコンシャッターをESP32でハックする の記事で行った、ダイソーのリモコンシャッターをESP32で通信するためのロジックを、ライブラリ化してみましたのでご紹介いたします。その名も「BlueShutHacker」です!

BlueShutHackerのリポジトリとインストール

リポジトリ

BlueShutHackerは、下記リポジトリでMITライセンスで公開中です。 GitHub - aragig/BlueShutHacker: ダイソーのリモコンシャッターをESP32で通信するためのヘルパー関数

ライブラリのインストール

リポジトリからzipファイルなどでダウンロードしていただき、SharedBlueShutHacker.hSharedBlueShutHacker.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で返します。iOSandroidボタンの判別はありませんので、どちらのボタンが押されてもstate=trueになります。また、ボタンを離した瞬間にstate=falseが発生するようになってます。

cpp
void onButtonClick(boolean state) {
    updateLedState(state);
}

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム