STONE 串口屏 + ESP32 + 医疗呼吸机

STONE 串口屏 + ESP32 + 医疗呼吸机

新型冠状病毒已在全国范围内确诊病例接近8万例,近期呼吸机和防护装备严重短缺。不仅如此,国外形势也不乐观。累计确诊病例已达350万例,死亡人数达24万。因此,对进口呼吸机的需求也急剧增加。

因此,我决定制作一个与呼吸机相关的的小型项目。使用STONE 串口屏串口屏幕进行开发非常方便,我将其用作显示界面。此外,还需要一个外部主控制器来上传数据。这里我选择了ESP32,这是一款流行芯片,开发相对简单。

之前的效果图:

Medical-Ventilator-STONE-HMI-ESP32(1)

在本教程中,您将构建一个串口屏幕项目。屏幕可与MCU交互,通过esp32控制并生成波形,并在屏幕上显示。该项目将对收集患者呼吸频率波形非常有帮助。

项目概述

本项目将实现呼吸机功能。呼吸机通电并开启后,将显示启动界面,并显示“打开呼吸机”字样。点击该字样将产生点击效果,并伴随语音提示,表示已成功开启。最后跳转至功能选择界面。在此界面可选择呼吸机模式:CMV、PCV、SIMV、PS、CPAP、PEEP。若设置错误,可点击“重置”后再点击“确定”返回。随后点击“波形类型”按钮,将触发相同按钮效果,进入心率波形显示界面。此时,STONE 串口屏屏幕将发送串行命令,触发ESP32 MCU开始上传波形数据。

即以下功能:

  1. STONE 串口屏串口屏幕实现按钮设置
  2. STONE 串口屏串口屏幕实现页面切换;
  3. STONE 串口屏串口屏幕实现串口命令发送;
  4. STONE 串口屏串口屏幕显示波形。

项目所需模块:

  1. STONE 串口屏
  2. Arduino ESP32
  3. 语音播放模块

方块图:

硬件介绍与原理

扬声器

由于STONE 串口屏内置音频驱动器并预留了对应接口,可使用最常见的磁铁扬声器,俗称扬声器。扬声器是一种将电信号转换为声信号的换能器。扬声器的性能对声音质量有很大影响。扬声器是音频设备中最薄弱的组件,对于音频效果而言,它是最重要的组件。扬声器的种类繁多,价格差异较大。音频电能通过电磁、压电或静电效应,使纸盆或振膜与周围空气发生振动和共鸣(共振),从而产生声音。

Medical-Ventilator-STONE-HMI-ESP32(1)

STONE STVC101WT-01

  • 1英寸 1024×600 工业级 TFT 面板和 4 线电阻式触摸屏;
  • 亮度为300cd/m²,LED背光;
  • RGB色彩为65K;
  • 可视面积为7mm × 125.3mm;
  • 可视角度为70°/70°/50°/60°;
  • 工作寿命为20000小时。32位Cortex-M4 200Hz CPU;
  • CPLD EPM240 TFT-LCD控制器;
  • 128MB(或1GB)闪存;
  • USB接口(U盘)下载;
  • 图形用户界面(GUI)设计工具箱,支持简单强大的十六进制指令。

基本功能

触摸屏控制/显示图像/显示文本/显示曲线/读写数据/播放视频和音频。适用于各种行业。

UART 接口为 RS232 / RS485 / TTL;

电压范围为 6V-35V;

功耗为 3.0W;

工作温度范围为 -20℃ / +70℃;

环境湿度为 60% 至 90%。

STONE STVC101WT-01模块通过串口与MCU通信,本项目需使用该模块。只需通过上层计算机的菜单栏选项将设计的UI图片添加至按钮、文本框、背景图片及页面逻辑,生成配置文件后下载至显示屏即可运行。

手册可通过官方网站下载:

除数据手册外,还提供用户手册、常用开发工具、驱动程序、部分简单例程演示、视频教程及测试项目文件。

ESP32 EVB

Esp32 是一款集成了2.4 GHz Wi-Fi和蓝牙双模的单芯片方案。它采用台积电的超低功耗40纳米工艺,具备超高的射频性能、稳定性、灵活性和可靠性,以及超低的功耗,可满足不同的功耗要求,适用于各种应用场景。目前,ESP32系列的产品型号包括esp32-d0wd-v3、esp32-d0wdq6-v3、esp32-d0wd、esp32-d0wdq6、esp32-d2wd、esp32-s0wd和esp32-u4wdh。Esp32-d0wd-v3、esp32-d0wdq6-v3 和 esp32-u4wdh 是基于 Eco v3 的芯片型号。

Wi-Fi

  • 11 b/g/n
  • 11 n (2.4 GHz) 最高 150 Mbps
  • 无线多媒体 (WMM)
  • 帧聚合(TX/RX A-MPDU,Rx A-MSDU)
  • 立即块ACK
  • 碎片整理
  • 信标自动监测(硬件TSF)
  • 4个虚拟Wi-Fi接口

蓝牙

  • 蓝牙2完整标准,包括传统蓝牙(BR/EDR)和低功耗蓝牙 (BLE)
  • 支持标准的 Class-1、Class-2 和 Class-3 模式,无需外部功率放大器
  • 增强型功率控制
  • 输出功率最高可达 +12 dBm
  • nZIF 接收器具有 –94 dBm 的蓝牙接收灵敏度
  • 自适应频率跳变 (AFH)
  • 基于 SDIO/SPI/UART 接口的标准 HCI
  • 高速 UART HCI,最高速率可达 4 Mbps
  • 支持蓝牙2 BR/EDR 和 BLE 双模控制器
  • 同步连接导向/扩展同步连接导向(SCO/ESCO)
  • CVSD 和 SBC 音频编解码算法
  • piconet 和 scatternet
  • 支持传统蓝牙和低功耗蓝牙的多设备连接
  • 支持同时广播和扫描

开发步骤

Arduino ESP32

首先,软件部分的开发需要安装IDE。ESP32支持在Arduino环境中进行开发和编译,因此我们需要先安装Arduino开发工具。

下载IDE

IDE链接:https://www.arduino.cc/en/Main/Software

Medical-Ventilator-STONE-HMI-ESP32(1)

根据实际计算机操作系统选择下载并安装。

安装 Arduino

下载后双击安装。需注意 Arduino IDE 依赖于 Java 开发环境,需在电脑上安装 Java JDK 并配置环境变量。若双击启动失败,可能是电脑未安装 JDK。

代码

编辑命令如上所示,

交织是识别屏幕发送至波形图的按钮命令

“返回”是退出识别屏幕发送的示波图按钮。

“起始波形”是发送至屏幕的初始波形数据。

然后点击编译,先点击第一个勾选框,再点击第二个以下载ESP32开发板。

mb-9-Medical-Ventilator-STONE-HMI-ESP32(11)

TOOL 2019

添加图片

使用已安装的TOOL 2019,点击左上角的“新建项目”,然后点击“确定”。

mb-9-Medical-Ventilator-STONE-HMI-ESP32(12)

随后将生成一个默认项目,背景为蓝色。选中后右键点击,选择“删除”以移除背景。然后右键点击图片文件并点击“添加”以添加自定义图片背景,如下所示:

设置图片功能

首先设置启动图像,工具 -> 屏幕配置,如下所示:

然后需要添加一个视频控制,以便在开机页面停止后自动跳转。

此设置跳转至页面 0。

选择界面设置

此处以第一个为例,将按钮效果设置为跳转至页面 3,并跳转至页面 4。

Medical-Ventilator-STONE-HMI-ESP32(16)

Medical-Ventilator-STONE-HMI-ESP32(16)

此处需为每个选项设置按钮冻结效果,以指示选中选项的图标。

实时曲线

Medical-Ventilator-STONE-HMI-ESP32(16)

此处需添加曲线控件以显示波形图。主要用于配置数据源的通道。在此,选择通道0,线条颜色为红色,两个横坐标点之间的间隔为25。

命令为:

uint8_t StartWave[7] = {0xA5, 0x5A, 0x04, 0x84, 0x01, 0x01, 0xFF};
uint8_t CleanWave[6] = {0xA5, 0x5A, 0x03, 0x80, 0xEB, 0x56};

设置完成后,编译、下载并升级到U盘。

Medical-Ventilator-STONE-HMI-ESP32(16)

连接

Medical-Ventilator-STONE-HMI-ESP32(16)

代码

//String temp;
#include
#include "stdlib.h"
HardwareSerial Serial2(2);
uint8_t i = 0, count = 0;
uint8_t StartWaveFlag = 0;
uint8_t EnterWave[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00, 0x0E, 0x01, 0x00, 0x01};
uint8_t BackToBg[9] = {0xA5, 0x5A, 0x06, 0x83, 0x02, 0xF1, 0x01, 0x00, 0x02};
uint8_t RecievedTemp[9] = {0};
uint8_t StartWave[7] = {0xA5, 0x5A, 0x04, 0x84, 0x01, 0x01, 0xFF};
uint8_t CleanWave[6] = {0xA5, 0x5A, 0x03, 0x80, 0xEB, 0x56};
char temp;
void setup() {
// put your setup code here, to run once:
//   Serial.begin(115200);
//   Serial.println("Goouuu HelloWorld!");
Serial2.begin(115200);
Serial2.println("Serial2.begin");
srand(0);
}
void loop() {
// put your main code here, to run repeatedly:
//    if(Serial.available()!=0)
//    {
//        temp=Serial.read();
//        if(temp=='a')
//        {
//            Serial.println("YESsss!");
//        }
//
//    }
if(Serial2.available() != 0)
{
for(count = 0; count < 9; count ++)
{
RecievedTemp[count] = Serial2.read();
}

如需完整流程,请联系我们:

我们将于12小时内回复您。

STONE 串口屏 + ESP32 + 医疗呼吸机!!!

附录

Medical-Ventilator-STONE-HMI-ESP32(16)

-Medical-Ventilator-STONE-HMI-ESP32(25)

-Medical-Ventilator-STONE-HMI-ESP32(25)

    滚动至顶部