SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

翔泳社 新刊紹介(AD)

個人でIoTシステムを作るときに使えるデバイスは?『Pythonで動かして学ぶ!あたらしいIoTの教科書』より

  • X ポスト
  • このエントリーをはてなブックマークに追加

 いきなり大規模なシステムは難しくても、個人規模でならすぐに作って試せるのがIoT。では、具体的に何ができ、どんなデバイスやサービスが必要なのでしょうか。翔泳社から発売した『Pythonで動かして学ぶ!あたらしいIoTの教科書』から紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加
本記事は『Pythonで動かして学ぶ!あたらしいIoTの教科書』の「第2章 IoTの仕組み」を抜粋したものです。掲載にあたり、一部を編集しています。

2.1 IoTでできること

 ひとことでIoTといっても、IoTでできることは複数あります。具体的には、「データの蓄積」、「可視化」、「制御」、「自動化」、「最適化」、「自律性」などが挙げられます。

データの蓄積

センサーなどのデバイスを通じてビッグデータをクラウドストレージに収集します。収集したビッグデータを、分析することで故障の予兆などを事前に見つけることができます(図2.1)。また、蓄積したビッグデータは人工知能(AI)の機械学習に利用することも可能です。

図2.1 データの蓄積
図2.1 データの蓄積

可視化

 デバイスを通じて収集した情報を元に対象となるモノの状態や動作をモニタリング、可視化します(図2.2)。例えば、工場にある機械にセンサーを取り付けることで、稼働率を可視化し、それらのデータから改善することなどができます。

図2.2 データの可視化
図2.2 データの可視化

制御

 人による遠隔操作や、プログラムによるルールでモノを制御します(図2.3)。スマートロックキーなどはこの「制御」になります。モノがインターネットに接続されることで様々なモノの遠隔操作が可能になります。

図2.3 制御
図2.3 制御

自動化

 データ分析により、人の手を介さずに自動で様々な処理や操作を行います。自動化には、IoTの概念と似たM2M(Machine-to-Machine:マシンツーマシン)があります。

 M2Mは、機器がネットワークに接続されることにより、機械同士が人間の介在なしにコミュニケーションをして動作するシステムで、機械から機械が情報を収集する、機械が機械をコントロールすることを目的としています(図2.4)。機械と機械がつながることにより、人間が介在することがなくなります。工場の生産ラインや工事現場などで活用されています。

図2.4 自動化(M2M)
図2.4 自動化(M2M)

最適化

 AIを利用することで、単に自動化するだけでなく条件や状況に応じて最適な処理を行います。例えば、家庭内のセンシングデータをAIが分析し、家主が留守の際には自動で鍵を閉めるスマートロックキーが挙げられます(図2.5)。

 「制御」や「自動化」との違いは、収集したデータをAIが分析することで、人がルールをプログラムすることなくモノを制御することができます。

図2.5 最適化(スマートロックキー)
図2.5 最適化(スマートロックキー)

自律性

 人の手を介さず、データの蓄積/可視化/制御/自動化/最適化を行うことで自律性を備えます。自律性まで備えると、日本政府が定めている「ソサエティ5.0」のように、冷蔵庫に搭載されている人工知能が冷蔵庫の中身や、体調を管理してメニューを提案してくれるなど、未来の技術を実現できるようになります(図2.6)。

図2.6 自律性(AI内蔵の冷蔵庫)
図2.6 自律性(AI内蔵の冷蔵庫)

2.2 IoTの基本的な仕組み

 IoTを構成する要素として代表的なものが「デバイス(センサー/アクチュエーター)」、「ネットワーク」、「クラウド(アプリ/ストレージ)」です。図2.7がIoT全体の簡略図となります。

 IoTデバイスである「センサー」からデータを取得し、「ネットワーク」を介して「クラウド」にデータを送信します。送信されたデータはクラウド内の「ストレージ」に蓄積され、アプリケーションにより可視化・分析・予測に用いられます。

図2.7 IoT全体の簡略図
図2.7 IoT全体の簡略図

 可視化・分析・予測された結果を元に、アクチュエーターを制御したり、外部のサービス(PC、スマホ、ロボット、etc.)などと連携します。

2.3 デバイスとは

 ここでいうデバイスには、センサー素子と連携して観測データを取得するセンサーデバイス(2.3.1項)や、データ分析の結果を受けてモーターなどのアクチュエーターを駆動する制御デバイス(2.3.2項)があります。

2.3.1 センサーデバイス

 ひとことでセンサーといってもたくさんの種類があります。温度、加速度、角速度、音声、画像、映像、振動、位置情報などです。

 それでは、どのようにしてセンサーを制御するのでしょうか。例えば、温度センサーを使って温度のデータを取得したいとします。温度データを取得したいので温度センサーを用意します。例えば、図2.8のような温度センサーです。

 この温度センサーは本書でも利用する市販されている温度センサー「ADT 7410使用 高精度・高分解能 I2C・16Bit 温度センサモジュール」です。ただし、これだけでは温度データを取得することはできません。

図2.8 温度センサーの例
図2.8 温度センサーの例
出典 株式会社秋月電子通商:
ADT7410使用 高精度・高分解能 I2C・16Bit 温度センサモジュール」より引用

 実は、この温度センサーデバイスはセンサー素子と呼ばれるものです。センサー素子は、マイコン(CPU)がインターフェイス(I/F)で接続されることによってセンサーデバイスとして構成されます(図2.9)。

図2.9 センサーデバイスの構成要素
図2.9 センサーデバイスの構成要素

 センサー素子とマイコンが一体化している製品は珍しく、市販されているセンサーはセンサー素子を指すことが多いです。マイコン(CPU)によってセンサー素子が制御されデータを取得します。さらに、IoTシステムを構築する場合、取得したデータはWi-Fiモジュール等によるネットワーク通信でクラウドに送られます。

2.3.2 制御デバイス(アクチュエーター)

 アクチュエーターは、センサーデバイスから取得したデータを分析し、その結果を基に制御することができます。代表的なアクチュエーター(モーター)の種類には以下の4つがあり、用途によって使い分けます。

DCモーター

 永久磁石の中でコイルが回転するモーターです(図2.10)。直流電圧と負荷で回転数が決まります。

図2.10 DCモーター
図2.10 DCモーター
出典 株式会社秋月電子通商:
DCモーター FA-130RA-2270」より引用

サーボモーター

 サーボモーターは、回転を制御できるモーターです(図2.11)。回転位置や回転速度を検出するエンコーダを持ちます。

図2.11 サーボモーター
図2.11 サーボモーター
出典 株式会社安川電機:
サーボモータとは」より引用

ステッピングモーター

 1回のパルスで一定の角度だけ回転するモーターです(図2.12)。

図2.12 ステッピングモーター
図2.12 ステッピングモーター
出典 株式会社秋月電子通商:
Raspberry Pi 3 Model B(RSコンポーネンツ日本製)」より引用

振動モーター

 振動モーターは、重心をずらすことで振動を発生させるモーターです(図2.13)。携帯電話のバイブ機能などで利用されています。

図2.13 振動モーター
図2.13 振動モーター
出典 株式会社秋月電子通商:
円筒形 振動モーター LA4-503AC2」より引用

2.3.3 シングルボードコンピューター

 2.3.1項でセンサー素子とマイコンについて触れました。初心者の方が電子回路について学び、一からセンサーデバイスを構築していくのはなかなか大変なことですが、シングルボードコンピューターを利用すれば、簡単にマイコンでセンサー素子を制御できます。

 シングルボードコンピューターは1枚の回路基板上にマイコン(CPU)やストレージ(HDD)、通信モジュールなどのコンピューター要素をひととおり構成した基板です。

 シングルボードコンピューターは自作することもできますが、目的に応じて、様々な仕様のものを各メーカーが開発しています。 以下、代表的なシングルボードコンピューターを4つ紹介します。

Raspberry Pi(ラズベリーパイ)

 Raspberry Piはコンピューターのカテゴリに属しますが、従来のコンピューターにはない「GPIO」と呼ばれるピンがあり、ここにセンサーやアクチュエーターといったデバイスを接続して制御することができます。OSはLinuxで動作するため、ライブラリやスクリプト言語を使って高度な処理を行うことができます。

 Raspberry Piは高性能である反面、消費電力が大きいため常時電力が供給できない場合は、必要な時だけ起動するようにするなどの制限があります。機能を制限し小型化した「Raspberry Pi Zero」シリーズもあります。本書ではこのRaspberry Piを使用してIoTシステムを構築していきます(図2.14)。

図2.14 Raspberry Pi 3
図2.14 Raspberry Pi 3
出典 株式会社スイッチサイエンス:
Raspberry Pi 3 Model B(RSコンポーネンツ日本製)」より引用

Arduino(アルドゥイーノ)

 Arduinoはイタリアのインタラクションデザインなどを扱う工科大学で、デザインとテクノロジーを融合させるためのプラットフォームとして誕生したマイコンです(図2.15)。

 Arduinoの特徴はシンプルで使いやすいことです。また、消費電力も小さく、アナログ通信にも対応しています。Arduinoはオープンソースで開発されているため、誰でも回路図や基板図、開発ツールのソースコードを見ることができます。

図2.15 Arduino
図2.15 Arduino
出典 株式会社スイッチサイエンス:
Arduino Uno SMD R3」より引用

Arm Mbed(アームエンベッド)

 Arm MbedはIPコアと呼ばれるCPUの設計図を開発しているARM社が販売しているIoTデバイスプラットフォームです(図2.16)。

 Arm Mbedの特徴は、Webブラウザで開発できることと、ドラッグ&ドロップでプログラムの書き込みが可能なことです。オンライン開発環境のためインターネットに接続していないと利用できません。

図2.16 Arm Mbed
図2.16 Arm Mbed
出典 朱雀技研工房ストア:
ARM mbed NXP LPC1768 開発ボード」より引用

Wio Node(ウィオノード)

 Wio NodeはSeeed社から販売されているIoTデバイスです(図2.17)。Wio Nodeの特徴としては、スマートフォンで設定するだけでセンサーから情報を取得できたり、GPIOを操作できたりすることが挙げられます。

図2.17 Wio Node
図2.17 Wio Node
出典 朱雀技研工房ストア:
Wio Node」より引用

2.3.4 ファームウェア

 ファームウェアとは、マイコン上でデバイス(ハードウェア)を動かすプログラムです。従来のファームウェアはセンサー素子などを制御できるだけでよかったのですが、IoTにおけるファームウェアはネットワークの接続やクラウドとの連携も必要となります。

 本書ではこのファームウェアにあたるプログラムをプログラミング言語「Python」を使って作成していきます。

2.3.5 ネットワーク

 ネットワークの種類について紹介します(図2.18)。

図2.18 ネットワークの種類
図2.18 ネットワークの種類

Wi-Fi

 Wi-Fiとは無線LANの規格のことで、Wi-Fi Allianceという業界団体が定めた規格の名称を指します。それまでの無線LANは規格が定まっておらず、製品やメーカーによって接続できないものが多くありましたが、共通規格を設けることで製品の相互接続が可能となりました。

 Wi-Fiのロゴは、相互接続可能だと認められた製品に表記されています。またWi-Fiルーターなどの無線LANを使用すれば、パソコンやスマートフォン、タブレットなどのデバイスを無線でインターネットに接続することが可能です。Wi-Fiルーターは無線LAN親機と呼ばれており、Wi-Fi機器とLANの仲介を行うことができます。

3G/4G(LTE)

 3Gとは携帯電話の通信規格を指し、第3世代移動通信システムと呼ばれています。NTTドコモが2001年にサービスを開始したFOMAはこの3Gサービスの1つです。

 LTEは厳密には3.9Gという位置付けですが、開発メーカーや販売店がLTEを4Gと呼ぶことが多かったため、LTEを4Gと呼ぶのが一般的になっています。Wi-FiやBluetoothとの連携が可能なWiMAX2も4Gの一種です。

5G(移動通信システム)

 第5世代移動通信システムを意味する5Gは、国際電気通信連合(ITU)が定める4Gのさらに次世代の通信規格です。

 通信速度は、4Gが100Mbps~1Gbpsなのに対し、5Gでは下り最大10Gbps、将来的には20Gbpsとなると予測されています。また、省電力化により小型デバイスがバッテリーで10年間以上稼働可能なため、IoTシステムの構築にも欠かせないネットワークになることが想定されています。

 5Gは高速通信が可能であることから、スポーツ観戦などの映像のリアルタイム配信や、映像のデータ分析などでの活用も期待されています。

LPWA

 LPWAはなるべく電力を消費せず遠距離通信を行う通信方式です。

 LPWAは「Low Power Wide Area」の頭文字を取った略称で、IoT向けに開発や仕様の策定が進められています。LPWAは通信を利用する際免許が必要な「ライセンス系」と免許不要の「アンライセンス系」の2つに分かれています。

  • ライセンス系
    NB-IoT(LTE Cat. NB1):IoTに特化した通信方式でLTEをベースにしています。
  • アンライセンス系
    LoRaWAN:かなり低速ではありますが消費電力を抑えることができます。長距離伝送が可能です。
    Sigfox:こちらもLoRaWANと同じく低速で、消費電力が少なく長距離伝送に向いています。

Bluetooth

 BluetoothはPCやスマートフォン、タブレットなどの周辺機器によく使用されている通信技術です。10mほどの狭い範囲での無線通信を行うので、マウスやキーボード、イヤフォンなどの接続に利用されています。

NFC

 NFCとはNear Field Communicationの略称で、10cm程の狭い範囲で通信を行う近距離無線通信規格のことを指します。リーダー機能やP2P機能などが挙げられます。

 おサイフケータイなどに使用されている「FeliCa」もNFCと同じ機能を持っています。

2.3.6 クラウド

 クラウドの役割には、「データの保存(ストレージ)」と「可視化、分析予測、制御(アプリケーション)」があります。ここでは、代表的な3つのクラウドサービスをご紹介します。

Azure

 Microsoft社が提供するパブリッククラウドサービスです(図2.19)。

 AzureはPaaS(Platform as a Service)、IaaS(Infrastructure as a Service)、SaaS(Software as a Service)に対応しMicrosoft社やサードパーティ各社が提供する様々な機能を組み込むことが可能なクラウドサービスです。

図2.19 Azure IoTソリューション
図2.19 Azure IoTソリューション

GCP

 Google社が提供するパブリッククラウドサービスです(図2.20)。

 Google検索やGmail、YouTube、Googleマップなど、Google社の各種サービスを支えるプラットフォームと同等の、高性能で高速、セキュアで安定した強固なインフラを利用できます。

図2.20 GCP IoTソリューション
図2.20 GCP IoTソリューション

AWS(Amazon Web Service)

 Amazon社が提供するパブリッククラウドサービスです(図2.21)。

 世界で一番使われているクラウドサービスで、世界18箇所のリージョン(地理的に離れた領域)、55箇所のアベイラビリティーゾーン(複数の独立した場所)で運用されており、日本には東京と大阪にアベイラビリティーゾーンがあります。

図2.21 AWS IoTソリューション
図2.21 AWS IoTソリューション

2.3.7 本書の第4章から第6章で構築するIoTシステムについて

 IoTシステムについてもう少しわかりやすく説明するために、本書の第4章から第6章で構築する温度センサーを例に簡単なIoTシステムの構築方法について紹介します(図2.22)。

図2.22 温度センサーのIoTシステム構築例
図2.22 温度センサーのIoTシステム構築例

デバイス

 まず、デバイスですが、センサー素子には温度センサーを利用します。ただし、センサー素子だけではデータの値をクラウドに送ることができないため、マイコンとWi-Fiモジュールが必要となります。

 本書では、マイコンとWi-Fiモジュールの役割を担うのが、シングルボードコンピューターであるRaspberry Piです。そして、ネットワークを経由して送られたデータはストレージに蓄積されます。

クラウドストレージ

 本書ではクラウドストレージとして、2.3.6項で紹介したAzureを利用します。そして、クラウドに送信されたデータはPower BIというMicrosoft社が提供しているクラウドBIツールを利用して可視化および分析を行います。

 また、ストレージ以外にもAzureには、あと2つ役割があります。1つ目が、デバイスから送られてきたデータを受け取るためのハブの役割です。AzureのIoT Hubというサービスを利用します。2つ目の役割が、受け取ったデータをストレージに保存する際にCSVデータに変換することです。

 データ変換にはAzureのStream Analyticsというサービスを利用します。IoT HubとStream Analyticsの使い方は第5章で詳しく説明します。

Pythonで動かして学ぶ!あたらしいIoTの教科書

Amazon SEshop その他


Pythonで動かして学ぶ!あたらしいIoTの教科書

著者:株式会社VOST
発売日:2020年3月11日(水)
価格:2,800円+税

本書について

本書は技術者向けのIoTセミナーで定評のあるVOSTの大人気IoT講座をもとにした書籍です。具体的には、センサーから集めたデータをもとに、Pythonを利用して、データの扱い方(データ収集)、AIとの連携(データ分析)、さらにセキュリティについて、サンプルを動かしながら学べる書籍です。

 

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
翔泳社 新刊紹介連載記事一覧

もっと読む

この記事の著者

渡部 拓也(ワタナベ タクヤ)

 翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12063 2020/03/18 07:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング