# ads_machine **Repository Path**: code-farmer-11/ads_machine ## Basic Information - **Project Name**: ads_machine - **Description**: 基于mongoose+mqtt+qt,依据WiFi进行配置,根据配置信息通过mqtt订阅,获取后端json数据,qt绘制页面将广告信息展示在广告机上。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-23 - **Last Updated**: 2026-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ads_machine 嵌入式广告机**配网、上线心跳、广告播放**一体化项目(**已完结**)。 - **C 栈**:`config`(HTTP 配网)+ `main`(注册 + MQTT 心跳)+ `mylib` - **前端**:Vue 3 + Arco Design 配网页 - **播放端**:Qt 6 程序 **`ads_player`**(MQTT 收广告 → 下载 → 分屏播放) ## 完整说明 请参阅 **[项目完整总结.md](项目完整总结.md)**(整合配网、IPC、main、Qt 播放器的总览文档)。 其他参考文档: | 文档 | 说明 | |------|------| | [接收前端数据并保存.md](接收前端数据并保存.md) | 表单 → ini → 消息队列 | | [项目技术总结.md](项目技术总结.md) | config / mylib 精简说明 | | [项目技术总结2.md](项目技术总结2.md) | main 注册、心跳与排错 | ## 快速开始 ### 配网(Linux) ```bash # 依赖 sudo apt install -y build-essential cmake pkg-config \ libglib2.0-dev libcjson-dev libcurl4-openssl-dev libpaho-mqtt-dev # C 栈 mkdir -p build && cd build && cmake .. && cmake --build . # 前端 cd vue-project && npm install && npm run build && cp -r dist ../config/dist # 运行:先 main,再 config ./build/bin/main ./build/bin/config # 浏览器 http://:8000 ``` ### 仅广告播放(MQTTX 联调) 1. 编辑 `config/deviceInfo.ini`(`mqttUrl`、`area`) 2. 构建并运行 `ads_player`(见下) 3. 向 `ads-system/adList/{area}` 发送 `adsList` JSON(格式见完整总结) ```bash cd qt cmake -B build -DCMAKE_PREFIX_PATH=/path/to/Qt/6.x/gcc_64 cmake --build build ./build/ads_player ``` Windows:用 Qt Creator 打开 `qt/CMakeLists.txt`,勾选 **Multimedia**,运行目标 **`ads_player`**。 ## 架构简图 ``` Vue → config(:8000) → deviceInfo.ini → IPC → main → HTTP 注册 + MQTT ads_heart/1 ↓ ads_player → MQTT adList → 下载 → 播放 UI ``` ## 配置要点 **deviceInfo.ini**(`config/deviceInfo.ini`): ```ini [network] backendUrl=http://your-api.example.com mqttUrl=192.168.1.100:1883 [device] area=0 detailAddress=详细地址 ``` | Topic | 用途 | |-------|------| | `ads_heart/1` | main 心跳(publish) | | `ads-system/adList/{area}` | ads_player 广告列表(subscribe) | | `ads-system/cmd/{area}` | ads_player 远程命令(subscribe) | 媒体目录:`data/ads/{广告id}/`;数据库:`ads.db`(项目根目录)。 MQTT 报文示例(MQTTX 可直接粘贴 Payload): | 文件 | Topic | 说明 | |------|-------|------| | [mqtt-adList-example.json](mqtt-adList-example.json) | `ads-system/adList/{area}` | 广告列表(`template_id` 必须为 5) | | [mqtt-cmd-example.json](mqtt-cmd-example.json) | `ads-system/cmd/{area}` | 远程命令示例(`cmdId`) | ## 仓库 - Gitee: `git@gitee.com:code-farmer-11/ads_machine.git` ## 常见问题 | 现象 | 处理 | |------|------| | main 收不到 IPC | 先起 `main` 再起 `config` | | Qt 无画面 | MQTT 已连接后再发 JSON;检查 URL 与 `data/ads/` | | CMake 失败 | 删除 `qt/build` 重建;需 Qt Multimedia 模块 | --- *项目已完结,不做功能扩展;细节与限制见 [项目完整总结.md](项目完整总结.md)。*