1. 組込みシステムとIoT入門 MOC
- 組込みシステムとは
- 組込みシステムの定義 (特定の機能に特化し、機器に組み込まれるコンピュータシステム)
- 組込みシステムの特徴 (リソース制約, リアルタイム性, 高信頼性, 省電力)
[[汎用コンピュータとの違い]][[身の回りの組込みシステムの例 (家電, 自動車, 産業機器)]]
- IoT (Internet of Things) とは
- 組込みシステムとIoTの関係
- IoTデバイスは組込みシステムの一形態
[["M2M (Machine-to-Machine)"との関係]]
- 開発の難しさと特有の課題
[[ハードウェアとソフトウェアの密接な連携]][[リソースの制約 (メモリ, CPU, 電力)]][[デバッグの困難さ]][[セキュリティリスク]][[ライフサイクルの長さとメンテナンス]]
- 組込み/IoT開発の学習ロードマップ (例)
2. 組込みシステムのハードウェア基礎 MOC
- マイクロプロセッサ (MPU) vs. マイクロコントローラ (MCU) MOC
[[MPUの定義と特徴 (汎用プロセッサ)]][[MCUの定義と特徴 (CPU, メモリ, I/Oがワンチップに統合)]][[MPUとMCUの使い分け]]
- MCUのアーキテクチャ
[[CPUコア (ARM Cortex-M, RISC-V, AVRなど)]][[命令セットアーキテクチャ (ISA - RISC vs. CISC)]](再掲・組込み文脈)- メモリ (Memory)
[[フラッシュメモリ (Flash Memory) - プログラム格納用]][[SRAM (Static RAM) - データ格納用]][[EEPROM (Electrically Erasable PROM)]]
- 内蔵周辺機能 MOC
- Output) (Lチカの基礎)
- Counter)
[[PWM (Pulse Width Modulation) 制御]](モーター、LED調光)
- 割り込みコントローラ (Interrupt Controller)
- Dコンバータ (ADC - Analog-to-Digital Converter)
- Aコンバータ (DAC - Digital-to-Analog Converter)
- ウォッチドッグタイマ (WDT - Watchdog Timer)
- シリアル通信インターフェース (詳細は後述)
[[UART (Universal Asynchronous Receiver/Transmitter)]][[I2C (Inter-Integrated Circuit)]][[SPI (Serial Peripheral Interface)]]
- シングルボードコンピュータ (SBC - Single-Board Computer) MOC
[[Raspberry Pi (フルサイズモデル)]](MPUベース)[[SBCとMCUボードの違い]]
- (オプション) FPGA (Field-Programmable Gate Array) と ASIC (Application-Specific Integrated Circuit)
3. 組込みシステムのソフトウェア基礎 MOC
- 組込みプログラミング言語 MOC
- C言語と組込み開発
[[ビット演算]][[ポインタとメモリアドレス直接操作]][[volatileキーワード]][[構造体とレジスタマッピング]]
- C++と組込み開発
[[オブジェクト指向の適用]][[RAII (Resource Acquisition Is Initialization) によるリソース管理]][[組込み向けC++の注意点 (例外、RTTI、STL)]]
- CircuitPython MOC
[[Pythonの組込み向けサブセット]][[ラピッドプロトタイピングと教育での利用]]
[[(オプション) Ada, Rust, Goなどの組込み利用]]
- C言語と組込み開発
- ベアメタルプログラミング (Bare-metal Programming) MOC
- OSなしでハードウェアを直接制御するプログラミング
[[ブートシーケンスとスタートアップルーチン]][[レジスタ直接操作]][[割り込みハンドラ (Interrupt Service Routine - ISR) の実装]]
- リアルタイムOS (RTOS - Real-Time Operating System) MOC
[[RTOSの定義と目的 (時間的制約を守る)]][[汎用OSとの違い]]- RTOSのコアコンセプト
[[タスク (スレッド) 管理]][[リアルタイムスケジューリング]](優先度ベース、プリエンプティブ)[[タスク間同期 (セマフォ, ミューテックス, キュー)]][[割り込み管理]][[メモリ管理]]
- ハードリアルタイム vs. ソフトリアルタイム
- 代表的なRTOS
[[FreeRTOS]](デファクトスタンダード)[[Azure RTOS (ThreadX)]][[Zephyr]][[mbed OS]]
- 組込みLinux (Embedded Linux) MOC
[[組込みLinuxの利点と適用分野]](SBCなど高機能デバイス)[[クロスコンパイル環境の構築]][[ブートローダ (U-Bootなど)]][[Linuxカーネルのコンフィグレーションとビルド]][[ルートファイルシステムの構築]][[デバイスドライバの基礎]][[(オプション) Yocto Project / Buildroot]](カスタムLinuxディストリビューション構築)
4. IoT向けハードウェアプラットフォーム MOC
- Arduino MOC
[[Arduinoの思想とエコシステム (プロトタイピング、教育)]][[Arduinoボードの種類 (Uno, Nano, Megaなど)]][[Arduino IDEとプログラミング言語 (C++ベース)]][[シールド (Shields) による機能拡張]]
- ESP8266 MOC
[[ESP32/ESP8266の特徴 (Wi-Fi/Bluetooth内蔵、低価格、高性能)]][[開発環境 (Arduino IDE, ESP-IDF, MicroPython)]]
- Raspberry Pi Pico MOC
[[RP2040マイクロコントローラ]][[PIO (Programmable I/O)]][[開発環境 (C/C++ SDK, MicroPython)]]
- STM32 MOC (ARM Cortex-Mベース)
[[STM32シリーズのラインナップ]][[開発環境 (STM32CubeIDE, Mbed, Keil, IAR)]]
- Raspberry Pi (フルサイズ) MOC (SBC)
[[Raspberry Pi OS (旧Raspbian)]][[GPIOプログラミング (Python, C)]][[IoTゲートウェイとしての利用]]
- センサー (Sensors) MOC
[[センサーの種類 (温度, 湿度, 圧力, 加速度, ジャイロ, 光, 距離, ガスなど)]][[センサーとのインターフェース (I2C, SPI, UART, アナログ)]]
- アクチュエータ (Actuators) MOC
[[アクチュエータの種類 (LED, モーター, サーボ, リレー, ソレノイド)]][[ドライバ回路の必要性]]
5. IoT通信プロトコルとネットワーク MOC
- IoTネットワークの階層と課題 (低消費電力、長距離、多数デバイス接続)
- 低消費電力広域ネットワーク (LPWAN - Low-Power Wide-Area Network) MOC
- LoRaWAN MOC
[[LoRa (物理層) と LoRaWAN (MAC層)]][[アーキテクチャ (エンドデバイス, ゲートウェイ, ネットワークサーバー, アプリケーションサーバー)]][[クラス (A, B, C)]]
- NB-IoT (NarrowBand-IoT) MOC (セルラーLPWAN)
[[Sigfox MOC]](ウルトラナローバンド)
- LoRaWAN MOC
- 近距離無線通信 (Short-Range Wireless) MOC
- Wi-Fi (IEEE 802.11)
[[IoTにおけるWi-Fiの利用 (消費電力の課題)]][[Wi-Fi HaLow (IEEE 802.11ah)]]
- Bluetooth Low Energy (BLE) MOC
[[BLEのアーキテクチャ (GATT, GAP)]][[セントラルとペリフェラル]][[プロファイル、サービス、キャラクタリスティック]][[ビーコン (iBeacon, Eddystone)]]
- メッシュネットワークプロトコル
[[Zigbee MOC]][[Z-Wave MOC]][[Thread MOC]]
[[NFC (Near Field Communication)]]
- Wi-Fi (IEEE 802.11)
- アプリケーション層プロトコル (IoT向け) MOC
- MQTT (Message Queuing Telemetry Transport) MOC
[[Publish/Subscribeモデル]][[ブローカー (Broker), トピック (Topic), QoS (Quality of Service)]]
- CoAP (Constrained Application Protocol) MOC
[[リソース制約環境向けのRESTライクプロトコル]][[UDPベース]]
- AMQP (Advanced Message Queuing Protocol) MOC
- HTTPSのIoT利用と課題
- MQTT (Message Queuing Telemetry Transport) MOC
6. IoTプラットフォームとクラウド連携 MOC
- IoTプラットフォームの役割 (デバイス管理、データ収集、処理、分析、可視化)
- 主要なクラウドIoTプラットフォーム
- AWS IoT MOC
[[AWS IoT Core (デバイスゲートウェイ, メッセージブローカー)]][[AWS IoT Device Management]][[AWS IoT Device Defender]](セキュリティ)[[AWS IoT Analytics]][[AWS IoT Greengrass]](エッジコンピューティング)
- Azure IoT MOC
[[Azure IoT Hub]][[Azure IoT Central]](SaaSソリューション)[[Azure Sphere]](セキュアMCUプラットフォーム)
- Google Cloud IoT MOC
[[Cloud IoT Core (サービス終了、移行先)]][[Pub/SubとDataflowを用いたアーキテクチャ]]`
- AWS IoT MOC
- デバイスプロビジョニングと管理
- データインジェストとストレージ
- ルールエンジンとイベント処理
- デバイスツイン (Device Twin / Digital Twin)
- クラウドからデバイスへの通信 (Cloud-to-Device)
7. 組込みシステムとIoTのセキュリティ MOC
- 組込み/IoTセキュリティの特有の脅威 (物理的攻撃, ライフサイクルの長さ, リソース制約)
- デバイスレベルのセキュリティ MOC
- セキュアブート (Secure Boot)
- TEE (Trusted Execution Environment)
- セキュアエレメント (SE)
- 物理的複製困難関数 (PUF - Physically Unclonable Function)
- ファームウェアの暗号化と署名
- デバッグポートの無効化
[[耐タンパー性 (Tamper Resistance)]]
- 通信のセキュリティ MOC
[[TLS / DTLS (Datagram TLS)]](CoAP向け)[[VPNの利用]][[プロトコル固有のセキュリティ (LoRaWANのJoin Procedureなど)]]
- ネットワークレベルのセキュリティ MOC
[[デバイスのセグメンテーション]][[ファイアウォールとIDS/IPS]]
- アプリケーションレベルのセキュリティ MOC
- デバイス認証と認可 (X.509証明書, トークン)
[[APIセキュリティ]][[データの暗号化 (保存時、転送時)]]
- OTA) MOC
- セキュリティのライフサイクル管理
- 主要なIoTセキュリティガイドライン
8. IoT開発のプロセスと運用 MOC
- 組込み開発のワークフロー MOC
[[クロスコンパイル]][[デバッギングとトレース (JTAG, SWD)]][[ロジックアナライザとオシロスコープ]][[ハードウェアインザループ (HIL) シミュレーション]]
- IoTシステムのテスト MOC
[[ユニットテストとハードウェア抽象化レイヤー (HAL)]][[インテグレーションテスト (ハードウェア含む)]][[システムテスト]][[耐久テストとストレステスト]][[消費電力テスト]]
- IoT MOC
- DevOps for IoT (IoT DevOps) MOC
9. IoTの応用分野とケーススタディ MOC
- スマートホーム (スマートスピーカー, スマート照明, スマートロック)
- ウェアラブルデバイス (スマートウォッチ, フィットネストラッカー)
- コネクテッドカーと自動運転 (ECU, CANバス, V2X)
- インダストリー4.0
[[予知保全 (Predictive Maintenance)]][[スマートファクトリー]][[SCADAとPLC]]
- スマートシティ (スマート街灯, 交通監視, 環境センシング)
- スマート農業 (Smart Agriculture) (土壌センサー, ドローン, 自動水やり)
- ヘルスケアIoT (IoMT - Internet of Medical Things) (遠隔患者モニタリング, ウェアラブルセンサー)
- スマートグリッドとエネルギー管理
- 小売業 (スマートリテール) (在庫管理, ビーコンによる顧客追跡)
10. IoTの将来とトレンド MOC
- TinyML)
- 5GとIoT (高速・低遅延・多接続)
- 組込み (ポータビリティとセキュリティ)
- デジタルツイン (Digital Twin)
- セキュリティとプライバシーのさらなる重要化
- 持続可能性と省エネルギー技術
- オープンソースハードウェアとソフトウェアの役割拡大