一般記事

ESP32ではじめるIoTデバイス開発

この記事を読むのに必要な時間:およそ 4 分

書籍IoT開発スタートブック─ESP32でクラウドにつなげる電子工作をはじめよう!刊行にあわせて著者の下島健彦氏にマイコン「ESP32」を使ったIoTデバイスの開発について寄稿いただきました。

 近年注目されてるIoTについて,みずからデバイスを開発してみたいという方も多いのではないでしょうか。通信モジュールがはじめから搭載されている「ESP32」というマイコンを使えば,電子工作の入門者でも簡単にIoTデバイスの開発をはじめることができます。

 本稿では,まずIoTシステムの構造とIoTデバイスの制御用マイコンに求められる要件を整理し,次にESP32の構造とIoTデバイスの制御用マイコンとして見たときの特徴を解説します。最後にESP32を使ったIoTデバイスの事例を紹介します。

IoTシステムの構造(IoTデバイス・ネットワーク・クラウドサービス)

 IoTシステムといっても,国や自治体が管理する河川の水位監視システムや,世界中で稼働している工作機械の状態を監視してメンテするような大規模なシステムから,ペットのいる部屋の温度,湿度をモニタリングするといった個人で開発できるようなシステムまで,いろいろなものがあり,規模や複雑さ,求められる信頼性などはさまざまです。

 さまざまなバリエーションのあるIoTシステムですが,非常に単純化すると,その構造は図1のようなものと捉えることができます。

図1 IoTシステムの構造

図1 IoTシステムの構造

 主な構成要素は外界との接点となるIoTデバイス,IoTシステムの中心になるクラウドサービス,IoTデバイスとクラウドサービスをつなぐネットワークの3つです。

IoTデバイス

 IoTデバイスは,IoTシステムにおいて,外界との接点になるものです。IoTデバイスは工作機械などのモノに組み込まれたものや,センサ端末のように独立したものなど,形状や機能はさまざまですが,共通する主な構成要素にはセンサやモーターといったデバイス,通信モジュール,マイコンがあります。

 センサやモーターが外界の状態をデータ化して取り込んだり,外界を制御したり,外界との具体的な接点になります。通信モジュールがネットワークに接続するインターフェースです。

 マイコンがIoTデバイス全体を制御し,センサデータを取得してネットワーク経由でクラウドサービスに送ったり,クラウドサービスからの指示を受けてモーターを動かしたりします。

ネットワーク

 IoTネットワークはIoTデバイスとクラウドサービスをつなぐものです。IoTデバイスからクラウドサービスまでのルートとしては,主に次のようなバリエーションがあります。

  • IoTデバイス→有線LAN→ルーター→
     インターネット→クラウドサービス
  • IoTデバイス→無線LAN(Wi-Fi⁠⁠→Wi-Fiルーター→
     インターネット→クラウドサービス
  • IoTデバイス→Bluetooth→Bluetoothゲートウェイ→
     インターネット→クラウドサービス
  • IoTデバイス→3G/LTE→携帯ネットワーク→
     インターネット→クラウドサービス
  • IoTデバイス→sigfox/LoRaWAN→ゲートウェイ→
     インターネット→クラウドサービス

 どのネットワークを利用するかは,IoTデバイスを設置する場所で利用可能なネットワークによって決まってきます。なかでもWi-Fiは家庭,オフィス,工場などさまざまな場所にWi-Fiルータが設置されているため,IoTネットワークとしても使いやすいネットワークです。

クラウドサービス

 IoTクラウドサービス表1は,河川の水位監視システム,工場の機械の稼働状態監視システムなど,個別に作り込まれた専用のサービスと,特定のサービスに依存しない汎用のプラットフォームサービスがあります。

表1 主なIoTクラウドサービス

表1 主なIoTクラウドサービス

 汎用プラットフォームサービスには,IoTデータの収集・可視化,分析,制御といったといった機能が含まれます。そして,これらの機能をすべて含んだリッチ系のサービスと,データの収集・可視化に特化したシンプル系のサービスがあります。どのサービスを選択するかは,IoTサービスとして何を実現したいかによりますが,多くの場合,IoTサービスの第一ステップが対象システムの見える化であることから,シンプルなサービスから使い始めるのがよいでしょう。

IoTデバイスの制御マイコンに求められる要件

 IoTシステムの構造を概観したところで,IoTデバイスを制御するマイコンに求められる要件を考えてみます。

 IoTデバイスはアプリケーションによってさまざまなバリエーションがありますが,共通する機能として,センサやモーターなどのデバイス制御,クラウドサービスとの通信,そして電源の管理があります。

デバイス制御

 センサやモーターなどのデバイスを制御するインターフェースは,アナログ電圧によるもの,デジタル信号によるもの,デジタル信号によるものでは,I2C通信,SPI通信,シリアル通信,パルス幅(PWM)制御など,デバイスごとにさまざまな制御方式があります。

 使おうとするデバイスが決まっている場合は,マイコンもデバイスの制御方式に対応している必要があるのはもちろんですが,汎用のIoTデバイス制御マイコンとしては,幅広い制御方式に対応したものが求められます。

ネットワーク

 ネットワークは,IoTデバイスを設置する場所で利用可能なものを使うことになります。家庭やオフィスでは,Wi-Fiルーターが設置されていることが多いので,IoTネットワークとしてもWi-Fiを選択することが多くなります。山中や水田の真ん中など,近くにインターネット回線がない場所では,3G/LTEやsigfox/LoRaWANといったネットワークを選択することになります。

 マイコンに外付けする通信モジュールを使う場合は,マイコンとのインターフェースはI2C通信やシリアル通信などなので,マイコンはそれらの制御方式に対応している必要があります。

 マイコンによってはいくつかの通信モジュールを内蔵しているものがあり,このようなマイコンはIoTデバイスの制御用としては使いやすいものになります。

著者プロフィール

下島健彦(しもじまたけひこ)

NECで組込みシステム向けリアルタイムOSの開発,米スタンフォード大学計算機科学科への留学を経て,インターネットプロバイダ事業BIGLOBEの立ち上げからメディア事業を担当。2015年ごろから個人でIoTデーター可視化サービス「Ambient(https://ambidata.io)」を開発,運営。現在,アンビエントデーター株式会社代表取締役。日本のM5Stackユーザーグループ主催。趣味はお茶とツール・ド・フランス観戦。

バックナンバー

IoT

  • ESP32ではじめるIoTデバイス開発