基础技术篇 8 —— iBeacon技术详解与应用

 iBeacon技术详解与应用

名称解释

BLEBluetooth Low Energy,蓝牙低功耗技术。

iBeacon一种技术,基于蓝牙4.0的精确定位技术。

Beacon实现iBeacon技术的模组、设备。

2 iBeacon介绍

iBeacon是苹果在2013年WWDC上推出一项基于蓝牙4.0(Bluetooth LE | BLE | Bluetooth Smart)的精准微定位技术,在iPhone 4S后支持。当你的手持设备靠近一个Beacon基站时,设备就能够感应到Beacon信号,范围可以从几毫米到50米。因为是一种定位技术,苹果将iBeacon相关的接口放到了 CoreLocation.framework。Google在Android 4.3及后续版本支持了该功能,只要满足iBeacon技术标准即可。iBeacon底层的技术使用的使用BLE(Bluetooth Low Energy)。

3 BLE介绍

BLE起源于2006年Nokia的Wibree技术,后被整合入蓝牙,在2010年发布的蓝牙4.0技术规范成为其中一部分,协议栈如下图所示。它是一组与传统蓝牙不同的协议,且对应设备也未向后兼容。因此形成三种设备类型:

(1)Bluetooth设备(蓝牙BR/EDR):只支持传统蓝牙的设备。如一些老式设备,比如外设、汽车系统、旧型手机等。

(2)Bluetooth Smart Ready设备(蓝牙4.0双模):同时支持传统蓝牙和LE模式的设备。(iOS、Android系统等)新型手机、笔记本、平板电脑等。

(3)Bluetooth Smart设备(BLE单模):只支持LE模式的设备。Beacon设备只支持low energy protocols(LE低功耗协议),因此能靠一颗纽扣电池就能运行很长时间。


BLE和传统蓝牙使用的都是相同的波段(2.4GHz-2.4835GHz)。BLE协议的传输速率比较低,因此除了用于发现设备和做一些简单通信之外,不太适合用于传输大量的数据流。在协议条款上,BLE和传统蓝牙的信号都能够覆盖到100米的范围,但BLE稍广。

BLE与传统的蓝牙相比最大的优势是功耗降低90%,同时传输距离增大(理想状况下超过100米)、安全和稳定性提高(支持AES加密和CRC验证)。iBeacon同时有一些自己的特点:

(1)无需配对,一般蓝牙设备印象中都需要配对工作。iBeacon无需配对,因为它是采用蓝牙的广播信道传送信号。

(2)程序可以后台唤醒,iBeacon的信息推送需要App支持。但是我们接收iBeacon信号无需打开App,只要保证安装了,同时手机蓝牙打开。

(3)iBeacon不具备传统意义上的数据传输功能,Beacon基站只推送位置信息,是采用的不可连接模式。如果开发的APP要运行起来并与服务器通信以实现定制化功能、获取定制化数据,需要开启其他的数据通信方式,如WIFI、4G等。注:采用iBeacon定位,可以不使用网络,定位算法在本地实现,即在设备本身完成定位而不通过服务器计算,前提是地图数据需提前初始化进本地设备。

4 beacon设备如何使用BLE

首先,我们先纵观一下BLE完整的连接过程。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual Basic是一种编程语言,可以用来开发串口通信与测控应用技术。下面是一个示例的源代码,介绍了如何在Visual Basic中实现串口通信和测控功能。 首先,在项目中引入SerialPort控件,可以在工具箱中找到并拖放到窗口上。然后,编写以下代码。 ``` Imports System.IO.Ports ' 导入串口相关的命名空间 Public Class MainForm Dim serialPort As New SerialPort() ' 创建一个串口对象 Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' 设置串口参数 serialPort.PortName = "COM1" serialPort.BaudRate = 9600 serialPort.Parity = Parity.None serialPort.DataBits = 8 serialPort.StopBits = StopBits.One serialPort.Encoding = System.Text.Encoding.ASCII Try ' 打开串口 serialPort.Open() Catch ex As Exception MessageBox.Show("串口打开失败:" + ex.Message) End Try End Sub Private Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click ' 发送数据 If serialPort.IsOpen Then serialPort.WriteLine(txtSend.Text) End If End Sub Private Sub serialPort_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles serialPort.DataReceived ' 接收数据 Dim data As String = serialPort.ReadExisting() ' 处理接收到的数据 If Not String.IsNullOrEmpty(data) Then ' 在界面上显示接收到的数据 txtReceive.Invoke(Sub() txtReceive.AppendText(data)) End If End Sub Private Sub MainForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing ' 关闭串口 If serialPort.IsOpen Then serialPort.Close() End If End Sub End Class ``` 在以上代码中,首先在Form_Load事件处理程序中,通过设置serialPort对象的属性来配置串口参数,并尝试打开串口。如果打开失败,会弹出一个错误消息框显示错误信息。 然后,在btnSend_Click事件处理程序中,当点击发送按钮时,如果串口已经打开,就通过serialPort对象的WriteLine方法将文本框txtSend中的数据发送出去。 接着,定义了serialPort_DataReceived事件处理程序,在这个事件中接收串口数据。使用ReadExisting方法读取串口接收缓冲区中的数据,并将数据显示在txtReceive文本框中。 最后,在MainForm_FormClosing事件处理程序中,关闭串口。 以上就是一个简单的Visual Basic串口通信与测控应用的示例代码。通过使用这些代码,我们可以在Visual Basic中实现串口通信和测控功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值