概述

本来以为用Unity开发蓝牙功能非常简单,但是实际上去测试的时候才发现,还是有不少问题的。Unity中蓝牙通讯插件基本上也都是是用于安卓和ios系统的,但是现在的需求是要和HC-02蓝牙串口模块进行通讯,很显然就不符合需求,然后我就想到.net的库如此丰富,写完功能集成到Unity中不就可以了吗!如此便有了这篇博客做个简单的记录,希望能够帮助到需要的开发同僚。

开发环境

  1. Unity2019.4.29f1

  2. Visual Studio 2019

  3. Unity .Net 4.x

本次使用到的.net包

  1. System.IO.Ports
    这个包可以直接在VS的Nuget包管理中下载安装,用于串口通讯,主要使用了SerialPort这个类
  2. 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蓝牙串口模块通讯相关推荐

  1. 20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输

    20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输 2022/7/28 11:27 电脑:DELL Vostro 3888,WIN10系统 五.蓝牙模块如何与电脑连接(从模 ...

  2. uniapp app蓝牙打印_编程器加装蓝牙串口模块与手机APP操作演示

    编程器加装蓝牙模块后,可以方便的使用手机查看打印信息,进入控制台执行各种串口命令.本款蓝牙串口APP具有保存打印信息.分享打印信息.设置字体大小.清除屏幕信息.进入控制台.发送串口命令.执行串口命令- ...

  3. HC-02蓝牙串口模块的配置和使用

    HC-02蓝牙串口模块是基于蓝牙2.0并兼容BLE的双模蓝牙数传模块,带底板的蓝牙模块如下图: 模块可以作为从机与HC-05或HC-06的主机设备通信,也可以和手机通信. 模块在上电未连接蓝牙的时候L ...

  4. android车机蓝牙,安卓APP通过蓝牙串口模块控制DSP车机收音机

    从零开始,嘀咕很久 终于可以使用了... 安卓APP是电脑版xdr-gtk 的手机版控制,频谱扫描和RDS还没嘀咕好... 手机APP是在 ace919 eggplant886两位控制DSP车机的基础 ...

  5. android 车载蓝牙模块,安卓APP通过蓝牙串口模块控制DSP车机收音机

    从零开始,嘀咕很久 终于可以使用了... 安卓APP是电脑版xdr-gtk 的手机版控制,频谱扫描和RDS还没嘀咕好... 手机APP是在 ace919 eggplant886两位控制DSP车机的基础 ...

  6. 关于蓝牙串口模块开发

    我想做一个蓝牙串口APP,跟我的蓝牙串口模块进行通讯,但网上找的例子都是查找蓝牙,蓝牙配对什么步骤,这些步骤每个手机都可以手动做,没必要弄了吧,怎么还弄这些步骤呢?只要手动配对后再监听就可以了吧?有开 ...

  7. android蓝牙模块有哪些类型,蓝牙串口模块是什么?怎么用?有哪些种类?

    燚智能点评:蓝牙串口模块,分为经典蓝牙串口(4.0以前的)和BLE串口(4.0以后).经典蓝牙的速度快,和普通串口速度相当,功耗高.BLE的速度慢,也就1K每秒上下,但是功耗低. 如果做物联网产品的控 ...

  8. arduino蓝牙通讯代码_通过手机控制蓝牙串口模块与Arduino通讯

    功能 通过手机APP向蓝牙模块发送指令,蓝牙模块通过串口将指令传递给Arduino开发板,并由Arduino做出反馈,传递给手机. 工具材料Arduino 开发板 ×1 蓝牙串口模块×1 Androi ...

  9. java 蓝牙读取数据格式,单片机与安卓手机通过蓝牙串口模块利用JSON数据格式通信实例...

    原标题:单片机与安卓手机通过蓝牙串口模块利用JSON数据格式通信实例 JSON 指的是 Java 对象表示法(Java Object Notation),JSON 是轻量级的文本数据交换格式,JSON ...

最新文章

  1. atitit.mp4 视频文件多媒体格式结构详解
  2. javascript之实现bind
  3. c#后台修改前台DOM的css属性
  4. android singleTop 不起作用
  5. 为ASP.NET MVC配置基于Active Directory的表单认证方式
  6. java 进程100_原创:如何排查java进程cpu100%的问题
  7. 2019年全栈工程师技术指南和趋势!
  8. 60万元奖金 “人脸攻防战”,怎么打?丨独家公开课实录(附baseline)
  9. 机器人植入情感芯片利与弊_马斯克活猪脑机接口试验成功!多芯片植入,硬币大小,实时读取脑电波,已被批准人脑实验...
  10. 【BERT】小学生级上手教程,从原理到上手全有图示,还能直接在线运行
  11. WannaCry深度详细分析报告 转
  12. Pandas速查手册中文
  13. 如何去除图片背景变透明?透明背景图片怎么做?
  14. breadweb控制台下载_路由器刷breed助手下载
  15. 8类网线利弊_超6类7类8类网线进来挨打 6类线全面测评 网速和传输速率测试
  16. 微信开放平台 第三方平台开发
  17. [前端三剑客之CSS]display:none opacity:0 visibility:hidden三角恋的爱恨情仇
  18. hangman游戏c语言,英语游戏 猜词游戏hangman
  19. Ubuntu20.04下配置Anaconda3+NVIDIA 驱动+Cuda11.1+Cudnn8.0.5
  20. php大文件读取excel分割,如何用phpspreadsheet来切割excel大文件(附代码)

热门文章

  1. 以太坊源码解读(1)以太坊核心概念
  2. H3U-PLC/AutoShop软件符号表显示注释
  3. 课程设计-基于SSM的美容美发造型预约管理系统代码Java理发剪发设计造型系统vue美发店管理系统
  4. 【Visual Studio Code】自动更新失败解决方法
  5. Apple Developer:Verify your identity and review the updated license agreement.
  6. 车载空调三态压力开关
  7. 简单实现Java定时器
  8. ARM通用中断控制器GIC之中断处理简介
  9. 【产品推荐】河道水质监测站——水质监测平台
  10. 宠物连连看2完整Android代码项目