# IoT入門 ![このレッスンの概要を示すスケッチノート](../../../../../translated_images/lesson-1.2606670fa61ee904687da5d6fa4e726639d524d064c895117da1b95b9ff6251d.ja.jpg) > スケッチノート作成者:[Nitya Narasimhan](https://github.com/nitya)。画像をクリックすると拡大版が表示されます。 このレッスンは、[Microsoft Reactor](https://developer.microsoft.com/reactor/?WT.mc_id=academic-17441-jabenn)による[Hello IoTシリーズ](https://youtube.com/playlist?list=PLmsFUfdnGr3xRts0TIwyaHyQuHaNQcb6-)の一環として教えられました。このレッスンは2つのビデオで構成されており、1時間のレッスンと、レッスンの内容をさらに深掘りし質問に答える1時間のオフィスアワーで構成されています。 [![レッスン1: IoT入門](https://img.youtube.com/vi/bVFfcYh6UBw/0.jpg)](https://youtu.be/bVFfcYh6UBw) [![レッスン1: IoT入門 - オフィスアワー](https://img.youtube.com/vi/YI772q5v3yI/0.jpg)](https://youtu.be/YI772q5v3yI) > 🎥 上記の画像をクリックしてビデオをご覧ください ## レクチャー前のクイズ [レクチャー前のクイズ](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/1) ## はじめに このレッスンでは、モノのインターネット(IoT)に関する基本的なトピックを取り上げ、ハードウェアのセットアップを始める方法を学びます。 このレッスンで取り上げる内容は以下の通りです: * [「モノのインターネット」とは何か?](../../../../../1-getting-started/lessons/1-introduction-to-iot) * [IoTデバイス](../../../../../1-getting-started/lessons/1-introduction-to-iot) * [デバイスのセットアップ](../../../../../1-getting-started/lessons/1-introduction-to-iot) * [IoTの応用例](../../../../../1-getting-started/lessons/1-introduction-to-iot) * [身の回りにあるIoTデバイスの例](../../../../../1-getting-started/lessons/1-introduction-to-iot) ## 「モノのインターネット」とは何か? 「モノのインターネット(Internet of Things)」という用語は、1999年に[ケビン・アシュトン](https://wikipedia.org/wiki/Kevin_Ashton)によって考案され、センサーを通じて物理的な世界をインターネットに接続することを指します。それ以来、この用語は、センサーからデータを収集したり、アクチュエータ(スイッチをオンにしたり、LEDを点灯させたりするデバイス)を介して現実世界と相互作用したりする、物理的な世界と関わるあらゆるデバイスを指すようになりました。 > **センサー**は、速度、温度、位置など、世界から情報を収集します。 > > **アクチュエータ**は、電気信号をスイッチの作動、ライトの点灯、音の発生、または他のハードウェアへの制御信号送信などの現実世界の動作に変換します。 IoTという技術分野は、単なるデバイス以上のものを含みます。センサーデータを処理したり、IoTデバイスに接続されたアクチュエータにリクエストを送信したりするクラウドベースのサービスも含まれます。また、インターネット接続を持たない、または必要としないデバイス(エッジデバイスと呼ばれる)も含まれます。これらのデバイスは通常、クラウドでトレーニングされたAIモデルを使用して、センサーデータを自ら処理し応答します。 IoTは急速に成長している技術分野です。2020年末までに、300億台のIoTデバイスがインターネットに接続されていると推定されました。将来を見据えると、2025年までにIoTデバイスが約80ゼタバイト(80兆ギガバイト)のデータを収集すると予測されています。これは膨大なデータ量です! ![2015年に50億未満だったIoTデバイスが2025年には300億を超えるという上昇傾向を示すグラフ](../../../../../images/connected-iot-devices.svg) ✅ 少し調べてみましょう:IoTデバイスが生成するデータのうち、実際に使用されるデータはどのくらいで、どのくらいが無駄になっているのでしょうか?なぜこれほど多くのデータが無視されるのでしょうか? このデータこそがIoTの成功の鍵です。成功するIoT開発者になるためには、収集すべきデータを理解し、それをどのように収集し、それに基づいてどのように意思決定を行い、必要に応じてその意思決定を物理的な世界とどのように相互作用させるかを理解する必要があります。 ## IoTデバイス IoTの**T**は**Things(モノ)**を指します。これは、センサーを通じてデータを収集したり、アクチュエータを介して現実世界と相互作用したりするデバイスのことです。 生産や商業用途のデバイス(例:消費者向けフィットネストラッカーや産業用機械コントローラー)は通常、特定のタスクに合わせてカスタム設計された回路基板やプロセッサを使用して作られます。これらは、手首に収まるほど小型であったり、高温、高ストレス、高振動の工場環境で動作するのに十分頑丈であったりする必要があります。 IoTを学ぶ、またはデバイスのプロトタイプを作成する開発者としては、開発キットから始める必要があります。これらは開発者が使用するために設計された汎用のIoTデバイスであり、センサーやアクチュエータを接続するための外部ピンセット、デバッグをサポートするハードウェア、大量生産時には不要なコストを追加するリソースなど、製品デバイスにはない機能を備えています。 これらの開発キットは通常、マイクロコントローラーとシングルボードコンピューターの2つのカテゴリに分類されます。ここではこれらを紹介し、次のレッスンでさらに詳しく説明します。 > 💁 あなたのスマートフォンも、センサーやアクチュエータが内蔵された汎用のIoTデバイスと考えることができます。異なるアプリが異なる方法でセンサーやアクチュエータを使用し、異なるクラウドサービスと連携します。スマートフォンアプリをIoTデバイスとして使用するチュートリアルも見つけることができます。 ### マイクロコントローラー マイクロコントローラー(MCUとも呼ばれる)は、小型のコンピューターで以下の要素で構成されています: 🧠 中央処理装置(CPU)1つ以上 - プログラムを実行する「頭脳」 💾 メモリ(RAMとプログラムメモリ) - プログラム、データ、変数を保存する場所 🔌 プログラム可能な入出力(I/O)接続 - センサーやアクチュエータなどの外部周辺機器と通信するため マイクロコントローラーは通常、低コストのコンピューティングデバイスであり、カスタムハードウェアで使用されるものの平均価格は約0.50米ドル、最も安いものでは0.03米ドル程度です。開発キットは4米ドルから始まり、機能を追加するにつれてコストが上昇します。[Wio Terminal](https://www.seeedstudio.com/Wio-Terminal-p-4509.html)は、[Seeed studios](https://www.seeedstudio.com)から提供されるマイクロコントローラー開発キットで、センサー、アクチュエータ、WiFi、スクリーンを備え、約30米ドルで購入できます。 ![Wio Terminal](../../../../../translated_images/wio-terminal.b8299ee16587db9aa9e05fabf9721bccd9eb8fb541b7c1a8267241282d81b603.ja.png) > 💁 インターネットでマイクロコントローラーを検索する際は、**MCU**という用語を検索する際に注意してください。これは、マイクロコントローラーではなく、マーベル・シネマティック・ユニバース(Marvel Cinematic Universe)に関する多くの結果を返す可能性があります。 マイクロコントローラーは、PCやMacのような汎用コンピューターではなく、非常に特定のタスクを実行するように設計されています。非常に特定のシナリオを除いて、モニター、キーボード、マウスを接続して汎用タスクを実行することはできません。 マイクロコントローラー開発キットには、通常、オンボードで追加のセンサーやアクチュエータが付属しています。ほとんどのボードにはプログラム可能なLEDが1つ以上搭載されており、標準プラグを使用してさまざまなメーカーのエコシステムにセンサーやアクチュエータを追加したり、内蔵センサー(通常は温度センサーなどの人気のあるもの)を使用したりできます。一部のマイクロコントローラーには、BluetoothやWiFiなどの無線接続が内蔵されているか、ボード上に追加のマイクロコントローラーが搭載されており、この接続を提供します。 > 💁 マイクロコントローラーは通常、C/C++でプログラムされます。 ### シングルボードコンピューター シングルボードコンピューターは、すべての要素が1つの小さなボードに収められた小型のコンピューティングデバイスです。これらは、デスクトップやノートPC、Macに近い仕様を持ち、完全なオペレーティングシステムを実行しますが、小型で、消費電力が少なく、非常に安価です。 ![Raspberry Pi 4](../../../../../translated_images/raspberry-pi-4.fd4590d308c3d456db1327e86b395ddcd735513267aafd4879ea2785f7792eac.ja.jpg) Raspberry Piは、最も人気のあるシングルボードコンピューターの1つです。 マイクロコントローラーと同様に、シングルボードコンピューターにはCPU、メモリ、入出力ピンがありますが、モニター接続用のグラフィックチップ、オーディオ出力、USBポートなどの追加機能も備えています。プログラムは、ボードに内蔵されたメモリチップではなく、SDカードやハードドライブに保存され、オペレーティングシステムとともに使用されます。 > 🎓 シングルボードコンピューターは、あなたがこれを読んでいるPCやMacの小型で安価なバージョンと考えることができます。さらに、センサーやアクチュエータと相互作用するためのGPIO(汎用入出力)ピンが追加されています。 シングルボードコンピューターは完全なコンピューターであるため、あらゆるプログラミング言語でプログラムすることができます。IoTデバイスは通常、Pythonでプログラムされます。 ### 今後のレッスンで使用するハードウェアの選択 以降のレッスンでは、IoTデバイスを使用して物理的な世界と相互作用し、クラウドと通信する課題が含まれます。各レッスンでは3つのデバイス選択肢をサポートしています:Arduino(Seeed Studios Wio Terminalを使用)、またはシングルボードコンピューター(Raspberry Pi 4の物理デバイスまたはPCやMac上で動作する仮想シングルボードコンピューター)。 すべての課題を完了するために必要なハードウェアについては、[ハードウェアガイド](../../../hardware.md)をご覧ください。 > 💁 課題を完了するためにIoTハードウェアを購入する必要はありません。すべて仮想シングルボードコンピューターを使用して行うことができます。 どのハードウェアを選択するかは、家庭や学校で利用可能なもの、または学びたいプログラミング言語によります。どちらのハードウェアバリアントも同じセンサーエコシステムを使用するため、1つのパスを選んでも、ほとんどのキットを交換することなく他のパスに切り替えることができます。仮想シングルボードコンピューターは、Raspberry Piで学ぶのと同等であり、最終的にデバイスやセンサーを入手した場合、そのコードのほとんどをPiに移行できます。 ### Arduino開発キット マイクロコントローラー開発に興味がある場合は、Arduinoデバイスを使用して課題を完了できます。C/C++プログラミングの基本的な理解が必要です。このレッスンでは、Arduinoフレームワーク、使用するセンサーやアクチュエータ、クラウドと連携するライブラリに関連するコードのみを教えます。 課題では、[Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn)と[PlatformIO拡張機能](https://platformio.org)を使用してマイクロコントローラー開発を行います。Arduino IDEに慣れている場合は、このツールを使用することもできますが、指示は提供されません。 ### シングルボードコンピューター開発キット シングルボードコンピューターを使用してIoT開発を学びたい場合は、Raspberry PiまたはPCやMac上で動作する仮想デバイスを使用して課題を完了できます。 Pythonプログラミングの基本的な理解が必要です。このレッスンでは、使用するセンサーやアクチュエータ、クラウドと連携するライブラリに関連するコードのみを教えます。 > 💁 Pythonを学びたい場合は、以下の2つのビデオシリーズをご覧ください: > > * [Python for beginners](https://channel9.msdn.com/Series/Intro-to-Python-Development?WT.mc_id=academic-17441-jabenn) > * [More Python for beginners](https://channel9.msdn.com/Series/More-Python-for-Beginners?WT.mc_id=academic-7372-jabenn) 課題では、[Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn)を使用します。 Raspberry Piを使用する場合は、Raspberry Pi OSのフルデスクトップバージョンを使用してPi上で直接コーディングを行うか、[VS CodeのRaspberry Pi OSバージョン](https://code.visualstudio.com/docs/setup/raspberry-pi?WT.mc_id=academic-17441-jabenn)を使用することができます。または、Piをヘッドレスデバイスとして実行し、[Remote SSH拡張機能](https://code.visualstudio.com/docs/remote/ssh?WT.mc_id=academic-17441-jabenn)を使用してPCやMacからPiに接続し、直接コーディングしているかのようにコードを編集、デバッグ、実行することができます。 仮想デバイスオプションを使用する場合は、コンピューター上で直接コーディングを行います。センサーやアクチュエータにアクセスする代わりに、センサー値を定義し、アクチュエータの結果を画面に表示するツールを使用してこれらのハードウェアをシミュレートします。 ## デバイスのセットアップ IoTデバイスをプログラミングする前に、少しだけセットアップが必要です。使用するデバイスに応じて、以下の関連する指示に従ってください。 💁 まだデバイスをお持ちでない場合は、[ハードウェアガイド](../../../hardware.md)を参照して、どのデバイスを使用するか、また追加で購入する必要があるハードウェアを確認してください。すべてのプロジェクトは仮想ハードウェア上で実行可能なので、ハードウェアを購入する必要はありません。 これらの指示には、使用するハードウェアやツールの製作者によるサードパーティのウェブサイトへのリンクが含まれています。これにより、さまざまなツールやハードウェアに関する最新の指示を常に利用できるようになります。 関連するガイドを進めてデバイスをセットアップし、「Hello World」プロジェクトを完成させてください。これが、この入門編の4つのレッスンでIoTナイトライトを作成する最初のステップとなります。 * [Arduino - Wio Terminal](wio-terminal.md) * [シングルボードコンピュータ - Raspberry Pi](pi.md) * [シングルボードコンピュータ - 仮想デバイス](virtual-device.md) ✅ Arduinoとシングルボードコンピュータの両方でVS Codeを使用します。これをまだ使ったことがない場合は、[VS Codeのサイト](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn)で詳細を確認してください。 ## 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億人が[自給農業](https://wikipedia.org/wiki/Subsistence_agriculture)で生計を立てている場合、増加する人口を養うために重要です。デジタル農業は、数ドルのセンサーから大規模な商業セットアップまでさまざまです。農家は、温度を監視し、[成長度日](https://wikipedia.org/wiki/Growing_degree-day)を使用して作物が収穫可能になる時期を予測することから始めることができます。土壌の水分を監視し、自動灌漑システムに接続して、作物が乾燥しないように必要な量の水を与え、無駄を防ぐことができます。農家はさらに進んで、ドローン、衛星データ、AIを使用して広大な農地の作物の成長、病気、土壌の質を監視しています。 ✅ 農家を助けるためにどのようなIoTデバイスが考えられますか? ### インフラIoT インフラIoTは、人々が日常的に使用する地域およびグローバルなインフラを監視・制御するものです。 [スマートシティ](https://wikipedia.org/wiki/Smart_city)は、都市のデータを収集し、それを使用して都市の運営を改善するIoTデバイスを使用する都市エリアです。これらの都市は通常、地方自治体、学術機関、地元企業の協力によって運営され、交通、駐車場、汚染などを追跡・管理します。例えば、デンマークのコペンハーゲンでは、地元住民にとって重要な空気汚染が測定され、そのデータを使用して最も清潔なサイクリングやジョギングルートの情報を提供しています。 [スマート電力網](https://wikipedia.org/wiki/Smart_grid)は、個々の家庭レベルで使用データを収集することで、電力需要の分析を改善します。このデータは、国レベルでは新しい発電所を建設する場所の決定に役立ち、個人レベルでは、使用している電力の量や使用時間、さらにはコスト削減の提案(例えば、夜間に電気自動車を充電するなど)を提供します。 ✅ あなたの住んでいる場所で何かを測定するためにIoTデバイスを追加するとしたら、それは何ですか? ## 身の回りにあるIoTデバイスの例 あなたの周りにどれだけ多くのIoTデバイスがあるかに驚くかもしれません。私は自宅でこれを書いていますが、以下のようなデバイスがインターネットに接続され、アプリ制御、音声制御、またはスマートフォンを通じてデータを送信する機能を持っています: * 複数のスマートスピーカー * 冷蔵庫、食器洗い機、オーブン、電子レンジ * 太陽光発電用の電力モニター * スマートプラグ * ビデオドアベルとセキュリティカメラ * 複数のスマートルームセンサー付きスマートサーモスタット * ガレージドアオープナー * ホームエンターテインメントシステムと音声制御テレビ * 照明 * フィットネスおよび健康トラッカー これらすべての種類のデバイスにはセンサーやアクチュエーターが搭載されており、インターネットと通信しています。スマートフォンからガレージドアが開いているかどうかを確認し、スマートスピーカーに閉じるよう指示することができます。夜間にまだ開いている場合は、自動的に閉じるようタイマーを設定することもできます。ドアベルが鳴ると、世界中どこにいてもスマートフォンから誰がいるかを見ることができ、ドアベルに内蔵されたスピーカーとマイクを通じて話すことができます。血糖値、心拍数、睡眠パターンを監視し、データのパターンを分析して健康を改善することができます。クラウドを介して照明を制御することができますが、インターネット接続が切れると暗闇に座ることになります。 --- ## 🚀 チャレンジ 自宅、学校、職場にあるIoTデバイスをできるだけ多く挙げてみましょう。思った以上に多いかもしれません! ## 講義後のクイズ [講義後のクイズ](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/2) ## レビューと自己学習 コンシューマーIoTプロジェクトの利点と失敗について調べてみましょう。プライバシー問題、ハードウェアの問題、接続性の欠如による問題など、失敗した事例についてニュースサイトの記事を確認してください。 いくつかの例: * Twitterアカウント **[Internet of Sh*t](https://twitter.com/internetofshit)** *(不適切な表現に注意)* でコンシューマーIoTの失敗例を確認してください。 * [c|net - 私のApple Watchが命を救った:5人の体験談](https://www.cnet.com/news/apple-watch-lifesaving-health-features-read-5-peoples-stories/) * [c|net - ADT技術者が顧客のカメラフィードを数年間盗み見していたことを認める](https://www.cnet.com/news/adt-home-security-technician-pleads-guilty-to-spying-on-customer-camera-feeds-for-years/) *(トリガー警告 - 非同意の盗撮)* ## 課題 [IoTプロジェクトを調査する](assignment.md) **免責事項**: この文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を期すよう努めておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された原文が公式な情報源と見なされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の使用に起因する誤解や誤認について、当方は一切の責任を負いません。