天道酬勤,学无止境

How to use Arduino with BLE Shield search Apple's iBeacons signal source

问题

我正在玩一个项目,通过 Arduino 使用 BLE Shield 在区域内搜索 iBeacons。

由于 iBeacons Technology 的技术支持泄露,我找不到任何有关如何搜索 iBeacons 信号源的文档。

回答1

iBeacon 基本上是一个 BLE 广播器,此类设备只能由 Central 或 Observer 发现。 许多 BLE 屏蔽使用 Nordic Semiconductor 的 nRF8001 芯片,不幸的是,这是一个纯外围设备,因此无法使用它来发现 iBeacon。

查看这个问题,了解有关 BLE 中角色的更多详细信息。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • How to use Arduino with BLE Shield search Apple's iBeacons signal source
    I am playing a project to search iBeacons in region by Arduino with BLE Shield. Because of leak of tech-support of iBeacons Technology, I can't find any docs about how to search iBeacons signal source.
  • 从 iBeacon 接收 BLE 信号到 Bluno(带有 BLE 的 arduino)(Receive BLE signal from iBeacon to Bluno(arduino with BLE))
    问题 我想从 iBeacon 接收 rssi 信号和 UUID 到 Arduino 板具有 BLE 的 Bluno。 对此有一些问题。 是否有任何解决方案可以从 BLE 接收 UUID 和 RSSI 到 BLE? 是否可以相互通信两个 BLE 设备? 我想要一些网站来参考这个问题。 我还需要将 bluno 与 AR.Drone 连接起来。 你能给我一些建议吗? 感谢您的帮助 回答1 Bluno 能够充当 iBeacon(发射器),但它无法接收 iBeacon 公告并将其传递给 Arduino。 BLE 设备可以通信并且可以接收 UUID 和 RSSI,但这取决于设备的能力和它公开的接口。 例如,iOS 设备公开了一个非常复杂的 BLE API。 Bluno 板没有。 它向 Arduino 公开了一个“串行端口”,并将发送/接收数据映射到一组 BLE GATT 特性。 可以将一对 Bluno 设备配置为无线串行链路,或者计算机或移动设备上的软件可以通过蓝牙堆栈与 Arduino 交换数据。 有一个 AT 命令将返回配对设备的 rssi,但文档不清楚这是否可用于 Arduino 或仅通过 USB 连接到计算机。 特别是 Bluno 的最佳参考(例如它是)似乎是 DFRobot Wiki 我怀疑您是否能够直接从没有蓝牙 LE 的 Bluno 使用低功耗蓝牙连接到 AR.Drone。
  • 计算 Arduino BLE 扩展板和手机之间的距离(Calculate Distance between Arduino BLE shield and Phone)
    问题 是否可以计算 arduino 蓝牙屏蔽(BLE Shield 2.1)和手机之间的距离? 更具体地说,当手机距离盾牌不到 5 英尺时,我希望它执行一个动作。 我知道 BLE Beacon 技术能够在一般意义上(立即、近、远)做到这一点,所以我想知道这是否可能? 查看堆栈溢出,我找到了以下答案,但它们都过时了: 回答 1 回答 2 我知道超声波频率和激光瞄准器都是可选的,但我正在努力降低成本,因此我更喜欢一种无需使用其他工具即可计算距离的方法。 回答1 是的,您可以将其用于基于 RSSI(接收信号强度)的距离计算。 您应该按照 Eirik M 回答中的说明在 Arduino 端实现 iBeacon。 在我看来,最重要的是您必须了解 BLE/iBeacon 精度。 请仔细阅读以下文章,以确定 iBeacon 技术是否适合您的需求。 如果是这样,实施应该是直截了当的。 广播功率和RSSI 信标实验:运行中的低功耗蓝牙设备 回答2 如果 BLE 信标对您来说足够好,那么为 Arduino 扩展板实现信标应该相当容易。 您需要注意一些事项,例如输出功率和天线特性。 我建议阅读信标技术以了解其工作原理。
  • 我可以使用 Arduino 读取 iBeacon 数据吗?(Can I read iBeacon data using Arduino?)
    问题
  • Receive BLE signal from iBeacon to Bluno(arduino with BLE)
    I want to receive rssi signal and UUID from iBeacon to Bluno which the Arduino board has BLE. there are some questions for this. Are there any solutions to receive UUID and rssi from BLE to BLE? Is it possible to communicate two BLE device each other? I want some sites to reference for this problem. I also need to connect bluno with AR.Drone. Could you give me some advices for this? thank you for your help
  • 如何在不指定 UUID 的情况下扫描 iBeacon 信号?(How to scan iBeacon signals without specifying UUID?)
    问题 由于 iBeacon 信号只是带有预定义 BLE 配置文件的 BLE 广播,我想我可以编写一个 iOS 应用程序来扫描 BLE 广播信号并分析找到的信号是否是 iBeacon。 但是怎么做呢? 如何扫描周围所有的BLE广播信号? 如何区分一个BLE广播信号是否是iBeacon? 回答1 不幸的是,在 iOS 上你必须提供 ProximityUUID 才能看到 iBeacons。 在 Android 上,无论 UUID 如何,您都可以看到所有 iBeacon。 此外,在 iOS 上,您不能将 CoreBluetooth API 用于 iBeacon 广告。 有关详细信息,请参见此处。 回答2 @davidgyoung 的答案并不完全正确。 在 iOS 上,您可以订阅进入/离开统治,但您必须事先知道 UUID。 但是,您可以使用常规蓝牙设备扫描来检测所有蓝牙设备。 然后,您可以查看广告数据以查看它是否确实在使用 iBeacon 标识符并列出其 iBeacon UUID。 回答3 根据我的说法,您无法找到所有正在广播广告数据的信标,无论它们的接近度 UUID 是多少。 这只能在 Mac 应用程序中完成,不能在 iOS 中完成。 这将帮助您更好地理解单击此处 这是 Mac 工作状态下开源信标扫描应用程序的链接:单击此处
  • 蓝牙常见词汇及蓝牙技术详解
    随着互联网信息时代的到来,可移动的便携式智能产品一经推出便让无数“智能发烧友”疯狂。可穿戴设备从最初MP3听歌,逐步发展到无线蓝牙耳机、VR设备。 而可穿戴设备市场的快速增长离不开蓝牙通信技术的发展,随着蓝牙4.0技术的普及和移动互联网的崛起,蓝牙技术应用也从手机、平板等便携式设备向着物联网、医疗等领域发展,基于蓝牙技术的应用方案如雨后春笋般爆发,为物联网市场带来了新的机遇。 谈及蓝牙,我们会经常听到BLE、Beacon、iBeacon、Eddytstone等词汇,而它们之间有何联系与区别呢?下面我们对蓝牙常见词汇及应用涉及的蓝牙技术进行详解。 一、蓝牙常见词汇解释 BLE:全称为Bluetooth Low Energy,蓝牙低功耗技术。 Beacon:基于蓝牙4.0协议的一种精确定位技术。 iBeacon:苹果公司2013年推出的一套遵守Beacon技术协议的规范,需要遵守苹果公司规定的数据格式。 Eddystone:谷歌公司2015年推出的一款跨平台的开源Beacon格式蓝牙协议。 我们日常生活中常说的蓝牙,其实通常是指BLE,蓝牙低功耗技术,如名字所示,现在的蓝牙技术所消耗的功耗很低,并不像传闻中,不使用蓝牙需要关闭省电,手机上长期打开蓝牙所消耗的电量可以忽略不计。 二、BLE的起源与分类 BLE,也就是低功耗蓝牙技术,起源于2006年Nokia(诺基亚)的Wibree技术
  • How to wake up iOS app with bluetooth signal (BLE)
    When using the BLE with CoreBluetooth (no iBeacon), is there a way to wake an app that is not running when the device receives a Bluetooth signal? I'm simulating a beacon with the RedBearlab's BLE Shield (http://redbearlab.com/bleshield/). Thanks, DAN * UPDATE 03/05/14 * It looks like Apple has introduced a major update with iOS 7.1: now iOS will open your app for you if it detects a UUID that matches your app. The app only needs to be installed, it doesn't have to be running (logic in AppDelegate needed to answer the wake-up call).
  • How to use BLE Shield based on HM-10 bluetooth module?
    I'm a new bie on arduino projects. I would like to ask you for some help. I bought a BLE Shield for Arduino from ( http://imall.iteadstudio.com/development-platform/arduino/shields/im130704001.html ). They made this shield using Hm-10 Bluetooth module(http://www.jnhuamao.cn/bluetooth.asp?ID=1). Itead Studio has no sample codes using this shield. I have no idea on how to program it or send AT commands from Arduino. I read the “AT commands” at the data sheet (ftp://imall.iteadstudio.com/Shield/IM130704001_ITEAD_BLE_Shield/DS_IM130704001_ITEAD_BLE_Shield.pdf) and I tried to send "AT commands”
  • 如何使用基于HM-10蓝牙模块的BLE Shield?(How to use BLE Shield based on HM-10 bluetooth module?)
    问题 我是arduino项目的新手。 我想请你帮忙。 我从 ( http://imall.iteadstudio.com/development-platform/arduino/shields/im130704001.html ) 为 Arduino 购买了 BLE Shield。 他们使用Hm-10蓝牙模块(http://www.jnhuamao.cn/bluetooth.asp?ID=1)制作了这个盾牌。 Itead Studio 没有使用此屏蔽的示例代码。 我不知道如何编程或从 Arduino 发送 AT 命令。 我阅读了数据表(ftp://imall.iteadstudio.com/Shield/IM130704001_ITEAD_BLE_Shield/DS_IM130704001_ITEAD_BLE_Shield.pdf)中的“AT命令”,并尝试使用此代码(http: //arduino.cc/en/Reference/SoftwareSerial )但我只收到了命令。 这里有人用过这个 HM-10 蓝牙模块吗? 我需要一些 arduino 草图来寻求帮助! 回答1 #include <SoftwareSerial.h> int led = 13; int bluetoothTx = 2; int bluetoothRx = 3; SoftwareSerial
  • BLE GATT onCharacteristicChanged not called after subscribing to notification
    this is my first post on SO. I have some problems subscribing to GATT notifications on android 5.0.2 . What I aim to do is to connect an Arduino with a BLE Shield to my Android phone. I have a sensor connected to the Arduino and want to send the data from the Arduino to my phone by using the BLE shield. There is a nRF8001 on the shield which is the server, my phone/app is the client. What I did so far was to create an Android app which scans for BLE devices. It can connect to a device and read or write characteristics. So, I can "manually" read the characteristic by calling gatt
  • 如何使用蓝牙信号(BLE)唤醒iOS应用(How to wake up iOS app with bluetooth signal (BLE))
    问题 将BLE与CoreBluetooth(no iBeacon)结合使用时,是否有一种方法可以在设备收到蓝牙信号时唤醒未运行的应用程序? 我正在使用RedBearlab的BLE Shield(http://redbearlab.com/bleshield/)模拟信标。 谢谢,丹 *更新03/05/14 * 看来Apple引入了iOS 7.1的重大更新:现在,iOS如果检测到与您的应用程序匹配的UUID,将会为您打开您的应用程序。 该应用程序仅需要安装,而不必运行(AppDelegate中的逻辑需要应答唤醒呼叫)。 回答1 如果该应用程序在后台运行,然后关闭(我的意思是此处已终止-双击主屏幕按钮后您不再在后台应用程序列表中看到它),则由于其他应用程序的内存压力,iOS将请注意在调用代理时再次唤醒它(假设您在.plist中列出了后台模式)。 如果该应用程序在后台运行,然后被用户关闭(同样,我的意思是此处已终止。因此,用户双击以获取在后台运行的应用程序的列表,然后在背景列表中单击您的应用程序,直到它摆动并然后按一下应用程式旁边的[x]即可杀死它),这明确表示使用者不希望该应用程式在背景上执行,而且该应用程式不会重新启动。 用户必须重新启动其代表的应用程序,才能在后台再次开始运行(iOS7中的新增功能)。 更新:我不确定这是否在文档中,但是否在CoreBluetooth WWDC
  • BLE GATT onCharacteristicChanged not called after subscribing to notification
    问题 这是我关于 SO 的第一篇文章。 我在 android 5.0.2 上订阅 GATT 通知时遇到了一些问题。 我的目标是将带有 BLE Shield 的 Arduino 连接到我的 Android 手机。 我有一个连接到 Arduino 的传感器,并希望使用 BLE 屏蔽将数据从 Arduino 发送到我的手机。 盾上有一个nRF8001是服务器,我的手机/应用程序是客户端。 到目前为止,我所做的是创建一个扫描 BLE 设备的 Android 应用程序。 它可以连接到设备并读取或写入特征。 所以,我可以通过调用gatt.readCharacteristic(mCharacteristic);来“手动”读取特征。 . 这使我可以从 Arduino 获取传感器值。 我还使用 nRFGo Studio 创建了一个自定义服务。 我知道这部分正在工作,因为我能够通过使用 Google Play 上提供的 BLE Scanner 应用程序来发现、连接甚至收到有关特性更改的通知。 但是在我自己的应用程序中订阅通知是行不通的。 好吧,至少订阅有效,但永远不会调用onCharacteristicChanged(...) 。 有趣的是,如果我在我的应用程序中订阅该特征,然后使用 BLE 扫描仪应用程序订阅它,就会突然onCharacteristicChanged(...)直到我再次通过 BLE
  • 如何从iBeacon / BLE检索广告有效载荷(How to retrieve advertising payload from iBeacon / BLE)
    问题 如何在Linux中检索Bluetooth LE发射器的广告有效载荷? 具体来说,我已经使用hcitool将arduino和R-PI配置为iBeacons。 我正在寻找的命令是打印出该设备当前的广告有效负载。 回答1 在Radius Networks,我们整理了一组脚本,这些脚本从Linux上检测到的BLE广告中解析出iBeacon标识符。 您可以在此处找到对此的描述。 如果您只想查看原始广告字节,则可以使用以下命令在Linux上开始扫描: sudo hcitool lescan --duplicates & 然后使用以下命令查看结果: sudo hcidump --raw 更多细节在上面链接的答案中。 回答2 由于libpcap-1.0 +现在支持蓝牙捕获,因此您可以使用Wireshark / tshark / tcpdump捕获和显示Bluetooth数据包-BTLE和其他数据包类型。 要使用Wireshark捕获LE数据包,您仍然需要告诉蓝牙接口查询LE数据包,如上一个答案中所述: sudo hcitool lescan --duplicates & 另外,如果您希望适配器对处于可发现模式的蓝牙设备进行定期查询,则可以运行(尽管这些查询不会获取BTLE发射): sudo hcitool spinq 回答3 sudo hcitool lescan --duplicates
  • Calculate Distance between Arduino BLE shield and Phone
    Is it possible to calculate the distance between an arduino bluetooth shield (BLE Shield 2.1) and cell phone? More specifically, when the cell phone is within <5 feet of the shield, I want it to perform an action. I know BLE Beacon technology is able to do this in a general sense (immediate, near, far) so I'm wondering if it is possible? Looking through stack overflow, I've found the following answers but they are all dated: Answer 1 Answer 2 I know that ultrasonic frequency and laser sight are both options but I am trying to keep costs low so I would prefer a way in which the distance is
  • How to scan iBeacon signals without specifying UUID?
    Since iBeacon signal is just a BLE broadcasting with a predefined BLE profile, I think I can write an iOS App which scan the BLE broadcasting signals and analyze whether any found signal is iBeacon. But how to do that? How to scan all BLE broadcasting signals around? How to distinguish whether a BLE broadcasting signals is iBeacon?
  • 我们可以在 iOS 上检测非 iBeacon 信标吗?(Can we detect non-iBeacon beacons on iOS?)
    问题 我和我的团队正在开发一个信标,我们需要与用户 iPhone 上的应用程序对话。 由于我们需要应用程序来检测信标并执行代码以在被杀死时与我们的 API 对话,因此我们不能使用 CoreBluetooth 并且需要作为信标运行。 我们正在尝试在 BCM20737S BLE 模块上制作自定义信标。 是否可以将此自定义信标作为信标与 iPhone 上的应用程序对话? (核心定位框架) 谢谢! 回答1 只要您的数据包正在使用 iBeacon 协议广播数据包,那么 corelocation 就可以检测到它,并且您的应用程序将根据检测到的该信号唤醒。 iBeacon 协议数据包是一个 25 字节的有效载荷,设置为 BLE 广告中的制造商数据字段。 公司 ID 为 2 个字节 (0x004C) 类型为 1 个字节 (0x02) 数据长度为 1 字节 (0x015) 邻近 UUID 是一个 16 字节的十六进制字符串主要是 2 个字节 uint16_t 次要是 2 个字节 uint16_t 测量功率为 1 字节 int8_t 这个堆栈线程可能对你有用。 什么是 iBeacon 蓝牙配置文件 但本质上,corelocation 仅针对 ibeacons 配置,如果您想传输不同的协议数据包,您将需要在 iOS 上使用 CoreBluetooth,然后一旦您收到数据包
  • 搜索所有iBeacon,而不仅仅是使用特定的UUID(Search for all iBeacons and not just with specific UUID)
    问题 是否可以搜索附近的所有iBeacons ? 我知道可以通过UUID搜索iBeacons 。 但是我想在附近找到所有的iBeacons 。 回答1 iBeacon是一个区域,并具有UUID作为定义属性。 因此,您只能搜索与UUID匹配的内容。 找到具有特定UUID的一个或多个后,可以使用委托回调找出最接近的UUID,信标存储在按距离排序的数组中。 上面有很棒的示例代码,还有一个非常详细的WWDC视频会议:“核心位置的新功能” 回答2 与常规BLE外设相比,iBeacon是更高级别的构造。 根据可从Apple文档确定的信息,信标与其服务UUID绑定在一起。 即,一个信标家族是一个“区域”,您根据信标对您的范围和可见性进入或离开一个区域,而不是相反。 不幸的是,Apple使用了“区域”一词,我们大多数人可能将其与MapKit相关联,因此这增加了普遍的困惑 这是个坏消息:您只能扫描您知道的ProximityUUID,没有“通配符”接近度UUID。 此外,CLBeacons不会以较低级别的CoreBluetooth胆量暴露太多,因此,如果您想找到所有碰巧在您附近的信标,则必须使用CoreBluetooth,扫描外围设备,然后查看返回的外围设备并向他们每个人查询以找到信标。 当然,Apple既未注册(未注册Bluetooth SIG),也未发布iBeacon特性,因此
  • HM10 ble 改变特征值 AT 命令 Arduino(HM10 ble change characteristic value AT command Arduino)
    问题 任何人都可以帮助我使用 AT 命令来写入特征值,或者如何使用 Hm10 模块将数据从 arduino 发送到另一个 ble 设备。 HM10发送AT+START后,会做广告包,可以检测服务和特征,但是特征值是默认的0x00,怎么改? 已多次检查数据表,但找不到能够执行相同操作的 AT 命令。 更新:在中央模式下设置 HM10 的类似问题: 中央模式设置! 1) AT+ROLE1 - 设置为中央模式 2) AT+IMME1 - 从 RESET 开始 3) AT+SHOW1 - 显示发现的设备 4)AT+光盘? - 发现设备获取设备 MAC ID, 5) AT+CON[MAC ID] 结果:总是给出 OK+CONNA 并在 10 秒后给出 OK+CONNF 我很困惑,在“AT+DISC”之前使用“AT+START”? 导致 AT+START 不起作用,反之亦然。 使用 AT+START 会导致 OK+CONN 循环,然后是 OK+LOST,并且不再接受更多的 AT 命令。 我相信它会导致 你能建议正确的顺序吗? 使用 LightBlue iOS 应用程序作为外围设备。 如何选择服务并订阅特征以从应用程序接收数据? 谢谢你。 回答1 没有设置特征值的 AT 命令。 HM10 是一个串行端口仿真设备 - 您发送到 HM10 模块的任何串行数据(除了 AT 命令)都可以通过它的 BLE
  • iPhone - 任何使用蓝牙与 Arduino 板通信的示例?(iPhone - Any examples of communicating with an Arduino board using Bluetooth?)
    问题 我正在修补 iPhone 控制的遥控车底盘,它是我的机器人项目的基础。 机箱由 WiRC Wi-Fi 模块控制。 它有八个输出来控制电子速度控制器和伺服系统。 我想提高我的机器人使用传感器避开障碍物的能力。 为此,我有一个 Arduino 板,可以与各种廉价的测距仪和接近传感器连接。 我正在寻找使用蓝牙将 iPhone 连接到 Arduino 板以向板发送命令并从板接收数据的示例或演示项目。 我想的可能吗? 感谢您提供指向可能使用蓝牙与 iPhone 交互的项目或硬件板的任何链接。 如果其中一些板具有简化开发的 SDK,那就太好了。 回答1 不幸的是,与 iOS 设备的标准蓝牙通信仅限于 MFi 程序中的设备,因此您将无法在 Arduino 板中使用它。 但是,较新的 iOS 设备(iPhone 4S、Retina iPad)支持的新蓝牙 4.0 LE 协议是开放的,可用于连接任何 LE 设备。 iOS 5.0 在 Core Bluetooth 中为此引入了一个新框架,我强烈建议观看 WWDC 2012 中关于此的两个会议。 他们还有一些关于该主题的示例代码。 我自己一直在使用它来连接一些传感器,它适用于低带宽应用,如温度、接近度或心率感应。 有几个 BT LE 模块,看起来 Michael Kroll 博士即将开始生产用于 LE 通信的 Arduino 扩展板