1100073-基于STM32的无线语音电子称HX711/温度/串口/去皮/proteus/惠斯通电桥/小数点

1100073-基于STM32的无线语音电子称HX711/温度/串口/去皮/proteus/惠斯通电桥/小数点

功能描述:

基于STM32f103c8的无线语音电子称体重秤/温度/串口/去皮/proteus/惠斯通电桥
实现原理:在proteus中使用惠斯通电桥模拟真实的物理称重传感器,通过HX711高精度体重传感器检测数据,通过STM32单片机处理数据。可以实现商品单价输入,计算商品总价。监测设备的工作温度,保证设备的运行精确度。可实现去皮的功能。通过串口传输数据可模拟语音、WIFI、蓝牙、RS232等功能。

1、商品的重量监测
2、商品的价格输入
3、商品的总价计算
4、商品去皮
5、设备的温度检测
6、设备超负荷报警
7、设备超温低温报警
8、控制键盘可输入0-9,小数点、确认、退格、清除、去皮的4*4矩阵键盘。
9、通过串口传输数据,可实时显示商品信息,模拟语音播报、蓝牙传输、串口通信等功能。

有哪些资料:

1、仿真工程文件
2、源代码工程文件
3、原理图工程
4、上位机软件
5、串口虚拟工具

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述


#include "systick_delay.h"
#include "key.h"
#include "lcd1602.h"
#include "Price.h"
#include "HX711.h"
#include "led.h"
#include "usart.h"	
#include "ds18b20.h"
#include "SysTick.h"

extern char Rx_Data[];
extern uint8_t Rx_Flag;

/* Global Variable全局变量 -----------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------------------*/	
/**
 * @brief  main主函数
**/  

void clear_input_buffer() {
    int c;
    while ((c = getchar()) != '\n' && c != EOF) {
        // 读取并丢弃输入缓冲区中的字符,直到遇到换行符或文件结束符
    }
}


void NVIC_Configuration(void)
{

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//设置NVIC中断分组2:2位抢占优先级,2位响应优先级

}


int main(void)
 {	 
    int32_t Temp_Weight = 0 ;//临时保存物品重量
	 float _Temp_Weight = 0,N_Temp_Weight = 0;
	static u8 i= 10;
	 


	 u8 temp=0;
    RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
    HX711_Init();//HX711初始化
    KEY_Init();//按键初始化函数
    LCD1602_Init();//LCD1602初始化
    LED_Init();//LED初始化函数
	 USART1_Init(115200);
	 DS18B20_Init();
	//NVIC_Configuration();	
	 
	printf("*******欢迎使用智能语音电子称*******\r\n");
	 printf("WIFI-已连接!!!\r\n");
	 
	 

	 
	 	while(i--)
	{
		//温度获取
		temp = DS18B20_GetTemperture();
		delay_ms(100);
		
	}
	while(1)
	{	
	
if(Rx_Flag)                                         //如果接收到数据
		{

			if(strcmp(Rx_Data, "WIFI") == 0)                  //如果接收到的数据是LED_ON
			{

				Send_String("WIFI-已断开!!!\r\n");                           //串口发送LED    ON,反馈控制者灯已经打开
			}

			Rx_Flag=0;                                      //接收到数据标志位置0,为下次接收字符串做准备
		}

	





		
		
//		i++;
//		if(i%5==0)
			temp = DS18B20_GetTemperture();
//		
		if( temp > 60 )
		{
				printf("当前设备温度过高!\r\n");
			CHAOWEN_LED = 0;
			
					delay_ms(1000);
		}else  CHAOWEN_LED =1;
		
			if( temp < 10 )
		{
				printf("当前设备温度过低!\r\n");
			DIWEN_LED = 0;
					delay_ms(1000);
		}else DIWEN_LED =1;
	//	printf("temp :  %d",temp);
		sprintf((char *)Temp_Strings, "%5.1f", (float)temp);
		LCD1602_Display_String(2,14, Temp_Strings);
		
		//	printf("hello world \r\n");
        Get_Input_Price_And_Calculate();//获取按键输入的价格并计算总的价格
		if(Tare_Key_Flag == 1)//去皮按键被按下标志位为1,显示去皮重量后的净重
		{
			
			Temp_Weight = HX711_Convert();//HX711进行转换
			Temp_Weight = Temp_Weight - Tare_Weight;//当前总重量减去皮重才是要计算的重量
			_Temp_Weight = Temp_Weight / 36059.19 ;
			if (_Temp_Weight >= 10 )
			{
				printf("请注意:系统超过检测质量10KG过载!\r\n");
				GUOZAI_LED = 0;
					delay_ms(100);
			}else  GUOZAI_LED = 1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cqtianxingkeji

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

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

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

打赏作者

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

抵扣说明:

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

余额充值