从信标发送数据到智能手机

11个岗位/ 0个新岗位
最后发表
brian1025
离线
最后看到:4年7个月前
加入:2016-04-11 13:18
从信标发送数据到智能手机

我想知道我如何在信标上创建一个特征来发送一些数据到智能手机?我想要开发的是我可以用我的智能手机连接到Beacon并能够读取其中的数据,这就是为什么我需要一个特性。Beacon默认提供此服务吗?我怎么使用它?请指教,谢谢!

设备:
MT_dialog
离线
最后看到:3个月前2个星期前
工作人员
加入:2015-06-08 34
你好布莱恩,

你好布莱恩,

是的,信标支持一些自定义配置文件,以便通知ADC (adc_notify自定义配置文件和device_config自定义配置文件),您必须使设备可连接,以便能够连接。当你在HW_CONFIG_BEACON_REF中操作时,你可以在da14580_config.h中改变你的设备的配置,#定义CFG_CONNECTABLE_ADV_MODE,这将启用adc_notify配置。此外,通过配置CFG_PRF_DEVICE_CONFIG和CFG_BEACON_CONFIG_STRUCT,您的数据库将包括在Beacon文档中记录的附加配置文件,您可以将其作为一个示例并按照您的需要进行配置。

由于MT_dialog

brian1025
离线
最后看到:4年7个月前
加入:2016-04-11 13:18
嗨MT_dialog,

嗨MT_dialog,

谢谢你的建议,但似乎根本不管用。因此,我将尝试先在ble_app_profile(支柱2自定义概要文件)项目上解决它,然后在Beacon上实现它。我可以通过教程2创建一个新的自定义配置文件,但我想知道如何更改此配置文件的特征值?因为我可能想将DA14580连接到一个传感器,并通过DA14580将传感器的数据发送到智能手机。我必须使用GPIO端口或其他端口吗?

请指教,谢谢!

MT_dialog
离线
最后看到:3个月前2个星期前
工作人员
加入:2015-06-08 34
嗨brian1025,

嗨brian1025,

如前所述,SDK3上的信标示例已经有了一个自定义配置文件服务,使用适当的#define可以启用它。现在,关于ble_app_profile项目,您的意思是改变这个配置文件的特征值,您如何使用来自传感器的适当值在外围设备上写入数据库?如果是这种情况,您可以使用attmdb_att_set_value()函数来更新数据库中的值。我的建议是尝试使用ble_app_peripheral,而不是通过通知向任何通用智能手机应用程序发送一些虚假数据的配置文件项目。

由于MT_dialog

brian1025
离线
最后看到:4年7个月前
加入:2016-04-11 13:18
嗨MT_dialog,

嗨MT_dialog,

谢谢你的建议。现在我决定使用ble_app_peripheral示例将传感器数据发送到智能手机。我计划做的是使用其服务的ADC VAL 1更新传感器的数据。但是,当我将智能手机连接到DA14580时,它什么都没有显示。我在论坛上浏览了一些以前的线程,我发现我应该通过改变“adc_enable_channel(xxx)”来改变“ADC input to the board”的引脚。我在ble_app_peripheral代码中搜索,我发现唯一的“adc_enable_channel()”函数在这里:

如果(sample_vbat1v)
adc_enable_channel (ADC_CHANNEL_VBAT1V);
其他的
adc_enable_channel (ADC_CHANNEL_VBAT3V);

这是否意味着在我的智能手机上显示的ADC值是ADC_CHANNEL_VBAT1V的值(在我的智能手机上什么都没有)?
我如何改变这个ADC值的引脚选择?
我使用的是Basic Development kit,我可以选择P1_3, P1_1, P0_2, P0_4吗?

请指教,谢谢!

MT_dialog
离线
最后看到:3个月前2个星期前
工作人员
加入:2015-06-08 34
嗨brian1025,

嗨brian1025,

你必须在ble_app_peripheral中写入控制点特征,以便开始在ADC特征中获取你的android应用程序的值,当然也要在相应的特征中启用通知。

app_ble_peripheral()也没有实现将ADC的值发送到android(示例发送的值是由计时器提供的虚拟数据,该计时器不断递增发送的值)。您粘贴的代码是来自电池驱动程序的代码片段,启用通道用于选择ADC的4个通道之一。有关ADC API的更多信息,请查看10.4节中的UM-B-051文档。关于ADC的引脚选择,可用的引脚是P00, P01, P02, P03,您可以查看表3上的数据表以验证这一点。您还可以检查信标参考设计的实现,检查从通道P01读取ADC的app_adc_notify_enable()函数。

由于MT_dialog

brian1025
离线
最后看到:4年7个月前
加入:2016-04-11 13:18
嗨MT_dialog,

嗨MT_dialog,

我想知道如何启用信标服务?当我下载信标代码并下载到主板上时,我的智能手机可以找到它,但没有服务。我在UM-B-019中发现有一个命令用于启用设备配置服务(DEVICE_CONFIG_ENABLE_REQ)。我怎么使用它?此外,您的意思是信标内置了从通道P01发送ADC值的功能吗?正如我已经定义了你提到的功能,但似乎没有服务显示太:

#if (CFG_HW_CONFIG == HW_CONFIG_BEACON_REF)
#定义CFG_SPI_FLASH
# undef CFG_DYNAMIC_BEACON_DATA
#定义CFG_CONNECTABLE_ADV_MODE
# ifdef CFG_CONNECTABLE_ADV_MODE
#定义CFG_PRF_ADC_NOTIFY
# endif
# endif

您能否建议我应该在ble_app_peripheral示例上编写自己的控制点特性,还是应该修复信标以满足我的目标?因为我不知道要多久,而且我是新来的。谢谢你!

MT_dialog
离线
最后看到:3个月前2个星期前
工作人员
加入:2015-06-08 34
嗨brian1025,

嗨brian1025,

关于您无法连接信标的事实,让我提醒您,信标在可连接模式下从可连接和不可连接的数据包中交替其功能,这可能会在连接到信标时造成一些混乱。实际上,有一个配置文件接口允许您配置您的设备,您可以通过定义CFG_BEACON_CONFIG_STRUCT启用它,这将启用相应的配置文件。

如果你让你的设备可连接,ADC实现可以直接使用,这将启用这个示例配置文件,并将对ADC进行采样,如果你检查da14580_config,请注意,#ifdef CFG_CONNECTABLE_ADV_MODE(如果设备处于可连接模式),那么CFG_PRF_ADC_NOTIFY是定义的,这将迫使SDK包括这种服务,并在连接到信标时显示它。

在ble_app_peripheral()中,为了让代码启动ke_timer并生成虚拟数据,你必须通过android通用应用程序将第一个特征(名为控制点)写入0x01值,之后在你想要的特征上启用通知,之后你将能够在你的手机上获得数据。我建议你修改ble_app_peripheral,因为它是一个更新的SDK,对于初学者来说更容易与它交互,特别是当他想实现一个自定义配置文件时。

由于MT_dialog

brian1025
离线
最后看到:4年7个月前
加入:2016-04-11 13:18
嗨MT_dialog,

嗨MT_dialog,

对不起,我搞糊涂了。你说的“通过你的android通用应用程序写入第一个特征0x01”是什么意思?

我必须在ble_app_peripheral上创建一个像tutorial2(控制点)或使用sample128 (AN-B-029)这样的新配置文件吗?

假设我创建了一个新服务,如何让da14580知道我用哪个引脚来获取数据,它们会在user_custs1_impl。c中设置吗?

非常感谢,我对此感到很困惑,对不起。

brian1025
离线
最后看到:4年7个月前
加入:2016-04-11 13:18
嗨MT_dialog,

嗨MT_dialog,

我尝试使用模板项目并在其上实现sample128概要文件。单板和智能手机连接成功,但是单板总是只回复我从智能手机发送的数据。我想知道我可以在哪里更改板的响应值?

现在:智能手机向DA14580发送0x0A
DA14580向智能手机发送0x0A

我想:智能手机发送0xFF到DA14580
DA14580发送端口0的值pin3

你有什么建议吗?谢谢你!

MT_dialog
离线
最后看到:3个月前2个星期前
工作人员
加入:2015-06-08 34
嗨brian1025,

嗨brian1025,

设备的行为取决于每个特性的特征和属性,你什么意思,董事会响应从你的手机发送的数据,如果有一个特点与读写属性如果你从你的手机写点东西,特点,当你读回设备将回复你的手机发送的值(如果你不操纵你的设备价值)。如果你想在手机写入特定值时切换一个led(更新端口0引脚3的寄存器),你必须在sample128的写入处理程序中实现该功能。在ble_app_peripheral项目的SDK5上有一个类似的例子,当编写LED特征(具有“LED State”描述符的那个)时,它将在开发工具包上打开和关闭LED(如果这是您正在寻找的)。

由于MT_dialog