百宝箱 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");
        }
    }
相关文章
|
2月前
|
搜索推荐 API 开发工具
百宝箱开放平台 ✖️ Python SDK
百宝箱提供Python SDK,支持开发者集成其开放能力。需先发布应用,安装Python 3.6+环境后,通过pip安装tboxsdk,即可调用对话型、生成型智能体及文件上传等功能。
757 87
百宝箱开放平台 ✖️  Python SDK
|
27天前
|
存储 Kubernetes 数据库
K3S ——轻量化K8S 入门指南
本文介绍轻量级Kubernetes发行版K3s,适用于边缘计算、IoT等场景。涵盖其架构、安装部署(单节点/高可用/离线)、核心组件、网络存储配置及生产建议,助力快速构建轻量化容器平台。
298 4
|
XML 存储 数据可视化
Flowable学习笔记(一、入门)
Flowable学习笔记(一、入门)
3036 1
Flowable学习笔记(一、入门)
教大家用 Python 绘制几棵圣诞树~
今天分享五种用 Python 绘制圣诞树的方法,从基础到高级,效果也不断攀升分为 1 到 5 五个 Level 水平;
教大家用 Python 绘制几棵圣诞树~
|
2月前
|
自然语言处理 开发工具 Android开发
百宝箱开放平台 ✖️ 友盟+ SDK 接入准备
开发者可通过集成SDK,将百宝箱智能体接入友盟App,实现智能答疑与数据分析。本文详述在友盟创建App、获取Appkey,及在百宝箱创建智能体、获取TboxAgentID的完整流程,并提供iOS与Android平台集成指引,助力提升应用智能化服务能力。(239字)
121 0
百宝箱开放平台 ✖️ 友盟+ SDK 接入准备
|
2月前
|
存储 JavaScript API
百宝箱开放平台 ✖️ Node.js SDK
开发者可以通过安装 Node.js SDK 的方式将百宝箱的 OpenAPI 集成到自有系统中,从而在外部系统中发起智能体对话。
204 0
百宝箱开放平台 ✖️ Node.js SDK
|
2月前
|
API 开发工具 开发者
百宝箱开放平台 ✖️ Web SDK
本服务支持开发者将智能体以网页悬浮窗形式集成至Web页面,通过引入SDK并配置agentId等参数实现交互,需先完成应用发布。
181 0
|
23天前
|
人工智能 自然语言处理 供应链
1688发布跨境电商AI智能体“遨虾”,打造“AI+供应链”新模式
11月21日,阿里巴巴1688推出首款跨境电商AI智能体“遨虾”,以AI技术重构跨境供应链。通过图像识别、链接解析和自然语言交互,实现智能选品、精准寻源、极简沟通,大幅降低创业门槛。用户可秒级匹配源头工厂,压缩信息差与成本,赋能全球创业者高效对接中国供应链。“遨虾”官网已限时免费开放,标志着“AI+供应链”新模式落地,推动跨境电商进入智能化时代。
|
1月前
|
安全 网络安全 KVM
Ansible多机部署KVM虚拟机——Ansible安全基线配置(二)
本教程介绍如何使用Ansible在多台宿主机上批量部署KVM虚拟机,结合Tailscale与NFS实现安全镜像共享和网络互联。涵盖用户配置、KVM环境初始化、动态创建/删除VM及自动化网络设置,助力构建高效、安全的虚拟化基础设施。(239字)
133 4
|
1月前
|
JSON 数据挖掘 API
闲鱼商品列表API秘籍!轻松获取列表数据
闲鱼商品列表API(Goodfish.item_list)基于RESTful架构,支持GET请求,返回JSON格式数据,可获取商品标题、价格、图片、卖家信息等,适用于电商比价与数据分析,助力开发者高效集成闲鱼商品数据。

热门文章

最新文章