打印
[其他]

【乐鑫ESP32-C3 RISC-V处理器IoT开发板试用体验】四. 蓝牙开发

[复制链接]
4716|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
0x1. 蓝牙试用
  • 选择蓝牙项目刷机
例子:examples\bluetooth\nimble\blecent。这个例子打开蓝牙GATT客户端去搜索蓝牙Server。
先编译刷机:




  • idf.py set-target esp32c3
  • idf.py -p COM11 build flash monitor


复制代码



  • 测试蓝牙:
看到项目里面带一个python 测试脚本,并且readme里面也是用这个脚本测试。所以试一试(不要随便试,试之前最好搞清楚这个脚本是干嘛的):







  • python blecent_test.py
  • # 直接运行会报错:找不到ttfw_idf模块。需要先安装依赖
  • python -m pip install --user -r $IDF_PATH/requirements.txt -r $IDF_PATH/tools/ble/requirements.txt
  • # 在ESP-IDF目录下
  • #  python -m pip install -r requirements.txt -r tools/ble/requirements.txt
  • # 最终还是失败:
  •   gi\gimodule.c(25): fatal error C1083: Cannot open include file: 'glib-object.h': No such file or directory
  •   error: command 'C:\\Program Files (x86)\\microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.28.29910\\bin\\HostX86\\x64\\cl.exe' faiLED with exit status 2
  • Failed to build dbus-python pygobject
  • ERROR: Could not build wheels for pygobject which use PEP 517 and cannot be installed directly


[color=rgb(51, 102, 153) !important]复制代码



一顿复制操作之后,在解决了N个VC头文件缺失之后,最终dbus-python在windwos上安装不成功,没时间折腾了。直接换Mac上测试:
首先在MacOS上配置ESP32-C3环境。直接git clone很久都下不了,proxychains很久没更新出问题了。所以直接简单粗暴去github下载release版。
注意要下载4.3版本,目前只有这个版本支持ESP32-C3,别下错。
https://github.com/espressif/esp-idf/releases/tag/v4.3




  • # 下载之后从国内源更新工具
  • cd ~/esp/esp-idf-v4.3
  • export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
  • ./install.sh
  • . ./export.sh # 配置环境变量,配置完就能用idf.py
  • # 复制项目
  • cp -r examples/bluetooth/nimble/blecent ../projs/
  • idf.py set-target esp32c3
  • idf.py -p COM11 build flash monitor
  • # 在当前命令py venv中安装依赖
  • python -m pip install -r $IDF_PATH/requirements.txt -r $IDF_PATH/tools/ble/requirements.txt
  • # 启动测试程序
  • python blecent_test.py
  • # 仍然报错,from gi.repository import GLib 失败

复制代码



Mac上这个脚本还是有问题,和windows上一通差不多的操作,虽然安装了dbus-python。但是brew pygobject需要下载gist,最终由于brew无法下载gist.github的东西没有安装成功。




  • brew install dbus
  • pip install dbus-python
  • brew install pygobject3 gtk+3 # 失败
  • pip install pygobject


复制代码



https://github.com/espressif/esp-idf/issues/4783
Github上说这个只是内部测试使用的。看来只适合在Liunx上测试。那我们就换一种方式来测试蓝牙。
折腾到最后,我也没有能运行这个测试python文件。看有的项目的测试脚本是用来验证elf和bin文件。因此这个不是提供功能演示,而是作为固定的单元测试。
尝试用手机连这个蓝牙,搜索不到设备,因此换一个项目试试。
0x2. 蓝牙GATT服务

蓝牙GATT服务提供一个Key-Value列表给远程设备,设备可以读取或者修改其中的属性。
选取例子:examples\bluetooth\bluedroid\ble\gatt_server。编译刷机,启动蓝牙:



用手机的NRF Connect App(https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-mobile),搜索设备,找到ESP-GATTS_DEMO并连接,可以看到属性:




最后,总算写完了这四篇试用,太艰难了。主要是我不想为没意义的**浪费时间。真正想写的只有一篇:ESP32-C3 RISCV架构的特性探索,看这款MCU实现了哪些特性,例如:debug相关的,以及TEE(multipe zone)相关的功能是否支持。这个破烂编辑器我受够了,后面的内容不会再发在这里了。可以去看原始链接:
https://www.yuque.com/docs/share/8501b609-15c7-4118-b44a-c584eb48d79a?# 《ESP32-C3 (RISCV架构) 开发》



使用特权

评论回复

相关帖子

沙发
xdqfc| | 2021-8-21 11:09 | 只看该作者
楼主的探讨,及深入研究的精神,值得吾辈学习,反手给个

使用特权

评论回复
板凳
skyred| | 2021-9-3 14:53 | 只看该作者
感觉很是高大尚啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2038

主题

7366

帖子

10

粉丝