【書評】AWSとM5StickCで作るIoT開発入門 #技術書典9
みなさまこんにちは。Kta-Mです。
noteがリリースしてすぐになんとなくアカウントを作って6年ほど寝かせていました。悠久の時を経て、ついに初記事を書きます!
今回は、技術書典9で販売される「AWSとM5StickCで作るIoT開発入門」の書評です。会社で同じIoTチームに所属している yuuu が執筆したものです。事前に読ませてもらったので、みなさまにご紹介しようと思います。
(以下、上記販売ページより引用)
本書は、初めてIoT開発を経験する人向けに、設計・実装・テストの流れを解説した書籍です。
IoT開発に必要な技術要素や開発そのものの流れを、読者のみなさまに理解してもらうことを目的に執筆しました。
テクノロジの総合格闘技とも呼ばれるIoT開発では、扱う技術要素が多岐に渡ります。
IoT開発の流れを一通り経験し、いくつかの技術要素を理解すると、 要素や構成が変わっても応用が効くようになります。
本書の記載に沿って開発を進め、ぜひIoTの世界への第一歩を踏み出してください。
■対象読者
本書では次のような人を対象としています。
・IoTシステムに興味がある人
・IoTシステムの企画・開発に携わっている人、もしくは携わる予定のある人
・Web・クラウド・デバイスが好きな人
■前提とする知識
本書を読むにあたり、次のような知識が必要となります。
・何らかのプログラミング言語の利用経験
・クラウドサービスの基礎知識
・Webシステムにおける通信の知識
この本のおすすめポイント
ひとことで言えば、IoT開発の要素をこの1冊で全てカバーしているところです。
今の時代、IoTを体験するだけなら簡単です。「IoT家電」と呼ばれるものも身近になりつつあり、遠隔操作や遠隔監視などができるようになってきています。SwitchBotなんかを使って好きなボタンを後付けで遠隔操作なんかもできます。ちょっと開発っぽいことをするのであれば、GPSマルチユニットSORACOM Editionを使えば10分ぐらいでセンサーデータの可視化ができてしまいます。
しかし、既製品ではない独自のIoTシステムを作ろうとなると難易度が大きく変わります。導入にもあるように、IoTはテクノロジの総合格闘技とも言われます。ちょっとしたIoTシステムを作るだけでも、必要となる前提知識はたくさんあります。
本書は、独自のIoTシステムを作る際の第一歩を示してくれる本です。題材こそIoT業界のHelloWorldとも言われる気温のモニタリングですが(私調べ)、これを通じてIoT開発の基本的なノウハウを学べるようになっています。本書を読んでおくと、いざ自分で作ろうとするときにスムーズに入っていけるのではないかと思います。
目次
まえがき
目次
第1章 IoT システムの設計
1.1 要件定義
1.2 システムの設計
1.3 IoTバックエンドの設計
1.4 IoTデバイスの設計
1.5 インタフェース設計
第2章 IoT バックエンドの開発
2.1 開発環境
2.2 サーバレスアプリケーションの作成‧デプロイ
2.3 IoTCoreをトリガにSlack通知する
2.4 ビルド‧デプロイする
第3章 IoT バックエンドの動作確認
3.1 mockmockとは
3.2 データを送信するための準備
3.3 mockmockをセットアップする
3.4 mockmockを使って動作を確認する
3.5 まとめ
第4章 IoT デバイスの開発
4.1 開発環境
4.2 環境センサから気温を読み出す
4.3 IoTバックエンドにデータを送信する
4.4 動作確認
第5章 IoT バックエンドを拡張する
5.1 拡張部分の設計
5.2 DynamoDBに値を格納する
5.3 DynamoDBの値を読み出すAPIを準備する
5.4 S3でWebページをホスティングする
5.5 デプロイする
5.6 index.htmlを作成する
5.7 index.htmlをアップロードする
付録 A IoT バックエンドの削除
付録 B 本書で利用する AWS の各サービスの役割
あとがき
第1章 IoT システムの設計
実際に手を動かす前に、どんなものを作るのかをしっかりと決めます。IoTシステムは扱う要素が多いので、きっちり決めておかないと無駄な手戻りが発生します。重要な章です。
デバイスで計測した気温をバックエンド側に送信し、しきい値を超えるとSlackに通知するという物を作ります。
最後にあるコラムには、デバイス選定の際に考慮するポイントが書かれています。親切。
第2章 IoT バックエンドの開発
設計ができたので、バックエンド側から作っていきます。AWS SAMを使って、ナウい感じでサーバーレスに作ります。データの受け口はAWS IoT Core。王道ですね。
第3章 IoT バックエンドの動作確認
バックエンドができたのでテストを行います。テストにはmockmockというサービスを利用します。IoT開発用の疑似データ生成・送信サービスです。
デバイスを作り上げてからデバイスと繋げてテストというのもできはしますが、問題が起こったときに切り分けが大変です。さらに、デバイスによってはエラーや異常値が出しにくかったり、テストのためにイチイチ操作するのが面倒だったりもするので、こういったサービスを利用すると格段に開発がしやすくなりますね。
第4章 IoT デバイスの開発
いよいよIoTデバイスに着手です。M5StickCで気温を計測して、バックエンド側にMQTTで送信する手順が書かれています。計測、送信のほかにも、証明書の設定やMQTTの接続などがあるのですが、それらも一つ一つ説明してくれています。
第5章 IoT バックエンドを拡張する
第4章までで、しきい値を超えると通知を行うシンプルなIoTシステムができます。ここでは、そこからもう一歩踏み込んで、データの可視化を行います。DynamoDB, S3, API Gatewayを使って、拡張してもサーバーレス。今回ぐらいの構成だとあまり恩恵は感じられないと思いますが、障害がほぼなく、メンテナンスもほぼなく、スケールも勝手にしてくれるサーバーレスはIoTと相性がいいのです。
まとめ
IoTができるようになると、作れるものの幅が格段に広がります。
今までIoTに興味はあったけど一歩を踏み出せてない方、やろうとしたけど覚えることが多くて一度諦めてしまった方などにオススメできる内容です。
著者 yuuu のIoT開発経験をベースに書かれた本書には、IoT開発のノウハウが詰まっています。サポートページもありますので、迷子になることもないと思います。ぜひこの本を頼りに、IoT開発デビューしてはいかがでしょうか?