我实际上是在信息学校,我用Swift(Xcode 11.3和IOS 13.2设备)编码的自签名应用程序与插入Arduino的BLE模块SH-HC-08之间的连接遇到了一些麻烦。 (UUID:FE60E626-C58C-69F5-324F-43C7C409A93D)
我是快速语言的新手,可以用这种语言自学这种思维方式。
我正在使用CoreBluetooth来检测iPhone上的蓝牙是打开还是关闭。我实际上无法检查是否检测到我的外围设备,也无法通过我的应用程序发送任何信息。(不了解如何在CoreBluetooth中配置方法)
我下载了在应用商店上标为LightBlue和BluetoothLE的应用。第一个给我一些有关蓝牙设备的信息,第二个让我通过蓝牙模块将Ascii字符串发送到Arduino。LightBlue information1LightBlue information 2 BluetoothLE app
正如我之前说的,我已经:
设置centralManagerDidUpdateState函数
我曾尝试使用其他方法,例如didDiscoverPeripheral或didConnected,但我不理解自己的工作,也无法自发地发送信息(在String中首选)蓝牙应用。
我曾尝试过发现我的模块,但是我的日志中没有任何“打印”,并且不知道我的请求是否已完成……是否做得很好。
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
print("Name: \(peripheral.name)")
self.module = peripheral
self.module.delegate = self
if(peripheral.name == "SG-HC-08"){
manager.stopScan()
manager.connect(self.module, options: nil)
}
}
有人对此有任何经验或给予任何帮助将对我有很大帮助。谢谢
请找到有关委派(1)和BLE(2)如何工作的信息。
1)实例化CBCentralObject管理器时,您将视图控制器(自身)作为中央管理器的delegate传递,这意味着由中央管理器处理的一些蓝牙事件将转发到您的视图控制器。
在您的情况下,您似乎没有实现每次调用的centralManager(_ central:CBCentralManager,didDiscover外设:CBPeripheral,advertiseData:[String:Any],rssi RSSI:NSNumber)方法发现了新的外围设备。
一旦找到了发现的外围设备,就可以使用其他委托方法继续该过程
2)如果要与BLE设备通信,则需要执行以下几个步骤:
然后,您可以根据所需的任何特征写入数据,或订阅以侦听BLE设备发出的数据。