Explorer(IE)のバージョンをサポートしておりません。最適なウェブサイトパフォーマンスを実現するため、最新バージョンのブラウザへアップデートしていただくことをお勧めします。簡単な4つの検索方法1.検索したい用語を入力した後、そのままエンターキーを押すか、サーチアイコンをクリックしてください。入力された用語でそのまま検索されます。2.検索したい用語を入力すると、ドロップダウンで検索の提案が表示されます。提案された項目をクリックすると、関連のページが直接表示されます。3.検索の提案の右端にマウスを持っていくと「検索」のリンクが表示されます。これをクリックすると、提案された用語に基づく検索結果が表示されます。4.検索結果のページには、結果を絞り込むフィルタが表示されます。こちらもご活用ください。REDTM」を利用して作成しました。LTEのモバイル通信を利用してクラウドへ接続します。Piからクラウドへ温度データを送り、インターネット経由でスマホから簡単なグラフ情報を見えるようにしてみましょう。全体的なイメージは、次の図の通りです。EGGTM」を使用します。このサービスでは、Webサイトからの申し込みだけで、環境がセットアップされ利用できるようになります。今回は、クラウドアプリケーションの作成方法と合わせて申し込みの方法も説明します。2週間の無償トライアルが可能ですから、本記事を参考に実際に動かしてみてください。REDTM」を利用します。BOOKS)【改訂版】」(工学社刊)をオススメします(赤い表紙の書籍は旧版ですので緑の表紙の新版をお探しください)。Pi用IoTゲートウェイアプリを作ろう」の「準備するもの」にて取り上げたハードウェアやソフトウェアを準備してください。EGG」の準備まずはクラウド環境を準備します。PiやBLEデバイスを動かしてみましょう。作業用のパソコンからブラウザーでフリートライアル申込のページを開いてみましょう。うまく開けないときは「https://www.candy-line.io」のページからページ右上の「お問い合わせ」→「トライアル」とナビゲーションのリンクを辿ってください。EGGのトライアルを申し込めます。EGGは現在、企業や学校などの法人向けのサービスとなっていますので、企業や学校等が発行するメールアドレスを使用して申込を行います。GMailやインターネットプロバイダーのメールアドレスなどではお申し込みできませんのでご注意ください。トライアル申込フォームの入力方法については、こちらのフォーラムの投稿をご覧ください。メールアドレスご確認手続き)。メールアドレス確認メールの本文(2018年10月現在)もしそのようなメールが届かない時は、Spam扱いにされていないか確認したり、あるいは「mail.candy-line.io」のドメインのメールを受け取れるような設定にして、再度申し込みを行ったりしてください。メールを受信できた場合は、本文に従いリンクをクリックするか、コピー&ペーストしてブラウザーで確認用のURLを開いてください。準備完了のお知らせ!)。EGG準備完了時のメール本文(2018年10月現在)そのメールを参照して、メールに記載された「アクセス先URL」にブラウザーでページを表示してみましょう。最初にログイン画面が現れます。EGGログイン画面このログイン画面で、同じくメールに記載された「ログイン用ユーザー名」と「ログイン用ユーザーパスワード」を入力して「Login」をクリックします。すると、以下のような画面が表示されます。これは、フローエディターの画面です。EGGのものに置き換わっています。EGG側の準備はできましたので、いよいよクラウドアプリケーションとなるフローの作成を行いましょう。疑似温度表示フローの作成このクラウドアプリケーションでは、温度のデータを受け取ってそれをグラフで表現します。このグラフの表示を、後ほどスマホでも他の方と共有できるようにします。フローの作成方法は色々な順序で作れますが、今回はまずは表示の部分を用意して、その後で通信部分を作ってみましょう。それでは、最初に温度の疑似データを任意のタイミングでメッセージ(データの入った情報)を出力できるようにします。これは、実際の温度表示を試しながら作成するためです。任意のタイミングをブラウザーから指定できるようにするために、「inject」ノードを使います。このため、ワークスペースに「inject」ノードを置きます。「inject」ノードの配置この「inject」ノードでは、実際の温度データの到着タイミングと同じような動きにするために、1秒おきにタイミングを出すように設定します。「inject」ノードをダブルクリックして設定を変更しましょう。「inject」の設定では、以下にあるように「Repeat」のところを変更します。「interval」としてevery「5」「seconds」の表示となるようにします。この状態で「Done」をクリックして設定を保存しましょう。続いて、この「inject」ノードによってメッセージを受け取ったら疑似の温度情報をそのメッセージに含めるようにします。この疑似の温度情報を用意するために、今度は「change」ノードを使います。「change」ノードを追加して、先ほどの「inject」ノードと接続します。「change」ノードの追加この「change」ノードで、擬似的な値の温度情報をメッセージにセットします。「change」ノードでは以下のようにJSONata(ジェイソナータ)の関数式表現を指定します。100この意味は、「0~1の疑似乱数($random)に500をかけて2500を足したものを、小数点以下切り捨てて、最後に100で割ったもの」です。これによって、温度データが25度〜30度の間でかつ小数点第3位以下を切り捨てた値となります。前回の記事にある通り、温度データは小数点第2位までの値なので、このように表現しています。このノードのNameには「疑似温度データ」と記述しておきましょう。「change」ノードの設定それではいよいよ、グラフ表示を試してみましょう。グラフ表示をするためには、ノードパレットから「chart」と書かれたノードを選んでワークスペースに置きます。見つけにくい時は、ノードパレット上の🔍アイコンのテキストボックスに「chart」と入れるとすぐに見つかります。この「chart」を先ほど作成した「疑似温度データ」と書かれたノードと接続します。続いて「chart」ノードの設定を行います。UIグループを指定します。ui_group...」と書かれた選択ボックスの右にある鉛筆アイコンをクリックします。UIグループの設定するとUIグループの設定が開きます。ここでは、UIグループの名前とタブの設定を行います。UIグループとは、ダッシュボード画面(グラフなどが表示される画面を指します)で表示されるグラフなどの表示用部品(ウィジェット)の集合を指します。UIグループのNameには「温度」と入れておきます。この名称は、ダッシュボードの画面でも表示されます。ui_tab...」に右にある鉛筆アイコンをクリックします。タブの設定このタブの設定では、ダッシュボード画面で表示されるタブの表示名などを指定します。ここのNameには「ダッシュボード」としますが、あくまで表示名なので任意の名前でも構いません。Nameを設定したら、ダイアログ右上の「Add」をクリックします。タブ設定の追加すると先ほどのUIグループの設定ダイアログが出てきますので、こちらも「Add」をクリックします。UIグループ設定の追加→Addボタン最後に、「chart」ノードの設定を保存します。ここでは、「Done」をクリックします。chart」ノードの保存これで疑似温度表示の準備は完了です。動きを見てみましょう。作成した疑似温度表示フローをデプロイして動作させてみましょう。右上のデプロイボタンをクリックして、フローを動作させます。フローのデプロイボタンこのままではグラフ表示が見えませんので、ダッシュボードの画面を表示します。EGG独自の方法と2種類あります。EGG独自の方法について説明します。EGGには、コンソールと呼ばれる管理用のタブが存在します。Console」)するか、ショートカットキー(「Ctrl」+「Alt」または「Cmd」+「E」)を押すことにより表示できます。メニューの場合は、次の場所に項目があります。EGGコンソールは、右側のタブウィンドウに表示されます。EGGコンソールのタブ表示状態この画面の状態から一番下の項目「ダッシュボード」をクリックします。すると次のような表示が現れます。EGGコンソールのダッシュボード表示この中の「ダッシュボードの表示」をクリックするとダッシュボード画面を見ることができます。このままでは、次のようにIDとパスワードがブラウザーから聞かれます。これは、ダッシュボード表示に認証機能が有効になっているためです。ダッシュボード表示における認証ダイアログ(FireFox)データを閲覧するだけであれば認証が不要な場合もあります。EGGコンソールのダッシュボードメニューから認証をOFFにしてみましょう。具体的には、先ほどのダッシュボード表示画面の「認証を有効にする」のトグルスイッチをクリックして左側に丸い部分が来るようにします。すると次のようにスイッチ自体が青から白に色が変わります。認証OFFにした時の表示この状態では、ダッシュボードの認証がOFFになります。「ダッシュボードの表示」をクリックしてみてください。今度は認証ダイアログが出現せずグラフが現れます。今回は5秒ごとにデータが更新されるようになっているため、5秒ごとにグラフのデータが変化していることがわかります。REDからインターネット経由で送られて来るデータをこのグラフに出すようにフローを変更してみましょう。このノードをワークスペースに追加して次のように接続します。同時に、疑似データの出力を止めるため、疑似温度データノードとchartノードとの間の接続を削除します。IN」ノードをダブルクリックして設定を変更します。listener」の右にある鉛筆アイコンをクリックします。すると以下のようにPathを設定するダイアログが現れます。今回は、Pathに「/temperature」を設定します。このPathとは、クラウド側の接続先を示す識別子です。正確に言えばWebSocketのURLの一部となるパスとなります。REDのフロー変更時にも使用します。値を入れたら、右上の「Add」をクリックし、さらに元のダイアログで表示される「Done」をクリックします。REDから温度データを受け取る準備ができました。変更した温度表示フローのデプロイ再びこの変更したフローを先ほど行ったようにDeployボタンを押してデプロイしておきましょう。EGGに繋がるように設定していないため、デプロイしても特に画面上何の変化もありません。繰り返しになりますが、デプロイをこの段階で必ず行っておきましょう!忘れると作成したフローが消えてしまいます。それではこのまま、次のステップへ進みましょう。Piの準備を行います。回準備した環境に加えて、今回はモバイル通信を行うための設定を行います。それ以外のSIMについても、各社のAPN(接続先情報)がわかっていればその内容に置き換えて手順を実施可能です。初めに、前回使用したmicroSDカードにモバイル通信をするための接続先情報を設定しましょう。Piの起動に使ったmicroSDカードにとあるファイルを書き込みます。Piを停止させてmicroSDカードを取り外します。それを作業用のパソコンで認識させます。続いて、「apn」という名前のファイルを作成してその中にAPN名を記述します。Lite利用ガイド」の「プリセットされたAPNの一覧」で調べられます。SIM」を使用するため、ファイルの中には以下のような文字列を指定します。soracom.io※上記文字列の最後に改行を入れてもいれなくても構いません。APN名が「プリセットされたAPNの一覧」に見つからない時は、「apn」ファイルに直接APNの情報を記載します。Lite利用ガイド」の「APN設定」をご覧ください。最後に作成した「apn」ファイルをmicroSDカードのbootフォルダー(またはbootと書かれたドライブ)にコピーしましょう。これでAPNの設定は完了です。Piが起動した時に自動的にこの「apn」ファイルを読み込み、APNの設定を行います。APNの設定が正しく完了すると、この「apn」ファイルは削除されますが、もし設定に誤りがある場合は削除されません。注意)ソラコムやIIJモバイルなど、利用者が回線の状態を変更できるようなSIMをご契約の場合は、必ず今回利用するSIMカードの回線をあらかじめ通信可能な状態にしておきましょう。PiにLANケーブルを取り付けましょう。Piに、もう一方は、作業用のパソコンまたは、スイッチングハブなど、最終的に作業用のパソコンと通信できる状態に接続してください。裏表に気をつけて差し込んでください。このようになれば準備完了です。Piに電源を入れて動作させてみましょう。LTEへのモバイルネットワークへの接続は開始されますが、データのやり取りをしていないので通信は行われません。Piとの接続方法は、USB接続ではなくGPIO接続となっていますので、「チカチカ、チカチカ」のような点滅パターンでオレンジのLEDが光ります(実際の点滅の様子はこちら)。Piの赤いLEDが点滅している時は電力不足状態でありうまく動作しません)。Dに差し込んでください。利用可能なACアダプターは、「出力電圧:5V、出力電流:3Aまたは4A、プラグ形状:DCプラグ・ジャック、プラグ寸法:内径:φ2.1mm、外径:φ5.5mm、極性:センタープラス」のものです。REDをブラウザーで見てみましょう。Piの準備は完了です。前回作成したフローが残っていると思いますので、後ほどそれを変更します。何も出てこない時や、サンプルフローが出ている場合は、前回の記事を参考にBLE受信フローを用意しておきましょう。続いてBLEデバイスの準備を行います。BLEデバイスの準備BLEデバイス側は、前回から特に変更はありませんが、電池を取り付けるなどして動作する状態にしましょう。続いて、前回のフローを変更します。今回の変更点は、まず自動で定期的にBLEで受信した温度データを送信するように変更すること、それに、温度データをクラウドにアップロードすることです。それでは、これまで「inject」ノードでペダルをクリックして温度データを取得していたところを自動的に一定時間ごとに温度データを取るように変更します。「温度読み取り」と書かれたノードをダブルクリックして、「inject」ノードの設定ダイアログを表示します。ここで、「Repeat」のところを「interval」に変更します。every「1」「seconds」と表示されているところを、「5」「seconds」と変更しましょう。これによって、5秒ごとに温度データを取るようになります。「1」にした場合は1秒おきにデータを取得できますが、頻度が高すぎるのでここでは5秒にしています。続いて、温度データをクラウドへアップロードします。OUT」ノードを使います。以下の図のようにノードを配置して、「温度へ変換」と書かれたノードと接続します。EGGの接続先情報を設定しましょう。OUT」ノードをダブルクリックします。OUT」ノードの設定まずはAccountの設定を行います。account...」の隣にある鉛筆アイコンをクリックしましょう。EGGへの接続情報を指定します。FQNは、接続先のURLが「https://scotcheggs.candy-line.io/my-account-id」であれば、「my-account-id@scotcheggs.candy-line.io」と表現します。FQNの入力エリアにコピー&ペーストしてください。すると、画面上で自動的に形式が変換されますのでその値を使います。IDとパスワードはそれぞれログイン時のものを指定します。入力したら「Add」をクリックします。OUT」ノードの設定に戻ります。こちらではPathを指定します。EGGのところで用意した内容と同じ「/temperature」とします。Nameを「クラウドへ温度をアップロード」としておきましょう。OUT」ノードへPathとNameを設定これで「Done」をクリックするとノードの設定は完了です。Pi側からクラウドへデータをアップロードする仕掛けが整いました。それではいよいよこれを動かしてみましょう!右上の「Deploy」をクリックしてみると、フローに変化が現れます。OUT」ノードの下に「connected」と表示されます。これらはそれぞれ、BLEデバイスに接続していることと、クラウドへ接続していることを表します。BLE」ノードで「connected」とならない場合は、電源が正しく入っているか、あるいは電池がきれていないか確認してください。OUT」ノードで「connected」とならない場合は、アカウントの情報が間違っている可能性があります。DのオレンジのLEDが正しく点滅しているか確認しましょう。EGGアプリケーションの状態もみてみましょう。1」と出ているのがわかります。「connected」の右側の数字はクラウド側が認識した現在接続中の接続の数です。Pi側とクラウド側それぞれのアプリケーションがうまく接続できました。スマホで温度表示ダッシュボード表示それではいよいよ、ダッシュボードの情報を見てみましょう。EGG側のダッシュボードを表示してみてください(ダッシュボードの表示方法については、本記事の最初の方の「疑似温度表示ダッシュボードの確認」を参照しましょう)。温度の変化が5秒おきに表示されて、グラフが描けていることが確認できますね。ボタン電池のBLEで温度データを送信していますので、ブレッドボードを色々な場所に配置して、温度の変化をみることができますから色々試してみてみましょう。今回のこのグラフは、日向にある温度の高めの会議室から、空調がよく効いている会議室の外へ出た時の温度変化をとってみました。EGGには、コンソールを表示させて、お手元のスマホでQRコードを読み込んでスマホのブラウザーで開いてみましょう。EGGコンソールのQRコード例えばiPhoneでは、以下のようにQRコードを読み込めます。iPhoneでのQRコード読み取りの様子タップするとブラウザーが起動して以下のようにスマホで閲覧できます。iPhoneでダッシュボードを表示まとめ今回は、クラウド側の実行環境の準備やクラウドアプリケーションの作成を行いました。前回作成したゲートウェイのアプリケーションを変更して、クラウドアプリケーションと通信するようにしました。細かい手順まで記載しているため、作業量の割には説明が長くなっていました。このためゆっくり少しずつ読み進めていただいていると思いますから、一度やってみただけでは全体が見えないかもしれません。手順に沿って繰り返し行ってみてください。慣れてくると全体の流れがよく見えるようになります。前回と今回の2回にわたって、一通りゲートウェイ側のアプリケーション作成やクラウド側のアプリケーション作成を体験しました。基本的なところはすでに押さえられていますから、今度は応用編として、新しいセンサーデバイスでアプリケーションを作ってみましょう。M4マイコン(EV-COG-AD4050LZ)を用いた振動計測ソリューションを作って、さらにクラウドにもつないでみましょう。EGGに送信し続けます。Piの電源を落とすようにしてください。LINEの協力により作成されました。日本語アナログ・デバイセズは、ウェブサイトの利便性を向上させるためにCookieを使用しています。弊社の会員サービスへ安全にログイン頂くための必要不可欠なCookieと、機能性を高めウェブサイトを最適化するためのCookieがあります。ウェブサイト上での活動データの収集は、弊社の製品およびサービスを改善するために使用されます。当サイトが提供できる最高のパフォーマンスと機能をお使いいただくために、クッキーを承認することをお勧めします。クッキーの詳細をご覧ください。プライバシーポリシーの詳細はこちらをご覧ください。承認して続ける承認して続ける使用されるCookieは、次のように分類されます。必要不可欠なCookie:analog.comの閲覧に必要、または機能的に提供される特定のCookieです。顧客情報をネットワーク送信するという目的に使用されます。お客様が要求するオンラインサービス(技術問合せ送信や、オンラインでの製品購入など)を提供するために必要不可欠です。分析/パフォーマンスCookie:これらのCookieにより、訪問者の数を認識してカウントし、訪問者がWebサイトをどのように移動するかなど、ウェブ分析またはその他の形式の情報を測定できます。これにより、たとえばユーザーが探しているものを簡単に見つけられるようにウェブサイト上のリンクを設定/調整するなど、ユーザビリティの改善に役立ちます。機能的Cookie:これらのCookieは、お客様が当社のウェブサイトに戻ったときにお客様を認識するために使用されます。これにより、コンテンツをパーソナライズし、個人設定(言語や地域の選択、会員サービスへのログイン情報など)を記憶することができます。これらのCookieの情報が失われると、サービスが機能しなくなる場合がありますが、ウェブサイトが機能しなくなることはありません。ターゲティング/プロファイリングCookie:これらのCookieは、当社のWebサイトへのアクセス、およびサービスの使用、アクセスしたページ、追跡したリンクを記録します。この情報を使用して、ウェブサイトとそこに表示される広告を顧客の興味に関連するものにします。その目的のためにこの情報を第三者と共有する場合があります。時間のないエンジニアの皆さんのために、セミナー情報や興味のある製品に関連したさまざまな技術情報を集めてタイムリーにお届けします。AnalogDialogueなどもご紹介しています。