外部触发让玄武屏与真实世界事件联动:传感器、二维码扫描、API 调用、物联网设备都可以触发演示文稿的特定行为。
触发源分类
1. 硬件传感器
| 传感器 | 触发场景 |
|---|---|
| 接近传感器(PIR / 超声波) | 访客走近 → 退出屏保进入互动 |
| 触摸传感器 | 触屏 / 互动桌面 |
| 温湿度 | 数据可视化大屏实时刷新 |
| 光线传感器 | 自动调节屏幕亮度 |
| 重量传感器 | 展品被拿起 → 显示对应介绍 |
| 手势 / Kinect | 隔空操作 |
2. 数字触发
| 类型 | 用法 |
|---|---|
| 二维码扫描 | 访客扫码 → 推送到自己手机 |
| NFC | 卡片靠近 → 触发对应内容 |
| 声音识别 | 关键词唤醒 |
| API 调用 | HTTP 请求触发 |
| WebSocket 推送 | 后台主动推送 |
| 物联网消息 | MQTT / IoT Hub |
配置触发器
「演示设置 → 外部触发」:
触发器 1:
名称:访客接近
来源:HTTP POST /trigger/visitor-near
动作:跳转到 page=2
防抖:30 秒(30s 内不重复触发)
触发器 2:
名称:温度异常
来源:MQTT topic=sensors/temp
条件:value > 35
动作:跳转到 page=warningHTTP API
触发演示行为的 REST 接口:
POST /api/xwp/trigger/{room-id}
{
"action": "go-to-page",
"page": 5,
"params": { "highlight": "elementA" }
}
GET /api/xwp/state/{room-id}
返回:当前页、当前 order、参与者数...WebSocket 实时推送
后台主动推送给演示文稿:
// 后台
ws.send(JSON.stringify({
type: 'trigger',
action: 'show-element',
elementId: 'alert-banner',
data: { message: '紧急通知' }
}))
// 玄武屏自动接收并执行二维码 / NFC 推送
访客扫展品二维码:
1. 扫码 → 跳到 https://x.bahuangqi.com/r/abc123
2. 该 URL 是节目单关联的"二维码触发链接"
3. 大屏自动跳转到展品 ID = abc123 对应的页面适合:
- 博物馆展品讲解
- 商场商品详情
- 楼盘户型对比
物联网集成
通过 MQTT 协议接入:
// MQTT 消息格式
{
"topic": "exhibition/sensor/door1",
"payload": { "open": true }
}
// 玄武屏配置
触发器:
topic: exhibition/sensor/door1
condition: payload.open === true
动作: 切到迎宾页面防抖与节流
避免传感器频繁触发:
防抖(debounce):触发后 30s 内忽略后续触发
节流(throttle):每分钟最多触发 N 次
冷却(cooldown):触发后冷却 X 秒,期间不接受典型场景
场景 1:博物馆展品讲解
访客拿起展品(重量传感器)
↓
触发器:weight < 100g (展品被拿起)
↓
大屏切到该展品介绍页 + 数字人讲解员开始讲
↓
放回(weight > 100g)→ 回到主页场景 2:智慧城市大屏
后台数据推送(实时人流量)
↓
正常:显示绿色总览
拥挤:自动切到红色警告页
↓
管理员看到 → 决策场景 3:互动游戏展品
访客走近(接近传感器)
↓
游戏页面显示
↓
访客做手势(Kinect)
↓
游戏元素响应
↓
访客离开(30s 无操作)
↓
回到吸引循环场景 4:自动化数据汇报
后台 cron 每 5 分钟调用 API
↓
触发"刷新数据"动作
↓
图表组件重新拉数据
↓
KPI 数字滚动到新值安全考虑
外部触发是高权限能力,需控制:
- 仅白名单 IP / 域名可调用 API
- HTTPS + 鉴权 token
- 限流(每分钟最多 X 次)
- 操作日志(谁触发了什么)
详见「78. 内容保护」。
跨行业应用
| 行业 | 外部触发用法 |
|---|---|
| 博物馆 | 展品识别、访客感应 |
| 零售 | 商品扫码、试衣间触发 |
| 工业控制 | 数据告警、设备状态切换 |
| 军事指挥 | 战场态势实时更新 |
| 医院导航 | 患者位置感应推送科室介绍 |
| 机场 | 航班信息更新触发屏切换 |
下一章进入"AI 能力"section。
