智护 输液监测系统---项目笔记(雏形篇)

在这里记录一下我正在进行中的小项目,也可供大家参考(能力有限,大佬勿喷)

根据之前的思路,下面开始下位机雏形的介绍:

基本结构图
智护 输液监测系统---项目笔记(雏形篇)_第1张图片

下面为代码部分
本设计主芯片选用 Arduino MEGA 2560
环境 :Arduino IDE

String b; //定义变量类型 字符
#include    //调用串口通信库
#include  //调用语音播报模块库
#include "HX711.h"             //调用24bitAD HX711库
HX711 HX711_CH0(2, 3, 2200);   //SCK,DT,GapValue通过对最后一个数值的更改来调整精度,取消皮重 
int LED = 13;                  
int BEEP = 12;
int a;
int c=0;
int d=0;
long Weight = 0;    //定义一个变量用于存放承重的重量,单位为g
long WeightA = 0;   //定义一个变量用于存放承重的重量,单位为g
long WeightB = 0;   //定义一个变量用于存放承重的重量,单位为g

void off()          //串口发送结束代码
  {  
  for (int i = 0; i < 3; i++) 
  {
    Serial.write(0xFF);
  }
  }

void setup() 
{
 pinMode(LED, OUTPUT);        //设定LED引脚输出
 pinMode(BEEP, OUTPUT);       //设定蜂鸣器引脚输出
 digitalWrite(LED, LOW);      //LED熄灭
 digitalWrite(BEEP, HIGH);    //BEEP高电平状态
 Serial.begin(9600);         //与串口屏通信,波特率9600
 Serial1.begin(9600);        //与语音模块通信,波特率9600
 mp3_set_serial (Serial1);    
 mp3_set_volume (30);        //语音模块音量设定
 HX711_CH0.begin();          //读取传感器支架毛重
 delay(3000);                //延时3s用于传感器稳定
 HX711_CH0.begin();          //重新读取传感器支架毛重用于后续计算
 digitalWrite(LED, HIGH);    //板载LED点亮,说明可以承重
 delay(1000);
 digitalWrite(BEEP, LOW);    //BEEP 响
 delay (80); 
 digitalWrite(BEEP, HIGH);   //BEEP 灭
  mp3_play (1);              //播放第一段语音
  delay (3000);              //延时给出音频的播放时间
  mp3_play (9);              //同上
  delay (20000);
 }
 
void loop() 
{ 
  b="";
   while (Serial.available()>0)  //接收串口屏发送的数据
  {
   b += char (Serial.read());    //数据赋值给变量b
    delay (2);
  }
  if( b =="A")                   //接收到对应的数据,播放对应的音频
  {
   mp3_play (2);
   delay (3000);
  }
    if( b =="B")
  {
   mp3_play (7);
   delay (3000);
  }
    if( b =="C")
  {
   mp3_play (8);
   delay (3000);
  }
    if( b =="D")
  {
   mp3_play (4);
   delay (2000);
  }
  if( b =="1")
  {
 mp3_play (3);
 delay (3000);
 digitalWrite(BEEP, LOW);    //BEEP 响
 delay (80); 
 digitalWrite(BEEP, HIGH);   //BEEP 灭
  Weight = HX711_CH0.Get_Weight();   //采样当前传感器重量,该重量已经自动去皮,去皮值根据初始化程序中采样的值计算。
  delay(1000);  
     for (int j = 60; j >= 0; j--) 
  {
    Serial.print( "n2.val=");
    Serial.print( j );      //发送倒计时数据
    off();
    delay(100);
    WeightA = HX711_CH0.Get_Weight();  //采样当前传感器重量,该重量已经自动去皮,去皮值根据初始化程序中采样的值计算。
    delay(500);  
    a=(Weight-WeightA)*100; 
    Serial.print( "j0.val=");
    Serial.print( a/Weight ,DEC);  //发送进度条数据
    off();
    if( a/Weight >95)//进度到95以上报警
    {
      digitalWrite(BEEP, LOW);    //BEEP 响
      delay (80); 
      digitalWrite(BEEP, HIGH);   //BEEP 灭
      mp3_play (6);
      delay (3000);
    }

    WeightB = HX711_CH0.Get_Weight();   //采样当前传感器重量,该重量已经自动去皮,去皮值根据初始化程序中采样的值计算。
    c=Weight-WeightB; 
      if( c >20)//流速20以上报警
    {
      digitalWrite(BEEP, LOW);    //BEEP 响
      delay (80); 
      digitalWrite(BEEP, HIGH);   //BEEP 灭
      mp3_play (5);
      delay (2000);
    }
    Serial.print( "n1.val=");
    Serial.print( c ,DEC);  //发送流速数据
    delay (400);
    off();
  }
  }
  
}

串口屏部分为图形化编程,大家可以淘宝购买,只要写好对应单片机的串口协议,使用起来非常简单…

下面为实物图
智护 输液监测系统---项目笔记(雏形篇)_第2张图片
以上为本设计的下位机雏形部分,之后会对其进行软硬件的升级,有兴趣的小伙伴可以持续关注一波…

你可能感兴趣的:(项目笔记)