• 方案介绍
  • 相关推荐
申请入驻 产业图谱

基于单片机的智能信息存储体重秤设计与远程监控

10/21 13:56
1110
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1. 系统功能概述

本系统是一款集体重检测、体温测量、数据存储、远程通信及智能报警于一体的多功能智能体重秤。系统以单片机为核心控制单元,利用高精度称重传感器模块HX711实现体重的精准采集,并结合体温检测电路实现人体体温监测。系统不仅能够实时显示体重与体温信息,还能自动存储三组历史测量数据,方便用户随时查询。同时,通过WiFi模块实现与手机或远程终端的数据交互,用户可远程查看体重数据、设定阈值或监测异常状态。

系统具备以下主要功能:

  1. 精准体重测量:采用HX711与测重电桥模块,实现毫克级精度的体重采集,确保测量稳定可靠。
  2. 体温检测功能:内置高精度温度传感器,实时检测人体体温。
  3. 历史数据存储与查询:系统可存储三组测量数据(体重+体温),可循环覆盖并支持按键查询。
  4. 阈值设定与报警机制:用户可通过按键或远程指令设定体重上限阈值,当检测结果超限时,蜂鸣器立即报警。
  5. WiFi远程通信:通过ESP8266 WiFi模块与手机APP或电脑端通信,实现体重数据的上传与阈值远程修改。
  6. LCD信息显示:采用LCD1602液晶屏实时显示体重、体温、存储信息及报警状态,使系统操作直观可视。

该系统融合了传感器测量、数据存储、无线通信人机交互等多项技术,能够满足智能健康监测设备的应用需求。


2. 系统电路设计

整个系统以单片机为控制核心,外围电路包括HX711称重传感器模块、体温测量模块、LCD显示模块、WiFi通信模块、按键输入模块、蜂鸣器报警模块及电源稳压模块。系统结构清晰,各模块功能相互独立又相互协作。

2.1 主控单片机模块

本系统采用 STC89C52 单片机 作为主控芯片。该芯片是经典的MCS-51内核单片机,具有足够的I/O口资源和中断处理能力,能够满足称重、体温检测、WiFi通信与LCD显示等多任务需求。

其主要功能包括:

  • 控制HX711数据采集与转换;
  • 管理体温测量模块数据;
  • 实现数据存储与读取;
  • 控制LCD显示输出;
  • 与WiFi模块进行串口通信,实现远程监控
  • 处理用户按键输入与报警逻辑。

系统中单片机采用外部晶振12MHz工作频率,使用5V直流供电。


2.2 称重检测模块

体重检测模块由 称重传感器 + HX711模数转换芯片 组成。称重传感器是一种电阻应变式传感器,通过测重电桥输出与重量成比例的微小电压信号。HX711是一款24位高精度A/D转换器,专为电子秤设计,具有高分辨率和低噪声特性。

HX711通过两线制接口(DT与SCK)与单片机通信,采用时序方式读取重量数据。系统上电后,单片机首先进行零点校准,然后实时采集体重数据并进行滤波与换算处理。


2.3 体温检测模块

体温检测模块采用 DS18B20 数字温度传感器。该传感器支持单总线通信,具有高精度、响应快和数字输出等特点。DS18B20输出温度数据范围为-55℃125℃,分辨率可选912位。

单片机通过单总线方式读取体温数据,将测量结果与体重信息一同显示在LCD上。系统还可根据需要在WiFi上传输时附加体温数据,实现更完整的健康监测。


2.4 数据存储模块

系统内存储三组最新的体重与体温数据,采用 EEPROM(如AT24C02 实现掉电保存。单片机通过I2C总线与EEPROM通信,每次测量完成后将数据写入EEPROM指定地址。

用户可通过按键进行“历史记录查询”,LCD显示最近三组数据,实现数据可追溯。


2.5 LCD显示模块

系统选用 LCD1602 液晶显示屏。其具有两行16字符显示能力,用于实时显示体重、体温、报警提示及操作信息。例如:

  • 正常状态:
    Weight: 65.3kg
    Temp: 36.7°C
  • 报警状态:
    Overweight!
    Threshold: 70kg

LCD通过RS、RW、EN控制线及4位数据总线与单片机连接。显示模块由软件驱动函数控制,可动态更新显示内容。


2.6 WiFi通信模块

WiFi模块选用 ESP8266,工作于UART串口通信模式。单片机通过发送AT指令控制ESP8266连接指定WiFi网络,并将测量数据上传至云端或手机APP端。

主要功能包括:

  • 数据上传(体重、体温、时间);
  • 阈值下发(用户在APP端设置新的体重上限);
  • 异常报警通知(当体重超限时,APP接收警报信息)。

ESP8266与单片机间的通信波特率一般设置为9600bps,通信格式为8N1。


2.7 按键输入与报警模块

系统设计有多个功能按键,包括:

  • 查询键:用于切换查看历史记录;
  • 设置键:用于调整体重阈值;
  • 确认键:确认设定操作。

此外,蜂鸣器作为报警装置,当体重超过设定阈值时,蜂鸣器发出间断声,同时LCD显示“Overweight!”,提示用户注意。


2.8 电源模块

系统采用5V直流电源供电。单片机、LCD和EEPROM共用5V电压,ESP8266需经AMS1117-3.3稳压芯片降压供电。所有模块共地设计,确保系统稳定运行。


3. 系统程序设计

软件部分采用模块化设计思想,程序主要分为以下几个模块:

  1. 主程序控制模块
  2. 称重数据采集模块
  3. 体温采集模块
  4. 数据存储与读取模块
  5. LCD显示模块
  6. WiFi通信模块
  7. 按键与报警模块

各模块相互独立,通过函数调用实现系统协同工作。


3.1 主程序控制模块

主程序负责系统初始化、模块调用及主循环逻辑。

主要流程为:

  1. 初始化各外设(LCD、HX711、DS18B20、EEPROM、ESP8266);
  2. 显示系统启动界面;
  3. 进入主循环,周期性采集体重与体温;
  4. 判断是否超限并执行报警;
  5. 处理按键输入与数据存储;
  6. 向WiFi模块发送测量数据。
#include <reg52.h>
#include "lcd1602.h"
#include "hx711.h"
#include "ds18b20.h"
#include "eeprom.h"
#include "wifi.h"

float weight, temp;
float threshold = 70.0;

void main()
{
    Init_LCD();
    Init_HX711();
    Init_DS18B20();
    Init_EEPROM();
    Init_WIFI();
    
    LCD_ShowString(1,1,"Smart Scale");
    LCD_ShowString(2,1,"System Ready");
    delay_ms(1500);
    
    while(1)
    {
        weight = Get_Weight();
        temp = Get_Temp();
        LCD_Display(weight, temp);
        
        if(weight > threshold)
        {
            Beep_Alert();
            LCD_ShowString(2,1,"Overweight!");
        }
        
        WIFI_SendData(weight, temp);
        Store_Data(weight, temp);
        delay_ms(2000);
    }
}

3.2 称重数据采集模块

HX711数据采集模块通过模拟时序方式读取24位重量数据,并进行滤波与校准。

long HX711_Read()
{
    unsigned long count;
    unsigned char i;
    count = 0;
    while(DT);
    for(i=0;i<24;i++)
    {
        SCK=1;
        count = count << 1;
        SCK=0;
        if(DT) count++;
    }
    SCK=1; 
    count ^= 0x800000;
    SCK=0;
    return(count);
}

float Get_Weight()
{
    long data = HX711_Read();
    float weight = (data - OFFSET) / SCALE;
    return weight;
}

系统在上电时自动进行零点校准,并保存系数参数,用于后续测量精度修正。


3.3 体温采集模块

体温模块通过单总线方式读取DS18B20数据。

float Get_Temp()
{
    unsigned char TL, TH;
    int temp;
    DS18B20_Start();
    DS18B20_WriteByte(0xCC);
    DS18B20_WriteByte(0x44);
    delay_ms(800);
    DS18B20_Start();
    DS18B20_WriteByte(0xCC);
    DS18B20_WriteByte(0xBE);
    TL = DS18B20_ReadByte();
    TH = DS18B20_ReadByte();
    temp = (TH << 8) | TL;
    return temp * 0.0625;
}

3.4 数据存储模块

每次测量完成后,系统将数据存入EEPROM指定地址,并自动更新记录索引。

void Store_Data(float w, float t)
{
    unsigned char addr = Get_Index();
    EEPROM_Write(addr, w);
    EEPROM_Write(addr+4, t);
    addr += 8;
    if(addr >= 24) addr = 0;
    EEPROM_Write(0x00, addr); // 保存当前索引
}

3.5 WiFi通信模块

WiFi模块采用AT指令通信方式上传数据。

void WIFI_SendData(float w, float t)
{
    char buffer[32];
    sprintf(buffer, "W:%.2fkg T:%.2fCrn", w, t);
    UART_SendString(buffer);
}

当接收到远程设置命令(如“SET THR=75”)时,单片机自动解析并更新阈值。


3.6 报警与按键模块

当体重超过设定阈值时,蜂鸣器间歇鸣响3次。

void Beep_Alert()
{
    for(int i=0;i<3;i++)
    {
        BEEP = 0;
        delay_ms(200);
        BEEP = 1;
        delay_ms(200);
    }
}

按键模块通过独立输入检测,用于数据查询与阈值调整。


4. 系统总结

本设计实现了一款基于单片机的多功能智能体重监测系统,融合了高精度称重技术、温度检测、历史存储与WiFi远程通信功能。系统在硬件上采用模块化设计,结构简单、可靠性高;在软件上采用层次化编程思想,逻辑清晰、功能完备。

主要优势如下:

  1. 高精度测量:HX711保证了毫克级精度;
  2. 多功能集成:实现体重、体温、存储、远程通信四合一;
  3. 人机交互友好:LCD显示与按键操作直观便捷;
  4. 智能报警机制:超限自动报警与远程通知兼具;
  5. 可扩展性强:WiFi模块可进一步扩展至云平台或手机端监控系统

该系统可广泛应用于家庭健康监测、健身房体重检测、医疗机构病患管理等场景,为智能健康设备的发展提供了重要参考与实践基础。

 

点击链接下载资料:https://download.csdn.net/download/m0_51061483/92081510

相关推荐