最近、「モノのインターネット」(時には「すべてのインターネット」)が日常生活の不可欠な一部となっています。 ギガバイトのデータはさまざまなセンサーやセンサーから取得されるため、分析範囲を根本的に新しいレベルに移行できます。 IoTは技術開発の次のメガトレンドになりつつあり、さまざまなビジネス分野でますます人気を集めています。
今日、DeviceHiveに注目を集めたいと思います。これは、高速で便利で使いやすいIoTプロジェクトであり、デバイス間の通信や独自の「スマートホーム」を構築するための強力なソリューションを提供するオープンソースです。 センサー、クラウドサービス、モバイルアプリケーションを単一のインフラストラクチャに統合し、大量の情報を保存し、分析と処理のプロセスを開始します。履歴データとリアルタイムの両方で機械学習アルゴリズムを使用します。 DeviceHive内でのマシン通信の仕組みを理解するために、独自の小さなアプリケーションを作成してみましょう。
中心部であるDeviceHive Javaサーバーから始めましょう。
Microsoft Azure Marketplaceで公開されて以来、インストールと構成のプロセスは非常に簡単になりました。 以下の手順に従ってください。プロセスには5分以上かかりません。
- このリンクを開き、「仮想マシンの作成」をクリックし、リダイレクト後に再度「作成」をクリックします。
- 最初のページでは、仮想マシンの名前を入力し、認証を構成し、リソースの場所とグループを選択するよう求められます。
- 次のステップでは、VMパラメーターを指定する必要があります。メモリーのサイズとタイプ(これらの値は、将来のアプリケーションが動作するために必要なものによって異なりますが、4 GB RAMのデュアルコアよりも弱いマシンの使用は推奨されません);
- 最後の段階で、必要に応じてタスクの特定の設定を指定し、簡単な概要の後に仮想マシンを作成します。

おめでとうございます-DeviceHiveサーバーがクラウドにデプロイされました! 情報ページでは、記事のフレームワーク内で
public.ip.addressであっても、外部IPアドレスを見つけることができます。
次のステップは、サーバーの初期構成です。 RESTおよびWebsocket接続をさらに使用するには、適切なURLが必要です。
public.ip.addres s:8080 / dh -DeviceHive Javaサーバー情報ページを開き、ビルドのバージョンと時間を確認できます。 すべてを正しく行った場合、必要なエンドポイントもそこにありますが、これまでのところ、それらは「null」に等しくなければなりません。 それらを有効にするには、[構成]ボタンをクリックする必要があります。 このアクションには認証が必要です。 これらの目的(を含む)のために、管理者権限と
dhadmin / dhadmin_#911資格情報を持つユーザーがデフォルトでシステムに作成されます。 これをログインとパスワードのフィールドにコピーすると、数秒後に更新されたページに有効なアドレスが表示されます。 その後、
public.ip.address :8080 / admin (同じユーザーでシステムにログイン)に移動して、DeviceHive管理パネルを開くことができます。 それを詳しく見てみましょう。
覚えている限り、dhadminは管理ユーザーであり、ページの左上隅にある管理ボタンで簡単に認識できます。 それをクリックすると、Users-、Device Classes-、およびOAuth clients-gメニューが下に表示されます。 まず、ユーザーページを開いて、現在のページのパスワードを変更します(データプライバシーの観点から、既定のパスワードを使用し続けることは非常に望ましくありません)。 必要に応じて他のユーザーを作成します。

次の管理者はアクセスキーへのリンクです。 これは、システム内のすべての認証の中心部分です。 各アクセスキー(AK)は、管理パネルからRESTful
エンドポイントを使用して作成できるカスタムアクセスのセットを持つランダムに生成されたトークンです。 AKは、Devicehiveエコシステムの任意のメンバーがユーザーからデバイスまで使用できます。 Devicehiveフレームワーク内のシステムでの承認の詳細(および特にキーの使用)をより深く理解するには、
この記事を読むことができますが、この段階では、有効期限がなく、すべての管理アクセスが割り当てられている最も単純なAKで十分です。 作成するには、下の図に表示されているものをすべて繰り返します。

いいね! 独自の
demo_access_keyを作成しました。これは、Devicehiveとそのコンポーネントをさらに処理するために使用できます。
メッセージングアルゴリズムについて少し話をします。 私たちのシステムは、この3つのタイプの構造を提供し、それぞれに使用の特徴があります。
- DeviceNotification-デバイスから受信した情報(通常、これはさまざまなセンサーおよびセンサーからのデータですが、構成の詳細がある場合もあります)。
- DeviceCommand-デバイスに送信される情報(パラメータを持つ特別なコマンドで、デバイスはそれを処理する方法を知っています)。
- DeviceCommandUpdate-受信したDeviceCommandへの応答としてデバイスによって送信されるメッセージ。 完了したチームの結果とステータスが含まれます。
さらに進んで、独自のデバイスシミュレーターを作成しましょう(RaspberryPI、BeagleBone、Arduinoのような言葉があなたを怖がらせない場合、これは必要ないかもしれませんが、記事の一部として十分なHTTP HTTPリクエストがあります)。 各デバイスを対応するネットワークに追加する必要があります。これは管理パネルから簡単に行えます。 [ネットワーク]ページを開いて新しいネットワークを作成し、
dh-demo-keyを使用して
dh-demo- networkにし
ます 。 シミュレーターを登録するには、サーバーに次のリクエストを送信する必要があります。
curl -H 'Content-Type:application / json' -H 'Authorization:Bearer demo_access_key' -X PUT -d '{"id": "dh-demo-device"、 "key": "dh-demo-key" 、「名前」:「dh-demo-device」、「deviceClass」:{「name」:「demo-device-class」、「version」:「0.1」、「equipment」:[]}、「network」: {「名前」:「dh-demo-network」、「キー」:「dh-demo-key」}、「ステータス」:「オンライン」} ' public.ip.address :8080 / dh / rest / device / dh -デモデバイスすべてを正しく行った場合、dh-demo-deviceが[デバイス]セクションの管理パネルに表示されます。

通知を送信して、HTTPリクエストを使用して再度実行してみましょう。
curl -H 'Content-Type:application / json' -H 'Authorization:Bearer demo_access_key' '-X POST -d' {"notification": "$ device-add"、 "parameters":{"param1": "value1 »}} 'Http // public.ip.address:8080 / dh / rest / device / dh-demo-device / notificationこのメッセージはデバイスの詳細ページで利用できるようになり、すべてがうまくいった場合、次の画像が表示されます。

出来上がり! センサーを備えた実際のデバイスのシミュレーターを作成し、それからDeviceHiveクラウドに通知を送信しました。 とても簡単ですよね? この記事が気に入り、IoTに興味がある場合は、お問い合わせください。

著者について
Tatyana Matvienko-JavaおよびScala開発者「DataArt」
2012年以来、DataArtはBigDataおよびモノのインターネットの分野でさまざまな製品、特にSparkエコシステムに基づくソリューションを開発しています。