99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>無(wú)線通信>

藍(lán)牙rssi距離計(jì)算公式及代碼

2017年11月20日 16:10 網(wǎng)絡(luò)整理 作者: 用戶評(píng)論(0

  藍(lán)牙室內(nèi)定位技術(shù)藍(lán)牙是一種短距離、低功耗的無(wú)線傳輸技術(shù),基于它的室內(nèi)定位技術(shù)是基于接收信號(hào)強(qiáng)度指示測(cè)距的。通過(guò)在室內(nèi)安裝適當(dāng)數(shù)量的藍(lán)牙局域網(wǎng)接入點(diǎn),再把基礎(chǔ)網(wǎng)絡(luò)的鏈接模式配置成基于多用戶、主設(shè)備為藍(lán)牙局域網(wǎng)接入點(diǎn),就可以計(jì)算出定位節(jié)點(diǎn)的位置坐標(biāo)。目前,藍(lán)牙定位技術(shù)受到藍(lán)牙信號(hào)傳播距離短的制約主要應(yīng)用于小范圍定位。

  由于藍(lán)牙室內(nèi)定位系統(tǒng)具有設(shè)備體積小、易于集成在其它系統(tǒng)中等優(yōu)點(diǎn),因此比較容易推廣普及。而且,當(dāng)采用該技術(shù)進(jìn)行室內(nèi)小范圍定位時(shí),藍(lán)牙信號(hào)傳輸不受視距的影響,并且設(shè)備很容易就能夠被系統(tǒng)發(fā)現(xiàn)。其缺點(diǎn)為藍(lán)牙設(shè)備的成本比較大,在復(fù)雜的空間環(huán)境中,藍(lán)牙定位系統(tǒng)受噪聲信號(hào)干擾大,且穩(wěn)定性較差。

  藍(lán)牙rssi距離計(jì)算公式

  利用CoreLocation.framework很容易掃描獲得周邊藍(lán)牙設(shè)備,蘋果開(kāi)源代碼AirLocate有具體實(shí)現(xiàn)

  所獲得的iBeacon在CoreLocation里以CLBeacon表示,其中有RSSI值(接收信號(hào)強(qiáng)度),可以用來(lái)計(jì)算發(fā)射端和接收端間距離。

  計(jì)算公式:

  d = 10^((abs(RSSI) - A) / (10 * n))

  其中:

  d - 計(jì)算所得距離

  RSSI - 接收信號(hào)強(qiáng)度(負(fù)值)

  A - 發(fā)射端和接收端相隔1米時(shí)的信號(hào)強(qiáng)度

  n - 環(huán)境衰減因子

  計(jì)算公式的代碼實(shí)現(xiàn)

 ?。踥bjc] view plain copy- (float)calcDistByRSSI:(int)rssi

  {

  int iRssi = abs(rssi);

  float power = (iRssi-59)/(10*2.0);

  return pow(10, power);

  }

  傳入RSSI值,返回距離(單位:米)。其中,A參數(shù)賦了59,n賦了2.0。

  由于所處環(huán)境不同,每臺(tái)發(fā)射源(藍(lán)牙設(shè)備)對(duì)應(yīng)參數(shù)值都不一樣。按道理,公式里的每項(xiàng)參數(shù)都應(yīng)該做實(shí)驗(yàn)(校準(zhǔn))獲得。

  當(dāng)你不知道周圍藍(lán)牙設(shè)備準(zhǔn)確位置時(shí),只能給A和n賦經(jīng)驗(yàn)值(如本例)。

  修改AirLocate的APLRangingViewController.m展現(xiàn)部分代碼,輸出計(jì)算距離

 ?。踥bjc] view plain copy- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

  {

  static NSString *identifier = @“Cell”;

  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

  // Display the UUID, major, minor and accuracy for each beacon.

  NSNumber *sectionKey = [self.beacons allKeys][indexPath.section];

  CLBeacon *beacon = self.beacons[sectionKey][indexPath.row];

  cell.textLabel.text = [beacon.proximityUUID UUIDString];

  // NSLog(@“%@”, [beacon.proximityUUID UUIDString]);

  // NSString *formatString = NSLocalizedString(@“Major: %@, Minor: %@, Acc: %.2fm, Rssi: %d, Dis: %.2f”, @“Format string for ranging table cells.”);

  // cell.detailTextLabel.text = [NSString stringWithFormat:formatString, beacon.major, beacon.minor, beacon.accuracy, beacon.rssi, [self calcDistByRSSI:beacon.rssi]];

  NSString *formatString = NSLocalizedString(@“Acc: %.2fm, Rssi: %d, Dis: %.2fm”, @“Format string for ranging table cells.”);

  cell.detailTextLabel.text = [NSString stringWithFormat:formatString, beacon.accuracy, beacon.rssi, [self calcDistByRSSI:beacon.rssi]];

  return cell;

  }

  掃描結(jié)果

  藍(lán)牙rssi距離計(jì)算公式及代碼

  展現(xiàn)了每臺(tái)藍(lán)牙設(shè)備的Acc(精度)、Rssi(信號(hào)強(qiáng)度)和Dis(距離)。

非常好我支持^.^

(4) 100%

不好我反對(duì)

(0) 0%

( 發(fā)表人:鄧家樂(lè) )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?