精华内容
下载资源
问答
  • 最新的单片机_关于单片机通过蓝牙数据传输给手机并在app上面显示出来怎么实现...
    千次阅读
    2020-10-22 11:30:14

    我之前做过相关的开发,所以顺便说一下,希望能帮助到你

    首先是蓝牙通信,我想指出,如果你用的是蓝牙模块的话,那么它的单片机程序与串口的单片机程序差不多一样,只要你会串口操作,蓝牙也就解决了,如果不是用的蓝牙模块,另当别论

    然后是接受端手机这边,你应该懂一些java东西,知道怎么调用底层程序,编写读取串口程序,根据发送的协议,把接受的数据转化为十进制就可以了

    这是大概流程,如果满意,点赞采纳

    是利用蓝牙的,我这里用的是数据库接收单片机传来的脉搏波信号数据,现在蓝牙部分和数据库已经弄好了,但是不是很明白怎么把存储在数据库中的数据调用出来还原为原始脉搏波波形,您有相关的了解吗?另外一个问题是,我们现在在研究算法,然后需要把数据库数据调用出来,通过我们自己研究的算法得出情绪分析结果,然后把情绪结果记录下来。(算法是我们自己研究的)

    脉搏数据怎么处理的,就是这个数据怎么量化的,跳一下来个脉冲?

    在你的另一个问题中回答

    通过蓝牙实现安卓手机与全站仪的通讯?

    通过文件发送形式,实现数据传输

    在有些应用中,串口设备希望与普通蓝牙手机互相收发文件,实现数据交换。由于普通蓝牙手机一般只支持对象交换协议(OPP),没有支持串口通信(SPP)的应用程序,而在手机上开发软件涉及到很多不同的手机操作系统,加上手机机型无法控制,往往难以实现。

    我公司生产的系列蓝牙模块可以独立运行对象交换协议,实现串口设备与蓝牙手机通过对象交换协议来互相收发文件。

    该方案电路连接简单,仅需将GC系列模块的的UART接口与设备的串口(TTL电平)交叉连接,手机上无需进行任何开发,与蓝牙模块相连接单片机通过一定的串口指令和格式,即可与手机收发文件,使用方便。

    优点:兼容任何蓝牙手机、无需开发手机程序、文件发送完毕自动释放蓝牙

    缺点:实时性差,不能实时遥控

    3、如需RS232电平的设备,可以采用外置式蓝牙串口适配器:GC-232

    典型应用:

    手机通过蓝牙向设备传送文件

    手机通过蓝牙遥控设备

    手机通过蓝牙采集数据

    zigbee通信模块,通常大家都用那种?通常基于什么编程语言?和蓝牙相比那个技术实现简单?

    zigbee通信目前用得比较多的是TI的CC2530、CC2430,也有其他的芯片和协议,zigbee开发通常用的是C语言,比如TI的Z-Stack协议栈,但也有不是C语言开发的,例如加州伯克利分校开发的协议用的就是NesC语言。

    ZigBee的系统复杂性要远小于蓝牙的系统复杂性。ZigBee协议栈简单,实现相对容易,需要的系统资源也较少,据估计运行ZigBee需要系统资源约28Kb;蓝牙协议栈相对复杂,它需要系统资源约为250Kb

    希望对你有帮助,欢迎继续!!更多

    你好 我不做内部的协议 只是把zigbee模块拿来直接用

    想做一个无线温度测试的 基于单片机的

    想问下 温度测试模块 和 zigbee模块间需要再加一个单片机吗?

    现在有很多温度传感器的哇,比如DS18B20,你上网查查,这是一种一线总线的数字温度传感器,直接接到zigbee模块的IO口就OK了,你上网查查DS18B20的温度采集程序,网上很多,直接拿来就能用的,就不需要再加个专门的单片机了

    同样,例如CC2430和CC2530这类的zigbee集成芯片,内部其实已经有一个温度模块,你可以查下这两款芯片的芯片手册

    希望对你有帮助,欢迎继续!!!

    哦 我对zigbee上的微处理器 没什么概念 目前只是对于 接收端和数据处理这块的结构了解一些 你说的这种温度传感器我查了百科 它需要接在zigbee发送模块的微处理器上 所以我目前有点疑问 对于这个微处理器 我需要做哪些方面的编程吗?(功能上的 比如 发送 格式什么的 我实在不了解这个部分)您能留一下Q吗 谢谢

    微处理器(MCU),简单的微处理器有8051等,CC2530里面就集成了一个增强型的8051单片机,对8051的编程一般有汇编语言和C语言,温度传感器就是一个信号输入端,且是数字式的,所以接一个IO就可以采集温度信息了,网上这类程序很多,你可以找个看下。建议你先打好基础知识后,再做这些实践性的学习,希望对你有帮助,欢迎继续!!!

    蓝牙传输速度多少

    传输速度大概每秒195-215KB左右,最高24Mbps,也就是每秒3MB,足够接收无损音质歌。

    蓝牙是2012年最新蓝牙版本,是的升级版本;较版本更省电、成本低、3毫秒低延迟、超长有效连接距离、AES-128加密等;通常用在蓝牙耳机、蓝牙音箱等设备上。

    它支持两种部署方式:双模式和单模式。双模式中,低功耗蓝牙功能集成在现有的经典蓝牙控制器中,或再在现有经典蓝牙技术(2.1+EDR/+HS)芯片上增加低功耗堆栈,整体架构基本不变,因此成本增加有限。

    单模式面向高度集成、紧凑的设备,使用一个轻量级连接层(Link Layer)提供超低功耗的待机模式操作、简单设备恢复和可靠的点对多点数据传输,还能让联网传感器在蓝牙传输中安排好低功耗蓝牙流量的次序,同时还有高级节能和安全加密连接。

    92889420d64112a1d82a60b4facc7811.png

    扩展资料:

    主要特性:超低的峰值、平均和待机模式功耗

    使用标准纽扣电池可运行一年乃至数年

    低成本

    不同厂商设备交互性

    无线覆盖范围增强

    完全向下兼容

    低延迟(APT-X)

    参考资料:

    蓝牙——百度百科

    wifi和蓝牙到底是不是同一个模块

    您好:

    wifi与蓝牙功能 为方便管理 一般会软件集成和模块化为 统一的WLAN模块里,那么其实两者也可以是独立存在的,不过大部分笔记本 手机 等都将这两者 集成为一个WLAN管理与主板节点模块中咯;

    但是蓝牙功能有效 不代表 wifi功能有效,我们许多水货机 翻新机 还有官方国内阉割版 数码终端设备等 就有将wifi功能 禁用或者阉割的问题 这样可以节约一定成本 和保证机体一些功能稳定与能耗大大降低 配合国内国情延长使用寿命;

    说这么多 蓝牙好的 功能不一定是OK的。

    新春大吉

    祝您愉快=,=~如有其它问题可直接hi我,或+Q讨论。如想知道其他数码最新资讯可百度 钢七连终身荣誉团。更多

    我用软件测试测试我有WIFI!提示为为基带。。英文也就是无RADIO。。什么意思。。

    您好:

    您的爱机是什么品牌机型的呢?使用什么软件工具测试的呢,最好将提示 贴出来,其实您的产品可能就是属于阉割后配置问题咯,要麽就是水货改版机 烧号基带版本与 国内不符 但wifi802 国际兼容性还是很强的。

    如果资料传输交流不变等,您可以直接联系本人。

    我上面说过是HTC HD2 用的Z-DEVICE TEST软件测试的。。

    我电话信号是满格..你说的基带信号是什么信号?

    没有信号该怎么解决?

    您好:

    HTC HD2 市面上现有两个版本 其都支持GSM,WCDMA 联通3G网络,对其他3G网络不支持,如果是水货机 那么使用国内WCDMA联通网络模式时 还需要更改相对应的国内网络基带(这个您才看机锋论坛 国内外基带不同与更改方法即可)电话信号强度质量 与wifi关系不大 只能证明您的通讯模块良好 wifi模块 因为是2009年上市机型 早期可能会出现严格情况 或者您的wifi模块如果在 Windows mobile 最新固件版本下无法调用,具体问题您最好咨询当地售后服务网点或品牌经销商解决咯。

    如果是3G等网络无信号 或者 连接识别错误,那么八成就是基带问题需重新更换基带 具体还是参看 机锋论坛 HTC专区HD2版块 置顶新手导航贴咯。

    手打辛苦

    祝您愉快=,=~如有其它问题可直接hi我,或+Q讨论。如想知道其他数码最新资讯可百度 钢七连终身荣誉团。

    哦..昨天不小心,掉到地止后..无意发现竟然好了..真无语了..这机子:"欠打"

    就掉在地上后竟然可以收到了..就发在小板凳上..只有一个手掌的距离和地面..现在好了..但感觉不如几天前的那台WIFI信号了..现在的信号是能搜到满格的了!呵呵

    e ```很不靠谱哦,下次再遇到失灵情况 可不能随便甩了,尽量送售后检修一下,不然可能对其他模块功能也造成影响。

    那么恭喜你咯,手打辛苦 有分加分 尽请采纳谢谢 呵呵。

    两个智能手机用蓝牙互传文件但是很慢是哪里问题?

    两个智能手机用蓝牙互传文件很慢的原因如下:

    1、其中至少一个手机的蓝牙版本比较低,速度慢;

    2、受到其它无线特别是wifi的干扰;

    3、蓝牙本身就是一个节能低速的无线传输方式,而且还分为好几代协议,、等,速度不一样。看下表,如果是以下,实际的速度每秒才几十K。即使是,也不过每秒2、3M左右。

    8e4e438bc94a9a346721ac29a05ffa12.gif

    4、蓝牙也特别容易受到其它无线干扰。比如wifi,也是,和蓝牙是同一频率,还有家里的无绳电话,也是,无线鼠标等……都会干扰蓝牙,导致速度变慢。

    拓展资料

    关于蓝牙传输

    1、蓝牙的波段为2400–(包括防护频带)。这是全球范围内无需取得执照(但并非无管制的)的工业、科学和医疗用(ISM)波段的 2.4 GHz 短距离无线电频段。

    2、蓝牙使用跳频技术,将传输的数据分割成数据包,通过79个指定的蓝牙频道分别传输数据包。每个频道的频宽为1 MHz。蓝牙使用2 MHz 间距,可容纳40个频道。第一个频道始于2402 MHz,每1 MHz一个频道,至2480 MHz。有了适配跳频(Adaptive Frequency-Hopping,简称AFH)功能,通常每秒跳1600次。

    3、蓝牙是基于数据包、有着主从架构的协议。一个主设备至多可和同一微微网中的七个从设备通讯。所有设备共享主设备的时钟。分组交换基于主设备定义的、以µs为间隔运行的基础时钟。两个时钟周期构成一个625µs的槽,两个时间隙就构成了一个1250µs的缝隙对。在单槽封包的简单情况下,主设备在双数槽发送信息、单数槽接受信息。而从设备则正好相反。封包容量可长达5个时间隙,但无论是哪种情况,主设备都会从双数槽开始传输,从设备从单数槽开始传输。

    4、蓝牙主设备最多可与一个微微网(一个采用蓝牙技术的临时计算机网络)中的七个设备通讯, 当然并不是所有设备都能够达到这一最大量。设备之间可通过协议转换角色,从设备也可转换为主设备(比如,一个头戴式耳机如果向手机发起连接请求,它作为连接的发起者,自然就是主设备,但是随后也许会作为从设备运行。)蓝牙核心规格提供两个或以上的微微网连接以形成分布式网络,让特定的设备在这些微微网中自动同时地分别扮演主和从的角色。

    参考资料:百度百科-蓝牙

    转载请注明出处365教育网 » 关于单片机通过蓝牙将数据传输给手机并在app上面显示出来怎么实现

    更多相关内容
  • 蓝牙(Bluetooth):是一种无线技术标准,可实现固定设备、移动设备楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。蓝牙技术初由电信巨头爱立信公司于1994年创制,当时是作为RS232...
  • 安卓蓝牙连接单片机蓝牙模块,获取蓝牙模块数据,根据数据进行绘图
  • stc15单片机接hc08模块,能与手机蓝牙进行通信,通过手机控制单片机上的led亮灭
  • 通过手机发送命令HC-06,使AT89C52单片机读取DS18b20的数据,并返回给手机上。
  • 博文详细介绍如何从零开始制作51单片机控制的智能小车(四)——通过蓝牙模块实现数据传输以及通过手机蓝牙实现对小车运动状态的控制的附件,包含相关博文介绍完整的keil文件,以及蓝牙HC-08资料包
  • 求各大神赐教,本人最近在学习蓝牙单片机的通信,所用的蓝牙是“蓝牙从机模块CH-06”,单片机是51单片机,想法是用手机蓝牙蓝牙模块传输信号,然后经过单片机的处理再控制单片机的I/O端口的电平。
  • 博文详细介绍如何从零开始制作51单片机控制的智能小车(四)———通过蓝牙模块实现数据传输以及通过手机蓝牙实现对小车运动状态的控制的附件,内包含博文介绍内容的完整keil工程文件,还有HC-08蓝牙模块资料包
  • 对于模块使用:1、蓝牙配置→2、手机蓝牙传输→3、手机通过蓝牙模块控制单片机→4、一对蓝牙之间主—从传输数据,这是一个循循渐进的过程。 一、蓝牙的配置 ①做好准备工作:接线(需要一个CH340 USB→TTL模块)...

    HC-05是一款主从一体化的蓝牙模块,因此其使用起来比较方便,只需要进行简单的配置即可。

    本文就手把手的介绍小白入手模块后如何使用

    对于模块使用:1、蓝牙配置→2、手机与蓝牙的传输→3、手机通过蓝牙模块控制单片机→4、一对蓝牙之间主—从传输数据,这是一个循循渐进的过程。

    一、蓝牙的配置

    ①做好准备工作:接线(需要一个CH340 USB→TTL模块)。

       

    CH340模块                                 HC-05模块

    VCC(5V)  ——————————  VCC

         GND   ——————————  GND

         RXD   ——————————  TXD

         TXD   ——————————  RXD

    ②蓝牙模块有两种工作模式:命令相应模式、自动连接模式;

    首先说一下如何进入命令响应模式与自动连接模式

    i 命令响应模式:在蓝牙模块中有一个小按键,将HC-05与CH340连接后长按着按钮给模块上电。

    ii自动连接模式:什么也不用管,将HC-05与CH340连接后,插上电脑上电即可。

    命令响应模式:是用AT对蓝牙模块工作的配置(相当于蓝牙模块的初始化配置各种参数)

                             波特率固定为:38400(即向HC-05写AT指令时波特率为38400)

    常用的几种AT指令:

    指令名响应含义

    AT+RESET

    OK模块复位

    AT+ORGL

    OK恢复默认状态

    AT+ADDR?

    +ADDR:Param OK

    获得蓝牙模块地址

    AT+NAME=Param

    OK

    设置设备名称  Parm:想要设置的名字

    AT+NAME?

    +NAME:Param OK

    获得设备名称

    AT+PSWD=Param

    OK

    设置模块密码  Parm:想要设置的密码;,默认为“1234”

    AT+PSWD?

    +PSWD:Param OK

    获得模块密码

    AT+UART=Param1,Param2,Param3

    OK

    设置串口参数  Param1:波特率 ; Param2:停止位 ;Param3:校验位

    AT+UART?

    +UART:Param1,Param2,Param3 OK

    获得串口参数

    AT+ROLE=Param+ROLE:Param OKParam:参数取值如下:0—从角色;1—主角色;2—回环角色;默认值:0

     AT指令错误返回

    错误码说明
    0AT 命令错误
    1指令结果为默认值
    2PSKEY 写错误
    3设备名称太长(超过 32 个字

    举例:

     

    自动连接模式:将自动根据命令响应模式下事先设定的方式连接的数据传输(在该模式下才能与手机等其他蓝牙设备连接)      波特率默认:9600(即HC-05与其他蓝牙通信时默认波特率为9600)

     二、手机与蓝牙的传输

    想要手机与蓝牙进行传输数据,首先肯定要建立手机与蓝牙的连接,(和我们用的蓝牙耳机差不多,首先得先在手机上找到蓝牙设备,并进行连接),那么问题来了,应该如何连接。

    第一步:配置蓝牙模块基本信息

         AT+NAME=HC-05   修改蓝牙模块名称为HC-05

        AT+ROLE=0    蓝牙模式为从模式

       AT+CMODE=1   蓝牙连接模式为任意地址连接模式,也就是说 该模块可以被任意蓝牙设备连接

       AT+PSWD=1234   蓝牙配对密码为1234

       AT+UART=9600,0,0  蓝牙通信串口波特率为9600,停止位1位, 无校验位
    第二步:在手机上下载“蓝牙调试助手”

    经过本人的不懈查找,终于找到了一款还算可以的蓝牙助手,若大家有更好用的app可以将下载连接放在评论区,共享一下!!!嘿嘿嘿

    此处是下载连接:https://dl.pconline.com.cn/download/1492997.html

    打开蓝牙,连接蓝牙模块。

    连接之后就可以于蓝牙模块进行通信了。

     

    三、用手机通过蓝牙控制单片机

     手机蓝牙串口助手向单片机发送“1”,点亮LED灯。

                                      发送其他数据,关闭LED灯。

    利用上面的蓝牙串口助手,有一个按钮赋值发送的功能。

          

     通过给按钮赋值,发送需要的数据,方便快捷。

    然后代码处理接收到的数据,执行相应的功能。

     

    /*****************************************************************
    接线方式:
             单片机的TXD-->HC-05的RXD
             单片机的RXD-->HC-05的TXD
    				 P1.0口  接  LED的阴极
    				 VCC     接  LED的阳极
    *****************************************************************/
    #include <reg52.h>
    #define  uchar unsigned char
    #define  uint unsigned int
    sbit LED=P1^0;
    /*****************************************************************
    *接收中断服务子程序
    *****************************************************************/
    void Uart_Isr(void)  interrupt 4
    {
    	uchar Recv;
    	if(RI==1)
    	{
    		RI=0;
    		Recv = SBUF;      //接收数据
    			if(Recv == '1')	 
    		{
    				LED = 0;//接收到1亮灯
    		}
    		else
    		{
    				LED = 1; //其他情况灯灭
    		}
    
    	}
    	
    }
    /*****************************************************************
    *串口初始化
    *****************************************************************/
    void Uart_Init(void)
    {
      SCON = 0x50;         //方式1 8位数据 接收地址甄别禁止 接收使能 0101 0000
    	PCON = 0x00;         //波特率不增倍
    	TMOD = 0x20;         //T1,8位自动重装
    	TH1 = 0xfd;	  //波特率9600
    	TL1 = 0xfd;
    	EA   = 1;
    	ES   = 1;
    	TR1 = 1;            //启动t1
    }
    /*****************************************************************
    *主程序
    *****************************************************************/
    void main(void)
    {
    	Uart_Init();
    	while(1);
    }

    很简单的一个51单片机的小程序,仅帮助大家理解。

    四、两个蓝牙之间的主---从模式

     用于两个单片机中间非连线通讯

    这时需要两个蓝牙模块,将其中一个设置成主机,另一个设置成从机。

         (主蓝牙)                                                   (从蓝牙)

    AT+NAME=CH-05-Z                                           AT+NAME=CH-05-C   (设置蓝牙名称)

    AT+PSWD=1234                                                 AT+PSWD=1234     (设置蓝牙密码)

    AT+ROLE=1                                                       AT+ROLE=0            (设置主从:0为从1为主)

    AT+ADDR?                                                         AT+ADDR?              (查询蓝牙地址)

    AT+UART:9600,0,0                                            AT+UART:9600,0,0   (设置波特率9600)
    AT+LINK=从蓝牙地址(蓝牙相互连接)           AT+BIND=master的地址(查询之后绑定主蓝) 

    注意:一定要保证两蓝牙的密码一样 

    以上配置可以在电脑端通过串口调试助手配置好,然后单片机接上蓝牙模块即可,模块上电后主从机会自动建立连接,连接成功后,主从机就可以通过串口通信了(透传模式 :发什么收什么)。

    展开全文
  • 用E4a软件设计一个简单的蓝牙控制界面,通过蓝牙单片机连接,实现蓝牙控制温湿度传感器,全部资料(代码,pcb,详细标准的实验报告,包括了调试过程)适用于单片机类期末设计课程,可以直接打板买器件焊接成品
  • 本设计详细地讲述了 51 单片机控制原理和单片机编程 技术,HC-05 蓝牙通信技术以及自动化控制技术。整个系统以 STC89C52 单片机为核心, 单片机实现 HC-05 蓝牙指令的解析与继电器开关控制指令的发出。 蓝牙通信单元...
  • 单片机技术
  • 基于51单片机蓝牙电子秤设计,包含原理图、源程序、手机APP、元件清单、实物图、文档资料、开题报告等
  • 啦啦毕业了,毕业前要写毕业设计,需要写一个简单的蓝牙APP进行交互,通过参考网上资料,问题顺利搞定,下面小编把具体实现思路分享大家,供大家参考。 1、Android蓝牙编程  蓝牙3.0及以下版本编程需要使用UUID,...
  • 基于单片机蓝牙模块通信课程设计,包括设计的全过程,代码资源。
  • 手机通过蓝牙控制硬件设备(三色灯),将代码中的蓝牙地址替换为单片机蓝牙设备的地址,理论可以。
  • 基于单片机蓝牙接口设计及数据传输的实现.pdf
  • 通过单片机取得温度数据,通过串口转蓝牙模块将数据无线发送出去,可在手机等带有蓝牙的手持终端进行温度显示
  • 单片机和蓝牙模块无线传输数据采集系统.rar
  • 单片机技术
  • 单片机和蓝牙模块无线传输数据采集系统归类.pdf
  • 单片机和蓝牙模块无线传输数据采集系统.pdf
  • 说白了,只是个蓝牙转串口的设备,你只要知道串口怎么编程使用,就可以了,实现了所谓的透明传输。 但是就是这么一个很常见的模块,网上很多的博客写的都是错的,或者都是很不详细的。 所以本文就介绍一下这款蓝牙...

    HC-05蓝牙串口通信模块应该是使用最广泛的一种蓝牙模块之一了。为什么呢?

    因为HC05模块是一款高性能主从一体蓝牙串口模块,可以不用知道太多蓝牙相关知识就可以很好的上手。说白了,只是个蓝牙转串口的设备,你只要知道串口怎么编程使用,就可以了,实现了所谓的透明传输。

    但是就是这么一个很常见的模块,网上很多的博客写的都是错的,或者都是很不详细的。

    所以本文就介绍一下这款蓝牙通信模块的使用,包括蓝牙模块的调试、手机与蓝牙模块之间的传输、手机蓝牙控制STM32单片机,应该是逐渐深入的一个过程。但是这仅仅是使用,以后有时间应该会对蓝牙有一个稍微深度的学习,而不能仅仅是浮于表面,只会用。

     

    模块名称:HC-05蓝牙串口通信模块

    参考资料:HC-05蓝牙串口通信模块官方资料包

    知识储备:【STM32】串口通信基本原理(超基础、详细版)

    其他模块:USB转TTL模块、手机蓝牙串口助手app

    手机蓝牙串口助手软件,可以点击链接下载:蓝牙串口。因为这是我见过所有手机端界面最好看的了,其他的界面都有点太糟糕了。

     

    蓝牙模块的调试

    准备工作

    USB转TTL模块与HC-05蓝牙模块的接线:

    两模块共地,两模块共VCC(VCC取5V);蓝牙模块的RX接转换模块的TX,蓝牙模块的TX接转换模块的RX。如下图所示:

    这个时候就要将转换模块连接到电脑上,然后利用串口调试助手进行蓝牙模块的调试。

    附可能会用到的驱动:链接:https://pan.baidu.com/s/1bpYLfCr 密码:yabv

    蓝牙模块的调试

    HC-05蓝牙串口通讯模块具有两种工作模式:命令响应工作模式和自动连接工作模式。在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。

    • 当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;
    • 当模块处于命令响应工作模式时能执行AT命令,用户可向模块发送各种AT 指令,为模块设定控制参数或发布控制命令。

    怎么进入命令响应工作模式?

    进入命令响应工作模式有两种方法:

    • 模块上电,未配对情况下就是AT模式,波特率为模块本身的波特率,默认:9600,发送一次AT指令时需要置高一次PIO11;
    • PIO11 置高电平后,再给模块上电,此时模块进入AT 模式,波特率固定为:38400,可以直接发送AT指令。

    什么叫做置高一次PIO11?

    在蓝牙模块中有一个小按键,按一下就置高一次PIO11。也就是说,第一种方法需要每发送一次AT指令按一次;而第二种方式是长按的过程中上电,之后就无需再管了,直接发送AT命令即可。

    需要注意一下,两种进入命令响应工作模式的方式使用的波特率是不一样的,建议使用第二种方式。

    怎么区分进了命令响应工作模式呢?

    在蓝牙模块上有灯,当灯快闪的时候,就是自动连接工作模式;当灯慢闪的时候,就是命令响应工作模式。

    AT命令

    进入到命令响应工作模式之后,就可以使用串口调试助手进行蓝牙调试了。

    首先有一点,AT指令不区分大小写,均以回车、换行结尾。下面介绍常用的AT指令:

    常用AT指令
    指令名响应含义
    ATOK测试指令
    AT+RESETOK模块复位
    AT+VERSION?+VERSION:<Param> OK获得软件版本号
    AT+ORGLOK恢复默认状态
    AT+ADDR?+ADDR:<Param> OK获得蓝牙模块地址
    AT+NAME=<Param>OK设置设备名称
    AT+NAME?+NAME:<Param> OK获得设备名称
    AT+PSWD=<Param>OK设置模块密码
    AT+PSWD?+PSWD:<Param> OK获得模块密码
    AT+UART=<Param1>,<Param2>,<Param3>OK设置串口参数
    AT+UART?+UART:<Param1>,<Param2>,<Param3> OK获得串口参数

    对于AT指令,有几点注意:

    • AT+NAME?:获得设备名称,这个AT指令有很大可能性是没有返回的,因为我也看到了很多的例子……,但是其他的指令都是没有问题的,直接设置设备名称就行了;
    • AT+UART?:获得串口参数,串口的参数一共有三个,波特率、停止位、检验位。其取值如下:
    串口参数
    参数名称取值
    波特率

    2400、4800、9600、19200、38400、5760、

    115200、230400、460800、921600、1382400

    停止位

    0:1位

    1:2位

    校验位0:NONE  1:Odd  2:Even

    其默认值为:9600,0,0。

    例子:

    本文中,蓝牙串口的波特率设置成115200。之后的内容,就会采用这个波特率来进行通讯了。

     

    手机与蓝牙模块之间的传输

    直接将蓝牙模块与转换模块连接,再讲其连接到电脑上,蓝牙模块直接进入自动连接工作模式。

    此时手机打开蓝牙串口调试应用,用其来连接蓝牙模块。手机蓝牙串口助手软件,可以点击链接下载:蓝牙串口。万分推荐这款,因为界面脱离了那种黑不溜秋的感觉,比较简洁、清爽。

    这个软件的使用:点击界面右下角蓝牙的标志,选择蓝牙进行连接。

    然后在电脑上的调试助手和手机的蓝牙串口调试应用之间就可以相互传输了,比如:

    可以清楚的看到:电脑向手机发送了“hello you”,手机向电脑发送了“hello world”。

     

    手机蓝牙控制STM32单片机

    之前的两个例子都是相比较而言比较简单的,这个例子将会涉及到程序的内容了。

    实现功能:手机通过蓝牙,向STM32单片机发送消息,STM32接收到消息之后原封不动的返回给手机。当然如果掌握了这个例子,也可以修改成,手机发送特定的消息,然后,STM32单片机做出相对应的动作。比如:点亮LED等、发动电机等等。

    连接说明

    使用USART1进行试验,也就是说STM32选取PA9、PA10来和HC-05进行连接。同时手机通过蓝牙来和HC-05进行连接。

    原理就是:手机通过蓝牙传输到HC-05上,再通过串口通信和STM32通信;而之前一般都是电脑上通过USB线转串口的方式,通过串口和STM32通信。本质上没有区别的。

    这个时候就应该更加深刻地体会到了本文开篇的一句话:说白了,只是个蓝牙转串口的设备,你只要知道串口怎么编程使用,就可以了,实现了所谓的透明传输。蓝牙的相关一切都被封装起来了,都不需要接触到。

    STM32控制程序

    #include "stm32f10x.h"
    
     void My_USART1_Init(void)  
    {  
        GPIO_InitTypeDef GPIO_InitStrue;  
        USART_InitTypeDef USART_InitStrue;  
        NVIC_InitTypeDef NVIC_InitStrue;  
          
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//GPIO端口使能  
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//串口端口使能  
          
        GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP;  
        GPIO_InitStrue.GPIO_Pin=GPIO_Pin_9;  
        GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;  
        GPIO_Init(GPIOA,&GPIO_InitStrue);  
          
        GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING;  
        GPIO_InitStrue.GPIO_Pin=GPIO_Pin_10;  
        GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;  
        GPIO_Init(GPIOA,&GPIO_InitStrue);  
          
        USART_InitStrue.USART_BaudRate=115200;  
        USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;  
        USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;  
        USART_InitStrue.USART_Parity=USART_Parity_No;  
        USART_InitStrue.USART_StopBits=USART_StopBits_1;  
        USART_InitStrue.USART_WordLength=USART_WordLength_8b;  
          
        USART_Init(USART1,&USART_InitStrue);
          
        USART_Cmd(USART1,ENABLE);//使能串口1  
          
        USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//开启接收中断  
          
        NVIC_InitStrue.NVIC_IRQChannel=USART1_IRQn;  
        NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE;  
        NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1;  
        NVIC_InitStrue.NVIC_IRQChannelSubPriority=1;  
        NVIC_Init(&NVIC_InitStrue);  
          
    }  
      
    void USART1_IRQHandler(void)  
    {  
        u8 res;  
         if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)  
     {  
         res= USART_ReceiveData(USART1); 	 
         USART_SendData(USART1,res);     
      }  
    }  
       
     int main(void)  
     {    
    	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  
        My_USART1_Init();  
         while(1);  
           
     } 

    这段程序和【STM32】串口相关配置寄存器、库函数(UART一般步骤)中的程序一模一样,几乎没有什么改动。

    区别就是,在UART实验中,USART1是和USB转串口模块连接在一起的,然后与电脑上的串口调试助手进行通信;现在改成USART1是和蓝牙模块连接在一起的,然后和手机上的蓝牙串口调试助手进行通信。

     

    展开全文
  • 单片机和蓝牙模块无线传输数据采集系统-8页.pdf
  • 单片机和蓝牙模块无线传输数据采集系统
  • ,其操作流程使用方法简单,一种深受广大编程小镇的喜爱今天为大家介绍一种利用它开发手机APP的实战经历 ——手机APP开发之MIT Appinventor详细实战教程(一),利用通过蓝牙控制单片机,以及实现单片机与android...

    目录

    (一)前期软件准备和硬件准备

    ( 二 ) 实现的思路和操作原理

    ( 三) 具体的操作方法

    MIT Appinventor 是编程领域较为受欢迎且适用的编程软件 ,因其操作流程和使用方法简单,一直深受广大编程人员的喜爱,所以今天为大家介绍一个实例——手机APP开发之MIT Appinventor详细实战教程(一),利用通过蓝牙控制单片机,以及实现单片机与android设备之间的串口通信。 
      

    (一)前期软件准备和硬件准备

     软件准备主要是keil uvision,stc-isp-15xx-v6.85
     硬件准备主要是有一个蓝牙模块 、一个便宜的单片机 、一个蓝牙可以正常使用的手机和编程电脑 ;  蓝牙模块需要和单片机连接,具体的操作方法:VCC接VCC,GND接GND,TXD接P30,RXD接P31
      


    ( 二 ) 实现的思路和操作原理

     我们知道手机和单片机是两个互不相连的事物 ,所以要实现他们之间的通信,我们需要一个信使来充当中间媒介的作用 。而那个信使就是上面提到的蓝牙模块 。 这个蓝牙模块一方面可以接收到手机APP发送的数据并将它传达给单片机 ,另一方面单片机也可以将反馈数据通过蓝牙模块进而发送到手机App上 。这就实现了单片机和手机之间的交互通信 。 

    ( 三) 具体的操作方法


     首先我们需要  MIT Appinventor 制作一个简单的组件页面 ,具体情况如下图所示  :
     这个布局还有待优化 ,实现最基本的功能也足够了 


     接下来是逻辑层面的设计 
     [ 这个可以用来实现手机APP对蓝牙的选择连接 ]
     列表选择框(选择蓝牙)的启用为真,按钮(断开)的启用为假。选择蓝牙时将蓝牙客户端的地址及名称显示出来供用户选择。、
     
     蓝牙所发送的数据相关设置也必不可少 ,本文让蓝牙发送的数据为1或0 ,你来传递给单片机,进而控制LED灯的亮灭。
     ![ 较为简单的逻辑设计 ,这只是一个简单的框架,主要设计的是通过按钮的开关来控制灯的亮灭 ]
     然后是通过发送零或一来使单片机Led灯发亮或暗 的控制的控制逻辑
     [ 在文本框输入1或0,点击确认发送即可完成相应功能 ]
      上面的一系列操作完成后,我们已经可以实现手机单方面对单片机进行控制。 在这里我们可以把手机形象化的比喻为命令的发出者 ,发出者通过蓝牙模块将数据传达给单片机 ,单片机又根据内部的程序,从而实现对LED灯的控制 ( 单片机的相关配合程序下文会详细给出 )下面我们来实现单片机对手机反馈数据 这一流程的操作 ,遵循单片机反向反馈数据的原理 ,和相关知识。我们可以有下面的尝试 
    [ 通过显示框找到蓝牙接收到的数据显示出来 ]

     


      **另大一部分便是单片机的配合程序了** 

     

    #include <reg52.h> //51头文件
    
    sbit LED1 = P2^0; //位定义 LED1硬件接口
    void delay(unsigned int z)//毫秒级延时
    {
        unsigned int x,y;
        for(x = z; x > 0; x--)
            for(y = 114; y > 0 ; y--);
    }    
    
    
     /******************************************************************/
    /* 串口中断程序*/
    /******************************************************************/
    void UART_SER () interrupt 4
    {
        unsigned int n;     //定义临时变量
    
        if(RI)         //判断是接收中断产生
        {
            RI=0;     //标志位清零
            n=SBUF; //读入缓冲区的值
    
            switch(n)
            {
                case 1:    LED1 = 0;    break;    //亮灯
                case 0:    LED1 = 1;    break;    //灭灯
            }
        }
    
    }
    
    //蓝牙初始化
    void boothint(void)
    {
       
           SCON = 0x50;     // SCON: 模式1, 8-bit UART, 使能接收 
        TMOD |= 0x20;
        TH1=0xfd;         //波特率9600 初值
        TL1=0xfd;
        TR1= 1;
        EA = 1;        //开总中断
        ES= 1;         //打开串口中断
    
    
    }
    //串口初始化
    void UartConfigurationInit()
    {
        TMOD=0x20;  //设置定时器1工作方式为方式2   
        TH1=0xfd;        //波特率9600
        TL1=0xfd;  
        TR1=1;      //启动定时器1     
        SM0=0;SM1=1;      //串口方式1         
        REN=1;      //允许接收   
        PCON=0x00;  //关倍频   
        ES=1;       //开串口中断   
        EA=1;       //开总中断
    }
    void main()
    {
        boothint();
        while(1)
        {
         
            SBUF=9;   //发送单个字符
            while(!TI);TI=0; //发送完成标志
        }
    }

    到目前为止,软件设计和单片机内部程序的设计的所有细节已经全部讲到 ,然后就是软件下载或者是调试的过程了 ,在整个界面的上面有一个连接(Connect)选项,推荐使用AI侣,这要求手机下载一个Appinventor的app,然后让手机和电脑在同一个局域网下,通过扫描二维码就可以在线调试看效果了,是不是有点小激动呀!  

    特别注意:测试蓝牙通讯的单片机不要用51单片机!!!会出现乱码,具体原因可以看我的这篇博客,帮你完美实现蓝牙的双向通信功能。

    https://blog.csdn.net/weixin_42619971/article/details/107298406

     
     
     
     
     
    展开全文
  • 选用单片机STC89C52作为系统控制芯片,通过蓝牙模块把单片机处理的数据传输手机APP上,这样更能清楚看到检测的效果。整机工作电流只有1-1.5mA,实现超低功耗。采集的步数,路程,卡路里及运动状态用手机APP显示。 ...
  • 如何用手机控制stm32单片机,通过蓝牙模块

    万次阅读 多人点赞 2020-07-27 00:47:33
    在建立通信的过程中,我们需要把电脑上虚拟串口的波特率,数据位,奇偶校验位,停止位与单片机上面的串口波特率,数据位,奇偶校验位,停止位配置成同样的数。有的同学就问了,我怎么知道单片机的上面的串口的配置是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,089
精华内容 1,235
关键字:

手机蓝牙控制单片机,和单片机传输数据给手机蓝牙

友情链接: PMSM_PI.rar