【问题标题】:How to send text message from mobile app to ESP32 device via BLuetooth LE using Delphi 10.3如何使用 Delphi 10.3 通过蓝牙 LE 从移动应用程序向 ESP32 设备发送短信
【发布时间】:2019-06-24 13:32:53
【问题描述】:

我正在尝试使用 Delphi 创建一个移动应用程序,该应用程序将通过蓝牙 LE 向 ESP32 设备发送短信。

我对 BLE 没有经验,因此尝试关注 this 官方文档并尝试编辑 this Delphi 示例应用程序(位于 ..\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\ Device Sensors and Services\Bluetooth\BLEScanner)根据我的需要学习Delphi端的结构。

在 ESP32 方面,我在 there 上找到了一个 DIY 项目。但是用于该项目的一个 thunkable 应用程序,我无法理解如何使用 Delphi 做同样的事情(您可以在下面找到应用程序的块视图)。

是否有人拥有我可以用于此目的的示例应用程序/代码?马上谢谢。

【问题讨论】:

    标签: delphi bluetooth-lowenergy mobile-application esp32 delphi-10.3-rio


    【解决方案1】:

    我已经解决了以下结构的问题;

    首先你应该(你也可以稍后再做)定义设备的服务和特征的 UUID

    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

    PermissionsService.RequestPermissions([FLocationPermission], RequestPermissionsResult, DisplayRationale);
    

    注意:您可以在 Delphi 示例应用程序中找到这些代码和更多信息(位于 ..\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\蓝牙\BLEScanner)

    在访问所有权限(并发现设备)后,您需要写入要使用的特征;

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

    重要:由于 Embarcadero 在移动编译器中禁用了 Ansichar 和 AnsiString。 (herehere 中的其他信息)您需要使用 TBytes 或获取 Ansi 支持 with this magnificent library(因此您可以将任何命令发送到任何 8 位 IoT 设备(就像大多数设备一样))。其余部分由 MCU 完成。

    【讨论】:

      猜你喜欢
      • 2012-10-28
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      相关资源
      最近更新 更多