智能爱心工具
帮助输液患者和护士
在医院里有很多患者需要输液,在漫长的输液等待中病人往往会因为精神状态不佳而犯困睡着,而护士也因为要忙很多的事情未能守护在病人旁边,当液体输完后不能及时截流往往会导致病人回血等事情发生。这样的伤害也曾在我的身边发生过,所以亲眼目睹过后我决定为他们设计一款能够提醒输液的状态的仪器,同时能够提醒病人和护士及时进行截流等善后工作。这就是我们研究发明该项目的初衷。
步骤2功能简介
本项目是基于物联网和相关单片机及电子传感器的实现非接触式测温和输液报警系统
(1)非接触式测温功能:利用非接触式红外温度传感器测温。红外测温是根据被测物体的红外辐射能量来确定物体的温度,不与被测物体接触,不影响被测物体温度场,并且温度分辨率高、响应速度快、稳定性好 。
(2)对输液管内是否有液体的检测和提醒系统:由非接触式小管径液位传感器模块可以检测到管内是否有液体,可以在客户端和自制手机APP端发出警报提示。
单片机使用了arduino NANO板及拓展板,传感器及其他材料如图所示
本作品外观结构使用了激光切割椴木板制作成一个盒子状的外壳,使用的图形设计软件为马尔克斯桌面式激光切割机的软件LightBurn。在盒子的正面和反面都有该产品的蓝牙名称。由于第一次设计欠妥当,最后又进行了改良版,第二版将电池盒设计到盒内,外观处加了船型开关。
本作品的非接触式红外测温传感器和0.96寸OLCD显示屏都是IIC接口,NANO拓展版的IIC口只有一个,因此我们采用DF家的IIC分线模块将两个模块进行并联。
程序分为两部分,第一部分为arduino NANO 端的程序,用mind+软件编辑;第二部分程序为手机app端的程序,用app inventor平台设计。
本次产品封装进行了两次设计,第一次尺寸略小,经过第二次改版后,整体外观有所改善。
/*!
* MindPlus
* nano
*
*/
#include <DFRobot_MLX90614.h>
#include <DFRobot_Libraries.h>
#include <DFRobot_SSD1306_I2C.h>
// 动态变量
volatile float mind_n_CeYeTiKaiGuan;
// 静态常量
const chCode chBuf[] = {
{0x6d4b,0xe6b58b,0xB2E2,{0x00,0x04,0x27,0xc4,0x14,0x44,0x14,0x54,0x85,0x54,0x45,0x54,0x45,0x54,0x15,0x54,0x15,0x54,0x25,0x54,0xe5,0x54,0x21,0x04,0x22,0x84,0x22,0x44,0x24,0x14,0x08,0x08}},
{0x6e29,0xe6b8a9,0xCEC2,{0x00,0x00,0x23,0xf8,0x12,0x08,0x12,0x08,0x83,0xf8,0x42,0x08,0x42,0x08,0x13,0xf8,0x10,0x00,0x27,0xfc,0xe4,0xa4,0x24,0xa4,0x24,0xa4,0x24,0xa4,0x2f,0xfe,0x00,0x00}},
{0x8bf7,0xe8afb7,0xC7EB,{0x00,0x40,0x40,0x40,0x27,0xfc,0x20,0x40,0x03,0xf8,0x00,0x40,0xe7,0xfe,0x20,0x00,0x23,0xf8,0x22,0x08,0x23,0xf8,0x22,0x08,0x2b,0xf8,0x32,0x08,0x22,0x28,0x02,0x10}},
{0x6309,0xe68c89,0xB0B4,{0x10,0x40,0x10,0x20,0x10,0x20,0x13,0xfe,0xfa,0x02,0x14,0x44,0x10,0x40,0x1b,0xfe,0x30,0x88,0xd0,0x88,0x11,0x08,0x10,0xd0,0x10,0x20,0x10,0x50,0x50,0x88,0x23,0x04}},
{0x94ae,0xe992ae,0xC5A5,{0x10,0x00,0x11,0xf8,0x3c,0x48,0x20,0x48,0x40,0x48,0xbc,0x48,0x10,0x48,0x11,0xf8,0xfc,0x88,0x10,0x88,0x10,0x88,0x10,0x88,0x14,0x88,0x18,0x88,0x13,0xfe,0x00,0x00}},
{0x8f93,0xe8be93,0xCAE4,{0x20,0x40,0x20,0xa0,0x21,0x10,0xfa,0x08,0x25,0xf6,0x40,0x00,0x53,0xc4,0x92,0x54,0xfa,0x54,0x13,0xd4,0x1a,0x54,0xf2,0x54,0x53,0xd4,0x12,0x44,0x12,0x54,0x12,0xc8}},
{0x6db2,0xe6b6b2,0xD2BA,{0x00,0x80,0x20,0x40,0x17,0xfe,0x11,0x20,0x81,0x20,0x42,0x3c,0x42,0x44,0x16,0x64,0x12,0x94,0x23,0x48,0xe2,0x48,0x22,0x30,0x22,0x20,0x22,0x50,0x22,0x88,0x03,0x06}},
{0x62a5,0xe68aa5,0xB1A8,{0x10,0x00,0x11,0xfc,0x11,0x04,0x11,0x04,0xfd,0x14,0x11,0x08,0x11,0x00,0x15,0xfc,0x19,0x44,0x31,0x44,0xd1,0x28,0x11,0x28,0x11,0x10,0x11,0x28,0x51,0x44,0x21,0x82}},
{0x8b66,0xe8ada6,0xBEAF,{0x24,0x20,0xff,0x20,0x24,0x7e,0x7e,0xc4,0x82,0x28,0x7a,0x10,0x4a,0x28,0x7a,0xc6,0x05,0x00,0xff,0xfe,0x00,0x00,0x3f,0xf8,0x00,0x00,0x3f,0xf8,0x20,0x08,0x3f,0xf8}},
{0x529f,0xe58a9f,0xB9A6,{0x00,0x40,0x00,0x40,0x00,0x40,0xfe,0x40,0x11,0xfc,0x10,0x44,0x10,0x44,0x10,0x44,0x10,0x44,0x10,0x84,0x10,0x84,0x1e,0x84,0xf1,0x04,0x41,0x04,0x02,0x28,0x04,0x10}},
{0x80fd,0xe883bd,0xC4DC,{0x10,0x40,0x24,0x44,0x42,0x48,0xff,0x70,0x01,0x40,0x00,0x42,0x7e,0x42,0x42,0x3e,0x42,0x00,0x7e,0x44,0x42,0x48,0x42,0x70,0x7e,0x40,0x42,0x42,0x4a,0x42,0x44,0x3e}},
{0x8fde,0xe8bf9e,0xC1AC,{0x00,0x40,0x20,0x40,0x17,0xfe,0x10,0x80,0x00,0xa0,0x01,0x20,0xf3,0xfc,0x10,0x20,0x10,0x20,0x10,0x20,0x17,0xfe,0x10,0x20,0x10,0x20,0x28,0x20,0x47,0xfe,0x00,0x00}},
{0x63a5,0xe68ea5,0xBDD3,{0x10,0x80,0x10,0x40,0x13,0xfc,0x10,0x00,0xfd,0x08,0x10,0x90,0x17,0xfe,0x10,0x40,0x18,0x40,0x37,0xfe,0xd0,0x88,0x11,0x08,0x10,0x90,0x10,0x60,0x51,0x98,0x26,0x04}},
{0x84dd,0xe8939d,0xC0B6,{0x08,0x20,0x08,0x20,0xff,0xfe,0x08,0x20,0x04,0x80,0x24,0x80,0x24,0xfc,0x24,0xa0,0x25,0x10,0x00,0x00,0x3f,0xf8,0x24,0x48,0x24,0x48,0x24,0x48,0xff,0xfe,0x00,0x00}},
{0x7259,0xe78999,0xD1C0,{0x00,0x00,0x3f,0xfc,0x00,0x40,0x00,0x40,0x10,0x40,0x10,0x40,0x20,0x40,0x3f,0xfe,0x01,0x40,0x02,0x40,0x04,0x40,0x08,0x40,0x10,0x40,0x60,0x40,0x01,0x40,0x00,0x80}},
{0x4f53,0xe4bd93,0xCCE5,{0x08,0x40,0x08,0x40,0x08,0x40,0x10,0x40,0x17,0xfc,0x30,0x40,0x30,0xe0,0x50,0xe0,0x91,0x50,0x11,0x50,0x12,0x48,0x15,0xf4,0x18,0x42,0x10,0x40,0x10,0x40,0x10,0x40}},
{0x5b8c,0xe5ae8c,0xCDEA,{0x02,0x00,0x01,0x00,0x7f,0xfe,0x40,0x02,0x80,0x04,0x1f,0xf0,0x00,0x00,0x00,0x00,0x7f,0xfc,0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x44,0x08,0x44,0x10,0x44,0x60,0x3c}},
{0x4e86,0xe4ba86,0xC1CB,{0x00,0x00,0x7f,0xf8,0x00,0x10,0x00,0x20,0x00,0x40,0x01,0x80,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00}},
{0x5148,0xe58588,0xCFC8,{0x01,0x00,0x11,0x00,0x11,0x00,0x1f,0xf8,0x21,0x00,0x41,0x00,0x01,0x00,0xff,0xfe,0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x40,0x08,0x42,0x10,0x42,0x20,0x3e,0xc0,0x00}},
{0x622a,0xe688aa,0xBDD8,{0x08,0x20,0x08,0x28,0x7f,0x24,0x08,0x20,0xff,0xfe,0x14,0x20,0x22,0x24,0x7f,0xa4,0xa4,0x24,0x3f,0x28,0x24,0x28,0x3f,0x10,0x24,0x12,0x3f,0xaa,0x20,0x46,0x20,0x82}},
{0x6d41,0xe6b581,0xC1F7,{0x00,0x80,0x20,0x40,0x17,0xfe,0x10,0x80,0x81,0x10,0x42,0x08,0x47,0xfc,0x10,0x04,0x10,0x00,0x22,0x48,0xe2,0x48,0x22,0x48,0x22,0x48,0x22,0x4a,0x24,0x4a,0x08,0x46}},
{0x957f,0xe995bf,0xB3A4,{0x08,0x00,0x08,0x10,0x08,0x20,0x08,0x40,0x08,0x80,0x09,0x00,0x08,0x00,0xff,0xfe,0x0a,0x00,0x09,0x00,0x08,0x80,0x08,0x40,0x09,0x20,0x0a,0x18,0x0c,0x06,0x08,0x00}},
{0x7ea2,0xe7baa2,0xBAEC,{0x10,0x00,0x10,0x00,0x21,0xfc,0x24,0x20,0x44,0x20,0xf8,0x20,0x10,0x20,0x20,0x20,0x40,0x20,0xfc,0x20,0x40,0x20,0x00,0x20,0x1c,0x20,0xe0,0x20,0x43,0xfe,0x00,0x00}},
{0x8272,0xe889b2,0xC9AB,{0x08,0x00,0x08,0x00,0x1f,0xe0,0x20,0x20,0x40,0x40,0xbf,0xf8,0x21,0x08,0x21,0x08,0x21,0x08,0x3f,0xf8,0x20,0x00,0x20,0x02,0x20,0x02,0x20,0x02,0x1f,0xfe,0x00,0x00}},
{0x505c,0xe5819c,0xCDA3,{0x10,0x80,0x10,0x40,0x17,0xfc,0x20,0x00,0x23,0xf8,0x62,0x08,0x63,0xf8,0xa0,0x00,0x2f,0xfe,0x28,0x02,0x23,0xf8,0x20,0x40,0x20,0x40,0x20,0x40,0x21,0x40,0x20,0x80}},
{0x6b62,0xe6ada2,0xD6B9,{0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x11,0x00,0x11,0x00,0x11,0xf8,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0xff,0xfe,0x00,0x00}},
{0x2103,0xe28483,0xA1E6,{0x60,0x00,0x91,0xf4,0x96,0x0c,0x6c,0x04,0x08,0x04,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x08,0x00,0x0c,0x04,0x06,0x08,0x01,0xf0,0x00,0x00}}
};
// 创建对象
DFRobot_SSD1306_I2C oled12864;
DFRobot_Tone DFTone;
DFRobot_MLX90614 mlx90614;
// 主程序开始
void setup() {
Serial.begin(9600);
oled12864.begin(0x3c);
oled12864.setChCode(chBuf);
for (int index = 0; index < 3; index++) {
oled12864.fillScreen(0);
oled12864.setCursor(36, 1);
oled12864.print("wating...");
delay(200);
oled12864.fillScreen(0);
oled12864.setCursor(36, 1);
oled12864.print("wating....");
delay(200);
oled12864.fillScreen(0);
oled12864.setCursor(36, 1);
oled12864.print("wating.....");
delay(200);
oled12864.fillScreen(0);
oled12864.setCursor(36, 1);
oled12864.print("wating....");
delay(200);
oled12864.fillScreen(0);
oled12864.setCursor(36, 1);
oled12864.print("wating...");
delay(200);
}
oled12864.fillScreen(0);
oled12864.setCursor(0, 0);
oled12864.print("测温请按按钮");
oled12864.setCursor(0, 2);
oled12864.print("输液报警功能请连接蓝牙");
mind_n_CeYeTiKaiGuan = 0;
}
void loop() {
Serial.println(Serial.read());
if ((Serial.read()==57)) {
mind_n_CeYeTiKaiGuan = 1;
}
if (((digitalRead(9)==0) && (mind_n_CeYeTiKaiGuan==1))) {
Serial.println("0");
oled12864.fillScreen(0);
oled12864.setCursor(0, 0);
oled12864.print("液体输完了");
oled12864.setCursor(0, 1);
oled12864.print("请先截流");
oled12864.setCursor(0, 2);
oled12864.print("长按红色按钮停止报警");
delay(500);
Serial.println("0");
while (!(digitalRead(4) || (Serial.read()==48))) {
DFTone.play(12, 262, 500);
DFTone.play(12, 262, 500);
DFTone.play(12, 392, 500);
DFTone.play(12, 440, 500);
}
mind_n_CeYeTiKaiGuan = 0;
}
if (digitalRead(4)) {
while (!(digitalRead(4)==0)) {}
DFTone.play(12, 698, 250);
Serial.println(mlx90614.getObjectTempC());
oled12864.fillScreen(0);
oled12864.setCursor(42, 2);
oled12864.print((String(mlx90614.getObjectTempC()) + String("℃")));
delay(500);
}
}