リスタートさせています。起動コマンドを実行しています。接続されたセンサデバイスを操作して、データを取得するスクリプトをセットアップします。センサと明るさセンサが搭載されています。バスと電源ラインを引き出しています。温度センサを接続しています。スクリプトを使用します。バスでアクセスしてデータを取得するスクリプトについては前回の記事で紹介しています。温度センサにアクセスしてデータを取得するスクリプト(RASPI/DEVICE/TMP102_READ)は下記のようになっています。このスクリプトファイルは自由にお客様が複製、改変を行うことができます。お客様のアプリケーションと共にこのファイルを配布することができます。このスクリプトは公開されているデバイス仕様書を元に、オールブルーシステムがサンプル実装したものです。お客様がこのファイルを利用される場合には、お客様または第三者に損害が生じた場合でも、オールブルーシステムは損害賠償その他一切の責任を負担しません。するだけで温度を取得できます。補数で表現されているので、これを符号付整数に戻した後、係数を掛けて摂氏温度に変換しています。温度センサを操作してデータを取得してみます。コマンドで実行して、リターンパラメータにセンサデータが返ってくるのを確認します。ライブラリ関数内部で適切に排他制御されます。このため、前回の記事で作成した表示アプリと今回のデータ取得動作をバックグランドで同時に動作させることができます。略しています)にセンサデータを格納する部分を作成します。インメモリデータベースには、任意のキーとデータ値(Double値)を時系列に格納します。等のフラッシュメモリで作成されたファイルシステム上で動作させている場合でも長期間安定して運用することができます。終了した場合やコンピュータの電源を落とした場合には全てのデータは消えてしまいます。下記のスクリプト(RASPI/ENVSENSOR_DATA_STORE)で環境センサ基板のセンサーデータをインメモリデータベースに格納します。FASTDBにもデータを保存する。ブローカ接続用のエンドポイントを下記例を参考に作成してください。ブローカのホスト名や接続ユーザー名、パスワード、ClientID等は環境に合わせて変更します。エンドポイントタイトル名を変更した場合には、このスクリプト中のタイトル名部分も変更してください。ライブラリ関数をコールしてインメモリデータベースに格納しています。このとき、センサーデータ毎に任意のキー名を指定することで、後の集計操作時にデータ利用し易くできます。ユーザーマニュアルをご覧ください。ブローカへの送信部分も記述されていますが、これは後の項で説明します。FASTDBに保存する。温度センサから取得したデータをインメモリデータベースに格納します。次に定期的にこれらのセンサデータをインメモリデータベースに格納する部分を作成します。イベントハンドラスクリプト中に下記の様に記述するだけで完了します。イベントハンドラスクリプトには下記の内容は記述されていませんので、ここだけは手動で修正を行って下さい。時間単位に変更できます。イベントハンドラスクリプト中に同様の記述を行って下さい。分に1回自動的に実行されます。一つのスクリプトの実行は長くても数秒以内で必ず終了するようにしてください。同時実行可能なスクリプトの数に制限があるため、他のスクリプトの実行開始が待たされる原因にもなります。使用して別スレッドで実行することを検討してください。イベントハンドラ中に組み込まれています。ライブラリ関数で指定しているパラメータを変更してください。TMP102温度センサのデータが1分毎にローカル側のインメモリデータベースに格納されるようになりました。ブローカへセンサーデータを送信する部分のセットアップを行います。することが出来るようになります。ブローカに自動的に接続して、デフォルトのトピック購読などを開始します。パケットの処理や購読したトピックメッセージの受信処理、接続エラー発生時の再接続などが全て自動で行われます。エンドポイントの記述例は、下記のようになります。ブローカへ接続する場合の詳しい説明はこの記事中に記載していますので是非ご覧ください。ライブラリ関数をコールしている部分をコメントアウトしてください。ブローカで配信しているセンサデータをインメモリデータベースに登録する設定を行います。ブローカへの接続設定(エンドポイント設定)では下記のトピックを自動で購読するように指定されています。ライブラリ関数を使用してデータを送信するときに指定しているトピックと同じにしています。ブローカから配信されています。2つのトピック名に一致するデータを購読する場合には、設定ファイル中の自動購読を指定するタグに下記の様に記述します。イベントハンドラが自動的に実行されます。このイベントハンドラ中にセンサデータをインメモリデータベースに格納する記述を行います。イベントハンドラスクリプトの内容は下記の様になります。"MQTT_PUBLISH"--[[******************************************************************************一つのスクリプトの実行は長くても数秒以内で必ず終了するようにしてください。処理に時間がかかると、イベント処理の終了を待つサーバー側でタイムアウトが発生します。同時実行可能なスクリプトの数に制限があるため、他のスクリプトの実行開始が待たされる原因にもなります。使用して別スレッドで実行することを検討してください。エンドポイントに設定されたタイトル文字列。プロトコルで定義されたメッセージタイプが入ります。