☰
HoloCubic_AIO心跳APP全攻略:MQTT两台小电视远程互动设置详解
2026/10/2 2:54:10 网站建设 项目流程

HoloCubic_AIO心跳APP全攻略:MQTT两台小电视远程互动设置详解

【免费下载链接】HoloCubic_AIOHoloCubic超多功能AIO固件 基于esp32-arduino的天气时钟、相册、视频播放、桌面投屏、web服务、bilibili粉丝等项目地址: https://gitcode.com/GitHub_Trending/ho/HoloCubic_AIO

HoloCubic_AIO 是一款运行在 ESP32 平台上的 HoloCubic 小电视超多功能固件,其中内置的心跳 APP支持通过MQTT 消息协议让两台小电视实现远程互动:任意一台"发送心跳",另一台屏幕就会跳动一颗爱心并累计接收次数,非常适合情侣或好友之间跨房间、跨地点的实时互动。本文将带你快速完成心跳 APP 的 MQTT 配置,并手把手搞定两台小电视远程互动设置。

一、心跳APP是什么?

心跳 APP 是 HoloCubic_AIO 固件中的一款独立小程序,基于 MQTT 的发布/订阅机制实现设备间通信。它最大的特点是:

  • 📡无线互动:两台小电视只要连上同一个 MQTT 服务器,就能互相"感应",无需蓝牙或同网段限制。
  • 🎯三种动画状态:屏幕上会以不同动画区分"我发送 / 我接收 / 双方心跳",直观反馈互动结果。
  • 🔢实时计数:界面实时显示"已发送 X 次,接收到 Y 次",让互动更有仪式感。

HoloCubic_AIO 采用低耦合模块化框架,所有 APP 都遵循统一的APP_OBJ接口,由中央 Controller 统一调度。心跳 APP 也是其中之一,你可以在 AIO_Firmware_PIO/src/app/ 目录下看到它的位置。

三种动画状态一览

心跳 APP 的三种状态在 AIO_Firmware_PIO/src/app/heartbeat/heartbeat_gui.h 中定义,对应不同的动画素材:

状态含义动画帧数素材
SEND本机发送心跳9 帧射箭动画 archerS
RECV本机接收对端心跳10 帧射箭动画 archerR
HEART双方已互动(收发都有)20 帧跳动爱心 heart

💡 只有当发送计数 > 0 且 接收计数 > 0时,屏幕才会切换为最"甜"的**跳动爱心(HEART)**动画。

二、两台小电视是怎么"对话"的?

理解互动原理,才能更好地完成两台小电视远程互动设置。核心机制如下:

  1. 统一主题:每台小电视都订阅并发布到同一主题/cubic/hb/{QQ号},主题由你填的 QQ 号拼接而成(见 heartbeat.cpp)。
  2. 发送身份:设备把本机 MAC 地址作为消息内容发布出去,相当于"这是我的心跳"。
  3. 判定对端:当收到一条消息时,设备会比对消息内容是否等于本机 MAC——
// 收到消息:不是我自己发的(来自对端)→ 触发爱心 if (strcmp(hb_cfg.mac_id, (char *)payload)) // 判定为对端心跳,APP_MESSAGE_MQTT_DATA → 播放 HEART else // 是自己发出去的消息,忽略

对应源码逻辑见 heartbeat.cpp。

📌关键结论:只要两台小电视填相同的 QQ 号(即订阅同一主题),并且连上同一个 MQTT 服务器,它们就能互相收到对方心跳并触发爱心动画。

三、心跳APP的MQTT配置步骤

心跳 APP 的所有参数都可以通过小电视内置的Web 配置页面完成,无需刷代码。

进入 Web 配置页

  1. 小电视开机并连接2.4G WiFi后,进入"设置",查看设备 IP 地址。
  2. 手机/电脑浏览器访问http://设备IP,进入 HoloCubic 配置主页。
  3. 点击顶部菜单中的"心跳"标签(路由/heartbeat_setting),即可看到心跳 APP 的配置表单。

该页面由 AIO_Firmware_PIO/src/app/server/web_setting.cpp 渲染,点击"保存"后会通过/saveHeartbeatConf接口把参数写入 Flash。

配置项说明

配置项说明建议值
Role角色(0:heart / 1:beat,目前无实际作用)0
QQ num互动主题标识,两台必须一致随意,如100001
MQTT ServerMQTT 服务器地址(域名或 IP)climbsnail.cn
MQTT 端口号服务器端口1883
MQTT 用户名服务端账号(可不填)HoloCubic
MQTT 密码服务端密码(可不填)ClimbSnail.v0

✅默认服务器:固件预置了作者提供的公共 MQTT 服务器(climbsnail.cn:1883,见 heartbeat.cpp),两台小电视直接用默认值即可快速上手,无需自己搭建服务器。若需私有化,可替换为你自己的 MQTT Broker。

⚠️ 两台小电视的QQ num与MQTT 服务器/端口必须完全一致,否则收不到对方心跳。

四、两台小电视远程互动完整操作流程

配置完成后,两台小电视即可开始互动,步骤如下:

  1. A、B 两台小电视分别进入 Web 配置页 → 心跳 → 填入相同的 QQ 号和相同的 MQTT 服务器→ 保存。
  2. 两台设备都通过摇杆/按键进入心跳 APP。
  3. 进入 APP 时会自动发送一条心跳(send_cnt从 0 自动 +1),此时对端会立即收到。
  4. 向前推一下 MPU6050(GO_FORWARD 动作)可再主动发送一条心跳,屏幕播放射箭动画。
  5. 对端收到后,recv_cnt增加并播放跳动爱心,同时界面显示"已发送 X 次,接收到 Y 次"。

整个发送/接收/状态判定流程见 heartbeat.cpp,其中heartbeat_process负责处理按键、自动发送与动画刷新。

🎉 小技巧:两台设备各自进入 APP 会自动互发,几乎瞬间就能看到对方屏幕出现爱心,无需反复按键。

五、常见问题排查

现象可能原因解决办法
收不到对方心跳QQ 号不一致 / 服务器不同确认两台 QQ num 与 MQTT 服务器完全相同
一直连不上 MQTT非 2.4G WiFi / 网络不稳使用 2.4G 网络,检查服务器是否可访问
只有发送没有爱心只有一台在发送两台都需进入 APP 触发自动发送
心跳 APP 不显示APP 未编译进固件确认APP_HEARTBEAT_USE为 1(见 app_conf.h)

固件配置开关、MQTT 客户端库分别位于 AIO_Firmware_PIO/src/app/app_conf.h 和 AIO_Firmware_PIO/lib/pubsubclient/。

六、相关源码与文件路径

想在源码层面深入了解心跳 APP 的 MQTT 实现,可参考以下文件:

  • 心跳 APP 主逻辑:heartbeat.cpp
  • 心跳界面与三种动画状态:heartbeat_gui.c
  • APP 头文件:heartbeat.h
  • Web 配置页面渲染:web_setting.cpp
  • MQTT 通信库:AIO_Firmware_PIO/lib/pubsubclient/
  • APP 编译开关:AIO_Firmware_PIO/src/app/app_conf.h

🎈 至此,你已经完全掌握 HoloCubic_AIO心跳 APP的MQTT 配置与两台小电视远程互动设置。只要保证两台设备使用相同的 QQ 号与同一个 MQTT 服务器,就能随时随地让两颗屏幕上的爱心为彼此跳动。

【免费下载链接】HoloCubic_AIOHoloCubic超多功能AIO固件 基于esp32-arduino的天气时钟、相册、视频播放、桌面投屏、web服务、bilibili粉丝等项目地址: https://gitcode.com/GitHub_Trending/ho/HoloCubic_AIO

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询