Как мне отправить команду с помощью приложения swift на iOS на мое arduino? - PullRequest
0 голосов
/ 24 сентября 2018

Я работаю над приложением, которое ищет устройства, которые затем подключаются к используемому мной Arduino, и я хочу иметь возможность отправить команду на Arduino, чтобы включить двигатель.Я могу успешно подключиться к устройству и записать характеристику, но когда сообщение отправлено, оно не активирует мой код для arduino.Любая помощь будет потрясающей, спасибо.Код от swift -

    **func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {

        print("*******************************************************")

        if ((error) != nil) {
            print("Error discovering services: \(error!.localizedDescription)")
            return
        }

        guard let characteristics = service.characteristics else {
            return
        }

        print("Found \(characteristics.count) characteristics!")

        for characteristic in characteristics {
            //looks for the right characteristic

            if characteristic.uuid.isEqual(Uuidtx){
                txCharacteristic = characteristic
                print("Tx Characteristic: \(characteristic.uuid)")
                let string = "unlock"
                let data = string.data(using: String.Encoding.utf8)
                print(data!)
                peripheral.writeValue(data!, for: characteristic,type: CBCharacteristicWriteType.withResponse)

            }
        }
    }**

    func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?) {
        guard error == nil else {
            print("Error discovering services: error")
            return
        }
        print("Message sent")
    }

    override func viewDidLoad() {
        super.viewDidLoad()
       centralManager = CBCentralManager(delegate: self, queue: nil)
        // Do any additional setup after loading the view.
    }




}    

Мой код для моего arduino -

#include <Servo.h>


Servo LockMotor;        //initialize a servo object for the connected servo  
String command = "";


void setup() 
{ 
 Serial.begin(9600);
LockMotor.attach(A1); // attach the signal pin of servo to pinA1 of arduino
} 

void loop()
{
  if(Serial.available() > 0) 
  {
    command = Serial.readString();
    if(command == "unlock")
    {
    LockMotor.writeMicroseconds(1000);
    command = "";
    Serial.println("unlocked");
    } 

    if(command == "lock") 
    {
    LockMotor.writeMicroseconds(2000);
    command = "";
    Serial.println("locked");
    }
  } 
}
...