飞喻小栈

数码小常识

蓝牙如何传输软件到手机(蓝牙发送安装包iphone和安卓)

本教程来源于 FlexLua ,降低 IoT 硬件难度,零门槛 Lua 低代码编程技术 IoT 硬件。

前言

基于 Blink C1 实现蓝牙Ble通信能。注意:只能用C1不能用C2,因为C2 不支持蓝牙。

一、实现能

C1M(Core)芯片自带BLE蓝牙能,所以只用Core就可以很轻松的实现和手机的相互通信。本篇章所实现的能是和手机建立蓝牙连接后:(1)Core每隔0.2秒向手机发送一包数据,(2)我们在手机调试App上自定义任意数据包发送给Core,Core收到后通过 Pnt 函数打印出来。

注意:由于Core内部自带2.4G无线能,所以无需外部器件或模块即可实现本章节的蓝牙通讯能。但如果用了Ble蓝牙能,Core的2.4G单点或多点通信能就无法使用了,这一点者需要注意。

手机调试App这里我们选择使用苹果IOS上知名的LightBlue,安卓手机安leTool或安卓版LightBlue也可以。

二、实现机制

Core的ble低耗蓝牙提供两个特,一个是Wte特,一个是Notify特。其中:

    Wte特:可以看成是手机发送数据给Core的通道,手机通过蓝牙连接发送给Core的数据就是存放在Wte特中。Notify特:可以看成是Core发送数据给手机的通道,Core通过蓝牙发送给手机的数据就是存放在Notify上。但是需要注意,手机要想收到来自Core的数据,需要手机端主动使能这个Notify(在下面的演示中会提及)。

下面是对Core的Ble所提供的描述,如果您看不懂这段也没关系,只需按上面讲的理解即可。

(ID: 0x0001)描述: 包含两个特(Charactestic): 一个用来发送数据,一个用来接收数据

    Rx Charactestic (ID: 0x0002)用来接收手机的数据手机蓝牙可以通过ATT Wte方式向Rx Charactestic发送数据Tx Charactestic (ID: 0x0003)用来向手机发送数据如果手机蓝牙为Tx Charactestic使能了notification,那么设备就可以通过发送notification的方式向手机蓝牙发送数据

三、完整代码

–配置低耗蓝牙以默认参数工作,设备名称为”MyBle002″–该设备名称就是手机扫描蓝牙设备时列表中所呈现的名称。LIB_NrfBleDefltConfig(“MyBle002”)–开始大循环while(GC(1) == true)doLIB_DelayMs(200)send_tab = {0,1,2,3,4,5,6,7,8,9}–将send_tab数组内的10个元素发给手机LIB_NrfBleSend(send_tab)–查询是否收到手机发来蓝牙数据,如果收到就pnt打印出来recv_flag, recv_tab = LIB_NrfBleRecvif recv_flag == 1 then–打印接收到的数据for k,v in ipairs(recv_tab) dopnt(k,v)endendend

四、演示

1. 在苹果手机上打开LightBlue软件,并开始搜索的蓝牙设备,找到”MyBle002″后点击进入

2. 找到pperties notify特,点击进入

3. 点击Listen for notification,这样就可以收到到Core发来的数据了

4.可以看到每隔0.2秒就会收到一包数据

5.再退回到步骤2的界面,点击pperties wte,然后点击wte new value

6.设置要发送给Core的数据为 BB CC DD EE FF

7.后在Core的TF卡里文件可以看到刚刚我们通过手机手动发给Core的 BB CC DD EE FF数据

五、免蓝牙App

blink 已推出免安卓蓝牙App,者无需做App,即可以让自己的手机上拥有一款能够和C板通信的专业App。