産業用IoTアプリケーションに適したESP32 Wi-Fi/Bluetoothモジュールの選択と使用方法

著者 Jacob Beningo
DigiKeyの北米担当編集者の提供
2020-01-21

産業オートメーションが加速する中、IoTを導入していない旧来の工場現場はいろいろな面で取り残されてきたので、現在、工場現場のエンジニアはシステムをIoTに接続する作業を行っています。また一方、新しいシステムでも従来のシステムでも、Wi-FiやBluetoothを使ったIoTへのワイヤレス接続は、ESP32モジュールやキットを使って比較的簡単にできるようになっています。

Espressif Systemsが考案・開発したESP32は、Wi-FiとデュアルモードBluetoothを統合した低コスト、低消費電力のシステムオンチップのマイクロコントローラシリーズで、無線周波数(RF)とワイヤレス設計の微妙なニュアンスに煩わされたくないオートメーションエンジニアにとって画期的な製品です。低価格のWi-Fi/Bluetoothコンボ無線機として、ホビイストだけでなくIoT開発者の間でも人気を博しています。消費電力が低く、複数のオープンソース開発環境とライブラリを備えているため、あらゆる種類の開発者に適しています。

ただし、ESP32には非常に多くの異なるモジュールや開発ボードがあるため、適切なものを選択するのが難しい場合があります。

この記事では、ESP32ソリューションを紹介し、開発者がアプリケーションをIoTに接続するために適切なモジュールと開発ボードを特定する方法をお教えします。

ESP32モジュール

ESP32モジュールは、ワイヤレス無線機だけでなく、さまざまなペリフェラルと接続するためのインターフェ-スを備えたオンボードプロセッサも提供し、オールインワンの統合型Wi-Fi/Bluetooth認定ソリューションです。プロセッサは実際には2つのプロセッシングコアを持ち、その動作周波数は80メガヘルツ(MHz)から240MHzの間で独立して制御できます。プロセッサのペリフェラルにより、以下のようなさまざまな外部インターフェースに簡単に接続できます。

  • SPI
  • I2C
  • UART
  • I2S
  • Ethernet
  • SDカード
  • 静電容量式タッチパネル

開発者がアプリケーションのニーズに応じて選択できるESP32モジュールは数種類あります。最初の、そして最も一般的なESP32モジュールはESP32-WROOM-32Dで、最大240MHzで動作します(図1)。このモジュールには基板上のトレースアンテナが含まれており、実装が簡単です。また、IPEXに接続するアンテナに関連するハードウェアを追加する必要もありませんし、レイアウトの複雑さもありません。しかし、IPEXコネクタオプションを選択した場合、Inventek SystemsW24P-Uなど、良いアンテナオプションがたくさんあります。

image

図1:ESP32-WROOM-32Dモジュールは最大240MHzで動作し、
8MバイトのオンボードSPIフラッシュを搭載しています。
(画像出典:Espressif Systems)

このモジュールは4メガバイト(Mバイト)のフラッシュを搭載しており、38本のピンがモジュールサイズを最小化するように配置されているため、ほぼ正方形に近い形をしています。実際、WROOM-32DはESP-WROOM-32Uと完全にピン互換です(図 2)。WROOM-32Uは、基板上のトレースアンテナを、HiroseのU.FL設計に基づくIPEXコネクタに置き換えています。そうすることで、WROOM-32Uは基板スペースを節約し、開発者は最適なRF特性を得るために製品内に配置できる外部アンテナを接続することができます。

image

図2:ESP32-WROOM-32UはWROOM-32Dとピン互換ですが、後者の
オンボードトレースアンテナを外部アンテナ用IPEXコネクタに
置き換え、RF特性を最適化できるようにしています。
(画像出典:Espressif Systems)

WROOM-32Dモジュールの興味深い点は、さまざまなサイズのフラッシュメモリがあることです。このモジュールには、8MバイトのESP32-WROOM-32Dや16MバイトのESP-WROOM-32Dのような追加メモリをサポートするバリエーションがあります。

産業制御用ESP32開発ボードの選択

ESP32モジュールは、生産現場で使用されるボードを設計する場合、または「大量」に使用されるボードに搭載される場合に最適な選択です。製造現場での少量の設備の開発には、開発者はESP32開発ボードを使用できます。これらのボードは、非常に基本的な「入門用」ボードから、補助プロセッサやLCDを含む高度なボードまで多岐にわたります。開発の簡素化が重要な要件であることを前提として、産業オートメーションアプリケーションにも適したものもあります。

たとえば、ESP32-DEVKITC-32D-F があります(図3)。これは、設計者または開発者が開始するために必要なすべての電源調整およびプログラミング回路を備えた、WROOM-32D用のシンプルなブレークアウトボードです。このボードには、オンボードのUSBマイクロコネクタまたはV-INブレークアウトヘッダを通じて電力が供給されます。ジャンパまたはワイヤを使用して、さまざまなコンポーネントをWROOM-32Dに接続できます。

image

図3:ESP32-DEVKITC-32D-F開発ボードには、WROOM-32Dピンの
いずれかに接続するためのブレークアウトヘッダが含まれており、
開発目的で USB経由で電力を受給できます。
(画像出典:Espressif Systems)

もう1つの例は、Adafruit IndustriesAirlift ESP32 Shieldです。これには、WROOM-32Dだけでなく、追加の試作スペースも含まれます(図4)。この試作スペースは、カスタム回路の追加に加えて、他のシールドへの接続を追加するために使用できます。開発者はこのスペースを使って、低電圧産業オートメーションアプリケーション用の入出力回路を作ることができます。また、オンボードのSDカードコネクタもあり、データロギングアプリケーションの開発がより簡単になります。

image

図4:AdafruitのAirlift ESP32 Shieldを使用すると、設計者はプロトタイプを
製作したり、産業オートメーションアプリケーションで使用できる
単発の回路を構築したりすることができます。Airliftには、専用回路
に使用できるプロトタイピングスペースがあります。
(画像出典:Adafruit Industries)

一部の産業オートメーションアプリケーションでは、追加のプロセッサを備えた開発ボードが使用されており、ESP32はアプリケーションの負荷全体を処理するのではなく、接続を提供するだけの場合があります。このようなアプリケーションでは、開発ボードや製品に拡張PMODコネクタが搭載されている場合があります。

開発者は、ESP32用のPMODボードをカスタム設計するのではなく、DigilentESP32 PMODブレークアウトボードを活用できます(図5)。

ESP32 PMODは、PMOD標準コネクタと以下を提供します。

  • LED電源インジケータ
  • オンボードのユーザーボタン
  • 4ピンのI/O拡張用ヘッダ
  • ブート設定用ジャンパ

image

図5:Digilent ESP32 PMODボードは、ESP32モジュールを他の
プロセッサや開発ボードと使用するために、接続しやすい
拡張フォーマットで提供します。( 画像出典:Digilent)

Espressif SystemsのESP-WROVER-KITは、設計者がESP32ベースのアプリケーションを開発するために必要なすべてを備えた完全なESP32開発ソリューションです(図6)。例えば、WROVERにはFTDIFT2232HLが搭載されており、カスタムプログラミングツールを使用することなく、ESP32モジュールを簡単にプログラミングできます。このボードには、オンボード3.2インチLCD、microSDコネクタ、RGB LED、カメラインターフェースも搭載されています。また、開発ボードにはすべてのI/Oが並び、ピンヘッダから簡単にアクセスできるようになっています。

image

図6:EspressifのESP-WROVER-KITボードは、RGB LED、microSDスロット、
カメラ、LCDへのアクセスを持つESP32モジュールと、簡単にアクセス
可能なI/O拡張を産業オートメーション開発者に提供します。
(画像出典:Espressif Systems)

設計者は、自分のアプリケーションに最適なモジュールと開発ボードを決定したら、そのニーズに最適なESP32の開発環境の検討に時間を費やす必要があります。

ESP32開発環境の選択

ESP32は高い人気を得るようになったので、いくつかの異なる開発環境を選択して、デバイスを開発しプログラミングすることができます。最も人気のある開発ツールは以下の通りです。

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

最初の環境であるEspressif IDFは、経験豊富な組み込みソフトウェア開発者向けの開発ツールチェーンです。ツールチェーンには、アプリケーションを開発するためのIDE、コンパイラ、ライブラリ、およびサンプルなど、いくつかの便利なものが含まれています。IDFは、ベースとなるリアルタイムオペレーティングシステム(RTOS)としてFreeRTOSを、Wi-Fi用のlwIP TCP/IPスタックとTLS 1.2とともに使用しています。

最低限のプログラミング経験しかない開発者であれば、一般的なArduino IDEを使ってアプリケーションを開発し、ESP32にデプロイすることもできます。Arduino IDEは、専門的な開発環境と比べると少し遅くて不便ですが、多くのサンプルとESP32のサポートを提供しており、初心者の開発をより簡単にすることができます。

最後に、Pythonでのアプリケーション開発に興味がある開発者のために、ESP32はオープンソースのMicroPythonカーネルでサポートされています。開発者はESP32にMicroPythonをロードして、アプリケーション用のPythonスクリプトを開発することができます。これにより、産業環境でアプリケーションをオンザフライで更新することが非常に簡単になり、通常は組み込み開発に伴う必要な専門知識の層を取り除くことができます。

ESP32を使うためのヒントとコツ

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は産業オートメーション機器を迅速かつ効率的に接続するための優れた選択肢です。



著者について


image

Jacob Beningo

Jacob Beningo氏は組み込みソフトウェアコンサルタントです。同氏は、組み込みソフトウェア開発技術に関する200以上の記事を発表しており、引っ張りだこのスピーカーでありテクニカルトレーナーです。ミシガン大学の工学修士を含む3つの学位を取得しています。

出版者について


DigiKeyの北米担当編集者



免責事項:このウェブサイト上のさまざまな著者および/またはフォーラム参加者によって表明された意見、信念、および見解は、必ずしもDigiKey Electronicsの意見、信念、および見解またはDigiKey Electronicsの公式ポリシーを反映するものではありません。




オリジナル・ソース(English)