Arduino/Swift - BLE通信POST&GET
问题描述:
如何使用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应用程序?
答
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
print(characteristic)
}
从特征中获得值 当值发生变化时该委托调用。 外设发现此更新的值。
我们猜你已经完成了所有连接/阅读服务/特性。你看到你的Arduino发送的价值了吗?即使它错了? – Larme
我能够在我的arduino中看到所有的价值,但是...我不知道如何发回报告或价值 – Davide95
看看这个问题:http://stackoverflow.com/questions/35794107/ SWIFT-BLE-通信/ 39174444#39174444 – nbloqs