Удаленный запуск камеры Bluetooth для телефона - PullRequest
10 голосов
/ 20 июня 2020

Я хотел бы создать триггер камеры для своего телефона, имитируя клавиатуру BLE, которая отправляет клавишу увеличения громкости на телефон, подключенный через Bluetooth. Я хочу это, потому что я хочу запускать собственное приложение камеры, а не встроенное изображение камеры.

Я не знаю c об используемых технологиях, но в идеале для простоты я бы хотел, чтобы это была командная строка в моем Macbook с чем-то вроде Go или Node.js.

Я изучил Noble для Node.js, который, похоже, не ориентирован на излучение, и нашел проектов для arduino и нашел пару вопросов StackOverflow , задающих то же самое, но пока ничего окончательного.

Очевидно, проект Bleno для Node.js могло бы быть лучше, но, видимо, он очень устарел.

Не могли бы вы указать мне правильное направление?

Спасибо

Редактировать

Я смог использовать Bleno для выдачи 0xEA и 0xE9 (по-видимому, увеличения и уменьшения громкости), а также с помощью приложения LightBlue я могу проверить, что получаю эти сообщения, однако подключение к MacBook через телефон » s bluetooth не увеличивает / не уменьшает громкость.

Edit Нашел этот устаревший проект , написанный на Swift 3 для справки

Edit Похоже, что проект pybluez выглядит как хороший вариант

Ответы [ 3 ]

0 голосов
/ 13 июля 2020

Вам необходимо создать периферийное устройство Bluetooth HID (или HID over GATT), к которому ваш телефон может подключаться и получать от него ключевые команды.

Здесь есть проект, который сделал это с Raspberry Pi:

https://gist.github.com/ukBaz/a47e71e7b87fbc851b27cde7d1c0fcf0#gistcomment -2997623

К сожалению, нижележащая библиотека Bluetooth не переместится в вашу Ma c Book.

Протокол HID задокументировано здесь: https://github.com/jpbrucker/BLE_HID/blob/master/doc/HID.md

0 голосов
/ 14 июля 2020

В итоге, я думаю, что вы говорите, что вы хотите сделать приложение cli, которое находится на вашем ноутбуке / настольном компьютере, подключаться к вашему телефону через Bluetooth и имитировать клавишу громкости на клавиатуре вашего ноутбука / настольного компьютера.

Android:

Для этого вам потребуется:

  • Python 3.5 или выше
  • PyBluez
  • Keyboard (Python модуль / API)
  • Android Studio
  • Java Комплект разработчика 8 (желательно 11 или 14)
  • Android BLE

Итак, чтобы сделать это, я бы создал приложение cli с python3, и я бы записывал нажатия клавиш на ноутбуке / настольном компьютере, используя модуль клавиатуры, который затем передается (bluetooth) через модуль PyBluez на ваш телефон . Затем ваш телефон принимает данные Bluetooth через Android BLE, а затем имитирует нажатие кнопки громкости.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: это работает, только если телефон уже подключен к вашему p c и работает только на android телефоны 4.4.4 и выше.

Некоторые ссылки, которые могут вам помочь: Библиотека Bluetooth для python 3 , обнаружение нажатия клавиш python? , Создать сокет для передачи 4.0 bluetooth

IOS:

Для этого вам потребуется:

  • Python 3,5 или выше
  • PyBluez
  • Клавиатура (Python модуль / API)
  • XCode
  • Swift
  • Основной модуль Bluetooth

Итак, чтобы сделать это, я бы создал приложение cli с python3, и я бы записывал нажатия клавиш на ноутбуке / настольном компьютере с помощью модуля клавиатуры, который затем передается (bluetooth) через модуль PyBluez на ваш телефон. Затем ваш телефон быстро принимает данные Bluetooth через модуль Core Blutooth, а затем имитирует нажатие кнопки громкости.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: телефон и ноутбук / настольный компьютер должны быть сопряжены перед запуском, это может показаться очевидным, но некоторые люди могут игнорировать это.

Некоторые ссылки, которые могут вам помочь: iOS использовать кнопки регулировки громкости в качестве входных данных , https://developer.apple.com/documentation/corebluetooth/transferring_data_between_bluetooth_low_energy_devices

0 голосов
/ 29 июня 2020

Вы должны иметь возможность использовать для этого терминал. Например. в Windows вы можете запустить приложение камеры, используя start microsoft.windows:camera

Нечто подобное должно быть доступно даже в Ma c. Попробуйте это. В противном случае введите go в каталог root, в котором хранится приложение камеры. А затем активируйте это из кода.

...