モノのインターネットは、ITプロフェッショナルだけでなく、一般の人々にも馴染みつつあります。 システム「Smart Home」、「Smart Home Appliances and Lighting Systems」-これらはすべて、すでに少数の人々を驚かせています。 生産および通信において、このテクノロジーは非常に便利です。なぜなら、リアルタイムでデータを読み取り、リモートシステムで作業できるからです。 IoTは、ビジネス、農業、科学、ヘルスケアの分野で徐々にその位置を見つけています。
IoTアプリケーションの作成は、思っているほど難しくありません。 この記事では、リモートサーバーを監視したり、分散ネットワークを管理したりするためのデモアプリケーションを作成して、IBM Bluemixワークスペースをカスタマイズする方法について説明します。
開始するにはどのテクノロジーが必要ですか?
- IBM Bluemix - IBMのクラウドサービス
- Cloud Foundry(「プラットフォームとしてのプラットフォーム」という概念のオープンソース実装
- サービス」)
- Node-RED-オープンツール
- モノのインターネットで動作するように特別に設計されたソースコード
- Twilio -SMSメッセージングサービス
- SMS通知を受信するための携帯電話番号と電話自体
- JavaScriptプログラミングの紹介
アプリケーション自体はpingGoと呼ばれ、この名前でマテリアルに表示されます。
作成されたアプリケーションの主な機能は、ネットワークとマシンのポートを監視することにより、マシンの状態を監視することです。 マシンがクラッシュした場合、アプリケーションはSMSメッセージでこれをオペレーター/ユーザーに通知します。 このタイプのアプリケーションは、サーバーまたは分散コンピューターネットワークをリモートで制御する必要がある幅広い技術者、データセンターオペレーター、エンジニアにとって非常に役立ちます。 アプリケーションがデモであること、つまりシステムの機能を示していることを忘れてはなりません。
Node-REDに基づいてBluemixプラットフォーム用のアプリケーションを作成します
1. Bluemixアカウントを使用してログインするか、登録して無料アカウントを作成します。 開発スペースが作成されていることを確認してください。
2.プロファイルページを開き、アクティブリージョンが正しく構成されていることを確認します。 既存のBluemixリージョンのいずれかに独自のアプリケーションをデプロイする必要がありますが、リージョンの選択は実際には重要ではありません。 デモでは、ヨーロッパとイギリスの地域を選択しました。
3.カタログでNode-RED Starterサービスを検索して選択します。
4.ホスト名を自動的に指定するアプリケーションの一意の名前を入力し、[作成]をクリックします。 次のメッセージが表示されるのを待っています:アプリが実行中です。 YourAppName.eu-gb.mybluemix.net。 次の形式のエラーメッセージを受け取った場合:エラー:サーバーへの接続が失われました。HTTPS接続を使用していることを確認する必要があります。 同時に、URLはpinggo.eu-gb.mybluemix.net/redのようになります。
2ノードアプリケーションを作成する
それでは、簡単な2ノードアプリケーションを作成して、Node-REDを使いましょう。
1. BluemixアプリケーションのURLリンクを開き、「Node-REDフローエディターに移動」をクリックします。 ストリームエディタでは、画面の中央に空白のシートが表示され、左側のパレットに使用可能なノードがいくつか表示されます。
2.パレット([入力]セクション)で[注入]ノードを見つけます。 空白のシートにドラッグします。 このノードには、接続されているノードに現在のタイムスタンプを送信するボタンがあります。
3.パレット([出力]セクション)で[デバッグ]ノードを見つけます。 ドラッグして、Injectノードの隣に配置します。 このノードを使用すると、アプリケーションの[デバッグ]タブで受信メッセージを確認できます。
4. Injectノードの出力ポートをDebugノードの入力ポートに関連付けます。 Injectノードのタイムスタンプを持つメッセージは、Debugノードにルーティングされます。 同時に、デバッグノードのテキストmsg.payload(タイムスタンプ)が[デバッグ]タブに表示されます(注入ノードの右側の灰色の四角形をクリックしてこれら2つのノードをリンクし、ボタンを離さずに、デバッグノードの左側の灰色の四角形にカーソルを移動します)
5.ページの右上隅にある「デプロイ」ボタンをクリックして、Node-REDストリームを展開します。
Injectノードの左側にあるボタンをクリックします。
下の図に示すように、押した瞬間のタイムスタンプが[デバッグ]タブに表示されます。
パレットにカスタムノードを追加する
この段階で、Pingノードをパレットに追加します。 カスタムノードを追加するには、package.jsonという名前のJSONファイルを編集します。
1. Bluemixダッシュボードに戻ります。
2.左側のナビゲーションペインで、[ファイル]ページを開きます。
3. app / package.jsonファイルを参照します。
次のリストのファイルに似たファイルが表示されます。
{ «name»: «node-red-bluemix», «version»: «0.4.22», «dependencies»: { «when»: "~3.x", «mongodb»: "~1.4.x", «nano»: "~5.11.0", «cfenv»:"~1.0.0", «feedparser»:"~0.19.2", «redis»:"~0.10.1", «node-red»: «0.x», «node-red-bluemix-nodes»:«0.x», «node-red-node-cf-cloudant»:«0.x», «node-red-contrib-scx-ibmiotapp»:«0.x», «node-red-contrib-ibmpush»:«0.x», «node-red-contrib-bluemix-hdfs»:«0.x», «node-red-nodes-cf-sqldb-dashdb»:«0.x» }, «engines»: { «node»: «0.10.x» } }
4.アプリケーションファイルを変更します。 app / package.jsonファイルを編集し、このファイルの依存関係セクションの必須パッケージのリストに「node-red-node-ping」:「0.0.6」エントリを追加する必要があります。
アプリケーションファイルを変更するには、2つの方法があります。 アプリケーションをダウンロードし、ファイルをローカルで編集してから、変更をBluemix環境に戻すことができます。 IBM DevOpsServicesサービスを使用して、Webブラウザーから直接変更を編集およびデプロイすることもできます。
アプリケーションファイルをローカルでダウンロードして編集するには、Bluemixツールバーの[コーディングの開始]ページの指示に従います。 このページでは、CloudFoundryコマンドラインインターフェイスを使用してアプリケーションをデプロイする手順を説明します。
IBM DevOpsサービスを使用するには、 このチュートリアルの指示に従ってください 。 Gitとの統合を構成する方法、環境に加えられた変更を転送する方法、ワークスペースに展開する方法について説明します。
ただし、package.jsonファイルを編集する方法を選択した場合、新しいファイルは次のようになります。
5.ストリームエディターに戻ります。
6.ストリームエディターを更新すると、パレットの下部に新しいPingノードが表示されます。
Pingノードをストリームに追加します。
1. Pingノードをストリームエディターのシートにドラッグします。
2.このノードをダブルクリックして、構成を編集します。 [ターゲット]フィールドに、監視するマシンのIPアドレスを入力します。 このノードの短い説明的な名前(pingmyServerなど)を指定します。 その後、「OK」をクリックします。
3. Pingノードの出力を確認します。このため、この出力にデバッグノードを接続する必要があります。
4.現在定義されているノードでNode-REDアプリケーションをデプロイします。 デバッグメッセージは、上の図の右ペインの[デバッグ]タブに表示されます。
ping応答の確認
ping要求が正常に渡された場合、Pingノードはその経過時間をmsg.payloadプロパティに返します。 5秒以内にサーバーから応答が受信されない場合、このノードはfalseを返します。 msg.payload値を確認するようにFunctionノードを構成できます。
1.パレットで関数セクションを見つけ、シート上のPingノードの近くに関数ノードをドラッグします。
2. Pingノードの出力をFunctionノードの入力に接続します。
3.このノードをダブルクリックして編集します。 [名前]フィールドに次のテキストを入力します:is Alive?..
機能ブロックで、次のコードを追加します。
msg.tripTime = msg.payload; msg.payload = msg.payload !== false? «Your server is running»: «Your server is down»; return msg;
4. [OK]をクリックして、ダイアログを編集します。
Functionノードは、5秒以内に応答を受信した場合は「Yourserverisrunning」(サーバーが機能している)というテキストを含む行を作成します。
5.ほとんどの場合、20秒ごとに新しいSMSメッセージを受信する必要はないため、例外処理ノードをアプリケーションのストリームに追加します。
a。 ReportbyExceptionノードをシートにドラッグします。
b。 このノードをダブルクリックして、blockunlessvaluechangesオプションを選択します。
現在、msg.payloadプロパティが前のメッセージの同じプロパティと異なるまで、メッセージは到着しません。
c。 このノードの「名前」フィールドに、キーボードからsendonceと入力します。
d。 OKをクリックします。
Twilioを使用してSMSアラートを送信する
この段階では、ほとんどすべての準備が整いました。Twilioノードをアプリケーションストリームに追加するだけです。
1.作成したTwilioアカウントのTwilio番号と資格情報を書き留めます。
a。 Twilioメッセージングページを開きます。
b ... GetyourfirstTwilioNumberをクリックします。 このSMS送信者番号を覚えておいてください。 たとえば、テキストファイルにコピーできます。
c。 ChoosethisNumberをクリックします。
d。 Twilioメッセージングページで、Show API Credentialsという小さなリンクを見つけてクリックします。 アカウントのSIDと認証トークンを覚えておいてください。 たとえば、テキストファイルにコピーします。
2.ストリームエディターに戻ります。
3.パレットの[出力]セクションでTwilioノードを見つけて、シートにドラッグします。
4. Twilioノードをダブルクリックして、設定を構成します。
a。 [サービス]フィールドで、[ExternalService]を選択します。
b。 編集アイコンをクリックして、「Addnewtwilio-apiconfignode」ダイアログボックスを開きます。
c。 このダイアログボックスで、アカウントのSID、SMS送信者の電話番号、およびTwilioメッセージングページからコピーした認証トークンを入力します。
d。 [追加]をクリックして、[編集]ダイアログボックスに戻ります。
e。 [SMS]フィールドに、携帯電話番号(SMS受信者の携帯電話番号)を入力します。
5.「名前」フィールドに、「管理者へのSMSアラート」と入力し、「OK」をクリックします。
6.ストリームエディターで[展開]をクリックします。
Node-REDアプリケーションのデプロイ
ストリームエディターで[展開]をクリックします。 すべて準備完了です。 これで、アプリケーションを展開して使用し、コンピューターまたはネットワークを監視できます。 アプリケーションのユーザーとして、標準ノードとユーザーノードを単一のストリームにリンクし、携帯電話をSMS通知として示しました。