お知らせ
過去にQiitaに投稿した内容のアーカイブです。
最近のiPhoneって、ホームボタンないんですってね。 ホームボタンあったら、嬉しいですよね? Android使いなのでよくしらないですが。
ESP32を使って物理ボタンを追加しましょう。
仕組み
ArduionoのライブラリーでBluetoothキーボードにできるものがあったので、これを使います。
ESP32-BLE-Keyboard https://github.com/T-vK/ESP32-BLE-Keyboard
準備するもの
ESP32-DevKitC V4 ブレッドボード タクトスイッチ
こんな感じです。
ソース
タクトスイッチが押されたらcommand + H
を送ります。それだけです。
#include <Arduino.h>
#include <BleKeyboard.h>
BleKeyboard bleKeyboard;
const int switchPin = 32;
int currentState = 0;
int beforeState = 0;
void setup()
{
Serial.begin(9600);
pinMode(switchPin, INPUT);
bleKeyboard.begin();
}
boolean isChange(int current, int before)
{
return (current != before) && (current == 1);
}
void loop()
{
currentState = digitalRead(switchPin);
if (isChange(currentState, beforeState))
{
Serial.println("Change!!!");
if(bleKeyboard.isConnected()) {
bleKeyboard.press(KEY_LEFT_GUI); // Windows key
bleKeyboard.press(0x68); // H key
delay(100);
bleKeyboard.releaseAll();
}
}
beforeState = currentState;
delay(100);
}
使ってみた
手元にあるiPadで試してみました。
Bluetoothの設定にてESP32 BLE Keyboard
とペアリングをすれば準備完了。
タクトスイッを押せばホーム画面に戻ります!期待通り!
ただし!物理キーボードが接続されていると判定されるので、テキスト入力が必要なところでソフトウェアキーボードが出ません!!!
どうしても使いたい場合は、下向き三角(下図)を長押しするとソフトウェアキーボードが出てくれます。一度ソフトウェアキーボードが出る状態になると、次からもソフトウェアキーボードが出ます!
やった! これで、物理ホームボタンの完成です!