Здравствуйте! Прошу помощи!
Разрабатываю такой, казалось бы, простой проект - селфи BLE пульт для телефона на базе IOS/Android.
Необходимо чтобы устройство, при нажатии на кнопку, передавало команду на телефон - снять фото. А при зажатии кнопки- снять видео.
Телефон и устройство должны быть соединены по BLE. И самая загвоздка - всё это должно происходить без дополнительных телодвижений, по типу приложений на телефонах, которые бы обрабатывали сигнал с устройства.
Поизучав данную тему, понял, что данный проект можно сделать на esp32. Я использовал esp32 dev-kit. При помощи библиотеки BleKeyboard.h (https://github.com/T-vK/ESP32-BLE-Keyboard) можно прикинуться bluetooth-клавиатурой для телефона и просто создать с ним пару. А далее - эмулировать нажатие кнопки громкости на телефоне при нажатии кнопки на самом пульте. Такой вариант действительно сработал! Всё подключается и работает как надо.
НО теперь передо мной встал другой вопрос - esp32 слишком много потребляет для устройства, которое должно работать на аккумуляторе.
В моем случае около 70-80 мА...
Решил попробовать с другой стороны и хочу esp32 заменить на , допустим, на какую нибудь arduino + bluetooth модуль. У меня есть arduino nano и модуль Bluetooth HM-10.
Порыв в интернете не нашёл готовых библиотек под это дело или каких нибудь примеров
Лишь только вот эту тему https://community.alexgyver.ru/thre...-besprovodnoj-klaviatury-nuzhna-pomosch.8110/
Там человек использует Arduino Nano 33 BLE и библиотеку Nano33BleHID.h для подключения своей клавиатуры к ПК. Но я так понял в моем случае она мне не поможет.
Пожалуйста, подскажите, можно ли как то сделать тоже самое, что я сделал на esp32, только теперь на arduino?
Вот мой код для esp32
Разрабатываю такой, казалось бы, простой проект - селфи BLE пульт для телефона на базе IOS/Android.
Необходимо чтобы устройство, при нажатии на кнопку, передавало команду на телефон - снять фото. А при зажатии кнопки- снять видео.
Телефон и устройство должны быть соединены по BLE. И самая загвоздка - всё это должно происходить без дополнительных телодвижений, по типу приложений на телефонах, которые бы обрабатывали сигнал с устройства.
Поизучав данную тему, понял, что данный проект можно сделать на esp32. Я использовал esp32 dev-kit. При помощи библиотеки BleKeyboard.h (https://github.com/T-vK/ESP32-BLE-Keyboard) можно прикинуться bluetooth-клавиатурой для телефона и просто создать с ним пару. А далее - эмулировать нажатие кнопки громкости на телефоне при нажатии кнопки на самом пульте. Такой вариант действительно сработал! Всё подключается и работает как надо.
НО теперь передо мной встал другой вопрос - esp32 слишком много потребляет для устройства, которое должно работать на аккумуляторе.
В моем случае около 70-80 мА...
Решил попробовать с другой стороны и хочу esp32 заменить на , допустим, на какую нибудь arduino + bluetooth модуль. У меня есть arduino nano и модуль Bluetooth HM-10.
Порыв в интернете не нашёл готовых библиотек под это дело или каких нибудь примеров
Лишь только вот эту тему https://community.alexgyver.ru/thre...-besprovodnoj-klaviatury-nuzhna-pomosch.8110/
Там человек использует Arduino Nano 33 BLE и библиотеку Nano33BleHID.h для подключения своей клавиатуры к ПК. Но я так понял в моем случае она мне не поможет.
Пожалуйста, подскажите, можно ли как то сделать тоже самое, что я сделал на esp32, только теперь на arduino?
Вот мой код для esp32
C++:
#include <BleKeyboard.h>
#include "GyverButton.h"
#define PIN 4 // Пин кнопки
GButton butt1(PIN);
BleKeyboard bleKeyboard;
bool status=true;
void setup() {
Serial.begin(115200);
butt1.setDebounce(50); // настройка антидребезга (по умолчанию 80 мс)
butt1.setTimeout(300); // настройка таймаута на удержание (по умолчанию 500 мс)
butt1.setClickTimeout(600); // настройка таймаута между кликами (по умолчанию 300 мс)
butt1.setType(HIGH_PULL);
Serial.println("Starting BLE work!");
bleKeyboard.begin();
}
void loop() {
butt1.tick(); // обязательная функция отработки. Должна постоянно опрашиваться
if(bleKeyboard.isConnected())
{
bleKeyboardconnected();
}
}
void bleKeyboardconnected()
{
if (butt1.isClick())
{
ledcWrite(pwmChannel, motorSpeed); // Вращение мотора
bleKeyboard.write ( KEY_MEDIA_VOLUME_UP );
bleKeyboard.setDelay(10);
Serial.println ("Photo detected");
}
if (butt1.isPress())
{
bleKeyboard.press ( KEY_MEDIA_VOLUME_UP );
Serial.println ("Video detected");
}
if (butt1.isRelease())
{
bleKeyboard.release(KEY_MEDIA_VOLUME_UP);
}