2017-02-01 13 views
0

Si je veux envoyer des données à un module bluetooth connecté à l'Arduino, quelles lignes de code sont précisément celles dont j'ai besoin de prendre connaissance.envoyer des données au module bluetooth à lire par arduino rom iOS swift 3

Je veux envoyer quelque chose comme, le nombre « 75 » au module Bluetooth et l'Arduino va lire

grâce

+0

Vous ne pouvez le faire avec Bluetooth LE dans iOS et vous avez besoin de savoir l'ID périphérique, le service et la caractéristique. Je pense que vous devez faire plus de recherches sur les bases de BluetoothLE et revenir avec des questions plus spécifiques. il y a des applications comme Light Blue Explorer qui vont découvrir les périphériques, les services et les caractéristiques afin que vous puissiez vous assurer que l'arduino publie cette information avant de commencer avec le code iOS. –

+0

J'ai fait tout cela. Le seul bit qui me manque est de savoir comment envoyer les données ... J'ai cherché ici pour une réponse mais je n'arrive pas à en trouver une –

Répondre

2

Bluetooth LE est très longue et lourde avec beaucoup de délégués entre les deux. Le chemin minimum pour écrire vos données est:

  1. Assurez-vous que vous avez la permission Bluetooth: CBCentralManagerDelegate.centralManagerDidUpdateStateand le cas échéant commencer la numérisation avec scanForPeripherals
  2. CBCentralManagerDelegate.didDiscover Si tel est le périphérique que vous voulez alors vous définissez comme délégué
  3. CBPeripheralDelegate.peripheral: didDiscoverServices: Si tel est le service que vous souhaitez ensuite arrêter le balayage et discoverCharacteristics: pour: Service
  4. CBPeripheralDelegate.peripheral: didDiscoverCharacteristicsFor: Service Si une caractéristique dans le tableau des caractéristiques est celui que vous voulez alors:

    func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) { 
        guard let characteristics = service.characteristics else { 
         return 
        } 
        for characteristic in characteristics { 
         if characteristic.uuid == CBUUID(string: characteristicIdentifier) { 
          let value: UInt8 = 75 
          let data = Data(bytes: [value]) 
          peripheral.writeValue(data, for: characteristic, type: .withResponse) 
         } 
        } 
    } 
    
+0

Merci Josh, c'est ce dont j'avais besoin –

+0

Si je le veux tel que j'appuie sur un bouton, alors il envoie le numéro 75, comment cela fonctionnerait-il? –

+0

Vous devez vous accrocher au périphérique et à la caractéristique de leurs délégués respectifs, puis écrire la caractéristique sur le périphérique dans le gestionnaire de boutons. –