基于STM32单片机的智能卡路里热量表WIFI无线手机控制

附:http://www.jh-tec.cn/archives/7156

系统功能设计

本系统由STM32F103C8T6单片机、称重传感器、WIFI模块及电源组成。
1、手机APP和stm32设备上WIFI模块进行连接。
2、通过称重传感器采集到的重量,然后将采集到的数据通过wifi发送给手机。
3、手机定制app接收到数据,进行处理显示,可对当前实物种类及实物情况选择设置。
4、app同时能够显示当前物体重量,能产生的热量值以及卡路里值进行显示。

2、ESP8266WIFI模块电路设计电路设计
ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。
ESP8266封装方式多样,天线可支持板载PCB天线,IPEX接口和邮票孔接口三种形式;
ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。
一、模块特点
(1)支持无线802.11 b/g/n 标准
(2)支持STA/AP/STA+AP 三种工作模式
(3)内置TCP/IP协议栈,支持多路TCP Client连接
(4)支持丰富的Socket AT指令
(5)支持UART/GPIO数据通信接口
(6)支持Smart Link 智能联网功能
(7)支持远程固件升级(OTA)
(8)内置32位MCU,可兼作应用处理器
(9)超低能耗,适合电池供电应用
(10)3.3V 单电源供电

功能底板:
在这里插入图片描述

STM32F103C8T6单片机核心板:
USB供电接口,复位按键 开关按键
在这里插入图片描述
合理优秀的布局布线:
在这里插入图片描述
参考代码:

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include <stdio.h>
#include "timer.h"
#include "key.h"


unsigned long Weight_Maopi = 0;//毛坯重量
long Weight_Shiwu=0;//总重量
char dis1[16];	//显示数组

unsigned char numFlag =0;	//计数标志
unsigned char readWeight =1;//读取重量
unsigned char i ;
u8 sendDataFlag =0;//发送数据标志
u8 MesCount =0;//信息发送计数

unsigned long HX711_Read(void);//读取重量函数
int main(void)
 { 
	delay_init();	    	 //延时函数初始化	  
	uart_init(9600);	 	//串口初始化为115200
	uart2_init(9600)	;
  TIM3_Int_Init(499,7199);//50ms  	 
	LED_Init();		  		//初始化与LED连接的硬件接口
	KEY_Init();

	for(i=0;i<40;i++)
	{delay_ms(100);}	
	printf("AT+CIPMUX=1\r\n");		  //建立多连接 
	for(i=0;i<10;i++)
	{delay_ms(100);}
	printf("AT+CIPSERVR=1,8080\r\n");	//创建端口号  //**All notes can be deleted and modified**// 
	 
	Weight_Maopi = HX711_Read(); 	//	读取毛重值
	delay_ms(100); 
	Weight_Maopi = HX711_Read();	//	读取毛重值
	delay_ms(100); 
	Weight_Maopi = HX711_Read();   //	读取毛重值

	 while(1)
	{
		if(readWeight == 1)
		{
			Weight_Shiwu=HX711_Read();		//	读取实际重量
			Weight_Shiwu = Weight_Shiwu - Weight_Maopi;		//获取净重
			if(Weight_Shiwu > 0)		//实际重量处理	
			{	
				Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/430); 	//计算实物的实际重量		
			}
			if(Weight_Shiwu<8)	//过滤
			{Weight_Shiwu=0;}
			readWeight = 0;
		}	
		if(sendDataFlag == 1)	//发送标志置位
		{
				if(MesCount == 0)//发送计数
				{
					MesCount =1;
					printf("AT+CIPSEND=0,7\r\n");		//发送5字节数据
				}
				else
				{								
				  sprintf(dis1,"*%4d#\n",(unsigned int)Weight_Shiwu);//打印数据
					UART_SendStr(USART1 , dis1 , 7);//打印wifi 数据 经度						
					MesCount = 0;				   //发送
				}
				sendDataFlag =	0;		//发送数据清零	
			}		
	}											    
}	

unsigned long HX711_Read(void)	//增益128
{
	unsigned int later;
	unsigned long count; 
	unsigned char i; 

//**All notes can be deleted and modified**//
  	count=0;
		later=0;
  	while((HX711_DOUT==1)&&(later<1000))//延时防止死循环
	{
		later++;
		delay_us(10);//短暂延时
	}
  	for(i=0;i<24;i++)//读取数据
	{ 
//		delay_us(1);
	  	HX711_SCK=1;   	//时钟位值高电平
	  	count=count<<1;
//		delay_us(1); 
		HX711_SCK=0; //时钟位值低电平
//		delay_us(1); 
	  	if(HX711_DOUT)//读取数据位
		count++; 
	} 
 	HX711_SCK=1; 
    count=count^0x800000;//第25个脉冲下降沿来时,转换数据
	delay_us(5);
	HX711_SCK=0;  
	return(count);
}





  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值