Linux 下 ESP32 蓝牙 HCI 例程的使用

HCI 简介

BLE 协议栈分为 Host 和 Controller 两大部分,通过 HCI (Host Controller Interface) 进行相互通讯,而 HCI 硬件传输接口又分为多种,包括 USB、UART 和 SDIO 等。 在 esp-idf 中 Host 分为 bluedroid 和 nimble, 相关的一些应用例程也在 bluedroidnimble 目录下,同时 esp-idf 也提供了不使用以上两个 Host 仅使用芯片 BT Controller 的例程,以满足使用者的其他需求,如 Host 协议栈运行在其他 MCU 上仅需要一个 BT Controller 硬件,或者作为一个 PC 机上的蓝牙适配器的功能

如下来介绍 在 Linux 系统上 esp 芯片的一些 HCI 例程的使用

BlueZ 的安装和使用

  • BlueZ 版本查看

    BlueZ 是 linux 官方蓝牙协议栈,一般在 linux 系统都会自带,使用以下指令查看 BlueZ 版本

    $ dpkg -s bluez |grep ^Version
    Version: 5.53-0ubuntu3.5
    

    BlueZ 的安装或更新可参考以下文章或自行搜索:Ubuntu 20.04编译安装BlueZ-5.6

  • hciattch 的使用

    hciattch 用于把串行 UART 挂载为 HCI 传输接口,与 BlueZ 协议栈进行通讯,命令格式如下

    hciattach [-n] [-p] [-b] [-r] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow] [sleep|nosleep] [bdaddr]
    
    -n 不脱离控制终端
    -p 当脱离时打印 PID
    -t 指定初始化超时时间,默认5秒
    tty 指定要挂在的串口设备,可以省略 /dev/ 前导
    type|id 一般是 any, 不指定厂商等
    speed 一般支持以下速度 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600
    flow 使用硬件流量控制, noflow不使用
    sleep|nosleep 是否进行睡眠
    bdaddr 蓝牙设备地址
    
  • hciconfig 的使用

    hciconfig 用于配置蓝牙设备, hciX 是系统中安装的蓝牙设备的名称, 常用参数如下

    -a 显示蓝牙设备信息
    up 开启蓝牙设备
    down 关闭蓝牙设备
    reset 重置蓝牙设备
    pscan 启用页面扫描,禁用查询扫描
  • btmon 的使用

    btmon 是一个蓝牙监视器,会记录 Host 与 Controller 之间的 HCI 命令、事件和数据的交互

    也有很多参数,不过一般直接输入 sudo btmon 执行监视

  • bluetoothctl 的使用

    bluetoothctl 是输入命令操作蓝牙设备的工具,如搜索、配对、广播、连接等操作

    终端输入 bluetoothctl 进入其环境,可以键入 help 命令查看命令列表及其描述

    bluetoothctl 是一个新的操纵蓝牙设备的工具,相比于 hcitool、gatttool 等旧工具,更推荐使用 bluetoothctl

LINUX 下 UART HCI 例程

  • controller_hci_uart_esp32

    编译烧录到 esp32, UART 波特率可以在 Component config → Bluetooth → Bluetooth → Bluetooth controller → HCI UART(H4) Options 配置中进行修改

    默认是 921600 ,重启后 log 如下:

    I (410) cpu_start: Starting scheduler on PRO CPU.
    I (0) cpu_start: Starting scheduler on APP CPU.
    I (443) CONTROLLER_UART_HCI: HCI UART1 Pin select: TX 5, RX 18, CTS 23, RTS 19
    I (453) BTDM_INIT: BT controller compile version [5688ed5]
    I (453) system_api: Base MAC address is not set
    I (453) system_api: read default base MAC address from EFUSE
    I (463) phy_init: phy_version 4670,719f9f6,Feb 18 2021,17:07:07
    W (473) phy_init: failed to load RF calibration data (0x1102), falling back to full ca
<think>好的,用户询问如何在One API中添加最新的GPT模型,比如GPT-4.5、GPT-O1和GPT-O3-Mini。首先,我需要回忆一下One API的基本配置方法。One API是一个聚合多种AI模型接口的平台,通常通过修改配置文件或管理界面来添加新模型。 接下来,我需要确认用户提到的这些新模型是否已经被OpenAI正式发布,并且One API是否已经支持。根据引用内容,比如引用[2]提到o3-mini是OpenAI的新模型,而引用[3]也提到了不同模型的应用场景。但需要注意,用户提到的GPT-4.5可能还在测试阶段,或者可能是引用中的笔误,因为引用[2]和[3]中提到的有GPT-4.5和o3-mini,但需要核实这些模型是否已经在OpenAI的API中可用。 然后,用户需要添加这些模型到One API,步骤通常包括:获取API密钥、在One API的管理界面中添加模型配置,可能需要指定模型名称、API基础URL、支持的模型列表等。如果这些新模型使用与现有模型不同的端点或参数,还需要调整相应的配置。 另外,要注意模型名称的正确性。例如,GPT-4o和GPT-4o mini在引用[1]和[3]中提到,而o1-preview、o3-mini在引用[2]和[3]中出现。需要确保用户输入的是正确的模型标识符,比如是否应该是“gpt-4o”而不是“gpt-o1”,或者是否存在拼写错误。 最后,可能需要指导用户如何测试新添加的模型是否有效,比如发送测试请求,检查返回结果是否正确。同时提醒用户注意API调用限制和费用,特别是新模型可能有不同的定价策略。 总结步骤应该是:验证模型可用性,获取API密钥,配置One API,测试连接,处理常见问题。同时,需要引用提供的资料,比如提到不同模型的特性,帮助用户理解如何选择合适的模型。</think>以下是在One API中集成最新版GPT模型(如GPT-4.5、GPT-O1、GPT-O3-Mini)的逐步指南: ### 一、验证模型可用性 1. 确认OpenAI已开放目标模型的API权限 - 通过OpenAI控制台查看可用模型列表[^2] - 最新模型如`gpt-4.5`可能需要申请企业级API访问权限 - `gpt-o3-mini`在ChatGPT Plus中已支持50次/日的调用量[^2] ### 二、获取API密钥 ```bash # 在OpenAI控制台生成新密钥 OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ``` ### 三、配置One API 1. **管理界面操作** - 登录One API管理后台 - 导航至「渠道」->「添加渠道」 - 选择供应商类型为`OpenAI` 2. **参数配置示例** ```json { "model_mapping": { "gpt-4.5": "gpt-4-1106-preview", "gpt-o1": "o1-preview", "gpt-o3-mini": "o3-mini" }, "base_url": "https://api.openai.com/v1", "api_key": "{{your_api_key}}" } ``` > 注:实际模型名称需参考OpenAI最新文档[^3] ### 四、多模态支持配置 对于支持文件上传的`o3-mini`: ```yaml # 在config.yml中启用扩展功能 file_upload: enabled: true max_size: 100MB allowed_types: [pdf, jpg, png] ``` ### 五、测试接口 ```python import openai response = openai.ChatCompletion.create( model="gpt-o3-mini", messages=[{"role": "user", "content": "解释量子纠缠"}], temperature=0.7 ) print(response.choices[0].message.content) ``` ### 六、常见问题处理 1. **模型不可见** - 检查账户权限:企业账户才能访问最新模型[^1] - 更新SDK版本:`pip install openai --upgrade` 2. **多模态调用失败** 添加请求头: ```http Content-Type: multipart/form-data OpenAI-Extensions: vision-2023-11-27 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值