見出し画像

ITコンサルやPMが最低限理解しておくべきIoT知識

こんばんは。it-daxです。

近年様々な技術の進化によりAI × IoT × ビッグデータの組み合わせが注目されています。
この中でもIoTはシステムだけでなくモノが絡んでくるので、他とは少し毛色が違いますね。

IoTを活用した構想やアーキテクチャを考えるとなると、電子世界だけなく現実世界も含めて検討する必要があります。

SE上がりだとしても一般的なコンサルやPMには少し想像がつきにくい世界なのではないでしょうか。

今回は最低限これだけ知っておけば一般的なIoT活用プロジェクトで恥をかくことはないという知識をご紹介します。


IoTの構造

インターネットにつながるモノとして、身近なもので言えば冷蔵庫・炊飯器・照明などがありますね。
工場などでは工作機械などの設備が全てIoT化されてきています。

IoTは3層構造と2層構造の2パターンがあります。
それぞれどのような役割をもっているのか説明します。

3層構造

  1. デバイス層

  2. エッジコンピューティング層

  3. クラウドコンピューティング層

3層構造では上記の3つの層があります。

デバイス層
センサーで取得したデータをエッジコンピューティング層に送信する働きと、エッジコンピューティング層から受信した命令の実行する働きがあります。

エッジコンピューティング層
センサーから受信したデータをクラウドコンピューティング層に送信する働きと、クラウドコンピューティング層から受信した命令をデバイス層に送信する働きがあります。
また、エッジコンピューティング層でデータの加工やデバイスの制御、さらにはAI / MLの機能を搭載をすることもあります。

クラウドコンピューティング層
エッジコンピューティング層から受信したデータを受け取りデータの分析やダッシュボードへの表示などを行います。
また、デバイス層への命令の送信をエッジコンピューティング層に送信する働きがあります。
遠隔操作やエラー分析などが可能です。

2層構造

エッジコンピューティング層を抜いた構造が2層構造になります。
実がデバイス層から直接クラウドコンピューティング層へと通信を行うことが可能です。
では、なぜわざわざ3層構造にする必要があるのでしょうか。
理由は通信速度の遅延や通信量の増大、素早いAI / MLの実行が難しいことが挙げられます。

エッジコンピューティング層は我々コンサルみたいなものだと思ってください。
現場からでてきた声をそのまま経営陣に投げることはしないで、整理してからお見せしたり、現場を見て作業指示を出すこともあると思います。
エッジコンピューティング層の役割は大体そんな感じです。

基本的には3層構造での構成にしたほうが無難でしょう。

通信プロトコル

デバイスがクラウドと通信するにはPCと同じく有線、無線のどちらかになります。
場所が固定されていて、物理的な制約もなく、環境も厳しくなく、近くにぶっ刺せるLANがあるのであれば有線で良いです。
LANケーブルやシリアル通信になります。

しかしほとんどの場合そうではないので、無線を選ばざるを得ないと思います。
無線は様々な種類のプロトコルが存在します。
どのような使い分けをしたらよいのでしょうか。

上記の図のように使用するプロトコルを選択していきます。
使用環境や通信内容が決まったらこのように判断してみてください。

  • 5G・LTE

スマホでお馴染みのプロトコルです。
一番馴染み深いのではないでしょうか。
IoT専用プランがありますので、通信事業者の電波を利用してSIMカードやeSIMで通信可能です。

  • LPWA

LPWAとは、Low Power Wide Areaの略で、LPWAN(Low Power Wide Area Network)とも呼ばれます。
低消費電力かつ広域・長距離通信を特徴とする無線通信技術です。
通信データ量は少なくWi-Fiなどに比べ低速となっています。

  • Bluetooth

身近な例ではスマホとイヤホンの接続などでよく使用されるプロトコルです。
消費電力が少なく、省スペースです。
しかし接続台数に最大7台という制限があります。

  • ZigBee

普段あまり馴染みがないプロトコルですね。
低コスト、低消費電力、高速通信が可能です。
メッシュネットワークが可能で、高い信頼性があります。

  • wifi

普段皆さん使用されているwifiです。
非常に高速ですが、5GHz帯のような高速通信は障害物に弱いという弱点があります。
また、電力消費が他と比べて多いです。
常に電源に接続できてネットワークを構築できるのであればwifi一択でしょう。

クラウドとの連携に使用するプロトコル

クラウドとの通信にはHTTPやMQTTがあります。
他にもあるようですが、AWSのIoT Coreではこの2つのみがサポートされていますので、これから開発していくのであれば今のところはこのどちらかでしょう。

MQTT通信のメリットは、消費電力が少ないこと、双方向の通信が可能であること、非同期通信が可能であることが挙げられます。
HTTP通信ではこれらが逆の仕様となっているため、デメリットとなっています。

利用したいデバイスとデータによって使い分けると良いでしょう。

開発の進め方

IoTの開発プロジェクトではいきなり本開発に着手することはありません。
何度かプロトタイプによる開発と検証を行う必要があります。

更には外部環境によってデバイスのケースの選定が必要となります。
あるいは特注する必要があります。
工事現場で使用するのであれば、防塵、防水、耐熱などなど、環境に耐えることができるケースやハードを用意しなければいけません。
代表的な規格はIPコードと言われるIP××と書かれているものがあります。
こちらは防塵、防水の保護性能を表す規格で、IP68だと粉塵が内部に入らず、水の中にずっと浸かっていても大丈夫というものになります。

少し外れてしまいましたが、進め方をまとめるとこのようになります。

  1. 要件定義

  2. ハードウェア・デバイス・ファームウェアの選定

  3. 通信方式の決定

  4. 環境に応じたケースの選定・作成

  5. プロトタイプの開発

  6. 検証(PoC)

使用可能なレベルとなるまで、上記を繰り返すことになります。

おわりに

他にも法律・認証規格・セキュリティに関するものだったり、可視化の必要があれば可視化システムの開発が必要です。
そこらへんは環境に左右されるので専門家に聞くなどしたほうが良いでしょう。

IoTのイメージはつきましたか?
つかない方は実際に作ってみると分かりやすいと思います。
いまは割と簡単に作れちゃいます。
ラズパイとCO2センサーで二酸化炭素濃度をslackに投稿するものとか簡単で意外と便利なのでおすすめです。(換気のタイミングがわかります)

この記事が気に入ったらサポートをしてみませんか?