2016-11-22 8 views
0

Von diesem Tutorial folgt hier: https://www.raywenderlich.com/85900/arduino-tutorial-integrating-bluetooth-le-ios-swift Ich bin in der Lage, ein Servo über eine iPhone App zu steuern. Es sendet Daten vom iPhone zum arduino-Board. Was ich will, ist in der Lage zu sein, auch Daten vom Arduino zur App zu senden, im Grunde andersherum, aber ich bin verwirrt, wie genau ich es mit dem Arduino senden würde.Senden von Daten von Arduino an App

Dies ist, wie die Daten an den Servo auf Arduino gesendet wird:

mir gesagt, dass ich mit dem UUID auf dem RX-Charakteristik A9CD2F86-8661-4EB1-B132-367A3434BC90 an den UART-Port schreiben müssen übertragen bin und zu bekommen
if(BLE_Shield.available()) { 
    myservo.write(BLE_Shield.read()); // Write position to servo 
} 

Alle die App, die über Änderungen des RX-Merkmals benachrichtigt werden soll. Es fällt mir schwer, das zu verstehen und ich würde mich über jede Hilfe freuen! Die Website enthält den vollständigen Swift-Quellcode am Ende der Seite.

Antwort

1

ich nie den Black Widow BLE Schild, weil ich normalerweise ein einfaches HM-10 BLE 4.0 Modul verwenden, aber die Logik wird die gleiche sein. Um Daten von Arduino an iPhone zu senden, sollten Sie schreiben .... "schreiben":

BLE_Shield.write("Test");

Und um Daten zu erhalten, müssen Sie die Funktion didUpdateValueFor characteristic in BTService.swift Klasse schreiben.

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!)") 
    } 
} 

Damit dies funktioniert müssen Sie sicher sein, dass das iPhone ständig mit der BLE verbunden ist.

Verwandte Themen