IoT

IoT

投稿日:2021年9月12日 更新日:

IoT(Internet Over Things)とは、インターネットにつながる前提で作られたコンピュータ以外の電気機器、機械、部品などをインターネットにつなげ、データを取得できるようにしたり、遠隔から操作することができる「環境」のことを言います。環境とは、IoTのためのデバイス、ネットワーク、バックエンドのサーバです。

コンピュータは、テキスト、画像、音声などの大量のデータを処理するために作られた装置です。このようなデータを収集するために、インターネットを使います。インターネット上にWebサイトを開設したり、インターネットを介してお互いのコンピュータをつなげることで、大量のデータを収集・アクセスします。そのために、コンピュータとインターネットに必要とされるのは、高い性能です。

一方、IoTデバイスは、特定の機能を可能とするだけの装置であり、生産コストと消費電力を極力抑えるため、性能も非常に限られます。

■ IoTの目的

これまでも、電話、MFP(マルチファンクションプリンタ)などの情報通信機器は、IP化によってインターネットに接続されています。これらの機器は、もともとオフィス環境などでビジネス情報を処理するものであり、インターネットとの親和性が高かったため、スムーズに対応できました。

IoTは、このような情報通信機器に限らず、多様な機器を対象としています。その目的は、「自動化」と「AI化」です。人手を介することなく様々な機器を同期をとって動作させたり、現場の生データをリアルタイムに入手し、学習することでAIによる推論の精度を上げたりすることを目的としています。

■ IoTアーキテクチャ

IoTを構成するのは、IoTデバイス、ネットワーク、サーバです。 これらの要素を組み合わせ、IoTの目的を達成します。

【IoTデバイス】

IoTデバイスの特徴は、以下です。

1)ユビキタス
どこにでも設置できるように小型・軽量である。

2)マイコンアーキテクチャ

家電などで使われるクロック周波数の低いCPU、容量の小さいメインメモリ(RAM)とプログラムを記憶するフラッシュメモリ、入出力ポート(GPIO)、センサーやGPSなど特定機能を実現する周辺デバイス、無線通信のための通信デバイス、周辺デバイスとのコマンド・レスポンス通信のためのシリアル通(UART/SPI))といった規模の小さい回路構成である。

3)エンベデッドソフトウェア

PCにインストールされるWindows/Linuxのような巨大なオペレーティングシステム(OS)は存在しない。その代わり、直接、プログラムがCPUで動作するため、オーバヘッドがなく、リアルタイムにプログラムが動作する。

プログラムは、コンパイラーによって機械語に直接変換され、フラッシュメモリに書き込まれる。電源ONとともプログラムが起動する。プログラムから直接ハードウェアのレジスタにアクセスして、処理を実行する。

プログラム構成は、シンプルで、初期化関数、メイン関数の2つしかない。初期化関数は、周辺デバイスの初期設定などを実施するために、起動時に一度だけ呼び出されます。メイン関数には、初期化関数の後に呼び出され、周辺デバイスとの読み書き、インターネット通信など、IoTデバイスとしての機能処理をタイマーを使って定期的に実行する。

4)インターネット接続

インターネットに接続するには、IoTデバイスにインターネットプロトコルであるTCP/IPが実装されていることが必要である。インターネット上を流れるパケットは、セキュリティ上、暗号化される必要があり、RSAとDESなどの暗号アルゴリズムを実行する必要がある。そのためのCPUパワーも必要になる。
サーバとの接続には、TCP/IPの上位プロトコルとしてMQTT、HTTPが使われる。

通信デバイスには、無線LAN、3G/LTE/5G、LPWA(Low Power Wide Are network)などがあるが、TCP/IPのパケットを送受信できる帯域が必要となるため、無線LAN、 3G/LTE/5G が使われる。

【ネットワーク】

IoTデバイスがつながるネットワークの特徴は、以下です。

①ワイヤレス
②長距離通信
③機能相当の帯域
④低通信コスト
⑤低消費電力
⑥インターネットゲートウェイ

これらを満たすネットワークは、現状では、前記の通り、 無線LAN、3G/LTE/5Gとなります。


【サーバ】

IoTデバイスと通信するサーバの特徴は、以下です。

1)クラウドコンピューティング(SaaS)

IoTデバイスからの単位時間当たりのトラフィック(接続数と通信頻度)は、これまでの数倍を超えるものとなる。さらに、時間経過とともに、その数は増加していく。これに追随できるサーバリソースのスケーラビリティ(拡張性)が必要となる。また、IoTデバイスとやり取りされるデータが増大するにしたがってアプリケーションの機能も増大していく。
その解決策がスケーラビリティ、信頼性、セキュリティを兼ね備えたクラウドコンピューティングである。

2)キラーアプリケーション
特定機能を持つIoTデバイスに特化したアプリケーション群である。特定分野に特化した課題を解決し、業務効率化を図る。

3)エッジコンピューティング
サーバを分散配置することで、トラフィックの分散を図る。IoTデバイスとネットワーク的に近い場所にサーバ(エッジサーバ)を配置し、グループ分けしたIoTデバイス群とのデータ送受信と集約処理などを実施し、後方にあるサーバとのデータ送受信を実施する。

 IoTの課題

現時点でのIoTの課題は、以下です。

1)キラーアプリケーションがない

現状では、特定業務に汎用的に役立つようなアプリケーションは、まだ出てきていない。ひとまず、ロギングのような単機能アプリケーションが多い。IoTデバイスの種類も少なく、具体的な要件定義までは行われていない。

2)IoTを前提とした外部インタフェースを持つ機器が少ない

家電などの機器は、本来、単独で自律動作することを目的としてつくられている。そのため、外部から操作するためのインタフェースを持っておらず、IoTデバイスとして活用することが難しい。

3)ハッキングリスク

電気、ガス、水道などのライフラインや家電などが設置された個人宅に設置されたIoTデバイスに不正アクセスされた場合、その影響度が大きくなる。そのため、IoTデバイスの限られたリソースの中で、高いセキュリティを確保しなければならない。

4)ネットワークコスト

パケット当たりの通信コストが安価であっても、数が多くなれば全体で見ると相当の金額になる。ネットワークに接続される数に依存せず、サブスクリプションのような課金体系でないと運用が継続できない。

5)IoTデバイス管理

IoTデバイスがネットワークに接続されれば、それらを管理する仕組みも必要になってくる。
特に、ネットワークに接続されるIoTデバイスの数は、スマートフォンやPCとは桁が違うので、IoTデバイスの設置場所を把握できるようにしておく必要がある。特に、IoTデバイスが移動体である場合、移動先に連動した位置を設置管理をする必要がある。

-IoT

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

関連記事はありませんでした