STONE 串口屏 + ESP32 + 医疗呼吸机
新型冠状病毒已在全国范围内确诊病例接近8万例,近期呼吸机和防护装备严重短缺。不仅如此,国外形势也不乐观。累计确诊病例已达350万例,死亡人数达24万。因此,对进口呼吸机的需求也急剧增加。
因此,我决定制作一个与呼吸机相关的的小型项目。使用STONE 串口屏串口屏幕进行开发非常方便,我将其用作显示界面。此外,还需要一个外部主控制器来上传数据。这里我选择了ESP32,这是一款流行芯片,开发相对简单。
之前的效果图:
在本教程中,您将构建一个串口屏幕项目。屏幕可与MCU交互,通过esp32控制并生成波形,并在屏幕上显示。该项目将对收集患者呼吸频率波形非常有帮助。
项目概述
本项目将实现呼吸机功能。呼吸机通电并开启后,将显示启动界面,并显示“打开呼吸机”字样。点击该字样将产生点击效果,并伴随语音提示,表示已成功开启。最后跳转至功能选择界面。在此界面可选择呼吸机模式:CMV、PCV、SIMV、PS、CPAP、PEEP。若设置错误,可点击“重置”后再点击“确定”返回。随后点击“波形类型”按钮,将触发相同按钮效果,进入心率波形显示界面。此时,STONE 串口屏屏幕将发送串行命令,触发ESP32 MCU开始上传波形数据。
即以下功能:
- STONE 串口屏串口屏幕实现按钮设置
- STONE 串口屏串口屏幕实现页面切换;
- STONE 串口屏串口屏幕实现串口命令发送;
- STONE 串口屏串口屏幕显示波形。
项目所需模块:
- STONE 串口屏
- Arduino ESP32
- 语音播放模块
方块图:
硬件介绍与原理
扬声器
由于STONE 串口屏内置音频驱动器并预留了对应接口,可使用最常见的磁铁扬声器,俗称扬声器。扬声器是一种将电信号转换为声信号的换能器。扬声器的性能对声音质量有很大影响。扬声器是音频设备中最薄弱的组件,对于音频效果而言,它是最重要的组件。扬声器的种类繁多,价格差异较大。音频电能通过电磁、压电或静电效应,使纸盆或振膜与周围空气发生振动和共鸣(共振),从而产生声音。
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
根据实际计算机操作系统选择下载并安装。
安装 Arduino
下载后双击安装。需注意 Arduino IDE 依赖于 Java 开发环境,需在电脑上安装 Java JDK 并配置环境变量。若双击启动失败,可能是电脑未安装 JDK。
代码
编辑命令如上所示,
交织是识别屏幕发送至波形图的按钮命令
“返回”是退出识别屏幕发送的示波图按钮。
“起始波形”是发送至屏幕的初始波形数据。
然后点击编译,先点击第一个勾选框,再点击第二个以下载ESP32开发板。
TOOL 2019
添加图片
使用已安装的TOOL 2019,点击左上角的“新建项目”,然后点击“确定”。
随后将生成一个默认项目,背景为蓝色。选中后右键点击,选择“删除”以移除背景。然后右键点击图片文件并点击“添加”以添加自定义图片背景,如下所示:
设置图片功能
首先设置启动图像,工具 -> 屏幕配置,如下所示:
然后需要添加一个视频控制,以便在开机页面停止后自动跳转。
此设置跳转至页面 0。
选择界面设置
此处以第一个为例,将按钮效果设置为跳转至页面 3,并跳转至页面 4。
此处需为每个选项设置按钮冻结效果,以指示选中选项的图标。
实时曲线
此处需添加曲线控件以显示波形图。主要用于配置数据源的通道。在此,选择通道0,线条颜色为红色,两个横坐标点之间的间隔为25。
命令为:
uint8_t StartWave[7] = {0xA5, 0x5A, 0x04, 0x84, 0x01, 0x01, 0xFF};
uint8_t CleanWave[6] = {0xA5, 0x5A, 0x03, 0x80, 0xEB, 0x56};
设置完成后,编译、下载并升级到U盘。
连接
代码
//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 + 医疗呼吸机!!!
附录