awesome-iotリポジトリに見るハードウェアとプロトコルの世界
IoT開発は霧の中を歩いているようなものです。数多くのメーカーがハードウェアを提供し、通信プロトコルは毎年増加しています。さらにMicroPython、Rust、C++の選択肢を加えると、設計段階ですで頭が痛くなってきます。私の初めて温度センサーダッシュボードを作ったとき、CoAPとMQTTの違いやマイクロコントローラーで何動くかを把握するだけで2晩費やしたことを覚えています。
Khallim Carroum씨가 관리하는 awesome-iot 리포지토리는 시간을 절약하는 데 도움이 됩니다. 이는 하드웨어 플랫폼, 운영 체제, 프로그래밍 언어 및 네트워크 프로토콜을 체계적으로 정리한 컬렉션입니다.
이 프로젝트는 GitHub에서 4천 개 이상의 스타를 받았습니다. 여기서 사용할 수 있는 흥미로운 리소스와 이 지식 베이스를 활용하는 방법을 살펴보겠습니다.
カタログの内容
他のAwesomeリストと同様に、このプロジェクトは簡単な説明付きリンクで構成されています。著者はすべてのリソースを5つの主要セクションに分類しています:
- ハードウェアとシングルボードコンピュータ
- ソフトウェアスタック(OS、言語、フレームワーク、ユーティリティ)
- ネットワークプロトコルと通信規格
- アライアンスと業界グループ
- 書籍、記事、学術出版物
この構造により、検索エンジンを調べることなく、プロジェクトに合ったコンポーネントをすぐに見つけることができます。
ハードウェアとOS
Raspberry PiやArduinoのようなおなじみのボードに加えて、特殊任務向けのソリューションが含まれています。
Wi-FiとBluetoothを備えたシンプルなセンサーには、ESP32やNodeMCUチップが適しています。-25°Cから+85°Cの動作温度範囲を持つ小型産業用コンピュータが必要な場合は、OLinuXinoが便利です。自動車のCANバスを扱う場合は、リスト内にAutoPiプロジェクトがあります。
ハードウェアのソフトウェア状況も同様です。カタログにはリアルタイムOSが含まれています:
- FreeRTOSとZephyr Projectは、電力とメモリの制約が厳しいデバイス向けです。
- Apache MynewtはBluetooth Low Energyに重点を置いています。
- OpenWrtとRaspbianはフル機能のシングルボードコンピュータ向けです。
- NodeOSは、JavaScriptベースのOSを実行したい人向けです。
コードを書く言語
ハードウェアをロジックに接続するのはCやC++だけではありません。コミュニティはマイクロコントローラー向けに使い慣れた言語の移植版を作成しています。
コレクションにはMicroPythonと、RAMわずか4KB必要なPikaPythonが含まれています。厳格な型付けが好きな人のために、ArduinoやBBC micro:bit用にGoコードをコンパイルできるTinyGoがあります。Rustで書く場合にも、豊富なライブラリ基盤が見つかります。AtomVMのようなエキゾチックなオプションでは、ErlangやElixirをマイクロコントローラー上で直接実行できます。
フレームワークとデータ転送
センサーをサーバーに接続するのはそれ自体が別の課題です。カタログではデータ転送レイヤーが明確に分離されています。
物理層とネットワーク技術には、LoRaWAN、NB-IoT、ZigBee、Threadが含まれています。アプリケーションレベルでは、MQTT、CoAP、STOMPが代表的です。
デバイス側またはサーバー側でデータを処理するための готовые ツールが含まれています:
- ホームオートメーション向けのHome Assistant。
- LinuxおよびESP32デバイスのフリート管理向けのAstarte。
- 物理デバイスのデジタルツインを作成するためのEclipse Ditto。
- JetsonやRaspberry PiなどのエッジデバイスでAIモデルを実行するためのForestHub。
メッセージブローカーの中では、デバイス自体で実行できる軽量なNanoMQ、または数百万の同時接続を処理できる高容量のEMQXとVerneMQから選択できます。
誰がこのリストを役立つと思うか
このリポジトリは、新しいプロジェクトのスタックを選択する必要がある状況でリファレンスとして機能します。
Webサービス開発者にとっては、JavaScriptやPythonのような使い慣れた言語を通じてハードウェアへの入口を示してくれます。アーキテクトにとっては、適切なブローカーや通信プロトコルを見つけることを簡素化します。初心者エンジニアにとっては、最新のIoTシステムが何で構成されているかの全体像を提供します。
このプロジェクトはコミュニティに開かれています。ハードウェア作業に適した優れたオープンソースソリューションを使用している場合は、Pull Requestを通じて提案できます。
関連プロジェクト