跳到主要内容

硬件集成规格

1. 硬件设备总览

设备名称型号通信方式用途必要性
毫米波雷达云帆WF-RSD系列MQTT (Amazon MQ)跌倒检测、存在感测核心
智能手表埃微HTTP REST API心率监测、步数统计、睡眠监测核心
Luma智能音箱小黄蜂定制款HTTP + WebSocket语音交互、紧急求助、屏幕显示核心

2. 设备详细规格

2.1 毫米波雷达(云帆WF-RSD系列)

  • 通信协议:MQTT over TLS,连接到 Amazon MQ(RabbitMQ)
  • 数据频率:雷达原始数据 5Hz,事件上报(跌倒/存在感)按需
  • MQTT Topic
    • 上报:/sys/{productKey}/{deviceName}/thing/event/property/post
    • 订阅:/sys/{productKey}/{deviceName}/thing/service/property/set
  • 设备认证:DeviceName + DeviceSecret(设备证书)
  • 实时测量指令:后端可通过 MQTT 下发测量指令,雷达执行后回传数据
  • 上报数据格式
{
"deviceId": "radar_001",
"timestamp": 1713600000000,
"eventType": "fall_detected",
"data": {
"fallConfidence": 0.92,
"inRoom": true,
"distance": 1.8,
"angle": 30,
"height": 0.5
}
}
  • 跌倒检测算法:基于点云数据的时间序列分析,阈值触发后上报事件
  • 异常处理
    • 设备离线:12小时后触发 Amber Alert
    • 数据异常:标记为高风险,等待人工确认

2.2 智能手表(埃微)

  • 通信协议:HTTP REST API,支持两种模式
    • 正常模式:手表定时(15~30分钟)推送心率、血氧、运动数据至后端 HTTP 接口
    • 实时测量模式:后端下发 HTTP 测量指令 → 手表启动实时测量 → 完成后通过 HTTP 接口回传数据
  • 数据拉取频率:每小时1次(受API限制10次/小时)
  • 数据同步范围
    • 心率:每5分钟采样
    • 步数:每日汇总
    • 睡眠:每日汇总
    • 血氧:(如有设备支持)
  • 埃微手表集成
# 埃微 API 调用
def fetch_ewatris_health_data(device_token: str, date: str) -> dict:
response = requests.get(
f"{settings.EWATRIS_API_ENDPOINT}/health/data",
headers={"Authorization": f"Bearer {device_token}"},
params={"date": date, "dataTypes": "heart_rate,steps,sleep"}
)
return response.json()
  • 数据标准化:统一转换为内部健康数据模型
  • 异常处理
    • 设备离线:停止数据接收,标记设备状态为离线
    • API限流:实现指数退避重试
    • 无数据日:记录为空,避免覆盖历史数据

2.3 Luma智能音箱(小黄蜂定制款)

  • 通信协议:HTTP REST API(下行)+ WebSocket(上行)
  • 设备认证:设备序列号 + 预共享密钥
  • 设备屏幕:1280 × 800 px(触摸屏)
  • 语音交互:集成 OpenAI Whisper(本地离线唤醒词检测)+ GPT-4o + TTS
  • HTTP 下行接口(服务端→设备):
    • POST /device/v1/tts - 触发TTS播报
    • POST /device/v1/display - 更新屏幕内容
    • POST /device/v1/alert - 触发紧急告警
  • WebSocket 上行接口(设备→服务端):
    • 语音识别结果
    • 按钮按下事件
    • 心跳(每30秒)
  • TTS播报请求
{
"deviceId": "luma_001",
"command": "tts",
"content": "检测到您可能跌倒,请问是否需要帮助?",
"priority": "high",
"voiceId": "anxious_elder"
}
  • WebSocket心跳
{
"type": "heartbeat",
"deviceId": "luma_001",
"timestamp": 1713600000000,
"status": {
"network": "online",
"battery": 85,
"screen": "locked"
}
}
  • 异常处理
    • WebSocket断开:设备自动重连,丢失数据期间事件缓存本地
    • 网络离线:设备进入离线模式,本地缓存SOS事件
    • TTS播报失败:记录错误,降级为屏幕文字显示

3. 设备状态机

3.1 毫米波雷达状态机

3.2 智能手表状态机

3.3 Luma音箱状态机

4. 设备配网流程

4.1 毫米波雷达配网流程

1. 设备上电 → 进入配网模式(LED蓝灯闪烁)
2. APP扫描设备二维码 → 获取productKey和deviceName
3. APP发送WiFi信息 → 设备连接指定WiFi
4. 设备连接 Amazon MQ → 订阅下行Topic
5. 配网成功 → 设备LED变绿
6. 后台注册设备 → 绑定到对应家庭

4.2 智能手表配网流程

1. 用户在APP输入手表序列号 → 或扫描手表二维码
2. APP调用绑定API → 后台记录deviceToken
3. 后台定时任务 → 每小时拉取手表数据
4. 首次数据拉取成功 → 设备状态变为"已绑定"

4.3 Luma音箱配网流程

1. 设备上电 → 自动进入配网模式
2. APP扫描音箱二维码 → 获取设备序列号
3. APP发送WiFi信息 → 音箱保存配置
4. 音箱连接服务器WebSocket → 建立长连接
5. 配网成功 → 音箱播报"连接成功"
6. 后台注册设备 → 绑定到对应家庭

5. 数据流总览