基于51单片机的智能营养秤系统设计与实现

发布时间:2023-07-18  

一、项目背景

随着人们生活水平和健康意识的提高,越来越多的人开始注重自己的饮食健康。在此背景下,智能营养秤系统应运而生,成为了一种非常实用的工具。本项目基于51单片机设计和实现一种智能营养秤系统,通过该系统可准确地测量食物的重量并计算其热量、蛋白质、脂肪、碳水化合物等营养成分含量。


当前系统采用了STC89C52单片机作为主控芯片,预置了多种食材的营养成分数据。用户只需要使用矩阵键盘输入食材编号,将需要称重的食材放置在重力传感器上进行依次称重,系统就可以自动计算出所有食材的各类营养含量总值,并通过液晶屏显示出来。同时,系统根据预设的营养指标,对不达标或超标的食材进行对应的声光提示,提醒用户注意饮食健康。


当前系统还配备了无线WIFI模块,可以将当前营养数据上传到手机端实时显示,并给出营养建议。这使得用户可以随时1了解自己的饮食情况,及时进行调整,从而达到更好的健康效果。


本项目的设计和实现是为了满足人们对于饮食健康的需求,帮助人们更好地控制自己的饮食,达到健康瘦身的目的。同时,由于采用了51单片机的设计方案,具有成本低、易于制作、易于维护等优点,具有广泛的应用前景。

poYBAGRreiaAbDGGAAj9vaxEOyM322.pngimage-20230517100117507

二、系统设计过程

2.1 硬件组成

【1】STC89C52单片机作为主控芯片。

【2】4x4电容矩阵键盘用于输入食材编号。

【3】HX711重力传感器用来进行多种食材的称重。

【4】1.44寸LCD显示屏用来显示所有食材的各类营养含量总值。

【5】ESP8266无线WIFI模块用于将当前营养数据上传到手机端实时显示。

2.2 系统框架组成

【1】输入:使用4x4电容矩阵键盘输入食材编号,触发称重功能。

【2】称重:根据输入的食材编号,通过HX711重力传感器对多种食材依次称重。

【3】计算:系统自动计算所有食材的各类营养含量总值,并在1.44寸LCD显示屏上显示。

【4】判断:根据系统预设的营养指标,判断当前营养数据是否达标或超标。

【5】提示:若不达标或超标,系统进行相应的声光提示。

【6】数据上传:通过ESP8266无线WIFI模块将当前营养数据上传到手机端实时显示,并给出营养建议。

2.3 系统模块设计

【1】系统硬件设计

采用了51单片机作为主控芯片,重力传感器用于称重,矩阵键盘用于输入食材编号,液晶屏用于显示数据。同时,为了实现无线上传功能,还需要添加WIFI模块。

【2】系统软件设计

系统的软件设计主要包括两个方面,即驱动程序和应用程序。其中,驱动程序负责与各个硬件模块进行通信,读取和处理相关数据;应用程序则负责实现具体的计算和控制逻辑。

【3】食材营养成分数据预置

预先测量并记录多种食材的重量和营养成分含量,并将这些数据存储在系统中供后续使用。

【4】食材识别和称重

当用户输入食材编号后,系统自动从预置的数据中查找对应的营养成分信息。然后,用户将需要称重的食材放置在重力传感器上,系统开始进行称重并输出重量数据。

【5】营养计算和指标判断

系统根据已知的食材重量和营养成分数据,计算出当前食物的各类营养含量总值。同时,根据预设的营养指标,判断当前食物是否达标或超标,并进行相应的声光提示。

【6】数据传输和显示

将当前的营养数据通过WIFI模块上传到手机端实时显示,并根据用户的身体数据和运动情况,推荐合适的饮食方案。

【7】整体测试和优化:对系统进行整体测试和优化,确保系统能够正常工作并满足设计要求。

2.4 程序设计思路

【1】定义多种食材的营养成分数据,存储在程序中。

【2】初始化电容矩阵键盘和HX711重力传感器。

【3】等待用户输入食材编号。一旦检测到有效输入,记录食材编号并触发称重功能。

【4】根据输入的食材编号,依次使用HX711重力传感器进行称重,并根据对应的营养成分数据进行计算,得出每种营养成分的总值。

【5】将所有食材的营养成分总值通过1.44寸LCD显示屏展示给用户。

【6】根据系统预设的营养指标,判断当前营养数据是否达标或超标。如果不达标或超标,则进行相应的声光提示。

【7】通过ESP8266无线WIFI模块将当前营养数据上传到手机端实时显示,并给出营养建议。

三、程序代码实现

3.1 HX711称重传感器代码

下面是STC89C52单片机读取HX711称重传感器的值,得到最终的重量,打印到串口的完整代码:

#include 

#include 

// HX711引脚定义

sbit HX711_DOUT = P1^0; // 数据输出引脚

sbit HX711_SCK = P1^1; // 时钟输入引脚

typedef unsigned char uchar;

typedef unsigned int uint;

uchar WeiLai, OldData;  // 定义两个变量,用于保存数据

uchar Data[3];      // 存放读取的数据

long result = 0;     // 定义长整型变量,用于存放最终的重量值

void delay_us(uint us)  // 延时函数(微秒级)

{

  while(us--)

   {

    _nop_();      // 空操作语句,延时一微秒

    _nop_();

    _nop_();

    _nop_();

   }

}

void Read_HX711()     // 读HX711函数

{

  uchar i;

  HX711_DOUT = 1;    // 先将DOUT置为高电平

  delay_us(1);     // 延时1微秒

  HX711_SCK = 0;    // 将SCK置为低电平

  delay_us(1);     // 延时1微秒

  for(i=0;i<24;i++)     // 循环24次,读取数据

     {

         HX711_SCK = 1;    // 将SCK置为高电平

         delay_us(1);      // 延时1微秒

         WeiLai = HX711_DOUT;       // 读取DOUT引脚上的数据

         result <<= 1;     // 左移一位

         if(WeiLai == 1)   // 如果DOUT为1,将result的最低位赋值为1

         {

             result++;

         }

         HX711_SCK = 0;    // 将SCK置为低电平

         delay_us(1);      // 延时1微秒

     }

 

     WeiLai = OldData;     // 将OldData的值赋给WeiLai

     Data[2] = result;     // 存储重量值的最高字节

     Data[1] = result>>8; // 存储重量值的中间字节

  Data[0] = result>>16; // 存储重量值的最低字节

}

void main()

{

  TMOD = 0x20;     // 定时器T1工作模式设置

  TH1 = 0xfd;      // 波特率9600

  TL1 = 0xfd;      // 波特率9600

  TR1 = 1;       // 启动定时器T1

  SCON = 0x50;     // 设置串口工作方式

  while(1)

   {

    Read_HX711();   // 调用读HX711函数

    // 将读取到的数据打印到串口

    SBUF = Data[0];

    while(TI == 0);

    TI = 0;

    SBUF = Data[1];

    while(TI == 0);

    TI = 0;

    SBUF = Data[2];

    while(TI == 0);

    TI = 0;

   }

}

3.2 ESP82660-WIFI配置代码

以下是STC89C52单片机控制ESP8266,配置成AP模式,开启TCP服务器,等待客户端连接上来的完整代码:


#include 

#include 

#define RXD P3_0  // 串口接收引脚

#define TXD P3_1  // 串口发送引脚

typedef unsigned char uchar;

typedef unsigned int uint;

bit rcvflag;    // 接收标志位

uchar idata RcvBuf; // 存储接收到的数据

uchar len;     // 存储接收到的数据长度

uchar AT_OK;    // 存储AT指令执行结果

/* 延时函数 */

void Delayms(uint ms)

{

  uchar i, j;

  for(i=0;i;i++)>


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    智能家居系统的主要分类;  用户了解智能家居必须要知道一个知识,就是智能家居的分类,大部分朋友都知道有智能家居系统和智能家居单品,但是还有一个分类是智能设备。今天小编就详细为大家介绍一下智能......
    全屋智能大势下的智能照明发展现状和趋势;在智能家居的新赛道上,各领域头部企业纷纷入局全屋智能,而全屋智能也在市场教育下逐渐成为家庭时尚的风向标。全屋智能围绕家庭全物理空间,通过智慧大脑-中央......
    如何判断冰箱的智能化程度;如今,不少家电新品都被打上“智能”标签,铺天盖地的智能化宣传,令产品科技感十足,冰箱行业也不例外。但何为智能冰箱?冰箱的智能化程度又该如何判断?多一款屏幕就真的是智能......
    AI大模型来袭,智能家居迎新拐点?;随着 AI 技术的发展和消费者接受程度的提升,智能家居市场前景广阔,其设备出货量预计将在未来几年保持温和的增长态势。传统家电厂商、手机厂商和专业智能......
    最新市场研究发现,如果没有智能数据基础设施,高达20%的人工智能计划会遭遇失败;NetApp赞助的领先市场研究公司的研究确定了成功实施人工智能计划的关键要素,指出数据基础设施是负责任地扩展人工智能......
    重新定义智能汽车:比亚迪发布整车智能战略;伴随着生成式AI与大模型等新兴人工智能技术的飞速发展,智能汽车也开启了新一轮的重大变革。 1月16日,2024比亚迪梦想日正式举办。比亚迪在梦想日上重磅发布了新能源汽车智能......
    生成式人工智能智能手机的下一个竞技场?;最近,几乎每天都有新的人工智能技术和与人工智能相关的产品涌现。最新的生成式人工智能模型可以实时查看和理解现实世界,使人类能够根据人工智能......
    智能家居新宠儿,中控屏有什么独到之处?;随着近年来智能家电产品不断涌现和消费者不断提升的生活诉求,全屋智能概念逐渐兴起。一回到家就能自动开灯,打开空调、空气净化器和电视,热水器也备好了热水,我们......
    2024智能家居的三大痛点;如今,智能门锁、智能空调、智能冰箱、智能音箱、智能健身镜、智能龙头、智能窗帘,甚至还有可监测睡眠质量的智能枕头……越来越多的智能家居产品进入寻常家庭。 有数据预计,到......
    智能家居增长慢,AIGC来救驾?;工作了一天回家,一进家门,灯光自动打开,窗帘缓缓拉上,烤箱的蛋糕刚刚烤好,香气扑鼻……曾经憧憬的便利生活已经在智能家居的发展中逐步实现,智能......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>