0

From following this tutorial here: https://www.raywenderlich.com/85900/arduino-tutorial-integrating-bluetooth-le-ios-swift I am able to control a servo through an iPhone app. It sends data from the iPhone to the arduino board. What I want is to be able to also send data FROM the Arduino to the App, basically the other way around, but I am confused as to how exactly I would send it using the Arduino.

This is how data is sent to the servo on Arduino:

if(BLE_Shield.available()) {
    myservo.write(BLE_Shield.read());  // Write position to servo
}

All I am told is that I need to write to the UART port to transmit on the RX characteristic with the UUID A9CD2F86-8661-4EB1-B132-367A3434BC90 and to get the app to be notified of RX characteristic changes. I have a hard time understanding this and would appreciate any help! The website includes the full Swift source code on the bottom of the page.

1 Answer 1

1

I never used the Black Widow BLE Shield, because normally I use a simple HM-10 BLE 4.0 module, but the logic will be the same. To send data from Arduino to iPhone you should writing .... "write" :

BLE_Shield.write("Test");

And to receive data you must write the function didUpdateValueFor characteristic inside BTService.swift Class.

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

For this to work you must be sure that the iPhone is constantly connected to the BLE.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.