问题标签 [hm-10]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - HM-10 作为 BLE 监听器:从它建立一个简短的连接
我需要在 BLE 主设备和 BLE 外围设备之间建立简短的通信。
在我必须使用手机之前我没有任何问题,因为我选择了安卓的蓝牙设备,我可以连接到它,然后我可以接收数据,只需将它们写入 HM-10。
但是,这种方法的电池成本很高,因为 BLE 扫描比 BLE 广告更昂贵(对吗?)。所以我希望手机成为广告商,而 HM-10 扮演奴隶的角色。
但是,我仍然不明白是否可以连接到其他设备:我尝试了 AT+CONN,但它总是失败(AT+CONF)。有什么方法可以从 HM-10 向广告商发送简短的数据,即使没有连接?
甚至我的固件看起来也与自述文件略有不同!例如,AT+LN 存在于文档中,但它似乎不存在。此设备是否存在更好的固件版本,或者是否有可用的资源?我安装了 HM-Soft V705(最新)。
谢谢
更新 1:
@ChrisStratton 好的,我有一些有趣的消息:我已经在关注你的想法(有时电话广告,而 HM-10 总是扫描并尝试连接到服务,如果它看到它,然后 HM-10 发送一些数据,电话接听) . 我设法让 HM-10 可以看到手机(不要问我怎么做的!)。我正在使用 BLE Tool Android 应用程序来测试所有内容。现在,中心问题是即使广告商可连接,HM-10 也不会连接到 android 服务(见附图)。
我很想知道 AT+CO(我发现它是 AT+LN 的一种替代品,但我不确定)可以提供帮助,但我不知道如何。
bluetooth - 写入描述符失败 - HM-10 BLE
我对带有 V705 固件的 HM-10 BLE 模块有疑问。当我尝试使用蓝牙串口监视器应用程序(小米红米 5 Plus、MIUI 11.0.2 Global、Android 8.1)连接到模块时,write descriptor failed
出现错误。UUID 为 0xFFE0(默认)。相同的模块适用于 V609 固件。此外,如果我使用 BLE Scanner 应用程序,手机会与 mthe 模块配对 - BLE Scanner 看到的信息上的图像。
我在 Dev 中打开了蓝牙调试。选项,我发现了这个。
我是蓝牙(LE)的新手。另外,如果我尝试通过手机设置与模块配对,如果模块不需要 PIN,则手机无法配对,但如果需要 PIN,则手机可以配对。为什么?为什么与 V705 固件配对不起作用,而与 V609 配对却没有任何问题?所有设置都保持不变。HM-10 将用于 DIY 项目。该项目的应用程序将很快完成,所以现在我使用蓝牙串行监视器应用程序来查看来自 BT 的包。感谢帮助!
arduino - HM-10 在不知道 MAC 地址的情况下与另一个 HM-10 配对
我试图弄清楚,当我不知道从机 MAC 地址时,如何连接两个 hm-10 模块。想象一下,你有一个电动长板,却丢了遥控器。你给自己买了一个新的,现在想与董事会配对。
在数据表中,我找不到任何有用的功能来简化此过程。我考虑过为从设备设置一个唯一的名称,并在主设备上制作一个配对按钮。配对按钮会将主设备设置为配对模式(AT-ROLE1,AT+IMME1 以执行 AT+DISC?)。AT+DISC的结果?命令将被保存到一个数组中,在找到从设备的唯一名称后,设备/MAC地址的索引将被保存并用作建立连接的参数。我正在使用固件版本 v707。
问题是,我觉得这个解决方案并不优雅,我认为必须有更好的方法来做到这一点,但我找不到任何关于它的信息。有没有人试图这样做,也许有一些见识?我非常感激。
arduino - 如何与 HM-19 BLE 模块通信并使用超声波传感器进行扫描
我正在为学校做我的高级项目,我需要做的一部分是使用 HM-19 蓝牙 5.0 模块连接到另一个蓝牙 5.0 模块并建立主从连接。
我可以做到这一点,但是当我包含超声波传感器进行扫描所需的代码时,我对 HM-19 的命令不会返回任何内容,并且我无法执行任何基本功能,例如查找连接。我已经在使用和不使用超声波传感器代码的情况下对其进行了测试,当我使用代码的传感器部分时会出现问题。
明确一点,我要做的只是让我的蓝牙 5.0 芯片连接到另一个芯片并执行正常命令,同时当我把手放在前面时,还向我的串行监视器输入一段距离。这只是一个测试,一旦完成,我将转向我真正想做的事情。
这只是项目的起点。我在 void 循环中对我的传感器和蓝牙芯片进行了函数调用,这就是其中的全部内容。
我只想知道如何解决这个问题。如何使用超声波传感器进行扫描并向蓝牙模块发送命令?任何帮助将不胜感激。
[这里是评论传感器时的结果][1] 和 [这里是导致无限循环的不成功结果,我无法到达返回芯片所说内容的代码部分][2]。最后,虽然大部分链接都包含 HM-10 的内容,但 HM-19 的命令基本相同。我正在添加更多内容,因为堆栈溢出不会让我编辑这篇文章,直到有更多字符或其他东西。我希望你有一个美好的一天/晚上的人阅读这篇文章。
这是我的代码:
ios - 从Nsnumber转换为数据发送rssi到蓝牙模块IOS swift 4
我发现我正在使用的蓝牙 4.0 模块接收到 iPhone 的信号强度,但它的格式为NSNumber
并且 writeValue() 方法只接受 type 的值Data
。
我将如何转换 fromNSNumber
到 type Data
?还是有另一种更好的方法将这些数据从我的 iPhone 发送到蓝牙模块?
我使用的蓝牙模块是 HM-10,它连接到一个 arduino。
arduino - Arduino Nano 和 HM-10 BLE 控制器之间的通信不起作用
我想检查我在 Arduino IDE 中的 SerialMonitor 和 BLE 控制器之间的通信是否正常。
AT
我向我的 SerialMonitor输入了命令,它应该返回OK
响应,但什么也没发生。
这是我使用的方案:
代码:
更新:
更改了SoftwareSerial bleSerial(3, 2) 的值;// RX,TX仍然不起作用。
更新2:
我试过切换引脚和代码,没有任何效果。我至少应该在我的 Android 手机上的蓝牙设备中看到 HM-10 控制器,但我什么也看不到。
更新3:
我使用了这个 Stackoverflow 帖子中的代码,并且工作正常。我终于可以在我的 Android 手机上的蓝牙设备中看到控制器了。它在命令MLT-BT05
后返回了名称。AT+NAME?
看起来您必须读取每个字符的消息并在字符之间放置 10 毫秒的延迟,否则将无法从 BLE 控制器读取消息。那是唯一的问题。
android - HM-10 BLE 微控制器无 PIN 连接
我正在使用 HM-10 控制器与我的 Android 应用程序进行通信。在 Arduino 控制台中,我使用命令设置引脚,AT+PIN112233
该命令应该是 BLE 设备的密码。此 PIN 已保存到我的设备,但 Android 手机无需任何确认或 PIN 请求即可连接到此设备。这是正常行为吗?
我只是通过扫描找到设备,BroadcastReceiver
然后我得到了正在运行的设备BluetoothDevice.ACTION_FOUND
。它会返回蓝牙设备,我只需连接到这个设备
我的 Android 应用程序中没有任何对话框窗口要求输入 PIN。还尝试了其他一些蓝牙或BLE连接的应用程序,结果是一样的。在配对过程中,他们都没有要求输入 PIN。
此外,我的 HM-10 BLE 控制器对某些 AT 命令没有反应:
AT+TYPE2
返回+TYPE=0
AT+VERR?
没反应AT+VERS?
没反应AT+RESTART
没反应AT
没有回应,但AT+
回应OK
c - BLE 数据与 HM-10 和 Arduino Nano 不一致
我们有一个控制 80 条 LED 灯条的项目,通过移动应用程序连接。我们使用的组件如下:
- Arduino纳米板
- HM-10蓝牙模块
- WS2812b 灯带
在应用程序上,用户可以选择颜色(最多 5 种)、动画(可选)、动画速度和亮度。选择的配置通过一定的节流和去抖动传输到 BLE 模块。颜色(在应用程序的色轮上选择)和亮度传输良好,没有任何问题。
我们遇到的问题是,当某些动画处于活动状态时,如果用户通过应用程序更改动画速度,arduino 部分会自行锁定,不再接受任何命令。
要使用动画激活配置,我们将数据从应用程序发送到 arduino,如下所示:
<l255180200,240135068:089;04200>
格式为:< [mode] [colors(with ',')] : [brightness] ; [动画代码(2位)] [动画速度] >
起初,我们对连续数据有一些不一致的地方,所以我们实现了以下数据采集:
所以当模式=='l'时调用自定义函数。在自定义函数中,我们执行如下:
问题出现在脉冲动画中,是这样的:
我们使用以下方法初始化动画,没有任何问题:
<l255180200,240135068:089;04200>
一旦我们从应用程序调整动画速度,我们每秒发送大约 2 个新配置,这与上面相同,只是速度不同('>' 之前的最后 3 个字符)。arduino部分随机接收数据不正确,丢失2-3个字符,如<l2551800,240135068:089;04200>
字符丢失通常发生在字符串的不同部分,但每次都会发生连续字符被误读的情况。此外,有时我们会得到一个倒退的问号。我们不确定我们在哪里实施了错误,因此对于解决此问题的任何帮助表示赞赏。
谢谢!