百宝箱 IoT 如何控制智能灯具

简介: 本文介绍基于ESP32S3实现蚂蚁公仔与博联智能灯的BGM灯效联动方案,涵盖蓝牙配对、音频波幅控制指令发送等关键技术,结合服务端PCM流处理,打造沉浸式IoT互动体验。

ESP32-S3 作为主流的 IoT 主控 MCU(微控制器),集成了完整的 Bluetooth5.0 和 4.2 技术栈,可基于蓝牙协议与其他 IoT 设备构建多样化的交互场景。本文将介绍如何实现通过蚂蚁公仔实现智能灯具的控制。

效果展示

下方视频为蚂蚁公仔与博联智能灯具间的交互效果。

此处为语雀视频卡片,点击链接查看:音乐播放_BGM氛围灯.mp4

实现流程

当用户对蚂蚁公仔说出“播放音乐”时:

  • 蚂蚁公仔接收语言并发送至百宝箱开放平台;
  • 平台进行意图识别,确认为“播放音乐”请求;
  • 触发音频串联,同时提取音频波幅信息;
  • 将 TTS 语音数据返回给蚂蚁公仔,用于语音反馈;
  • 向博联灯具发送蓝牙音控指令,实现灯光随音乐节奏变化。

配置服务端

背景音乐(BGM)由服务端负责播放,并通过 TTS 音频通道进行串流传输。在此过程中,系统实时提取 PCM 流的波幅数据,并将其量化至 0-127 的整数范围。相关实现代码暂未开源,可通过接入百宝箱开放平台的 IoT 板块调用该能力。

配置 ESP32 设备端

源码中各文件的能力如下图所示。

开启配对

在 WiFi 连接的情况下,通过下述代码实现蓝牙的配对。

wifi_station.OnConnected([this](const std::string& ssid) {
    ...
    if (Board::GetInstance().GetIBeacon() != nullptr) {
        Board::GetInstance().GetIBeacon()->StartPairing();
    }
});

⚠️ 注意:

StartPairing() 不仅用于设备配对(将新设备归属到当前家庭),也是发送 BGM 音控指令的前提。该函数会初始化蓝牙协议栈并完成与设备的专有协议协商,每次操作前必须调用

发起音控

当收到服务端下发的、与 TTS 音频流同步的音乐波幅值(实际为串流音乐的幅度数据)时,向已配对的博联设备发送蓝牙幅度控制指令。实现代码如下所示。

protocol_->OnIncomingJson([this, display, &board](const cJSON* root) {
    auto type = cJSON_GetObjectItem(root, "type");
    if (strcmp(type->valuestring, "music") == 0) { // music 类型为伴随服务端音乐串流的波幅值
        auto amplitude = cJSON_GetObjectItem(root, "amplitude");
        if (cJSON_IsNumber(amplitude)) {
            if (board.GetIBeacon() != nullptr) {
                board.GetIBeacon()->ControlPeerDevice(amplitude->valueint % 128, 1, 1);
            }
        } else {
            ESP_LOGW(TAG, "amplitude type is not a number");
        }
    }
相关文章
|
缓存 Java 应用服务中间件
面试官:如何实现多级缓存?
面试官:如何实现多级缓存?
672 1
|
XML 存储 数据可视化
Flowable学习笔记(一、入门)
Flowable学习笔记(一、入门)
3545 1
Flowable学习笔记(一、入门)
|
10月前
|
传感器 运维 监控
中小容量电力设备选型指南:计量型免维护呼吸器的核心价值
针对35kV-500kV中小容量变压器等设备,计量型免维护呼吸器集成高效吸湿、实时监测与智能预警功能,标配工业显示屏与RS485通讯,支持远程监控与系统接入,实现防潮运维从“被动处置”到“主动防控”升级,适配多种环境与协议,降低运维成本,提升供电可靠性。(239字)
404 0
|
11月前
|
自然语言处理 开发工具 Android开发
百宝箱开放平台 ✖️ 友盟+ SDK 接入准备
开发者可通过集成SDK,将百宝箱智能体接入友盟App,实现智能答疑与数据分析。本文详述在友盟创建App、获取Appkey,及在百宝箱创建智能体、获取TboxAgentID的完整流程,并提供iOS与Android平台集成指引,助力提升应用智能化服务能力。(239字)
457 0
百宝箱开放平台 ✖️ 友盟+ SDK 接入准备
|
11月前
|
存储 JavaScript API
百宝箱开放平台 ✖️ Node.js SDK
开发者可以通过安装 Node.js SDK 的方式将百宝箱的 OpenAPI 集成到自有系统中,从而在外部系统中发起智能体对话。
592 0
百宝箱开放平台 ✖️ Node.js SDK
|
11月前
|
搜索推荐 API 开发工具
百宝箱开放平台 ✖️ Python SDK
百宝箱提供Python SDK,支持开发者集成其开放能力。需先发布应用,安装Python 3.6+环境后,通过pip安装tboxsdk,即可调用对话型、生成型智能体及文件上传等功能。
1099 87
百宝箱开放平台 ✖️  Python SDK
|
11月前
|
API 开发工具 开发者
百宝箱开放平台 ✖️ Web SDK
本服务支持开发者将智能体以网页悬浮窗形式集成至Web页面,通过引入SDK并配置agentId等参数实现交互,需先完成应用发布。
478 0
|
8月前
|
存储 弹性计算 调度
阿里云ECS经济型e实例ecs.e-c1m2.xlarge规格族,4核8G云服务器测评
阿里云ecs.e-c1m2.xlarge(4核8G)为经济型实例,适合中小型网站、开发测试、轻量数据库及容器化微服务,年价约1595元。共享CPU架构性价比高,但高负载下性能有波动,重计算场景建议升级。详情见ECS官网。
598 8
|
10月前
|
存储 人工智能 开发工具
时光织网:基于Rokid AI眼镜的家庭智能协同中枢设计与实现
“时光织网”基于Rokid CXR-M SDK,融合AI眼镜与手机协同,打造家庭智能日程系统。通过AR可视化、语音交互与实时同步,实现家庭成员间高效日程协调。系统支持多模态识别、智能冲突预警与端到端加密,提升协同效率,重构亲情互动体验。
|
10月前
|
存储 Kubernetes 数据库
K3S ——轻量化K8S 入门指南
本文介绍轻量级Kubernetes发行版K3s,适用于边缘计算、IoT等场景。涵盖其架构、安装部署(单节点/高可用/离线)、核心组件、网络存储配置及生产建议,助力快速构建轻量化容器平台。
1921 5

热门文章

最新文章