BT PAN示例

源码路径:example/bt/pan

支持的平台

  • eh-lb52x

  • eh-lb56x

  • eh-lb58x

概述

本例程演示通过蓝牙连接手机的PAN协议后,通过Finsh命令从特定网站获取当前天气。

添加 CA 证书

  1. 存放签名机构根证书

  • external/mbedtls/certs/default 目录中存储着常用的 CA 证书文件

  • certs 目录下存储着用户增加的 CA 证书文件

如果 certs/default 目录下没有包含用户需要的 CA 根证书文件
则需要用户将自己的 PEM 格式的 CA 证书拷贝 certs 根目录下。(仅支持 PEM 格式证书,不支持 DER 格式证书)
添加证书与DigiCert_Global_Root_CA2.crt并列存放
alt text

  1. 证书格式说明

  • PEM 格式证书

    PEM 格式证书 通常是以 .pem.cer 后缀名结尾的文件。

    使用文本编辑器打开后,文件内容以 -----BEGIN CERTIFICATE----- 开头,以 -----END CERTIFICATE----- 结尾。

  • DER 格式证书

    DER 格式证书 是二进制文件类型。

  1. 查看配置

查看proj.conf里如果开了PKG_USING_MBEDTLS_USER_CERTS,就会把certs根目录下的所有文件都合并到ports/src/tls_certificate.c alt text

例程的使用

  1. 连接之前最好确保手机已经打开网络共享,如果在BT连接以后才打开共享网络,可以通过finsh命令“pan_cmd conn_pan”重新连接PAN从而连接到网络

    1. IOS打开网络共享。IOS需要确保装备了SIM卡,打开个人网络热点即可:
      IOS_ENB

    2. 不同安卓打开网络共享的路径不同,但都是在个人热点共享里面找到蓝牙网络共享并打开。安卓可以在连接WiFi基础上打开蓝牙共享网络:
      ANDRIOD_ENB

  2. 例程开机会打开蓝牙的Inquiry scan和psage scan,用手机等设备可以搜索到本机并发起连接,本机的蓝牙名称默认是sifli_pan。

  3. 手机开启网络共享下,PAN协议才会连接成功,可以从log里面找到“pan connect successed”的打印。并且确保手机本身可以上网的情况下, 通过输入finsh命令“weather”获取当前天气,打印成功信息如下:
    WEATHER_PRINT

  4. 默认本例程已开启OTA功能,输入finsh命令pan_cmd ota_pan,可以通过BT PAN下载main.c的URL指定的image并安装。关于OTA本身的介绍,见peripheral_with_ota工程

硬件需求

运行该例程前,需要准备:

  • 一块本例程支持的开发板(支持的平台)。

  • 手机。

  • 可以获取天气的网址(默认为api.seniverse.com)

编译和烧录

切换到例程project目录,运行scons命令执行编译:

> scons --board=eh-lb525 -j32

切换到例程project/build_xx目录,运行uart_download.bat,按提示选择端口即可进行下载:

$ ./uart_download.bat

     Uart Download

please input the serial port num:5

关于编译、下载的详细步骤,请参考快速入门的相关介绍。

例程的预期结果

例程可以通过连接手机的PAN协议,获取特定网址的天气信息。

异常诊断

  1. 如果遇到所选芯片类型没有配置OTA的ptab.json导致编译不过,可以按如下关闭DFU功能: dfu_sub dfu

参考文档

更新记录

版本

日期

发布说明

0.0.1

01/2025

初始版本

0.0.2

04/2025

增加OTA

0.0.3

07/2025

增加CA证书