stm32+hx711+蓝牙hc05 称重系统(蓝牙电子秤)

该项目利用STM32F103C8T6微控制器、HX711称重传感器和HC05蓝牙模块构建了一个无线称重系统。通过配置HC05进入AT命令模式,设置蓝牙参数,实现与手机或电脑APP的串口通信。STM32与HX711交互,读取传感器数据,并通过蓝牙发送到移动端。代码中详细展示了STM32对HX711的初始化及数据读取过程。
摘要由CSDN通过智能技术生成

stm32+称重模块hx711+蓝牙模块hc05

本项目使用主控stm32f103c8t6,称重模块hx711,蓝牙模块hc05上传至手机app/电脑app显示数值
在这里插入图片描述

模块

1、stm32f103c8t6最小系统板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、hx711

HX711 模块 A 通道带有 128 倍信号增益,可以将 5mV 的电压放大 128 倍,然后采样输
出 24bit AD 转换的值,单片机通过指定时序将 24bit 数据读出
在这里插入图片描述

3、蓝牙模块hc05
HC-05蓝牙串口通信模块应该是使用最广泛的一种蓝牙模块之一了。
因为HC05模块是一款高性能主从一体蓝牙串口模块,可以不用知道太多蓝牙相关知识就可以很好的上手。

HC-05蓝牙串口通讯模块具有两种工作模式:命令响应工作模式和自动连接工作模式。在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。
当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;
当模块处于命令响应工作模式时能执行AT命令,用户可向模块发送各种AT 指令,为模块设定控制参数或发布控制命令。
在这里插入图片描述
在这里插入图片描述

过程

1、首先蓝牙模块hc05与串口模块连接
在这里插入图片描述
注意,蓝牙模块的vcc千万不能接3.3v会烧坏芯片

在这里插入图片描述
蓝牙模块tx 接 串口模块rx
蓝牙模块rx 接 串口模块tx
蓝牙模块vcc 接 串口模块5v
蓝牙模块gnd 接 串口模块gnd

然后按住蓝牙模块上的小按钮,上电,
观察蓝牙模块上的小灯是否是一秒闪一秒灭,如果是,就是进入at模式

正常的蓝牙模式是灯快闪

打开串口工具,设置好参数,尤其是波特率38400
在这里插入图片描述
发送AT进行测试,是否返回OK
在这里插入图片描述
在这里插入图片描述

所以接下来的设置步骤
AT
AT+ROLE=0 //设置为被动连接
AT+NAME=XXX //设置名字
AT+UART=115200,0,0 //设置蓝牙波特率
AT+PSWD=1234 //设置密码
这样就差不多了
然后用重新上电,手机蓝牙打开搜索
然后打开手机蓝牙APP
在这里插入图片描述
电脑串口助手发送字符串
在这里插入图片描述
手机app接收到字符串

蓝牙部分就这样差不多了

2、stm32+hx711

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按如图所示,接到hx711模块上
在这里插入图片描述
然后另一边的vcc接单片机的3.3v,gnd接gnd
还有一个DT和SCK又自己配置引脚使用

void Init_HX711pin(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 //使能PF端口时钟

	//HX711_SCK
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;				 // 端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
	GPIO_Init(GPIOB, &GPIO_InitStructure);					 //根据设定参数初始化GPIOB
	
	//HX711_DOUT
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//输入上拉
    GPIO_Init(GPIOB, &GPIO_InitStructure);  
	
	GPIO_SetBits(GPIOB,GPIO_Pin_0);					//初始化设置为0
}

然后就是hx711的处理过程函数了

//****************************************************
//读取HX711
//****************************************************
u32 HX711_Read(void)	//增益128
{
	unsigned long count; 
	unsigned char i; 
  	HX711_DOUT=1; 
	delay_us(1);
  	HX711_SCK=0; 
  	count=0; 
  	while(HX711_DOUT); 
  	for(i=0;i<24;i++)
	{ 
	  	HX711_SCK=1; 
	  	count=count<<1; 
		delay_us(1);
		HX711_SCK=0; 
	  	if(HX711_DOUT)
			count++; 
		delay_us(1);
	} 
 	HX711_SCK=1; 
    count=count^0x800000;//第25个脉冲下降沿来时,转换数据
	delay_us(1);
	HX711_SCK=0;  
	return(count);
}

//****************************************************
//获取毛皮重量
//****************************************************
void Get_Maopi(void)
{
	Weight_Maopi = HX711_Read();	
} 

//****************************************************
//称重
//****************************************************
void Get_Weight(void)
{
	HX711_Buffer = HX711_Read();
	if(HX711_Buffer > Weight_Maopi)			
	{
		Weight_Shiwu = HX711_Buffer;
		Weight_Shiwu = Weight_Shiwu - Weight_Maopi;				//获取实物的AD采样数值。
	
		Weight_Shiwu = (s32)((float)Weight_Shiwu/GapValue); 	//计算实物的实际重量
																		//因为不同的传感器特性曲线不一样,因此,每一个传感器需要矫正这里的GapValue这个除数。
																		//当发现测试出来的重量偏大时,增加该数值。
																		//如果测试出来的重量偏小时,减小改数值。
	}
}

3、把蓝牙模块接上单片机,并使用手机APP连接连接,这样就能实现把称重模块的重量通过蓝牙发送到手机端了,当然,也可以发送到电脑端

在这里插入图片描述

项目代码请点击下载

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶舞澎湃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值