IoTの紹介
スケッチノート: Nitya Narasimhan 作。画像をクリックすると大きなバージョンが表示されます。
このレッスンは、Microsoft Reactor の Hello IoT シリーズ の一部です。レッスンは2つのビデオに分かれており、1時間のレッスンと、レッスンを深く掘り下げて質問に答える1時間のオフィスアワーセッションがあります。
🎥 上の画像をクリックしてビデオを視聴してください
講義前のクイズ
はじめに
このレッスンでは、モノのインターネット(IoT)の主要な概念を紹介し、ハードウェアのセットアップ方法を案内します。
このレッスンでは、以下の内容をカバーします:
「モノのインターネット」とは何か?
「モノのインターネット」という用語は、1999年に Kevin Ashton によって造られ、センサーを介して物理的な世界とインターネットを接続することを指します。それ以来、センサーからデータを収集したり、アクチュエーター(スイッチをオンにしたり、LEDを点灯させたりするデバイス)を介して現実世界のインタラクションを提供したりする、物理的な世界とインターネットを接続するあらゆるデバイスを指すようになりました。
センサー は、速度、温度、位置などの情報を世界から収集します。
アクチュエーター は、電気信号をスイッチのトリガー、ライトの点灯、音の発生、他のハードウェアへの制御信号の送信などの現実世界のインタラクションに変換します。
IoTはデバイスだけでなく、センサーデータを処理したり、IoTデバイスに接続されたアクチュエーターにリクエストを送信したりするクラウドベースのサービスも含みます。また、インターネット接続がない、または必要としないデバイスも含まれ、これらはエッジデバイスと呼ばれます。これらのデバイスは、通常クラウドでトレーニングされたAIモデルを使用して、センサーデータを自分で処理して応答することができます。
IoTは急速に成長している技術分野です。2020年末までに、300億のIoTデバイスが展開され、インターネットに接続されていると推定されました。今後、2025年までに、IoTデバイスが約80ゼタバイト、つまり80兆ギガバイトのデータを収集すると推定されています。これは膨大な量のデータです!
✅ 調査を行ってください:IoTデバイスが生成するデータのうち、実際に使用されるデータはどれくらいで、どれくらいが無駄になっているのか?なぜ多くのデータが無視されるのか?
このデータはIoTの成功にとって重要です。成功するIoT開発者になるためには、収集する必要があるデータ、収集方法、そのデータに基づいて意思決定を行う方法、必要に応じてその意思決定を物理的な世界とインタラクションさせる方法を理解する必要があります。
IoTデバイス
IoTのTはThings(モノ)を意味し、センサーからデータを収集したり、アクチュエーターを介して現実世界のインタラクションを提供したりするデバイスを指します。
生産や商業用のデバイス、例えば消費者向けのフィットネストラッカーや産業用の機械コントローラーは、通常カスタムメイドです。これらは特定のタスクのニーズを満たすために設計されたカスタム回路基板やカスタムプロセッサを使用し、例えば手首に収まるほど小さくする必要がある場合や、高温、高ストレス、高振動の工場環境で動作するために頑丈にする必要がある場合などです。
IoTについて学ぶ開発者やデバイスのプロトタイプを作成する開発者としては、開発キットから始める必要があります。これらは開発者が使用するために設計された汎用のIoTデバイスであり、センサーやアクチュエーターを接続するための外部ピンセッ ト、デバッグをサポートするハードウェア、大規模な製造時には不要なコストを追加する追加リソースなど、製品デバイスにはない機能を備えています。
これらの開発キットは通常、マイクロコントローラーとシングルボードコンピューターの2つのカテゴリに分かれます。ここではこれらを紹介し、次のレッスンで詳細に説明します。
💁 あなたの電話も、センサーとアクチュエーターが内蔵されており、異なるアプリが異なる方法でセンサーとアクチュエーターを使用し、異なるクラウドサービスと連携する汎用のIoTデバイスと見なすことができます。電話アプリをIoTデバイスとして使用するIoTチュートリアルも見つけることができます。
マイクロコントローラー
マイクロコントローラー(MCU、マイクロコントローラーユニットの略)は、小さなコンピューターであり、以下の要素で構成されています:
🧠 中央処理装置(CPU) - マイクロコントローラーの「脳」であり、プログラムを実行します
💾 メモリ(RAMおよびプログラムメモリ) - プログラム、データ、および変数が保存される場所
🔌 プログラム可能な入出力(I/O)接続 - センサーやアクチュエーターなどの外部周辺機器と通信するための接続
マイクロコントローラーは通常、低コストのコンピューティングデバイスであり、カスタムハードウェアで使用されるものの平均価格は約0.50米ドルにまで低下し、一部のデバイスは0.03米ドルと安価です。開発キットは4米ドルから始まり、機能を追加するにつれてコストが上昇します。Seeed studios のマイクロコントローラー開発キットである Wio Terminal は、センサー、アクチュエーター、WiFi、およびスクリーンを備えており、約30米ドルです。
💁 インターネットでマイクロコントローラーを検索する際には、MCUという用語を検索する際には注意が必要です。これは、マーベル・シネマティック・ユニバース(Marvel Cinematic Universe)に関する多くの結果が返され、マイクロコントローラーではないためです。
マイクロコントローラーは、PCやMacのような汎用コンピューターではなく、非常に特定のタスクを実行するようにプログラムされるように設計されています。非常に特定のシナリオを除いて、モニター、キーボード、およびマウスを接続して汎用タスクを実行することはできません。
マイクロコントローラー開発キットには、通常、オンボードに追加のセンサーやアクチュエーターが付属しています。ほとんどのボードには、プログラム可能なLEDが1つ以上あり、さまざまなメーカーのエコシステムを使用して追加のセンサーやアクチュエーターを追加するための標準プラグや、内蔵センサー(通常は温度センサーなどの最も人気のあるもの)が付属しています。一部のマイクロコントローラーには、BluetoothやWiFiなどの無線接続が内蔵されているか、この接続を追加するための追加のマイクロコントローラーがボードに搭載されています。
💁 マイクロコントローラーは通常、C/C++でプログラムされます。
シングルボードコンピューター
シングルボードコンピューターは、すべての要素が1つの小さなボードに含まれている小型のコンピューティングデバイスです。これらは、デスクトップやラップトップPCやMacに近い仕様を持ち、フルオペレーティングシステムを実行しますが、小型で、消費電力が少なく、はるかに安価です。
Raspberry Piは、最も人気のあるシングルボードコンピューターの1つです。
マイクロコントローラーと同様に、シングルボードコンピューターにはCPU、メモリ、および入出力ピンがありますが、モニターの接続を可能にするグラフィックスチップ、オーディオ出力、キーボード、マウス、およびウェブカメラや外部ストレージなどの標準USBデバイスを接続するためのUSBポートなどの追加機能があります。 プログラムは、ボードに内蔵されたメモリチップではなく、SDカードやハードドライブに保存され、オペレーティングシステムと一緒に保存されます。
🎓 シングルボードコンピューターは、あなたがこれを読んでいるPCやMacの小型で安価なバージョンと考えることができ、センサーやアクチュエーターとインタラクションするためのGPIO(汎用入出力)ピンが追加されています。
シングルボードコンピューターは完全な機能を備えたコンピューターであり、任意の言語でプログラムできます。IoTデバイスは通常、Pythonでプログラムされます。
残りのレッスンのためのハードウェアの選択
以降のすべてのレッスンには、物理的な世界とインタラクションし、クラウドと通信するためのIoTデバイスを使用した課題が含まれています。各レッスンは3つのデバイスオプションをサポートしています - Arduino(Seeed Studios Wio Terminalを使用)、またはシングルボードコンピューター、物理デバイス(Raspberry Pi 4)またはPCやMacで実行される仮想シングルボードコンピューター。
すべての課題を完了するために必要なハードウェアについては、ハードウェアガイド を参照してください。
💁 課題を完了するためにIoTハードウェアを購入する必要はありません。すべての課題は仮想ハードウェアで実行できます。
どのハードウェアを選択するかは、家庭や学校で利用可能なものや、知っているまたは学びたいプログラミング言語によって異なります。両方のハードウェアバリアントは同じセンサーエコシステムを使用するため、1つのパスを開始しても、ほとんどのキットを交換することなく他のパスに変更できます。仮想シングルボードコンピューターは、Raspberry Piを学ぶのと同等であり、最終的にデバイスとセンサーを入手した場合、ほとんどのコードをPiに移行できます。
Arduino開発キット
マイクロコントローラー開発に興味がある場合は、Arduinoデバイスを使用して課題を完了できます。レッスンでは、Arduinoフレームワーク、使用するセンサーとアクチュエーター、およびクラウドと連携するライブラリに関連するコードのみを教えるため、C/C++プログラミングの基本的な理解が必要です。
課題では、Visual Studio Code と PlatformIOマイクロコントローラー開発用拡張機能 を使用します。Arduino IDEに慣れている場合は、このツールの指示は提供されないため、使用することもできます。
シングルボードコンピューター開発キット
シングルボードコンピューターを使用したIoT開発に興味がある場合は、Raspberry PiまたはPCやMacで実行される仮想デバイスを使用して課題を完了できます。
レッスンでは、使用するセンサーとアクチュエーター、およびクラウドと連携するライブラリに関連するコードのみを教えるため、Pythonプログラミングの基本的な理解が必要です。
💁 Pythonのコーディングを学びたい場合は、次の2つのビデオシリーズをチェックしてください:
課題では、Visual Studio Code を使用します。
Raspberry Piを使用する場合は、Raspberry Pi OSのフルデスクトップバージョンを使用してPiを実行し、Raspberry Pi OSバージョンのVS Code を使用してPi上で直接すべてのコーディングを行うか、ヘッドレスデバイスと してPiを実行し、Remote SSH拡張機能 を使用してPCやMacからVS Codeを使用してPiに接続し、直接コーディングしているかのようにコードを編集、デバッグ、および実行します。
仮想デバイスオプションを使用する場合は、コンピューター上で直接コーディングします。センサーやアクチュエーターにアクセスする代わりに、センサー値を定義し、画面上でアクチュエーターの結果を表示するツールを使用します。
デバイスのセットアップ
IoTデバイスのプログラミングを開始する前に、少しのセットアップが必要です。使用するデバイスに応じて、以下の関連する指示に従ってください。
💁 まだデバイスを持っていない場合は、ハードウェアガイド を参照して、使用するデバイスと購入する必要がある追加のハードウェアを決定してください。ハードウェアを購入する必要はありません。すべてのプロジェクトは仮想ハードウェアで実行できます。
これらの指示には、使用するハードウェアやツールの最新の指示を常に使用するために、ハードウェアやツールの作成者のサードパーティウェブサイトへのリンクが含まれています。
デバイスをセットアップし、「Hello World」プロジェクトを完 了するために、関連するガイドを進めてください。これは、この入門部分の4つのレッスンでIoTナイトライトを作成する最初のステップです。
✅ Arduinoとシングルボードコンピューターの両方にVS Codeを使用します。これを使用したことがない場合は、VS Codeサイト で詳細を確認してください。
IoTの応用
IoTは、いくつかの広範なグループにわたる幅広いユースケースをカバーしています:
- 消費者向けIoT
- 商業用IoT
- 産業用IoT
- インフラストラクチャIoT
✅ 以下に説明する各分野について、テキストに記載されていない具体的な例を1つ見つけてください。
消費者向けIoT
消費者向けIoTは、消費者が家庭で購入して使用するIoTデバイスを指します。これらのデバイスの中には、スマートスピーカー、スマート暖房システム、ロボット掃除機など、非常に便利なものもあります。他のものは、その有用性が疑問視されるものもあり、例えば、音声制御の蛇口は、流れる水の音で音声制御が聞こえなくなり、オフにできなくなることがあります。
消費者向けIoTデバイスは、特に障害を持つ10億人の人々にとって、周囲の環境でより多くのことを達成する力を与えています。ロボット掃除機は、自分で掃除機をかけることができない移動障害を持つ人々に清潔な床を提供し、音声制御のオーブンは、視覚や運動制御が制限されている人々が音声だけでオーブンを加熱できるようにし、健康モニターは、患者が自分の慢性疾患をより定期的かつ詳細に監視できるようにします。これらのデバイスは非常に普及しており、COVIDパンデミック中のバーチャルスクーリングを行う学生が、スマートホームデバイスでタイマーを設定して学校の課題を追跡したり、クラスのミーティングを思い出させるアラームを設定したりするなど、日常生活の一部として使用しています。
✅ あなたの身の回りや家庭にある消費者向けIoTデバイスは何ですか?
商業用IoT
商業用IoTは、職場でのIoTの使用をカバーしています。オフィス環境では、占有センサーやモーションディテクターがあり、照明や暖房を管理して、必要ないときにライトや暖房をオフにしてコストと炭素排出量を削減します。工場では、IoTデバイスが労働者がヘルメットを着用していないか、騒音が危険なレベルに達したかを監視して安全性を確保します。小売業では、IoTデバイスが冷蔵庫や冷凍庫の温度を測定し、必要な温度範囲外の場合に店主に警告を発し、棚の商品を監視して、売れた商品を補充するよう従業員に指示します。輸送業界では、車両の位置を監視し、道路使用料のための走行距離を追跡し、運転手の勤務時間と休憩の遵守を追跡し、車両がデポに近づいたときにスタッフに通知して積み下ろしの準備をするなど、IoTの依存度がますます高まっています。
✅ あなたの学校や職場にある商業用IoTデバイスは何ですか?
産業用IoT(IIoT)
産業用IoT、またはIIoTは、大規模な機械の制御と管理にIoTデバイスを使用することを指します。これには、工場からデジタル農業まで、さまざまなユースケースが含まれます。
工場では、IoTデバイスがさまざまな方法で使用されています。機械は、温度、振動、回転速度などを追跡する複数のセンサーで監視されます。このデータは、機械が特定の許容範囲外に出た場合に停止するために監視されます。例えば、過熱した場合に停止します。このデータは、故障に至るデータを分析し、他の故障を予測するためにAIモデルを使用して予測保守を行うためにも使用されます。
デジタル農業は、特に500万世帯の20億人が自給農業で生計を立てている場合、地球の人口を養うために重要です。デジタル農業は、数ドルのセンサーから大規模な商業セットアップまでさまざまです。農家は、温度を監視し、成長度日を使用して作物の収穫時期を予測することから始めることができます。土壌水分の監視を自動灌漑システムに接続して、必要なだけの水を植物に与え、乾燥しないようにしながら水を無駄にしないようにします。農家はさらに進んで、ドローン、衛星データ、AIを使用して、広大な農地の作物の成長、病気、土壌の質を監視しています。
✅ 農家を助けるための他のIoTデバイスは何ですか?
インフラストラクチャIoT
インフラストラクチャIoTは、人々が毎日使用する地域およびグローバルなインフラストラクチャの監視と制御を指します。
スマートシティは、IoTデバイスを使用して都市のデータを収集し、それを使用して都市の運営を改善する都市エリアです。これらの都市は通常、地方自治体、学界、および地元企業との協力で運営され、交通、駐車、汚染などのさまざまなものを追跡および管理します。例えば、デンマークのコペンハーゲンでは、空気汚染が地元住民にとって重要であり、測定され、そのデータは最もクリーンなサイクリングおよびジョギングルートの情報を提供するために使用されます。
スマートグリッドは、個々の家庭のレベルで使用データを収集することにより、電力需要のより良い分析を可能にします。このデータは、新しい発電所を建設する場所の決定を含む国レベルの意思決定を導き、個人レベルでは、ユーザーに使用している電力の量、使用している時間、コストを削減するための提案(例えば、夜間に電気自動車を充電するなど)を提供します。
✅ あなたが住んでいる場所で何かを測定するためにIoTデバイスを追加できるとしたら、それは何ですか?
身の回りにあるかもしれないIoTデバイスの例
あなたがどれだけ多くのIoTデバイスを持っているかに驚くでしょう。私は自宅からこれを書いていますが、以下のデバイスがインターネットに接続され、アプリ制御、音声制御、または電話を介してデータを送信するスマート機能を備えています:
- 複数のスマートスピーカー
- 冷蔵庫、食器洗い機、オーブン、電子レンジ
- 太陽光発電用の電力モニター
- スマートプラグ
- ビデオドアベルとセキュリティカメラ
- 複数のスマートルームセンサーを備えたスマートサーモスタット
- ガレージドアオープナー
- ホームエンターテイメントシステムと音声制御テレビ
- 照明
- フィットネスおよび健康トラッカー
これらのデバイスはすべてセンサーおよび/またはアクチュエーターを備えており、インターネットと通信します。私は電話からガレージドアが開いているかどうかを確認し、スマートスピーカーに閉じるように指示できます。夜にまだ開いている場合は、自動的に閉じるようにタイマーを設定することもできます。ドアベルが鳴ると、世界中のどこにいても電話から誰がいるかを見ることができ、ドアベルに内蔵されたスピーカーとマイクを介して話すことができます。血糖値、心拍数、睡眠パターンを監視し、データのパターンを見て健康を改善することができます。クラウドを介して照明を制御し、インターネット接続が切れると暗闇の中に座ることができます。
🚀 チャレンジ
自宅、学校、または職場にあるIoTデバイスをできるだけ多くリストアップしてください - 思っているよりも多いかもしれません!