从本教程开始:https://www.raywenderlich.com/85900/arduino-tutorial-integrating-bluetooth-le-ios-swift我可以通过iPhone应用程序控制伺服。它将数据从iPhone发送到arduino板。我想要的是能够将数据从Arduino发送到应用程序,基本上反过来,但我很困惑,我将如何使用Arduino发送它。
这是在Arduino上将数据发送到伺服的方式:
if(BLE_Shield.available()) {
myservo.write(BLE_Shield.read()); // Write position to servo
}
我被告知的是,我需要写入UART端口以使用UUID A9CD2F86-8661-4EB1-B132-367A3434BC90
在RX特性上进行传输,并让应用程序收到有关RX特性变化的通知。我很难理解这一点,并感谢任何帮助!该网站包含页面底部的完整Swift源代码。
答案 0 :(得分:1)
我从未使用黑寡妇BLE Shield ,因为通常我使用简单的 HM-10 BLE 4.0 模块,但逻辑将是相同的。要将数据从Arduino发送到iPhone,你应该写......“写”:
BLE_Shield.write("Test")
;
要接收数据,您必须在BTService.swift类中编写函数didUpdateValueFor characteristic
。
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
if (error != nil) {
print("Error rading characteristics: \(error)......)")
return;
}
if (characteristic.value != nil) {
//value here.
print("value is : \(characteristic.value)")
let dataBLE = String(data: characteristic.value!, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue))
print("Data from Arduino:\(dataBLE!)")
}
}
为此,您必须确保iPhone始终连接到BLE。