Bonjour, je suis actuellement en stage et je dois faire communiquer un iPhone avec une carte Arduino via BLE. Je cherche a envoyer une donnée a l'arduino, pour l'instant une lettre, quand j'appuis sur un bouton de l'appli iPhone

J'ai réussis a établir la connection bluetooth du cote de l'arduino (je l'ai testé avec l'appli u-blox).
J'ai créé une appli en swift sur Xcode avec laquelle j'arrive a détecter l'arduino et a me connecter dessus mais je n'arrive pas en envoyer de donnée ou du moins je ne les reçois pas sur l'arduino.

J'ai mis le code de la fonction qui est censée envoyer la variable msg après appui sur le bouton, celle qui écrit la variable et celle qui gère l'uuid.



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
     @IBAction func switchOn(_ sender: Any) {
         writeValue(msg: "a")
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
func writeValue(msg : String) {

        if isMyPeripheralConected {
            
            let dataToSend: Data = msg.data(using: String.Encoding.utf8)!
            
            myBluetoothPeripheral.writeValue(dataToSend, for: myCharacteristic, type: CBCharacteristicWriteType.withResponse)   
            print("message \(msg) envoye")
        } else {
            print("Not connected")
        }
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {
        
        if let characterArray = service.characteristics as [CBCharacteristic]? {
            
            for cc in characterArray {
                
                print("UUID: \(cc.uuid.uuidString)")
                // tous les uuid qui se sont affiches
                //UUID: 2A29
                //UUID: 2A24
                //UUID: 2A26
                //UUID: 2A28
                //UUID: 2456E1B9-26E2-8F83-E744-F34F01E9D703
                //UUID: 2456E1B9-26E2-8F83-E744-F34F01E9D704
                
                if(cc.uuid.uuidString == "2456E1B9-26E2-8F83-E744-F34F01E9D704") { 
                    
                    myCharacteristic = cc 
                    
                    updateUiOnSuccessfullConnectionAfterFoundCharacteristics()
                    
                }
                
            }
        }
        
    }
Je ne sais pas d'ou cela vient, j'avais pensé a un problème d'uuid mais je les ai fait afficher sur la console et les ai tous testés, je ne sais pas si c'est la bonne méthode...
Si qqn a une piste pour me débloquer, merci d'avance