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

11个帖子/ 0新
最后一篇
Brian1025
离线
最后一次露面:4年7个月前
加入:2016-04-11 13:18
将数据从信标发送到智能手机

我想知道如何在灯架上创建一个特征,以向智能手机发送一些数据?我想开发的是我可以用我的智能手机与信标连接并能够从中读取数据,这就是我需要一个特征的原因。Beacon默认是否提供此服务?我该如何使用它?请咨询,谢谢!

设备:
mt_dialog.
离线
最后一次露面:3个月3周前
职员
加入:2015-06-08 11: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年7个月前
加入:2016-04-11 13:18
嗨mt_dialog,

嗨mt_dialog,

谢谢你的建议,但它似乎没有工作。因此,我将尝试在BLE_APP_PROFILE(Pillar 2自定义配置文件)项目上进行工作,然后在稍后将其实施。我可以通过通过教程2来创建新的自定义配置文件,但我想知道如何更改此配置文件的特征值?由于我可能希望将DA14580连接到传感器并通过DA14580将传感器的数据发送到智能手机。我必须使用GPIO端口还是其他任何东西?

请咨询,谢谢!

mt_dialog.
离线
最后一次露面:3个月3周前
职员
加入:2015-06-08 11:34
嗨Brian1025,

嗨Brian1025,

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

谢谢mt_dialog.

Brian1025
离线
最后一次露面:4年7个月前
加入: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.
离线
最后一次露面:3个月3周前
职员
加入:2015-06-08 11:34
嗨Brian1025,

嗨Brian1025,

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

此外,app_ble_peripheral()也没有实现将ADC的值发送到Android(示例的值是由一个定时器提供的伪数据,以递增递增所发送的值)。您粘贴的代码是来自电池驱动器的片段,使用启用通道,以便选择ADC的4个通道之一。有关ADC API的更多信息,请在10.4节中查看UM-B-051文档。关于ADC的引脚选择可用引脚为P00,P01,P02,P03您可以检查表3上的数据表才能验证。此外,您还可以检查信标参考设计的实现,请选中App_adc_notify_enable()函数从通道p01读取ADC。

谢谢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)
#define cfg_spi_flash.
#undef cfg_dynamic_beacon_data.
#define cfg_connectable_adv_mode.
#ifdef cfg_connectable_adv_mode.
#define cfg_prf_adc_notify.
#万一
#万一

您能否在BLE_APP_PERITIELAL示例上写自己的控制点特性,或者我应该修复灯架,以满足我的目标吗?因为我不知道它是多久,我是这个董事会的新手。谢谢!

mt_dialog.
离线
最后一次露面:3个月3周前
职员
加入:2015-06-08 11: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年7个月前
加入:2016-04-11 13:18
嗨mt_dialog,

嗨mt_dialog,

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

是否必须创建像Tutorial2(控制点)的新档案,或在BLE_APP_PERITELAL上使用示例128(AN-B-029)?

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

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

Brian1025
离线
最后一次露面:4年7个月前
加入:2016-04-11 13:18
嗨mt_dialog,

嗨mt_dialog,

我尝试使用模板项目并在其上实现示例128配置文件。该电路板成功连接智能手机,但电路板始终只回复我从智能手机发送的数据。我想知道我在哪里可以改变董事会的响应价值?

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

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

你能建议吗?谢谢!

mt_dialog.
离线
最后一次露面:3个月3周前
职员
加入:2015-06-08 11:34
嗨Brian1025,

嗨Brian1025,

设备的行为取决于每个特征的特性和每个特征的属性,您的意思是,如果您从手机写入一些东西,那么电路板响应了手机的数据发送该特征,当您读回设备时,设备将回复手机发送的值(如果您没有在设备处操作该值)。如果要在手机写入特定值时切换LED(更新端口0引脚3的寄存器),则必须在样本128的写入处理程序中实现该功能。在BLE_APP_PERITELAL项目上有一个类似的示例,在BLE_APP_PERITEL项目上写入LED特性(带有“LED状态”描述符的“图”(如果这就是您正在寻找的),它将打开和关闭LED)。

谢谢mt_dialog.