Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание Мобильного Приложения для ESP32: Отправка Текстовых Сообщений через Bluetooth LE на Delphi

Delphi , Программа и Интерфейс , Приложение своё

В данной статье мы рассмотрим процесс создания мобильного приложения на Delphi 10.3, которое будет отправлять текстовые сообщения на устройство ESP32 через Bluetooth LE. Это руководство будет полезно для разработчиков, которые хотят освоить работу с BLE в среде Delphi и имеют опыт работы с Object Pascal.

Проблема и Задача

Разработчик столкнулся с необходимостью создания мобильного приложения, способного отправлять текстовые сообщения на устройство ESP32 через Bluetooth LE. Так как опыта работы с BLE у разработчика не было, он начал с изучения официальной документации и редактирования примера Delphi sample app, расположенного в директории ..\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\BLEScanner.

На стороне ESP32 разработчик обнаружил DIY проект, использующий Thunkable app, но не смог понять, как реализовать аналогичный функционал с помощью Delphi. В итоге был задан вопрос о наличии примеров кода, которые можно было бы адаптировать под свои нужды.

Решение Проблемы

Разработчик нашел решение, определив UUIDs для сервиса и характеристик устройства:

const
  SERVICE : TGUID = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}';
  CHARACT : TGUID = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}';

Затем было создано устройство и его характеристика, которые планировалось использовать:

Device         : TBluetoothLEDevice;
FCharacteristic: TBluetoothGattCharacteristic;

Для работы сканирования потребовалось получить доступ к грубой локации (можно сделать это позже, например, в обработчике события FormCreate):

{$IFDEF ANDROID}
  FLocationPermission := JStringToString(TJManifest_permission.JavaClass.ACCESS_COARSE_LOCATION);
{$ENDIF}

После этого нужно выполнить PermissionsService.RequestPermissions для запроса разрешений, а затем обнаружить устройство и написать в его характеристику:

FCharacteristic:= Device.GetService(SERVICE).GetCharacteristic(CHARACT);
FCharacteristic.SetValueAsString(RawByteString('command'));
Device.WriteCharacteristic(CHARACT);

Важно отметить, что Embarcadero отключил использование AnsiChar и AnsiString в мобильных компиляторах, поэтому для отправки команд необходимо использовать TBytes или восстановить поддержку Ansi с помощью специальной библиотеки.

Подробности и Примеры

Дополнительные подробности и примеры кода можно найти в образце Delphi sample app, расположенном в директории BLEScanner. Также полезно ознакомиться с информацией о типах строк в Delphi и миграции кода под мобильные платформы.

Заключение

Создание мобильного приложения для отправки текстовых сообщений на ESP32 через Bluetooth LE с использованием Delphi требует понимания работы с BLE и умения работать с Object Pascal. Приведенные выше шаги и примеры кода помогут разработчикам начать работу и успешно реализовать требуемый функционал.

Обратите внимание, что данная статья является пересказом решения проблемы, представленного разработчиком, и содержит подтвержденный ответ на его вопрос.

Создано по материалам из источника по ссылке.

В статье рассматривается процесс разработки мобильного приложения на Delphi для отправки текстовых сообщений на устройство ESP32 через Bluetooth LE.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Приложение своё ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-13 17:11:12/0.0037381649017334/0