如何为工业物联网应用选择并使用正确的 ESP32 Wi-Fi/蓝牙模块

作者:Jacob Beningo

投稿人:DigiKey 北美编辑

随着工业自动化的加速发展,工厂车间内的工程师正在努力将系统连接到物联网,而物联网在许多方面已将旧工厂车间抛在后面。但是,无论是新系统还是旧系统,都可以使用 ESP32 模块和套件,通过相对简单的方式使用 Wi-Fi 或蓝牙实现物联网无线连接。

ESP32 由 Espressif Systems 创建和开发,是一系列集成 Wi-Fi 和双模蓝牙的低成本、低功耗片上系统微控制器,对于那些不想被射频 (RF) 与无线设计的细微差别所困扰的自动化工程师来说,该产品就是一种突破。作为一种低成本的 Wi-Fi/蓝牙组合无线电,该器件不仅在业余爱好者中广受欢迎,而且在物联网开发者中也非常流行。由于其拥有低能耗、多开源开发环境和库等特性,因此完美地切合了各类开发人员的需要。

不过,ESP32 包含了许多不同的模块和开发板,以至于难以做出正确的选择。

本文介绍 ESP32 解决方案,并向开发人员介绍如何确定合适的模块和开发板,以将其应用连接到物联网。

ESP32 模块

ESP32 模块是一款经过认证的一体式集成 Wi-Fi/蓝牙解决方案,不仅提供无线电,还提供板载处理器以及可与各种外设连接的接口。该处理器实际上有两个处理内核,它们的工作频率可以在 80 兆赫 (MHz) 和 240 MHz 之间独立进行控制。处理器的外设可轻松连接到各种外部接口,例如:

  • SPI
  • I2C
  • UART
  • I2S
  • 以太网
  • SD 卡
  • 电容式触控

开发人员可以根据应用需求选择几种不同的 ESP32 模块。第一款就是最受欢迎的 ESP32 模块 ESP32-WROOM-32D,其时钟频率高达 240 MHz(图 1)。该模块包括印刷电路板印制线天线,可用于简化实现。此外,它还无需增加额外硬件,并避免了与 IPEX 连接天线相关的布局复杂性。但是,如果选择了 IPEX 连接器选项,则有很多不错的天线可供选择,例如 Inventek SystemsW24P-U

Espressif Systems 的 ESP32-WROOM-32D 模块图片图 1:ESP32-WROOM-32D 模块以高达 240 MHz 频率运行,并包含 8 MB 的板载 SPI 闪存。(图片来源:Espressif Systems)

该模块包含 4 MB 的闪存,并具有 38 个引脚,这些引脚以最大程度减小模块尺寸的方式进行布置,使其接近正方形。实际上,WROOM-32D 与 ESP-WROOM-32U 完全引脚兼容(图 2)。WROOM-32U 使用基于 Hirose U.FL 设计的 IPEX 连接器代替了板载印刷电路板印制线天线。这样,WROOM-32U 可以节省电路板空间,并允许开发人员连接外部天线,而此类天线可以安置在其产品中以实现最佳射频特性。

Espressif Systems 的 ESP32-WROOM-32U 模块图片图 2:ESP32-WROOM-32U 与 WROOM-32D 引脚兼容,但将后者的板载印刷电路板印制线天线替换为 IPEX 连接器可供连接外部天线,从而优化了射频特性。(图片来源:Espressif Systems)

关于 WROOM-32D 模块的有趣之处在于,它们还具有各种闪存大小。这些模块提供额外的闪存支持版本,例如 8 MB 的 ESP32-WROOM-32D 和 16 MB 的 ESP-WROOM-32D

选择用于工业控制的 ESP32 开发板

当设计的电路板将用于生产或者将高负荷使用时,ESP32 模块是很好的选择。如果是开发在车间使用的小批量夹具,开发人员则可以使用 ESP32 开发板。这些开发板的范围广泛,从很基础的“入门”板到包括辅助处理器和 LCD 的复杂开发板。假设开发的简单性是关键要求,那么有些开发板也非常适合工业自动化应用。

例如,下面的 ESP32-DEVKITC-32D-F(图 3)。这是一款用于 WROOM-32D 的简单分线板,具有设计人员或开发人员启动设计所需的所有功率调节和编程电路。该开发板通过板载 USB 微型连接器或 V-IN 分线针座供电。然后,可以使用跳线或导线将各种元器件连接到 WROOM-32D。

Espressif Systems ESP32-DEVKITC-32D-F 开发板图片图 3:ESP32-DEVKITC-32D-F 开发板包括用于连接至任何 WROOM-32D 引脚的分线针座,并且为了方便开发可通过 USB 供电。(图片来源:Espressif Systems)

另一个示例是 Adafruit Industries 的 Airlift ESP32 盾板。这不仅包括 WROOM-32D,而且还具有附加原型开发空间(图 4)。除了添加定制电路之外,该原型开发空间还可用于添加与其他盾板的连接。开发人员可以使用该区域为低压工业自动化应用构建输入和输出电路。另有一个板载 SD 卡连接器,让数据记录应用的开发变得更加容易。

Adafruit 的 Airlift ESP32 盾板图片图 4:Adafruit 的 Airlift ESP32 盾板方便设计人员将设计原型化,或构建可用于工业自动化应用的一次性电路。Airlift 包括可用于专用电路的原型设计空间。(图片来源:Adafruit Industries)

在某些工业自动化应用中,可能会使用带有附加处理器的开发板,而 ESP32 只用于提供连接性,而不是处理整个应用负载。在这些应用中,开发板或产品可能具有板载扩展 PMOD 连接器。

开发人员无需为 ESP32 定制设计 PMOD 板,而是可以利用 DigilentESP32 PMOD 分线板(图 5)。

ESP32 PMOD 提供了一个 PMOD 标准连接器以及以下元器件:

  • 电源 LED 指示灯
  • 板载用户按钮
  • 四引脚 I/O 扩展
  • 用于引导配置的跳线

Digilent 的 ESP32 PMOD 板图片图 5:Digilent 的 ESP32 PMOD 板以易于连接的扩展格式提供 ESP32 模块,可搭配其他处理器和开发板使用。(图片来源:Digilent)

Espressif Systems 的 ESP-WROVER-KIT 提供了完整的 ESP32 开发解决方案,其中包括设计人员开发基于 ESP32 的应用所需的全部元器件(图 6)。例如,WROVER 包括一个来自 FTDIFT2232HL USB 到串口转换器,从而无需定制编程工具即可轻松对 ESP32 模块进行编程。该板还包括一个板载 3.2 英寸 LCD、一个 microSD 连接器、一个 RGB LED 和一个相机接口。此外,该开发板的所有 I/O 排列整齐,因此易于通过排针接插。

Espressif 的 ESP-WROVER-KIT 板原理图图 6:Espressif 的 ESP-WROVER-KIT 板为工业自动化开发人员提供了 ESP32 模块,从而能够接入 RGB LED、microSD 插槽、相机、LCD 和易于访问的 I/O 扩展。(图片来源:Espressif Systems)

设计人员确定了最适合其应用的模块和开发板后,就需要花费一些时间来寻找最适合需求的 ESP32 开发环境。

选择 ESP32 开发环境

由于 ESP32 变得如此流行,因此在设备开发和编程过程中可以从几种不同的开发环境中进行选择。最受欢迎的开发工具包括:

  • Espressif IoT Development Framework (IDF)
  • Arduino IDE
  • MicroPython

第一个环境 Espressif IDF 是一个开发工具链,面向经验丰富的嵌入式软件开发人员。该工具链包括几个有用的部分,例如用于开发应用的 IDE、编译器、库和示例。该 IDF 将 FreeRTOS 用作基本实时操作系统 (RTOS),并且采用 lwIP TCP/IP 堆栈和用于 Wi-Fi 的 TLS 1.2。

对于只有很少编程经验的开发人员,也可使用流行的 Arduino IDE 来开发应用并将其部署到 ESP32。尽管 Arduino IDE 比专业开发环境要慢一些、笨重一些,但为 ESP32 提供了许多示例和支持,从而可使新手开发更加容易。

最后,对于有兴趣在 Python 中开发应用的开发人员,ESP32 可由开源 MicroPython 内核提供支持。开发人员可以将 MicroPython 加载到 ESP32 上,然后为其应用开发 Python 脚本。这使得在工业环境中动态更新应用变得非常容易,并且无需嵌入式开发通常需要的专业知识层次。

ESP32 的使用技巧与诀窍

ESP32 入门并不难,网上搜索即可找到有关如何设置各种软件环境的详细说明。即便如此,ESP32 存在许多微妙之处,首次使用 ESP32 的开发人员需要做出许多决定。下面是几个启动设计的“技巧与诀窍”:

  • 仔细识别并配置模块的引导引脚(MTDI、GPIO0、GPIO2、MTDO 和 GPIO5),以从正确的存储器源(内部闪存、QSPI、下载、启用/禁用调试消息)加载应用。
  • 将串行输出波特率设置为与 ESP32 引导固件相同的波特率。这将允许监视 ESP32 引导消息和应用调试消息,而无需重新配置波特率。
  • 没有嵌入式编程经验的用户应将 MicroPython“刷”到 ESP32 上,以便可以使用易于学习的 Python 脚本语言编写应用代码。
  • 对于应用,可在互联网上搜索 ESP32 示例和库,以加快应用的开发和集成速度(已经有很多优秀的示例可用)。
  • 在设计中,确保引导搭接引脚能够用于引导进入更新模式。这将使在现场更新固件变得非常容易。

开发人员遵循这些“技巧与诀窍”后,便会发现初次使用 ESP32 时,他们可以节省不少时间并省去很多麻烦。

总结

如本文所述,ESP32 具有几款不同的模块和开发板,可供开发人员启动工业物联网应用设计。为此使用 ESP32 的优势在于,无需了解射频电路并认证无线接收器,从而简化了开发。此外,ESP32 不仅受到模块制造商的广泛支持,而且在专业和业余爱好者圈内也非常受欢迎。对于不熟悉嵌入式软件的开发人员,他们可以轻松地使用 Arduino IDE 或使用 MicroPython 对无线应用进行编程。

总而言之,ESP32 是快速有效地连接工业自动化设备的绝佳选择。

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Jacob Beningo

Jacob Beningo 是一位嵌入式软件顾问,目前与十几个国家的客户保持合作,通过帮助客户改善产品质量、降低成本和加快上市时间来大幅改变他们的业务。Jacob 先后发表了 200 多篇关于嵌入式软件开发技术的文章,是一位广受欢迎的演讲者和技术培训师。他拥有三个学位,其中包括密歇根大学的工程硕士学位。如有需要,欢迎随时通过 jacob@beningo.com 与其联系,也可访问其网站 www.beningo.com,并订阅其月度 Embedded Bytes Newsletter

关于此出版商

DigiKey 北美编辑