Node-RED + Cloudantを使って簡単にアプリ間連携する方法

Node-RED + Cloudantを使って簡単にアプリ間連携する方法

2つのアプリの連携をNode-REDとCloundantで実装してみた

こんにちは。

AI coordinatorの清水秀樹です。

アプリ間連携する方法として、サーバーを経由しながら情報の受け渡しをする方法が一般的かと思います。(多分)

ただ、筆者にはそんなスキルはなく、どうやって情報の受け渡しができるか模索していたところ、割と簡単にデータの授受ができる方法があったので、紹介したいと思います。

ちなみに、この方法はPepperアプリ「FINDING KIDS」を開発している中で、一緒に開発していたメンバーの方から教えてもらったやり方になります。

Node-REDとCloundantでどんなものを作成したかと言いますと、単純にサインフラグを作成して、オンオフを切り替えるようなそんな簡単な仕組みを構築しました。

使い方としては、一方のアプリではフラグを立てる役割を担っていて、もう一方のアプリではフラグが立つまでは待機し、フラグが立ったら起動するようなそんな仕組みをNode-REDとCloundantで実装しました。

その方曰く、もっと正しいやり方があるとのことでしたが、ここでは備忘録的に記録しておきたいと思います。

許可が降りれば、このサイトでも紹介したいと思います。

 

Bluemixのボイラープレート「Internet of Things Platform Starter」の作成方法

Bluemix上では簡単にNode-REDが使用できるので、こちらのクラウドサービスを活用します。

では早速作成していきましょう。

Bluemixのカテゴリ内にある、「Internet of Things Platform Starter」をクリックしましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像1

次の画面ではアプリ名とデプロイする地域を指定します。

アプリ名はお好みで大丈夫です。

地域は米国南部を使用しました。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像2

上記を入力したら画面最下部の「作成」ボタンをクリックしましょう。

 

しばらく画面中央にグルグルが出ます。

画面が切り替わると以下のようにアプリを起動しているような画面が表示されます。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像3

とりあえずこの画面は無視して「ダッシュボード」に入りましょう。

ダッシュボードへの戻り方は、画面左上にメニューバーを表示するマークがあるので、そこをクリックして、表示されたメニューの中から「ダッシュボード」を選択してください。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像4

ダッシュボード画面が表示されたら、先ほど作成したCloud Foundryアプリが稼働中になっていればOKです。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像5

ここでまだ稼働中になっていない場合は、もうしばらくお待ちください。

 

稼働中になったら、いよいよNode-REDを起動します。

経路にあるアドレスをクリックしましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像6

 

すると、以下のような画面が表示されるので、Nextをクリック。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像7

 

UsernameとPasswordを聞かれるので、適当に入力しましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像8

 

次画面で最後です。

Finishをクリック。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像9

 

するとウニョウニョ動く画面が表示され、

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像10

いよいよNode-REDを起動する画面が表示されます。

以下のような画面が表示されたら、「Go to your Node-RED flow editor」をクリックしてNode-REDを起動しましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像11

 

ログイン画面が表示されるので、先ほど入力したUsernameとPasswordを入力しましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像12

 

ようやく起動できました。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像13

 

Node-REDでFlowの作成

ここからは実際にNode-REDを使用して簡単なFlowを作成していきます。

初期状態では上記のようなサンプルFlowがありますが、今回は使用しません。

新しく、Flowを作成しますので、+タグをクリックして新規Flowを作成しましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像14

 

完成形はこんな感じになります。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像15

簡単に全体像を説明すると、1を与えられたら1をDBに格納し、0を与えられたらDBに0を格納します。

DB検索命令がきたら現在のDBの状態を値として返します。

そんなフローです。

 

それでは一つずつノードの詳細を見ていきましょう。

 

まずは入力となるhttpノードは以下のように設計しています。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像16

 

続いて、switchノードの編集です。

プロパティを編集し、処理を3つに分岐するように編集します。

オン、オフ、参照の3つですね。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像17

 

それでは’1’(オン)を挿入するところから説明していきます。

cloudant in ノードの編集です。

以下の画像のように編集しましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像18

 

続いてfunctionノードの編集です。

ここでは’1’を挿入する仕様としています。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像19

コードを貼り付けられるように以下に記載しておきます。

 

いよいよDB格納です。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像20

 

web上でも確認できるようにtemplateノードとhttp responseノードも付け足しておきます。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像21

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像22

以上が’1’(オン)を挿入するところまでの説明です。

 

続いて’0’(オフ)を挿入するところの説明です。

‘1’(オン)との違いは途中のfunctionノードとtemplateノードのみです。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像23

‘0’を挿入するようにコードを編集します。

同じくコードをコピペで貼り付けられるように記載しておきます。

以上が’0’(オフ)を挿入するところまでの説明です。

 

続いてtemplateノードです。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像24

テンプレートに’0’を指定します。

 

最後に参照機能です。

functionノードを以下のように編集します。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像25

貼り付けられるようにコードを以下に記載しておきます。

 

続いてDBの検索です。

cloudant in ノードは以下のように編集します。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像26

 

そしてfunctionノードの編集です。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像27

 

同じく貼り付けられるようにコードを以下に記載しておきます。

 

最後にhttp responseを繋げます。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像28

以上でNode-REDのフロー作成は完了です。

作成が完了したら、画面右上の「デプロイ」をクリックしましょう。

 

Cloudantの作成

続いてCloudantの作成です。

ダッシュボードに戻り「Cloudant NoSQL DB」をクリックしましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像29

 

次画面でLAUNCHをクリック。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像30

 

なんだかよく分からない画像が表示されるので、左上にあるデータベースマークをクリックしましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像31

データベースマークをクリックすると、Node-RED上で作成した「foundflag」が選択できるようになっています。

この「foundflag」をクリックしましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像32

 

次画面が表示されたら、ALL Documents横の+ボタンをクリックし、表示されたメニューの中から、「New Doc」を選択しましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像33

 

以下のような画面が表示されますので、そのまま画面上部の「Create Document」をクリックしてください。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像34

 

以下の画面が表示されているはずです。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像35

 

画面中央の「Metadate」を選択すると、すぐその下に、数字の乱数が表示された謎のレコードが出来ているので、そのレコードをクリック。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像36

 

以下のような編集画面になるので、

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像37

 

以下のように編集しましょう。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像38

foundflagとnoを追加しています。

追加が終了したら、「Save Changes」をクリックしてください。

以上で準備が完了しました。

 

DBの内容を書き換えてみましょう

それでは早速、WEBからアクセスしていきましょう。

ブラウザ上からアクセスしてみます。

以下のように表示されました。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像39

‘1’が表示されていますね。

これはCloudant NoSQL DB作成時に’1’を入れているからです。

 

続いて、’0’を挿入してみます。

ブラウザ上から以下のurlを打ち込んでみます。

Node-RED + Cloudantを使って簡単にアプリ間連携する方 画像40

‘0’が返ってきました。

 

このようにNode-RED + Cloudantを使用すれば簡単にデータの更新が出来るようになります。

これが出来るようになれば、アプリ間連携するような開発も簡単に出来るようになりますね。

ぜひ活用してみてください。

 

それではまた。

この記事の内容について、相談したい方へ

技術選定・実装の進め方・組織での導入など、AI/IoT全般のご相談を受け付けています。

無料相談会(30分・オンライン)

About The Author

Hideki
東京大学発AIスタートアップでロボット開発室室長・画像解析室室長・動画解析室室長を務め、画像認識関連のAI特許を在籍中に3件取得。その後、KDDIグループでプロダクトリーダーとして自然言語処理パッケージの自社開発を経て、現在はAGRIST株式会社の執行役員CTO 兼 VPoEとして、農業の人手不足解決に向けた収穫ロボットの開発組織を統括しています。AI・ハード・エレキ・通信・クラウド・IoTまでを一気通貫で設計できる視点を強みに、性能だけでなく「感動やワクワク体験」までデザインできるロボットの研究を進めています。並行して、AI coordinatorとして企業のAI導入・教育機関のAI授業・地域の技術相談を月額契約で継続伴走しています。

LEAVE A REPLY

*
*
* (公開されません)