如何為工業 IoT 應用選擇並使用合適的 ESP32 Wi-Fi/藍牙模組

作者:Jacob Beningo

資料提供者:DigiKey 北美編輯群

隨著工業自動化加速發展,廠區的工程師正努力將系統連接到物聯網 (IoT),而這項技術已在許多方面將老舊廠區拋在後面。不過,無論是新系統,還是舊系統,都可以使用 ESP32 模組和套件相對簡單地透過 Wi-Fi 或藍牙,與 IoT 建立無線連線。

ESP32 由 Espressif Systems 建立和開發,是一系列整合 Wi-Fi 和雙模式藍牙的低成本、低功率系統單晶片微控制器。對於不想陷入射頻 (RF) 和無線設計細節的自動化工程師來說,這是個突破性產品。作為一種低成本的 Wi-Fi/藍牙無線電組合產品,ESP32 不但在業餘愛好者,也在 IoT 開發人員當中廣受青睞。此元件能耗低並有多個開放原始碼開發環境以及程式庫,因而非常適合各種開發人員。

然而,ESP32 包含許多不同的模組和開發板,因此想要作出正確的選擇並非易事。

本文將介紹 ESP32 解決方案,並展示開發人員如何確定合適的模組和開發板,以將其應用連接到 IoT。

ESP32 模組

ESP32 模組是一款經過認證的多合一整合型 Wi-Fi/藍牙解決方案,除了無線無線電,還可提供板載處理器以及可連接到各種周邊裝置的介面。該處理器實際上有兩個處理核心,它們的工作頻率可在 80 MHz 和 240 MHz 之間獨立控制。處理器的周邊裝置可輕鬆連接到各種外部介面,例如:

  • SPI
  • I2C
  • UART
  • I2S
  • 乙太網路
  • SD 卡
  • 電容式觸控

開發人員可根據應用需求,在多個不同的 ESP32 模組中做出選擇。第一款也是最受歡迎的 ESP32 模組是 ESP32-WROOM-32D,其工作頻率高達 240 MHz (圖 1)。此模組包含可簡化實作的 PC 板載天線。另外,此模組也無需增添額外的硬體,避免了連接 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 連接器取代了 PC 板載天線。這樣,WROOM-32U 便能節省電路板空間,並讓開發人員能連接外部天線,而這類天線可以安排在其產品內部,實現最佳的 RF 特性。

Espressif Systems 的 ESP32-WROOM-32U 模組圖片圖 2:ESP32-WROOM-32U 的引腳與 WROOM-32D 相容,但使用連接外部天線的 IPEX 連接器取代了 WROOM-32D 的板載天線,從而實現最佳的 RF 特性。(圖片來源: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 micro 連接器或 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 連接器。

開發人員可以使用 DigilentESP32 PMOD 分接板,而不必替 ESP32 專門設計 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 板包含 FTDI 的 USB 轉序列轉換器 FT2232HL,因而能輕鬆對 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 開發框架 (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 時仍需考慮許多細節和決策。以下是一些入門的「秘訣與訣竅」:

  • 仔細識別並配置模組的開機引腳,即 MTDI、GPIO0、GPIO2、MTDO 和 GPIO5,確保從正確的記憶體來源 (內部快閃記憶體、QSPI、下載、啟用/停用除錯訊息) 載入應用。
  • 將序列輸出鮑率設定為與 ESP32 開機韌體鮑率相同的數值。這樣可監控 ESP32 開機訊息及應用除錯訊息,而無需重新配置鮑率。
  • 沒有嵌入式編程經驗的使用者應將 MicroPython「刷」至 ESP32,以便用易於學習的 Python 編碼語言來編寫應用程式碼。
  • 對於應用程式,可在網際網路搜尋 ESP32 範例和程式庫,以加速應用程式的開發和整合 (市面上已有很多不錯的範例)。
  • 在設計中,確保開機複用引腳能夠用於開機並進入更新模式。這會讓現場更新韌體非常輕鬆。

開發人員遵循這些「秘訣和訣竅」後,便會發現初次使用 ESP32 時,就能省下很多的時間與麻煩。

結論

如前所述,ESP32 具有多個不同的模組和開發板,可供開發人員著手設計工業 IoT 應用。使用 ESP32 開發此類應用的優勢在於可以簡化開發,而不需要瞭解 RF 電路和認證無線接收器。此外,ESP32 也受到廣泛的支援,不僅僅是模組製造商,還包括專業人士和業餘愛好者圈子。對於不熟悉嵌入式軟體的開發人員,也可以輕鬆使用 Arduino IDE,或是使用 MicroPython 對無線應用進行編程。

簡而言之,ESP32 是快速有效連接工業自動化設備的絕佳選擇。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo 是嵌入式軟體顧問,目前與超過十幾個國家的客戶合作,透過產品品質、成本和上市時間的改善,促成業務的大幅轉型。他曾在嵌入式軟體開發技術上發表超過兩百篇文章,是深思熟慮的講師和技術培訓師,共擁有三個學位,包括密西根大學的工程碩士學位。歡迎透過以下方法洽詢,電郵:[email protected]、網站:www.beningo.com,亦可登記取得他發行的Embedded Bytes 每月電子報

關於出版者

DigiKey 北美編輯群