|
ガートナーの予測は、コンピューターやスマートフォンと同じくらい、無数の相互接続されたスマートデバイスに依存する未来を明確に描いています。同社の予測によると、2020年までに260億台のIoTデバイスが設置され、メーカーやサービスプロバイダーに3,000億ドルの収益をもたらし、世界経済に1.9兆ドルの影響を与えるとされています。 この記事では、IoTアプリケーション開発に役立つ10個のオープンソースツールを紹介します。これらのツールは、IoTという刺激的な分野への素晴らしい入門ツールであり、新しいことを学び、現在のライフスタイルに挑戦することを恐れない人にとって、豊富なチャンスを秘めています。 1. Arduinoイーサネット拡張ボード人気のオープンソース電子プロトタイピングプラットフォームであるArduino Ethernet拡張ボードと組み合わせることで、シンプルなIoTプロジェクトから複雑なアプリケーションまで、あらゆる用途に最適なハードウェアの組み合わせとなります。世界中のどこからでもArduinoボードをRJ45ケーブルでインターネットに接続し、基本的なセットアッププロセスを完了するだけで、作成したデバイスを制御できます。 Raspberry PiやBeagleBoneといったIoTシングルボードコンピュータの代表的な製品と比較すると、Arduinoは非常に手頃な価格で、世界中のほぼどこでも使用でき、自分の作品を他の人と共有することを愛する何千人もの熱心なユーザーに愛されています。豊富なドキュメントが用意されており、この素晴らしいデバイスを何か便利なものにするためのインスピレーションが豊富に満ちています。 2. エクリプスIoTEclipse IoTは、MQTT、CoAP、LWM2M、oneM2MなどのIoT標準を実装することで、IoT開発を簡素化することを目指しています。MQTTは、マシンツーマシン(M2M)/「モノのインターネット」接続プロトコルであり、Eclipse Pahoプロジェクトの基盤となっています。このプロジェクトは、新規、既存、そして新興のM2MおよびIoTアプリケーション向けに設計された、MQTTおよびMQTT-SNメッセージングプロトコルのオープンソースクライアント実装を提供しています。 CoAPはRestricted Application Protocol(制限付きアプリケーションプロトコル)の略で、モノのインターネット(IoT)における制限付きノードおよび制限付きネットワークで使用される特殊なWebトランスポートプロトコルです。Lightweight M2M(LWM2M)とoneM2Mは、M2M通信システムの最も効率的な展開を実現するために開発されました。 これらの標準とツールを組み合わせることで、日常のタスクから解放されたい Java プログラマーに適した包括的なツールキットが構成されます。 3. オープンHABこのベンダーやハードウェアに依存しないオープンソースの自動化ソフトウェアは、スマートデバイス間の通信を可能にし、ユーザーが新しい機能を追加できるようにすることを目的としています。openHABはJavaで開発されているため、JVMを実行できるあらゆるデバイスで動作します。様々なWebベースのUIに加え、iOSおよびAndroid用のネイティブUIも提供しており、他のシステムとの統合のためのAPIも提供しています。 OpenHABの開発者たちは、独自仕様のスマートデバイスはすぐに時代遅れになり、互換性がなくなり、現代のユーザーのセキュリティ要件を満たせなくなることを認識していました。彼らのソリューションは、利用可能なあらゆるサブシステムからのデータを活用し、それらを統合パッケージに統合します。このツールは、2014/2015年のPostscapes IoT People's Choice Awardと2013年のDuke University Choice Awardを受賞しました。 4. 暴動RIOTは、草の根コミュニティによって開発されたオープンソースのオペレーティングシステムであり、様々なIoTソリューションをサポートします。従来のLinuxやTiny OS、ContikiなどのIoTオペレーティングシステムと比較して、RIOTはCとC++をサポートし、極めて低いスレッドオーバーヘッド(スレッドあたり25バイト未満)のマルチスレッド機能、リアルタイム機能、極めて低い割り込みレイテンシ(約50クロックサイクル)、優先度ベースのスケジューリング、優れたモジュール性を備えています。 RIOT用のネイティブポートも用意されているため、組み込みプログラミングに不慣れな開発者でも、LinuxやMac OS上でRIOTをインプロセスで実行できます。すべてのコードはGitHubでホストされており、付属のWikiにはRIOTを使い始めるのに役立つ情報が豊富に掲載されています。 5.Thinger.ioThinger.ioは、すぐに使えるスケーラブルなクラウドインフラストラクチャを提供します。使いやすい管理コンソールから制御したり、REST APIを介してビジネスロジックに統合したりできます。プロジェクト全体はオープンソースであり、ハードウェアに依存しません。このすぐに使えるスケーラブルなクラウドインフラストラクチャにより、ローカルマシンでもクラウドでも、独自のインフラストラクチャを簡単に展開できます。 したがって、Things.io は、非常に単純なタスクを実行するために互換性のあるベンダーのハードウェアを選択したり、肥大化したソフトウェアを使用したりする必要性を本質的に排除します。 6. オープンIoTOpenIoTは、クラウドベースおよびユーティリティベースのセンシングサービスのサポートを目指す、著名なオープンソース貢献者による共同プロジェクトです。OpenIoTのGitHubページによると、このミドルウェアは、インターネットに接続されたオブジェクトからの情報ストリームを収集・フィルタリングする柔軟な構成と展開アルゴリズムをサポートし、重要なビジネス/アプリケーションイベントを生成・処理します。 アーキテクチャ全体は、ユーティリティ/アプリケーションプレーン、仮想化プレーン、物理プレーンという3つの主要なプレーンで構成されています。各プレーンには、リクエスト定義、リクエスト表現、構成および監視コンポーネントなど、複数の要素が含まれています。OpenIoTには、組み込みスケジューラ、クラウドデータストレージ、さらにはサービスデリバリーおよびユーティリティマネージャも付属しています。 7. IoTSySOpenIoTは、既存のIoT統合ミドルウェアの1つではありません。IoTSySは、IPv6、Webサービス、oBIXをベースにした組み込みデバイス向け通信スタックを提供し、スマートオブジェクト向けの相互運用可能なインターフェースを提供します。IoTSySの主な目的は、既存の自動化システムとセンサーの力を活用し、セキュリティ、検出、拡張性といった懸念事項に対処しながら、新しいソリューションを容易に構築・展開することです。 8. フリーボードFreeboardを風変わりなスケートボードと混同しないでください。これは洗練されたIoTダッシュボードです。直感的なドラッグ&ドロップインターフェースを使用して、誰でもリアルタイムでインタラクティブなダッシュボードと可視化を迅速に構築できます。ダッシュボードは、安全で高性能なエンタープライズグレードのクラウドシステム上に構築されており、プロジェクト全体がオープンソースで、GitHubで公開されています。 dweet.ioとのシームレスな統合、あらゆるWebベースAPIへのアクセス、増え続けるウィジェットリストからの選択、メール、SMS、ソーシャルネットワークを介した即時共有などの機能を備えています。注目すべき例としては、クラフトビール醸造所向けに開発された、ネットワーク化された最新式の完全自動連続蒸留装置「Heising-330」や、空気質監視ダッシュボードのプロトタイプなどが挙げられます。 9. インタースタックスInterstacksは、電子モジュールとビジュアルオーサリングツール「Stackbuilder」を組み合わせたものです。わずか数分で、想像できるあらゆるスマートデバイスを発明できます。そして、それらを相互に接続し、インターネットに接続します。公式ウェブサイトによると、Interstacksは、モノのインターネット(IoT)の世界を制覇するための力を与えてくれます。 このハードウェアは、エンタープライズ向けプロトタイプハードウェアとしては手頃な価格で販売されており、Pythonプログラミング言語をベースに構築されています。包括的なプロトタイピングアプローチにより、ユーザーはデバイスシステムやインターネットサービスの設定、マクロの作成、システムの自動化ルールの記述などを行うことができます。Maya Designは、数十年にわたるUI/UX(HCD)の専門知識を活かし、革新的で直感的なアプローチでInterstacksおよびStackbuilder製品を開発しています。Stackbuilderインターフェースは、ドラッグアンドドロップ操作によるビジュアルオーサリングツールで、ユーザーはスタックを非常に直感的に構築、テスト、調整できます。ラピッドプロトタイピングのコンセプトは、この製品ラインの中核を成しています。 10. ゼッタNode.jsをベースに構築されたZettaは、地理的に分散したコンピューティング環境とクラウド上で動作するIoTサーバーを構築するためのオープンソースプラットフォームです。Zettaは、REST API、WebSocket、リアクティブプログラミングを組み合わせることでこれを実現します。 Zettaサーバーはインストール後、どこでも実行でき、Arduino、Spark Core、その他のマイクロコントローラーと問題なく通信できます。一連の便利な抽象化によりコーディングが簡素化されるため、開発者は些細な詳細にとらわれることなく、全体像に集中できます。 結論はこれら10個のツールは、アプリケーション開発からミドルウェア、ホームオートメーションキットまであらゆるものを網羅していますが、現時点で利用可能なツールのほんの一部に過ぎません。モノのインターネット(IoT)は将来の主要技術の一つであり、その普遍的な構成要素(「Interstacks」のダジャレではありません)に関する知識は非常に役立つでしょう。 |