二哲科技 发表于 2023-2-18 14:06:16

【开源】七条波形心电监护仪

1.介绍迪文屏的波形一共拥有8个通道,最近刚好有测试项目要用到七个通道,正好就做一下项目的模板,设计了一款七条波的心电监护仪。2.设计首先是系统的整体框架设计,最近迷上了ESP32,所以想借用一下ESP32作为和迪文屏通信的中间桥梁,整体框架如下图1所示。图1 整体框架那么迪文屏和ESP32采用什么通信呢?当然是串口,ESP32和手机/PC采用HTTP通信。硬件间的通信如下图2所示。图2 硬件间的通信首先准备素材,这里主要是一个背景图和报警时的图像,如下图3和4所示。图3 背景图图4 报警背景之后就开始在迪文软件上进行设计,心电波形采用【动态曲线】控件,电池电量显示采用【基本图形控件】,其余均采用【文本显示】控件,设计完如下图5所示。图5 设计结果之后编写ESP32的WEB网页,设计报警显示、心电波形的数据显示及其他生命体征的显示逻辑。这里有一个设计事项,本来想直接通过8283让屏幕显示波形,但是屏幕波形有七条,且刷新速率较快,所以我自定义了一个84协议,代码如下。void ReceiveDate3()
{                        
      u8 N=0;      bit Flog=1;
      while(Flog)
      {               
                if((R_u3==DTHD1)&&(R_u3==DTHD2))   //5A A5 07 82 1000 0001 0002
                {            
                        if(R_u3==0x82)   
                        {         
                              u8 i=0;
                              for(i=0;i<((R_u3-3)/2);i++)
                              Write_Dgus(((R_u3<<8)+R_u3+i),((R_u3<<8)+R_u3));
                        }                                                                   // 0         1      234      567      89 10
                        else if(R_u3==0x83)                  //5A A5 08 83 1000 02 0001 0002
                        {            
                              u8 i=0;u16 Temp=0;
                              for(i=0;i<R_u3;i++)
                              {
                                        Temp=Read_Dgus(((R_u3<<8)+R_u3+i));
                                        R_u3=(u8)(Temp>>8);
                                        R_u3=(u8)(Temp);
                              }
                              R_u3=(2*R_u3)+4;
                              for(i=0;i<(R_u3+3);i++)
                              OneSendData3(R_u3);
                        }
                        else if(R_u3==0x84 && R_u3 == R_CN3-3)
                        {
                              u16 y0, y1, y2, y3, y4, y5, y6;
                              y0 = R_u3;
                              y1 = R_u3;
                              y2 = R_u3;
                              y3 = R_u3;
                              y4 = R_u3;
                              y5 = R_u3;
                              y6 = R_u3;
                              t5l_write_chart(0, y0, y1, y2, y3, y4, y5, y6);
                        }
                        N++;
                }
                if(N<(R_CN3-4))
                        N++;
                else            
                        Flog=0;
      }
}

//=======================================
#define CHART_ADDR      0x0310
#define POINT_NUM      0x01
#define CHART_NUM      0x07

void t5l_write_chart(u8 chart_id, u16 y1, u16 y2, u16 y3, u16 y4, u16 y5, u16 y6, u16 y7)
{
      u8 chart_cmd = {0x5A, 0xA5, CHART_NUM, 0x00};

      chart_cmd = chart_id;
      chart_cmd = POINT_NUM;
      chart_cmd = (u8)(y1 >> 8);
      chart_cmd = (u8)(y1);
      chart_cmd = chart_id+1;
      chart_cmd = POINT_NUM;
      chart_cmd = (u8)(y2 >> 8);
      chart_cmd = (u8)(y2);
      chart_cmd = chart_id+2;
      chart_cmd = POINT_NUM;
      chart_cmd = (u8)(y3 >> 8);
      chart_cmd = (u8)(y3);
      chart_cmd = chart_id+3;
      chart_cmd = POINT_NUM;
      chart_cmd = (u8)(y4 >> 8);
      chart_cmd = (u8)(y4);
      chart_cmd = chart_id+4;
      chart_cmd = POINT_NUM;
      chart_cmd = (u8)(y5 >> 8);
      chart_cmd = (u8)(y5);
      chart_cmd = chart_id+5;
      chart_cmd = POINT_NUM;
      chart_cmd = (u8)(y6 >> 8);
      chart_cmd = (u8)(y6);
      chart_cmd = chart_id+6;
      chart_cmd = POINT_NUM;
      chart_cmd = (u8)(y7 >> 8);
      chart_cmd = (u8)(y7);

      //写入命令
      write_dgusii_vp(CHART_ADDR, chart_cmd, 2 + CHART_NUM + CHART_NUM * POINT_NUM);
}
3.展示将文件页面下载到迪文屏幕中,ESP32代码也下载到开发板上,迪文屏开机时的页面如下所图6所示。图6 开机界面使用手机连接ESP32服务器,迪文屏界面显示如下图7所示。图7 连接手机后迪文屏界面使用手机打开报警选项,对应的超标参数就会出现黄色或红色的背景闪烁,如下图8所示。图8 报警状态4.结论该设计也体验了迪文屏的超强性能,能够如此流畅的显示7条波形还是非常厉害的,采用ESP32控件是为了能够更好的在不同的终端下进行对迪文屏的控制。大家可以在该基础上进行扩展。
Demo演示视频:https://www.bilibili.com/video/BV1fM411n7Ce/https://www.bilibili.com/video/BV1fM411n7Ce/

二哲科技 发表于 2024-1-15 20:43:28


ESP32S3程序

页: [1]
查看完整版本: 【开源】七条波形心电监护仪