将数据从Beacon发送到智能手机

11个帖子/ 0个新帖子
最后发表
brian1025
离线
最后看到:4年4个月前
加入:2016-04-11 13:18
将数据从Beacon发送到智能手机

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

设备:
MT_dialog
离线
最后看到:4周1天前
工作人员
加入:2015-06-08 34
嗨Brian,

嗨Brian,

是的,信标支持某些自定义配置文件,以便通知ADC(ADC_NOTIFY自定义配置文件和DEVICE_CONFIG自定义配置文件),您必须使设备可连接以便能够连接。您可以在DA14580_CONFIG.H中更改设备的配置,而#define在将在HW_CONFIG_BEACON_REF中运行,则会更改CFG_CONNECTABLE_ADC_MODE,以启用ADC_NOTIFY配置。另外,通过配置CFG_PRF_DEVICE_CONFIG和CFG_BEACON_CONFIG_STACTURS数据库将包括在信标文档中记录的附加配置文件,您可以将其视为示例并根据您的方式进行配置。

由于MT_dialog

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

嗨mt_dialog,

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

请指教,谢谢!

MT_dialog
离线
最后看到:4周1天前
工作人员
加入:2015-06-08 34
嗨brian1025,

嗨brian1025,

如上所述,SDK3上的信标示例已刚刚是自定义配置文件服务,具有正确的#define您可以启用它。现在,关于BLE_APP_PROFILE项目,您的意思是更改此配置文件的特征值,您如何使用传感器的适当值在外设上编写数据库?如果是这种情况,则可以使用ATTMDB_ATT_SET_VALUE()函数以更新DB中的值。我的建议是尝试使用BLE_APP_PERITELAL而不是通过通知向任何通用智能手机应用程序发送一些虚拟数据的配置文件。

由于MT_dialog

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

嗨mt_dialog,

谢谢你的建议。现在我决定使用BLE_APP_PERIANTAL示例将我的传感器的数据发送到智能手机。我打算做的是使用其服务的ADC Val 1来更新传感器的数据。但是,当我使用DA14580连接我的智能手机时,它不会显示任何内容。我在论坛中经历了以前的一些线程,我发现我应该通过更改“ADC_ENABLE_CHANNEL(XXX)”来改变“ADC输入的ADC输入”。我在ble_app_peripheral代码中搜索,我发现唯一的“adc_enable_channel()”函数在这里:

if(sample_vbat1v)
adc_enable_channel (ADC_CHANNEL_VBAT1V);
其他的
adc_enable_channel (ADC_CHANNEL_VBAT3V);

这是否意味着在我的智能手机上显示的ADC值是ADC_CHANNEL_VBAT1V的值(在我的智能手机上什么都没有)?
我如何改变这个ADC值的引脚选择?
我正在使用基本的开发套件,我可以选择p1_3,p1_1,p0_2,p0_4吗?

请指教,谢谢!

MT_dialog
离线
最后看到:4周1天前
工作人员
加入:2015-06-08 34
嗨brian1025,

嗨brian1025,

您必须写入BLE_APP_PERITWAL中的控制点特性,以便在ADC特征中开始将值获取到Android应用程序,并且Cource在相应的特征中启用通知。

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

由于MT_dialog

brian1025
离线
最后看到:4年4个月前
加入: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)
#define 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的例子上写我自己的控制点特性,或者我应该修复Beacon以达到我的目标?因为我不知道要多久,而且我是新来的。谢谢你!

MT_dialog
离线
最后看到:4周1天前
工作人员
加入: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_PERITE()中,为了代码启动KE_TIMER并生成虚拟数据,您将必须通过Android通用应用程序写入第一个特征(命名控制点)0x01值,之后启用特性的通知你想要,然后你将能够在手机上获取数据。我会建议您修改Ble_App_Peripheral,因为它是一个较新的SDK,并且对于Begginer更容易与之交互,特别是当他想要实现自定义配置文件时。

由于MT_dialog

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

嗨mt_dialog,

对不起,我很困惑。“通过android通用应用程序写入第一个特征0x01”是什么意思?

我必须创建一个新的配置文件像教程2(控制点)或使用sample128 (AN-B-029)在ble_app_外设?

让我们说我已经做了一个新的服务,如何让DA14580知道我正在使用哪个PIN才能获得数据,他们会在user_custs1_impl.c中设置吗?

非常感谢你,我对此感到非常困惑,抱歉。

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

嗨mt_dialog,

我尝试使用一个模板项目和实现sample128配置文件。板子与智能手机连接成功,但板子总是只回复我从智能手机发送的数据。我想知道我在哪里可以改变板的响应值?

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

我想要:智能手机向DA14580发送0xFF
DA14580发送端口0 PIN3的值

你能建议吗?谢谢你!

MT_dialog
离线
最后看到:4周1天前
工作人员
加入:2015-06-08 34
嗨brian1025,

嗨brian1025,

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

由于MT_dialog