ESP-Hosted 入门介绍 &使用指南

ESP-Hosted 解决方案提供了将 ESP 板用作 Wi-Fi 和 Bluetooth/BLE 连接的通信处理器的方法。基本上为主机添加了一个网络接口和一个 HCI 接口,允许它与其他设备进行通信。

注:对于主机和 ESP 板之间的控制路径,ESP-Hosted 使用基于 Protobuf 的自定义实现。

1 基本功能与支持

  • Wi-Fi 功能 :802.11 b/g/n
  • BT/BLE 功能:v4.2 BR/EDR 和 BLE
  • 支持的 ESP 芯片型号:目前支持 ESP32, ESP32S2
  • 支持的主机:
    • 基于 linux 的主机 (树莓派 3 B 型,树莓派 3 型号 B+,Raspberry-Pi 4 模型 B) (支持 4.x 内核版本。 很快就会有 5.x 内核版本支持。 它实际上也适用于 5.x 内核,但有一些问题需要还待解决)
    • 基于 MCU 的主机, STM32 探索板 (STM32F469I-DISCO)
  • 支持的传输方式
    • ESP-Hosted 使用 UART, SDIO 或 SPI 总线来连接 ESP 板和主机平台。

不同的 ESP 设备支持不同的接口,下表说明了基于 Linux 主机的不同传输接口支持的不同功能。
在这里插入图片描述

下表说明了基于 MCU 主机的不同传输接口支持的不同功能。
在这里插入图片描述

2 基于 linux 的 SDIO 通讯步骤

  • 硬件连接需求

    • Raspberry-Pi model 3 Model B/B+ or Raspberry-Pi 4 model B
    • ESP32 board
    • 8-12 根 10 cm 长的跳线(短于 10 cm 长度的连接线)
  • 设备端(ESP32/ESP32S2)

  • host 端 (linux 系统)

  • 设置验证

    • 使用以下命令验证主机上是否可以看到ethsta0和ethap0接口。

       $ ifconfig -a
      
    • 使用以下命令验证 hci0 接口是否存在

       $ hciconfig
      

      如下图所示:
      在这里插入图片描述

  • 测试 Wi-Fi 和 BT/BLE 功能

    此处可参考 ESP-Hosted with Linux Host (Raspberry-Pi) 用户指南。参考如下:

在这里插入图片描述
在这里插入图片描述

在设置过程中会出现有几种情况:

  1. 出现 /lib/modules/4.14.50-v7+/build: No such file or directory.
make ARCH=arm CROSS_COMPILE= -C /lib/modules/4.14.50-v7+/build M=/tmp/rtl8812au  modules
make[1]: *** /lib/modules/4.14.50-v7+/build: No such file or directory.  Stop.
Makefile:1052: recipe for target 'modules' failed
make: *** [modules] Error 2

出现如上的情况,这是因为安装 kernel-headers 有问题导致的,这个需要重新安装,可以通过如下命令:

sudo apt-get update && sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
sudo apt-get install raspberrypi-kernel-headers
reboot

然后再运行 ./rpi_init.sh sdio,将会看到如下截图所示:

在这里插入图片描述

然后可以在 host_driver/esp32 下会有esp32_sdio.ko 生成,如下图所示:

在这里插入图片描述

  1. 如果要用蓝牙模块,需要安装 bluez 工具。可参考 Linux_based_readme
### 关于ESP32的学习资料与教程 对于希望深入了解并掌握ESP32开发的人来说,存在多种资源可以帮助实现这一目标。针对不同层次的需求,有基础入门到高级特性的全面覆盖。 #### 基础入门指南 面向初学者的ESP32入门教程提供了详细的指导,涵盖了如何设置环境、编写第一个程序等内容。该教程特别指出使用的是名为ESP32 DEVKITV1 (devkitv1) 的开发板,其核心组件为ESP32D0WDQ6芯片,并推荐采用Arduino作为编程工具[^1]。这对于刚开始接触微控制器和物联网(IoT)项目的开发者来说是非常友好的起点。 #### 综合性教程 为了满足更广泛的知识需求,《一篇文章足够你学习ESP32》不仅限于单一主题的应用介绍,而是力求构建一套完整的知识体系。这份材料包含了从基本操作至复杂功能如蓝牙(BT)连接、Wi-Fi配置、图形界面(GUI)LVGL集成等多个方面,旨在使读者能够独立完成各种创意项目的设计与实施[^2]。这种类型的文档非常适合那些想要快速获得多方位技能提升的人群。 #### 深度技术探索 如果兴趣在于利用ESP32进行机器学习模型部署,则可以参考《MCU嵌入式AI开发笔记》,其中提到ESP-DL作为一个专为ESP系列设计的轻量级深度学习推理引擎。虽然它本身并不支持模型训练工作,但是可以通过与其他主流框架(例如TensorFlow或PyTorch)配合使用来进行量化处理后再移植到设备上运行[^3]。这类内容适合有一定经验并对前沿科技感兴趣的工程师和技术爱好者。 #### 特定应用场景探讨 另外还有专门讨论特定场景下的解决方案的文章,比如通过Linux Bluez来控制ESP32的工作模式——既可以将其视为一个带有无线通信能力的标准单片机(embedded mode),也可以把它当作纯粹的数据传输节点(transceiver),由外部处理器负责更高层的任务(hosted mode)[^4]。这样的案例研究有助于理解实际产品中的灵活运用方式。 ```python import machine led = machine.Pin(2, machine.Pin.OUT) def toggle_led(): led.value(not led.value()) toggle_led() ``` 上述Python代码展示了如何在ESP32上创建简单的LED闪烁效果,适用于验证硬件连接是否正常工作的初步测试阶段。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值