分12書籍『IoT開発スタートブック─ESP32でクラウドにつなげる電子工作をはじめよう!』刊行にあわせて著者の下島健彦氏にマイコン「ESP32」を使ったIoTデバイスの開発について寄稿いただきました。近年注目されてるIoTについて,みずからデバイスを開発してみたいという方も多いのではないでしょうか。通信モジュールがはじめから搭載されている「ESP32」というマイコンを使えば,電子工作の入門者でも簡単にIoTデバイスの開発をはじめることができます。本稿では,まずIoTシステムの構造とIoTデバイスの制御用マイコンに求められる要件を整理し,次にESP32の構造とIoTデバイスの制御用マイコンとして見たときの特徴を解説します。最後にESP32を使ったIoTデバイスの事例を紹介します。IoTシステムの構造(IoTデバイス・ネットワーク・クラウドサービス)IoTシステムといっても,国や自治体が管理する河川の水位監視システムや,世界中で稼働している工作機械の状態を監視してメンテするような大規模なシステムから,ペットのいる部屋の温度,湿度をモニタリングするといった個人で開発できるようなシステムまで,いろいろなものがあり,規模や複雑さ,求められる信頼性などはさまざまです。さまざまなバリエーションのあるIoTシステムですが,非常に単純化すると,その構造は図1のようなものと捉えることができます。主な構成要素は外界との接点となる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)は,河川の水位監視システム,工場の機械の稼働状態監視システムなど,個別に作り込まれた専用のサービスと,特定のサービスに依存しない汎用のプラットフォームサービスがあります。主なIoTクラウドサービス汎用プラットフォームサービスには,IoTデータの収集・可視化,分析,制御といったといった機能が含まれます。これらの機能をすべて含んだリッチ系のサービスと,データの収集・可視化に特化したシンプル系のサービスがあります。どのサービスを選択するかは,IoTサービスとして何を実現したいかによりますが,多くの場合,IoTサービスの第一ステップが対象システムの見える化であることから,シンプルなサービスから使い始めるのがよいでしょう。IoTデバイスの制御マイコンに求められる要件IoTシステムの構造を概観したところで,IoTデバイスを制御するマイコンに求められる要件を考えてみます。IoTデバイスはアプリケーションによってさまざまなバリエーションがありますが,共通する機能として,センサやモーターなどのデバイス制御,クラウドサービスとの通信,そして電源の管理があります。デバイス制御センサやモーターなどのデバイスを制御するインターフェースは,アナログ電圧によるもの,デジタル信号によるもの,デジタル信号によるものでは,I2C通信,SPI通信,シリアル通信,パルス幅(PWM)制御など,デバイスごとにさまざまな制御方式があります。使おうとするデバイスが決まっている場合は,マイコンもデバイスの制御方式に対応している必要があるのはもちろんですが,汎用のIoTデバイス制御マイコンとしては,幅広い制御方式に対応したものが求められます。ネットワークネットワークは,IoTデバイスを設置する場所で利用可能なものを使うことになります。家庭やオフィスでは,Wi-Fiルーターが設置されていることが多いので,IoTネットワークとしてもWi-Fiを選択することが多くなります。山中や水田の真ん中など,近くにインターネット回線がない場所では,3G/LTEやsigfox/LoRaWANといったネットワークを選択することになります。マイコンに外付けする通信モジュールを使う場合は,マイコンとのインターフェースはI2C通信やシリアル通信などなので,マイコンはそれらの制御方式に対応している必要があります。マイコンによってはいくつかの通信モジュールを内蔵しているものがあり,このようなマイコンはIoTデバイスの制御用としては使いやすいものになります。ESP32著者プロフィール下島健彦(しもじまたけひこ)NECで組込みシステム向けリアルタイムOSの開発,米スタンフォード大学計算機科学科への留学を経て,インターネットプロバイダ事業BIGLOBEの立ち上げからメディア事業を担当。2015年ごろから個人でIoTデーター可視化サービス「Ambient(https://ambidata.io)」を開発,運営。M5Stackユーザーグループ主催。趣味はお茶とツール・ド・フランス観戦。─ESP32でクラウドにつなげる電子工作をはじめよう!いまや普及期に入りつつあるIoT,興味のある方も多いのではないでしょうか。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。