2016-03-07 134 views
1

如何使用swift和arduino设备进行BLE通信? 现在用我的代码,我可以发送价值给我的BLE盾牌,但我不知道如何发回报告给我的swift应用程序!Arduino/Swift - BLE通信POST&GET

我使用HM-10 BLE模块和Swift 2.0。

这是我的Arduino代码:

#include<SoftwareSerial.h> 

    SoftwareSerial Try(1,0); 

    void setup() { 
    pinMode(3, OUTPUT); 
    Try.begin(9600); 
} 

void loop() { 
    if(Try.available()){ 
    switch(Try.read()){ 
     case('a') :{ 
     digitalWrite(3, HIGH); 
     } 
    } 
    } 
} 

这是一个简单的代码,当收到一个char 'A' 从我的应用程序,它开启绿色LED。 随着这一切都好,但我想发回报告'绿色LED开启!'到我的Swift应用程序。

所以这是将'a'值发送到我的BLE模块的Swift代码。

import UIKit 
import CoreBluetooth 


class Connection: UIViewController{ 

    var connee: CBCharacteristic! 
    var per: CBPeripheral! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    @IBAction func SendingVal(sender: AnyObject) { 

     let Sen = "a" 
     let Value: NSData = Sen.dataUsingEncoding(NSUTF8StringEncoding)! 

     sendDataToCentral(per, characteristic: connee, data: Value) 

    } 


    private func sendDataToCentral(peripheral: CBPeripheral, characteristic: CBCharacteristic, data: NSData) { 
     peripheral.writeValue(data, forCharacteristic: characteristic, type: CBCharacteristicWriteType.WithoutResponse) } 

} 

那么,如何从BLE模块发回报告给我的swift应用程序?

+0

我们猜你已经完成了所有连接/阅读服务/特性。你看到你的Arduino发送的价值了吗?即使它错了? – Larme

+0

我能够在我的arduino中看到所有的价值,但是...我不知道如何发回报告或价值 – Davide95

+0

看看这个问题:http://stackoverflow.com/questions/35794107/ SWIFT-BLE-通信/ 39174444#39174444 – nbloqs

回答

0
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { 
    print(characteristic) 
} 

从特征中获得值 当值发生变化时该委托调用。 外设发现此更新的值。