Unity与汇承HC-02蓝牙串口模块通讯
概述
本来以为用Unity开发蓝牙功能非常简单,但是实际上去测试的时候才发现,还是有不少问题的。Unity中蓝牙通讯插件基本上也都是是用于安卓和ios系统的,但是现在的需求是要和HC-02蓝牙串口模块进行通讯,很显然就不符合需求,然后我就想到.net的库如此丰富,写完功能集成到Unity中不就可以了吗!如此便有了这篇博客做个简单的记录,希望能够帮助到需要的开发同僚。
开发环境
Unity2019.4.29f1
Visual Studio 2019
Unity .Net 4.x
本次使用到的.net包
- System.IO.Ports
这个包可以直接在VS的Nuget包管理中下载安装,用于串口通讯,主要使用了SerialPort这个类 - InTheHand.Net.Bluetooth.4.0.20
这个包就是和蓝牙建立连接用的,主要用到了BluetoothClient、BluetoothAddress、BluetoothService这几个类的功能,这个包必须要在Unity中导入动态连接库(DLL)才可以使用。
在这里给到各位一个Unity非常好用的插件,“NuGetForUnity”这个插件可以让你在Unity中非常容易的使用.net所有的包,一键安装非常安逸,以下是百度云链接,有需要的可以拿走,算是一点小福利
链接:https://pan.baidu.com/s/1FWNYAo8YuNJnwp3RfGrWPw
提取码:zg1f
正文
void Start(){//创建一个蓝牙客户端对象BluetoothClient client = new BluetoothClient();//创建一个串口对象,这里的串口根据电脑的不同,自行填写,我这里用的是COM6SerialPort com = new SerialPort("COM6");//设置串口对象的一些基本参数com.BaudRate = 9600; //波特率com.Parity = Parity.None; //校验位com.StopBits = StopBits.One;//停止位com.Handshake = Handshake.RequestToSend;//控制协议//打开串口com.Open();//蓝牙的唯一标识,可要可不要,下面会赋值一次,我只是用来做对照,此处的蓝牙唯一标识是倒序的,注意一下BluetoothAddress blueAddress = new BluetoothAddress(new byte[] { 0x24, 0x49, 0x05, 0xbf, 0x0c, 0x00 });print(blueAddress); //从搜索到的所有蓝牙设备中选择需要的那个foreach (var item in client.PairedDevices){print(item.DeviceName);//蓝牙模块的名字叫hc-02if (item.DeviceName.Equals("HC-02")){print("找到啦");print("正在连接!");//获得蓝牙模块的唯一标识符blueAddress = item.DeviceAddress; //打印对照print(blueAddress);//开始连接唯一标识过的蓝牙client.Connect(blueAddress, BluetoothService.SerialPort);if (client.Connected){print("连接成功!");//创建IO流对象Stream peerStream = client.GetStream(); //发送测试HEXData = { 0xaa, 0xaa, 0x01, 0x02, 0x99, 0x05, 0x45, 0x00};// 发送指令peerStream.Write(HEXData, 0, HEXData.Length); print("发送成功!");}}}}void Update(){//TODO 这里还要写一份接收串口消息的代码 用于一直监听蓝牙的状态}
准备工作做完以后,正文的工作就非常简单了,都是C#的基础知识应用,我在这里贴出了发送消息的代码,接收消息的代码我就没写了,都是非常简单的内容。在代码上我都写了注释,清晰易懂,大家按照自己的需求把功能写完善封装好即可。
这里再提醒一下, 波特率,校验位,停止位,控制协议等都要保持一致,否则可能会出现无法正常通讯的情况
还有在做通讯测试的时候,在汇承自带的工具中,记得点开HEX接收,因为都是16进制的数据,不点这个会无法
显示数据。
蓝牙的唯一标识在设备和打印机这个里面看
Unity与汇承HC-02蓝牙串口模块通讯相关推荐
- 20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输
20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输 2022/7/28 11:27 电脑:DELL Vostro 3888,WIN10系统 五.蓝牙模块如何与电脑连接(从模 ...
- uniapp app蓝牙打印_编程器加装蓝牙串口模块与手机APP操作演示
编程器加装蓝牙模块后,可以方便的使用手机查看打印信息,进入控制台执行各种串口命令.本款蓝牙串口APP具有保存打印信息.分享打印信息.设置字体大小.清除屏幕信息.进入控制台.发送串口命令.执行串口命令- ...
- HC-02蓝牙串口模块的配置和使用
HC-02蓝牙串口模块是基于蓝牙2.0并兼容BLE的双模蓝牙数传模块,带底板的蓝牙模块如下图: 模块可以作为从机与HC-05或HC-06的主机设备通信,也可以和手机通信. 模块在上电未连接蓝牙的时候L ...
- android车机蓝牙,安卓APP通过蓝牙串口模块控制DSP车机收音机
从零开始,嘀咕很久 终于可以使用了... 安卓APP是电脑版xdr-gtk 的手机版控制,频谱扫描和RDS还没嘀咕好... 手机APP是在 ace919 eggplant886两位控制DSP车机的基础 ...
- android 车载蓝牙模块,安卓APP通过蓝牙串口模块控制DSP车机收音机
从零开始,嘀咕很久 终于可以使用了... 安卓APP是电脑版xdr-gtk 的手机版控制,频谱扫描和RDS还没嘀咕好... 手机APP是在 ace919 eggplant886两位控制DSP车机的基础 ...
- 关于蓝牙串口模块开发
我想做一个蓝牙串口APP,跟我的蓝牙串口模块进行通讯,但网上找的例子都是查找蓝牙,蓝牙配对什么步骤,这些步骤每个手机都可以手动做,没必要弄了吧,怎么还弄这些步骤呢?只要手动配对后再监听就可以了吧?有开 ...
- android蓝牙模块有哪些类型,蓝牙串口模块是什么?怎么用?有哪些种类?
燚智能点评:蓝牙串口模块,分为经典蓝牙串口(4.0以前的)和BLE串口(4.0以后).经典蓝牙的速度快,和普通串口速度相当,功耗高.BLE的速度慢,也就1K每秒上下,但是功耗低. 如果做物联网产品的控 ...
- arduino蓝牙通讯代码_通过手机控制蓝牙串口模块与Arduino通讯
功能 通过手机APP向蓝牙模块发送指令,蓝牙模块通过串口将指令传递给Arduino开发板,并由Arduino做出反馈,传递给手机. 工具材料Arduino 开发板 ×1 蓝牙串口模块×1 Androi ...
- java 蓝牙读取数据格式,单片机与安卓手机通过蓝牙串口模块利用JSON数据格式通信实例...
原标题:单片机与安卓手机通过蓝牙串口模块利用JSON数据格式通信实例 JSON 指的是 Java 对象表示法(Java Object Notation),JSON 是轻量级的文本数据交换格式,JSON ...
最新文章
- Y1ng‘s BabyCode
- 使用cordova serve build以及tomcat进行web 调试。
- nginx服务器的配置
- cnn输入层_多尺度CNN特征图的分析与应用
- sql 自定义函数 示例_SQL Server SESSION_CONTEXT()函数与示例
- 开源框架Struts:FormBean滴那些事儿
- AO*算法详解,附例子和算法详细步骤
- 初始runtime(运行时机制)
- 恐龙机器人钢索恐龙形态_恐龙有的四脚行走有的两脚行走,有的会飞有的会游,差别咋这么大...
- CPU的工作原理浅析
- maya2018 + VS2017 C++编译环境搭建
- 纸鸢|物联设备PLC梯形图编程
- mysql partition赋权_Mysql的赋权
- 教你win10更新失败怎么解决,win10系统更新失败怎么办
- 看懂nfl定理需要什么知识_NFL球队为什么不经常通过?
- 解决更新包与已安装应用的签名不一致的问题
- 开源项目车牌识别EasyPR的使用
- Delphi 屏蔽系统的Ctrl+Alt+Del
- 论文阅读笔记:ProjectionNet: Learning Efficient On-Device Deep Networks Using Neural Projections
- 打印机设置为双面打印