Я работаю над приложением, которое ищет устройства, которые затем подключаются к используемому мной 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");
}
}
}