蓝牙模块(HC

您所在的位置:网站首页 划船机蓝牙模块 蓝牙模块(HC

蓝牙模块(HC

2024-07-10 03:46| 来源: 网络整理| 查看: 265

写在前面:

        蓝牙串口模块在我们日常的嵌入式开发板的学习中可以说是经常使用,今天我们学习如何使用蓝牙串口模块,并利用其进行简单的操作。以便大家对于蓝牙模块用于基本的认识以及基本的使用。

实验现象视频在文末!!

实现功能:

1、通过蓝牙模块建立手机同电脑进行数据的交换;

2、通过蓝牙模块建立手机同单片机的数据交换,将单片机的温度传感器传感数值通过蓝牙传至手机。 

实验源码即现象视频

链接:https://pan.baidu.com/s/1PswxBuydhh8gWiVSMg_Dcw  提取码:1022

目录

一、HC-08蓝牙模块介绍

1.1基本介绍

 1.2连接方式

1.3模块连接

二、硬件设计

2.1硬件介绍

2.2工作流程

三、软件设计

3.1电脑-手机通信

 3.2单片机-手机通信

一、HC-08蓝牙模块介绍 1.1基本介绍

        蓝牙模块,是一种集成的蓝牙功能的PCB板,用于短距离无线通信,按照功能分为蓝牙数据模块和蓝牙语音模块,是集成蓝牙功能的芯片和基本电路的集合,用于无线网络通讯。     

           HC-08蓝牙串口通信模块是新一代的基于 Bluetooth Specification V4.0 BLE蓝牙协议的数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm, 接收灵敏度-93dBm,空旷环境下和 iphone4s 可以实现 80 米超远距离通信。 

        本次我采用的蓝牙模块为HC-08产品,常见的还有HC-02、05、06等等系列;模块的实物图如下图所示:

        产品带底板焊排针,引出6个引脚,可直接同单片机的串口进行连接,待匹配成功后,即可当成一堆串口穿透数据。

产品的参数:

1、引脚

EN(KEY)、VCC、GND、RXD、TXD、STATE共6个引脚,,STATE是蓝牙状态引出引脚,未连接时输出低电平。连接时输出高电平,EN相当于KEY引脚,可消除主机配对记忆。这两个引脚我们不必关注,按照要求连接好其余4个引脚即可。

2、电压说明

输入电压为3.2-6V,电源自带防止反接功能,但是反接不能工作;

3、状态指示

模块上有状态指示灯,配对前,主机未记录从机地址,每秒亮100ms;主机记录从机地址,每秒亮900ms;配对后,主机灯与从机灯都常亮。

4、接口电平

数据的输入输出接口RXD、TXD为3.2-6V  TTL电平,可以同单片机直接连接。

5、通信距离

空旷环境下,通信距离可达80m;

6、通信格式

配对成功后,可以作为全双共串口使用,无需了解蓝牙协议,但只支持8位数据位,1位停止位,无校验位的通信格式,校验位可以更改。

7、默认值

波特率9600,蓝牙名HC-08。

 1.2连接方式

串口通信的相关知识,请看我之前的博客:

51单片机---串行口通信(小白可入)-CSDN博客

        我们前面讲过蓝牙通信方式为串口通信,首先单个模块同串口的连线方式如下图:

 

实物连线方式为:

同串口助手连接

         如果同单片机的串口相连,只要按照上图的连线方式,找到其对应的引脚连接即可。单片机的RXD为P3.0引脚,TXD为P3.1引脚。

1.3模块连接

        当蓝牙模块同串口连接后,若串口为单片机的串口,则单片机便有了蓝牙功能,若跟串口助手在电脑上,则电脑就有了蓝牙功能。当电脑、单片机等设备有了蓝牙功能后,便可以同其他用于蓝牙功能的设备进行通信。如下图所示:

两个单片机同经过蓝牙通信

单片机同手机经过蓝牙通信

当然还有电脑同手机经过蓝牙通信。 

二、硬件设计 2.1硬件介绍

本次涉及的硬件部分主要有:

1、51单片机;

2、HC-08模块;

3、串口模块;

4、电脑;

5、手机;

其中:电脑端的串口助手为:COM-HC;

 手机端的串口助手为:小程序HCBLE串口助手

2.2工作流程

 流程1:

通过蓝牙模块建立手机同电脑进行数据的交换;

流程2:

通过蓝牙模块建立手机同单片机的数据交换,将单片机的温度传感器传感数值通过蓝牙传至手机。  

三、软件设计 3.1电脑-手机通信

        将串口模块同蓝牙模块连接到电脑上,并完成同手机端蓝牙的配对。灯常亮表示蓝牙配对成功。

先由电脑向手机发送“蓝牙模块”字符,再由手机向电脑发送“666、哈哈哈”;

蓝牙视频1

 3.2单片机-手机通信

程序源码:

main.c

#include //包含相关头文件 #include "DS18B20.h" #include "uart.h" #include "delay.h" float t;//定义温度变量 void main() { UART_Init();//串口初始化 while(1) { DS18B20_ConverT();//温度测试 t =DS18B20_ReadT();//温度数值 UART_SendByte(t);//将数值通过串口进行发送 Delay100ms(10); } }

uart.c

#include /** *@breaf 串口初始化 *@param 无 *@retval 无 */ void UART_Init(void) { TMOD =0X20;//设置定时器的工作方式:设置使用定时器1,工作方式为方式1; SCON=0X50;//设置串口工作方式:设置为工作方式1;打开接受ren=1; PCON =0X80;//设置电源控制寄存器,波特率加倍; //计算波特率,设置定时计数器的初值 TH1= 0xfa; TL1= 0xfa; //是否使用中断,如若使用,则打开中断配置; EA=1;//打开中断总开关; ES=1;//启动串口中断; ET1=0;//关闭定时器1的中断 TR1=1;//打开计数器;TCON寄存器 } /** *@breaf 串口发送一个字节数据函数 *@param byte 传送的一个字节 *@retval 无 */ void UART_SendByte(unsigned char byte) { SBUF=byte; while(TI==0); TI=0; }

DS18B20.c

#include #include "one_wire.h" void DS18B20_ConverT() { OneWire_Init(); OneWire_SendByte(0xcc); OneWire_SendByte(0x44); } float DS18B20_ReadT() { unsigned char TLSB,TMSB; int Temp; float T; OneWire_Init(); OneWire_SendByte(0xcc); OneWire_SendByte(0xBE); TLSB =OneWire_ReceiveByte(); TMSB=OneWire_ReceiveByte(); Temp=(TMSB


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3