注:* 为必填项
请在报名阶段填写 ↓
本作品是一款放置在医院的AI智能抗疫药箱,旨在协助医护人员构建防护屏障。药箱以STM32F407作为主控,利用人体温度传感器、GPRS模块、WIFI模块、视觉摄像头等,实现了取药放药一体化、多种认证识别、温度检测、自动消息通知、云端和本地系统对信息实时检测和设备控制等功能。云端系统我们采用小程序与本地系统通过MQTT协议进行数据交互,本地系统我们采用了FREERTOS和LVGL开发的药箱系统进行控制并配有软件和硬件两套控制方案确保异常情况下系统可控。
项目公开,为原创,拥有自己的创新点;
该项目开源协议使用GPL3.0
请在竞赛阶段填写 ↓
系统整体方案
本作品是基于意法半导体的STM32F407ZGT6高性能微控制器作为主控制器。控制系统分为医生端和病人端,通过多种传感器的配合准实现了取药放药一体化、多种认证识别开门、人体温度检测、药箱自动消杀、自动消息通知、云端和本地系统对信息实时检测和设备控制等功能。利用ESP8266 WIFI模块连接阿里云服务器并通过MQTT协议与微信小程序进行数据交互,可实现在移动客户端更加直观地查看病人取用药信息和设备控制。
机械结构设计
我们将红外测温模块及K210摄像头架设在高支架上,药箱由亚克力板拼接而成并预留一定的区域,利用舵机连接活页带动箱体式旋转门,主控板放置在药箱旁边预留的位置上,层次分离,提高了项目的美观度。
主要模块介绍
GPRS短信发送模块
短信发送模块主要用于提醒病人按时取药吃药。GPRS模块是短信发送模块的主要组成部分,它是具有GPRS数据传输功能的GSM模块。GPRS模块就是一个精简版的手机,集成GSM通信的主要功能于一块电路板上,具有发送短消息、通话、数据传输等功能。
WIFI模块
WIFI模块的主要是发送本地系统的信息到云服务器。利用ESP8266WIFI模块的AP模式,与上位机建立起TCP连接,再利用MQTT协议,将数据发送到云服务器,实现MQTT主题的订阅和发布。
STM32与微信小程序通过MQTT的主题订阅与发布即可进行数据交互。
STM32发送数据时:STM32作为发布方,微信小程序作为订阅方,阿里云服务器作为通信中转站。
STM32接收数据时:STM32作为订阅方,微信小程序作为发布方,阿里云服务器作为通信中转站。
语音模块
语音模块用于主要事项提醒方便病人安装流程去取药和播报药品信息,方便病人清楚用药等注意事项。该模块采用SYN6288芯片,通过异步串口通信方式,接收待合成的文本数据并实现语音的转换。
温度上限设置模块
温度上限模块的主要作用是对异常温度进行报警。该模块包括四个微动按键组成的方向键和一个四位的拨码开关。当拨码开关一打上LCD屏幕进入温度上限报警值的设定界面,左右两个按键用于控制光标移动,上按键表示数值加一,下按键表示数值减一。
测温模块
温度测量部分采用了MLX90614传感器,距离测量部分采用HC_SR04模块。由于距离是主要影响红外测温精度的因素。我们采用不同距离测温结果进行温度补偿。
声光报警模块
该模块是辅助温度上限设置模块进行温度异常报警。声光报警模块由两部分组成,一部分是蜂鸣器组成的声音系统,另一部分是由四个不同颜色的LED组成,用于系统运行提示和辅助功能。
电源电路设计
为了确保各模块的供电稳定,电源电路采用降压斩波器BUCK电路。由电源适配器输入12V直流电源,经过BUCK电路进行降压5v后再通过AMS117线性稳压器,由线性稳压器输出稳定的3.3V直流电源。
围绕着STM32F407ZGT6主控我们引出了所有的引脚便于后续功能拓展。
其他详细内容请关注附件硬件部分。
测试方案
测试前确认药箱机械结构稳定,硬件电路正常工作,供电由12V适配器直流电源,无其他无关的外界附加电路和控制装置,项目软件程序一切正常。
实际测试:靠近药箱装置,测温装置进行自动测温并显示播报温度,人脸识别或指纹识别,进行手部消毒后,药箱自动旋转开门,将三份药品放入药箱,红外检测到药品放入,5秒后自动关门并启动消毒装置进行消毒;病人收到短信提醒取药通知,前往取药,靠近药箱装置,测温装置进行自动测温并显示播报温度,刷指纹后,药箱自动开门,红外检测到药品取走,自动关门并进行消毒,病人进行扫码识别,语音播报药品并将设备信息上传至云服务器。
测试条件
(1)环境:室内实验室,顶置多灯照明环境。
(2)工具:药品等。
测试结果
测试结果如表所示。
|
测试1 |
测试2 |
测试3 |
||||||||||||||||||||||||||||||||||
测温 |
刷脸放药 |
自动开关 |
自动消毒 |
手部消毒 |
短信发送 |
接收短信 |
指纹识别 |
扫码识别 |
语音播报 |
云服务器 |
小程序 |
测温 |
刷脸放药 |
自动开关 |
自动消毒 |
手部消毒 |
短信发送 |
接收短信 |
指纹识别 |
扫码识别 |
语音播报 |
云服务器 |
小程序 |
测温 |
刷脸放药 |
自动开关 |
自动消毒 |
手部消毒 |
短信发送 |
接收短信 |
指纹识别 |
扫码识别 |
语音播报 |
云服务器 |
小程序 |
||
医生端 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
|
病人端 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
正常 |
结果分析
通过多次测试,AI智能抗疫药箱运行过程中,并未出现通信异常,响应不及时等不良情况,医生端和病人端均运行良好,板载LVGL界面清晰美观,完成相应功能的效果较好。并且在云服务器上清楚记录病人取用药情况,小程序也可实时监测和控制整个药箱,项目运行良好,可实用性强。
微信小程序
微信小程序可实时监测和进行远程控制,增强了项目的智能化。本项目微信小程序采用mpvue架构开发,mpvue是一个使用 Vue.js 开发小程序的前端框架,有高效的组件化开发能力,能快速开发出一款界面简洁、使用方便的微信小程序。
阿里云服务器
病人取用药情况和病人体温等信息将通过ESP8266上传到阿里云服务器,方便医生迅速准确地查看病人相关信息。
STM32利用ESP8266 WIFI模块连接阿里云服务器并通过MQTT协议与微信小程序进行数据交互,可实现在移动客户端更加方便地查看病人取用药信息和设备控制。
LVGL
为了方便在本地系统上查看,更改,录入相关信息,我们通过LVGL开发了一块简洁易用的用户界面。LVGL是一个自由的,开源的GUI库,界面精美,资源消耗小,可移植度高,响应式布局等特点。可以查看相关的用户信息、对设备进行控制和更改用户的个人信息方便系统的数据更新,还配有自助查药和一键求助等贴心功能。
首先初始化各个外设模块,通过WIFI模块连接到互联网进而通过MQTT协议将外设数据发送到利用阿里云搭建的MQTT服务器,微信小程序再通过MQTT服务器间接的跟STM32F407ZGT6芯片进行数据交互,通过MQTT的主题发布和订阅即可进行与外设的数据交互。
然后利用测温模块测量到正常温度然后再通过指纹或者人脸识别,检测人员的分类,如果是医生且药箱没有药品的话就执行放药程序,如果是病人的话,药箱有药品的话就执行取药的程序。
a) 放药程序:先通过语音提醒消毒洗手,然后箱门自动打开再放入药品,箱门会自动关上,进行自动消杀,然后再通知病人取药
b) 取药程序:先通过语音提醒消毒洗手,然后箱门自动打开再取出药品,箱门会自动关上,进行自动消杀,然后等待医生放药
理论分析与计算
人脸识别方法
人脸检测是人脸识别算法的第一步,人脸识别过程主要分为人脸图像获取、人脸检测、人脸配准、人脸表征以及人脸图像匹配与识别。人脸检测的目标是找出图像中所有的人脸对应的位置,算法的输出是人脸外接矩形(椭圆)在图像中的坐标。
得益于k210的硬件KPU 对.kmodel模型的优化。通过MaxiHub训练人脸模型,存储医生或病人的人脸信息,实现刷脸开门,减小接触。
1.加载各种模型
2.运行人脸检测模型,在图片中找到人脸位置并框出人脸
3.将裁出的人脸图片转换成kpu接收的格式
4.运行人脸5点关键点模型,获取到左眼、右眼、鼻子、左嘴角、右嘴角的位置
5.对原始图片人脸图片进行仿射变换,变换为正脸图像,将正脸图像转为kpu格式
6.使用人脸196维特征值模型计算正脸图片的196维特征值,计算得到最终的人脸特征feature
7.再将得到的人脸特征与之前保存过的人脸特征进行对比得到一组分数,选择其中最大的一个分数,且该分数超过80分就认为识别出该人。
温差校正系统
距离是主要影响红外测温精度的因素。我们采用不同距离测温结果进行温度补偿,
目标温度 |
测温距离(cm) |
测量温度 |
温度偏差 |
36.5 |
132.14 |
33.97 |
2.53 |
36.5 |
109.38 |
34.45 |
2.05 |
36.5 |
92.77 |
34.63 |
1.93 |
36.5 |
88.38 |
34.75 |
1.87 |
36.5 |
65.25 |
34.91 |
1.75 |
36.5 |
56.15 |
35.05 |
1.59 |
36.5 |
43.23 |
35.21 |
1.45 |
36.5 |
19.33 |
35.35 |
1.29 |
36.5 |
16.61 |
35.49 |
1.01 |
表1 原始数据分析
由上表可知温度偏差与距离是呈正比例的关系,我们通过MATLAB仿真对测量的数据进行线性拟合解出最佳的线性曲线函数。
Y:补偿的温度值
X:距离(CM)
目标温度 |
测温距离(cm) |
测量温度 |
温度偏差 |
36.5 |
82.42 |
36.69 |
-0.19 |
36.5 |
79.51 |
36.65 |
-0.15 |
36.5 |
60.86 |
36.59 |
-0.09 |
36.5 |
47.02 |
36.53 |
-0.03 |
36.5 |
28.27 |
36.44 |
0.06 |
36.5 |
20.25 |
36.45 |
0.05 |
36.5 |
19.55 |
35.40 |
0.10 |
36.5 |
14.94 |
36.38 |
0.12 |
36.5 |
8.95 |
36.31 |
0.19 |
由上表可知温度偏差基本维持在0.2左右,能满足使用。
请上传包含大赛logo的项目图片,logo以丝印形式印刷在PCB上面。
点击zip下载大赛logo标识! (大赛标识).zip
视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;
视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。
更多详情:https://diy.szlcsc.com/posts/d76d9cb41705430e9a54e7a5feed07a5
!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。
EEWorld Datasheet 技术支持