手机蓝牙与单片机的通信如何实现?

陳名芳


手机蓝牙与单片机的通信有两种实现方式:使用蓝牙模块;使用带有蓝牙功能的单片机。

实现这两种方式的前提是:首先手机必须有蓝牙功能,其次手机上有能够实现蓝牙通信的APP软件。

一、单片机连接蓝牙模块与手机蓝牙通信

这种方式实现起来简单多了,蓝牙模块与单片机之间采用串口通信方式,对于单片机的串口程序,相信搞单片机的人都很熟悉,并且都能够很轻松的搞定串口程序,所以对于这种实现方式,不用多说,对单片机有所了解的人,都能轻松搞定。

二、使用带有蓝牙功能的单片机与手机蓝牙通信

现在很多单片机都自带了蓝牙功能,像TI的CC2540(这个芯片是基于51内核的,开发起来相对要简单),TI最新推出的还有CC2640系列,这个是基于ARM cortex m3内核的,还有nordic公司的等等,这个开发起来就有一定难度了,不过好的一点是,这些厂家一般都有退出蓝牙开发包,开发者借助这种工具能够比较快速地开发出来。不过一般情况下,只有用量较大的公司,芯片厂家才会免费提供这些软件包,而对于一般用户,可能需要付费。


老马识途单片机


现在蓝牙通信已经是非常成熟的无线通讯技术了,在手机、智能穿戴设备等产品中几乎是标配了。正是因为如此,现在市面上已经有很多蓝牙芯片了,这大大降低了蓝牙技术的开发难度。

单片机要通过蓝牙与手机实现无线通讯,方案成熟,要实现这一功能,需要涉及如下几个方面:

▲单片机系统硬件电路的设计;

▲蓝牙芯片硬件电路的设计;

▲单片机程序以及蓝牙协议栈程序的编写;

▲手机端APP应用软件的编写;


1.单片机/蓝牙系统硬件电路的设计

这一部分要求所选用的单片机具有UART的片上资源,单片机要通过串口和蓝牙芯片实现数据的交互,蓝牙芯片将数据打包成符合蓝牙标准的数据实现与手机的通信。单片机和蓝牙的通信需要用到四根线:VCC,GND,TXD,RXD。

特别要注意的是单片机和蓝牙要交叉连接。 如下图所示为蓝牙芯片QN9022的引脚分布图:

2.单片机程序及蓝牙程序

单片机的程序需要实现串口通信,这一部分配置起来简单。主要是蓝牙部分,现在很多蓝牙芯片都是数据透传的,或者直接购买蓝牙模块,像这种模块程序都是调好的,拿来直接用。

3.手机端APP的编程

对于Android系统而言,需要用到socket编程,其实就是读取蓝牙的数据流,然后根据uuid提取所需要的信息。对上位机软件的编程,我不太专业,不敢多说。不过上位机这一部分也有成熟的解决方案,选用蓝牙模块时,厂家都会配套手机端的调试软件,方便用户调试。也可以下载蓝牙串口调试助手进行调试。

以上就是这个问题的简单回答,更多精彩内容请关注头条号玩转嵌入式


玩转嵌入式


本篇回答,前半部分简单介绍一下,后半部分很详细!欢迎大家关注:电气电子视界

手机蓝牙与单片机的通信实现方式如下。

  1. 使用蓝牙转串口模块连接51单片机的 RX和TX引脚,这一步实现源端数据转换;单片机在串口中断服务函数里边读取蓝牙模块的指令。
  2. 手机内部进行app的程序设计,调用蓝牙模块并读取数据,同时通过app往蓝牙模块发送数据给单片机。
电路图如下:



安卓手机通过单片机与单片机通信

概述:手机端打开编写的蓝牙通信软件,与单片机端蓝牙串口模块连接,而后,手机通过蓝牙发送读数据命令到单片机,单片机开始读取传感器信息。

将采集到的传感器信息通过蓝牙发送到手机端,手机端软件接收到后显示。

整体图:


焊接板图:

本项目
设计四个部分

1.手机端软件

2.单片机端编程

3.外设电路设计

4.手机与单片机通信

下面对四个部分进一步叙述

一:手机端软件为安卓软件,只需要编写一个普通的蓝牙串口调试使软件即可。下边是正常运行源码中的部分代码。

(1)蓝牙连接代码


(2)手机蓝牙发送数据代码


(3)手机蓝牙接收数据代码



二:单片机端

单片机采用Arduino开发版,因其简单易学。

单片机断的代码比较简单,是一些对应的传感器采集数据代码和串口通讯代码。

三:外设焊接

外设有两个传感器,一个蓝牙串口模块。

蓝牙串口模块负责蓝牙通信,传感器负责采集信息。

四:手机与单片机通信

首先约定一个命令符,当单片机端接收到手机端发送的命令符时,即开始采集传感器信息,将采集到的信息进行加工,然后传给安卓手机,安卓手机接收数据后,随机显示出来。

2018.3.11

电气电子视界


电气电子视界


第一,你说的单片机的蓝牙是什么概念咯。

现在基本上蓝牙IC本身就是一块单片机,比如TI的CC2540 就是一块51内核的单片机。而且还带定时器等外部资源,所以想开发智能灯泡什么的就可以直接实现了。

第二,如果说你想用另外的MCU去使用蓝牙与手机连接,那现在比较好用的就是蓝牙串口。当然你可以直接使用蓝牙协议栈编写程序直接与手机通讯、

第三,手机端的APP支持,这个在你做测试的时候可以下载个蓝牙助手之类的。可以实现蓝牙透传数据传输之类的就可以了。

个人建议直接网上买一只蓝牙串口模块。然后使用串口与单片机通讯,买回来的模块会配有详细的AT指令说明书,告诉你怎么操作这个模块。

之后怎么发挥看你自己了。

当然如果你想把东西做的足够集成,产品化的话,建议还是研究下蓝牙协议栈的使用方法。比如现在比较成熟的BLE协议栈。CC2540 CC2541系列。那样就可以一颗IC搞定所有事情了


分享到:


相關文章: