Пример кода для ESP32 в качестве медиа-контроллера для Android/iPhone Media Apps

На самом деле есть еще один пост с той же темой, но никаких ответов на этот пост нет. Еще в январе 2020 года последний комментатор сказал, что у него есть образец кода, а затем он отключился, не опубликовав фактический код. Нить здесь:

Хотите создать Bluetooth audio control (увеличение/уменьшение громкости, воспроизведение, пауза и т.д.) Для смартфона

Моя проблема точно такая же, как и в исходном посте. У Amazon и Aliexpress есть буквально сотни таких "медиа-кнопок", которые вы можете купить и соединить через Bluetooth с вашим Android или iOS. Затем вы можете воспроизводить мультимедиа на iOS/Android, а "кнопки мультимедиа" могут управлять воспроизведением. Довольно распространенными элементами управления являются увеличение/уменьшение громкости, следующий, предыдущий, воспроизведение и пауза.

Я написал много кода Arduino для Nano, Uno и даже MKR. Я также написал кучу кодов ESP8266 и ESP32. Обычно, когда я пытаюсь чему-то научиться, несколько поисков в Google находят пример, который я могу понять. По этому поводу мне ничего не удалось найти.

Каждый учебник или пример кода посвящен тому, как отправлять команды в ESP32 через Bluetooth или соединять ESP32 с джойстиком Bluetooth и т. Д. Ни один из этих примеров не помогает мне понять, что нужно для того, чтобы ESP32 соединялся с моим Android и действовал как медиа-кнопки, посылая команды увеличения, уменьшения громкости и воспроизведения/паузы через Bluetooth.

Кто-нибудь может помочь с примером кода для этого с ESP32? (кстати, этот форум не позволил бы мне комментировать исходный пост, иначе я бы это сделал. он сказал, что у меня недостаточно очков кармы или что-то в этом роде)

, 👍6

Обсуждение

Вы гуглили что-то вроде "ESP32 bluetooth HID"? Я так и сделал, и на первый взгляд результаты кажутся действительно многообещающими, например [эта библиотека Arduino](https://github.com/T-vK/ESP32-BLE-Keyboard) для ESP32. Он также поставляется с примером того, как его использовать. Если вы видели такие результаты, то как именно они вам не помогают?, @chrisl


1 ответ


8

Ну а после того, как я опубликовал этот вопрос, я продолжал гуглить. Буквально часы гугления на этом этапе. Затем я наткнулся на этот пример:

https://github.com/T-vK/ESP32-BLE-Keyboard

Я написал этот скетч на свой ESP32, соединил свой iPhone, и он сразу же начал управлять воспроизведением музыки на телефоне. Посмотрев на код, я понял, что он настолько прост, что мне стыдно, что я не смог понять это самостоятельно. В случае, если ссылка исчезнет, я вставлю код сюда:

#include 

BleKeyboard bleKeyboard;

void setup() {
  Serial.begin(115200);
  Serial.println("Starting BLE work!");
  bleKeyboard.begin();
}

void loop() {
  if(bleKeyboard.isConnected()) {
    Serial.println("Sending 'Hello world'...");
    bleKeyboard.print("Hello world");

    delay(1000);

    Serial.println("Sending Enter key...");
    bleKeyboard.write(KEY_RETURN);

    delay(1000);

    Serial.println("Sending Play/Pause media key...");
    bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE);

    delay(1000);

    Serial.println("Sending Ctrl+Alt+Delete...");
    bleKeyboard.press(KEY_LEFT_CTRL);
    bleKeyboard.press(KEY_LEFT_ALT);
    bleKeyboard.press(KEY_DELETE);
    delay(100);
    bleKeyboard.releaseAll();

  }
  Serial.println("Waiting 5 seconds...");
  delay(5000);
}
,