亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

智能阿尔茨海默症陪伴系统:基于 Arduino 的可穿戴报警装置

组件与物料

Arduino MKR1000 ×1
Infineon Sensor Hub Nano 评估板 ×1
Nokia 5110 LCD ×1
HC-05 蓝牙模块 ×1
面包板 ×1
跳线 若干
按钮开关 12mm ×1
蜂鸣器 ×1
FT1235 5W 发射模块 ×1
FT1236 5W 接收模块 ×1

必需工具

应用与在线服务

项目简介

阿尔茨海默症给患者及家属带来巨大挑战。作为 Maker,我决定制作一款可穿戴设备,同时助力患者与照护者,核心功能:

Infineon Sensor Hub Nano 体积微小、支持 BLE,其 DPS310 气压计可精准测气压/海拔/温度,用于跌倒检测和楼层级定位。核心最小系统:Sensor Hub Nano + MKR1000 + HC-05 + Nokia 5110。

工作原理

Sensor Hub Nano 通过蓝牙发送 DPS310 数据。为摆脱手机中转,MKR1000 经 HC-05 直连 Sensor Hub Nano。HC-05 配置为主机模式,绑定 Sensor Hub Nano MAC 地址,开机自动配对。AT 指令配置详见后文。

向 Sensor Hub Nano 发送 $start_sensor id=1 启动数据流,返回格式:

$1,t,36.9299,1154206  // 温度
$1,p,997.6813,1154206  // 气压
$1,a,130.4305,1154206  // 海拔

数据解析采用串口读取直到特定字符再 parseFloat() 的高效方法。MKR1000 通过 WiFi 将数据推送至 Blynk/Cayenne 等 IoT 平台(最终选用 Blynk)。

蓝牙模块配置

  1. 用手机配对 Sensor Hub Nano,用 Infineon App 读取 MAC 地址(显示为 IFX_NANOHUB)。
  2. 上传 AT 指令测试代码,接线 HC-05 到 MKR1000 硬件串口(Serial1)。
  3. 让 HC-05 进入 AT 模式(按键上电法)。
  4. 串口监视器 9600 波特率、NL+CR,发送指令:
AT+RMAAD        // 删除所有配对
AT+CMODE=0      // 指定 MAC 连接
AT+ROLE=1       // 主机模式
AT+BIND=xxxx,xx,xxxxxx  // 绑定 Sensor Hub Nano MAC
AT+UART=115200,0,0      // 波特率 115200,2 停止位,无校验

断电重启退出 AT 模式,开启 Sensor Hub Nano 观察 LED 闪烁模式变化确认连接成功。

裸机测试

  1. 配置 Blynk App(扫描二维码自动生成控件)。
  2. 安装库:Blynk、U8g2lib(驱动显示屏)。
  3. 修改代码填入 Blynk Auth Token、WiFi 凭据,烧录 MKR1000。
  4. 按原理图接线,启动 Blynk 项目,上电 MKR1000,屏幕显示 “Waiting for Sensor Hub Nano”,开启 Sensor Hub Nano 后显示连接成功、气压/温度/海拔数据,随后同步网络时间显示日期时间。

个性化功能开发

裸机仅获取数据,需按患者需求定制:

跌倒检测

设定跌倒阈值(海拔差值)± 清除值。实测跌倒值 0.7m,清除值 ±0.2m。因跌倒姿态多样,建议融合加速度计提高准确性(未来工作)。

楼层/房间级定位

海拔差值判断楼层;房间级需融合运动传感器减少误触发。Blynk LED 控件指示位置。

温度报警

DPS310 温度超阈值(如 45℃)报警火灾风险。注意传感器测的是环境温度非体温。

蜂鸣器与按钮

蜂鸣器提醒服药/锻炼;按钮作为紧急求救键,按下触发 Blynk 邮件/IFTTT 短信/电话通知照护者。

显示屏扩展

Nokia 5110 低分辨率,推荐 OLED 高分屏,U8g2 库支持多型号,仅需修改构造函数和字体/坐标。可显示时间(Blynk RTC 控件同步)、传感器数据、服药/锻炼提醒画面。

Blynk Eventor 定时提醒

Eventor 控件设定时间触发虚拟引脚,代码中 BLYNK_WRITE(vEVENTOR_PIN) 响应显示提醒并蜂鸣。

Sensor Hub Nano 模式切换

低功耗/标准/高精度三模式,可通过 Blynk 按钮切换。

Blynk + IFTTT 扩展

Blynk Webhook 触发 IFTTT,实现短信、电话、推特、Facebook 等多渠道通知。配置示例见文中图示。

收尾工作

供电与充电

MKR1000 支持 LiPo 电池直充,或无线充电(Futara 接收/发射模块)。接收端接 Micro-USB 公头供电 MKR1000。

外壳设计

预期外观渲染图(STL 非按比例,待 3D 打印/激光切割)。

未来改进

感谢阅读,欢迎交流意见!

代码

AT 指令配置代码

// 串口透传 HC-05 AT 指令
char c=' ';
void setup(){ Serial.begin(9600); Serial1.begin(38400); }
void loop(){
  if(Serial1.available()){ c=Serial1.read(); Serial.write(c); }
  if(Serial.available()){ c=Serial.read(); Serial.write(c); Serial1.write(c); }
}

主程序

#include <BlynkSimpleMKR1000.h> #include <WidgetRTC.h> #include <WiFi101.h> #include <U8g2lib.h> #include <SPI.h>
char auth[]=""; char ssid[]=""; char pass[]="";
// 指令宏定义、阈值、虚拟引脚、变量声明...
U8G2_PCD8544_84X48_F_4W_SW_SPI u8g2(U8G2_R0,7,8,3,5,4);
BlynkTimer timer; WidgetRTC rtc;

void setup(){
  Serial.begin(115200); Serial1.begin(115200);
  timer.setInterval(1000L, sendSensorValues);
  timer.setInterval(3000L, showTimeAndDate);
  pinMode(9,INPUT); pinMode(2,OUTPUT); digitalWrite(2,LOW);
  u8g2.begin(); showStartMessage(); delay(2000);
  while(!BTconnected){ if(digitalRead(9)==HIGH) BTconnected=true; else showWaitingFor(); }
  initSensorHub(); Blynk.begin(auth,ssid,pass); rtc.begin(); setBlynkWidgets(); showTimeAndDate(); sendCommand(START);
}
void loop(){ Blynk.run(); timer.run(); getSensorValues(); checkIfFalling(); }
// 其余函数:sendCommand、initSensorHub、getSensorValues、sendSensorValues、
// checkIfFalling、显示函数、BLYNK_WRITE(vEVENTOR_PIN)、setBlynkWidgets、BLYNK_CONNECTED...

自定义零件与外壳

外壳设计意图图,非按比例。

原理图

制造工艺

  1. 基于 Edge Impulse 的 TinyML 语言检测器:Arduino Nano 33 BLE Sense 实战
  2. Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
  3. Arduino 数字骰子:LCD 显示随机点数的电子骰子
  4. 用 Arduino Nano 自制 37 灯珠轮盘赌游戏机
  5. ATtiny85 迷你街机:贪吃蛇 — 打造掌上 OLED 游戏机
  6. 便携测距仪 DIY 套件:Arduino Nano + HC-SR04 + 18650 电池 + 3D 打印外壳
  7. 声控氛围灯:Arduino Nano + 麦克风模块 + WS2812B 灯珠
  8. Arduino Nano + OpenCV 人脸追踪自主机器人小车
  9. 个人健康助手(PHA):基于AWS IoT的社区心脏骤停急救智能穿戴方案
  10. 铜电镀智能系统:基于 Arduino UNO 的可控电解装置
  11. Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
  12. 使用 Arduino 移位寄存器创建绚丽灯光序列