(57)【特許請求の範囲】
【請求項１】
第１のネットワークを介して通信可能な複数の通信装置の第１の通信装置が、
センサーを有するノード群を含む第２のネットワークに対して、前記センサーのデータ収集要求を送信し、
前記複数の通信装置の第２の通信装置が、
前記データ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、前記データ収集要求に対応する前記センサーのデータを受信したことを示す受信情報を前記第１のネットワークを介して前記第１の通信装置に送信する、
処理を実行することを特徴とする通信方法。
【請求項２】
前記第１の通信装置が、
前記第１の通信装置から送信された信号が前記ノード間のマルチホッピング通信により前記第２の通信装置に転送されるまでのホップ数を取得し、
取得した前記ホップ数と前記第２のネットワーク内のノード間の通信時間とに基づいて、前記センサーのデータ収集にかかる収集時間を算出し、
前記データ収集要求を送信してから算出した前記収集時間が経過するまでに、前記第２の通信装置から前記受信情報を受信したか否かを判断する、
処理を実行することを特徴とする請求項１に記載の通信方法。
【請求項３】
前記第１の通信装置が、
前記データ収集要求を送信してから前記収集時間が経過するまでに前記受信情報を受信していないと判断した場合、前記第２のネットワークに対して、前記データ収集要求を送信する、
処理を実行することを特徴とする請求項２に記載の通信方法。
【請求項４】
前記第１の通信装置が、
０から前記ホップ数までの整数ごとに、前記センサーの前記整数個のデータの規定サイズと、前記第２のネットワーク内のノード間の単位データ当たりの通信時間とに基づいて、前記センサーの前記整数個のデータの通信時間を算出する、処理を実行し、
前記収集時間を算出する処理は、
０から前記ホップ数までの整数ごとに算出した前記センサーの前記整数個のデータの通信時間を累積することにより、前記センサーのデータ収集にかかる収集時間を算出することを特徴とする請求項２または３に記載の通信方法。
【請求項５】
前記第２の通信装置が、
前記データ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、受信した前記センサーのデータの個数が前記第２のネットワーク内のノードの個数に基づく所定数以上であるか否かを判断する、処理を実行し、
前記第１の通信装置に送信する処理は、
前記センサーのデータの個数が前記所定数以上であると判断した場合、前記受信情報を前記第１のネットワークを介して前記第１の通信装置に送信することを特徴とする請求項１〜４のいずれか一つに記載の通信方法。
【請求項６】
前記第２の通信装置が、
前記第１の通信装置から送信された信号が前記第２の通信装置に転送されるまでに経由する前記第２のネットワーク内の１以上の経路上のノードの個数を取得する、処理を実行し、
前記センサーのデータの個数が前記所定数以上であるか否かを判断する処理は、
前記データ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、受信した前記センサーのデータの個数が取得した前記１以上の経路上のノードの個数に基づく所定数以上であるか否かを判断することを特徴とする請求項５に記載の通信方法。
【請求項７】
第１のネットワークを介して通信可能な複数の通信装置と、第２のネットワークに含まれるセンサーを有するノード群と、を有するシステムにおいて、
前記第２のネットワークに対して、前記センサーのデータ収集要求を送信する第１送信部を有する前記複数の通信装置の第１の通信装置と、
前記データ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、前記データ収集要求に対応する前記センサーのデータを受信したことを示す受信情報を前記第１のネットワークを介して前記第１の通信装置に送信する第２送信部を有する前記複数の通信装置の第２の通信装置と、
を含むことを特徴とするシステム。
【請求項８】
複数の通信装置の第１の通信装置に第１のネットワークを介して通信可能な第２の通信装置に、
センサーを有するノード群を含む第２のネットワークに対して、前記第１の通信装置が送信した前記センサーのデータ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、前記データ収集要求に対応する前記センサーのデータを受信したことを示す受信情報を前記第１のネットワークを介して前記第１の通信装置に送信する、
処理を実行させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信方法、システム、および通信プログラムに関する。
【背景技術】
【０００２】
従来、センサーを有するノードを所定空間に散在させ、各ノードが協調して物理的状況を取得することを可能とするネットワーク（ＷＳＮ：Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ）がある。ネットワーク内の各ノードは、マルチホッピング通信によってデータを送受信する。また、設置された環境に応じて得られるエネルギーを用いて発電する、エナジーハーベストと呼ばれる技術がある。また、通信の終了時に受信側から送信側にＡＣＫ（ＡＣＫｎｏｗｌｅｄｇｅｍｅｎｔ）を送信することにより、正常にデータが到達したことを送信側に伝える技術がある。
【０００３】
関連する先行技術として、たとえば、基地局からデータ収集要求を下流に送信し、基地局の下流のモジュールがさらに下流のモジュールにデータ収集要求を転送したことを、基地局から下流のモジュールへのデータ収集要求の送信に対するＡＣＫとみなす技術がある。（たとえば、下記特許文献１を参照。）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−０９２６５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、所定空間に散在させたノードが有するセンサーのデータを収集する際、データを受信した通信装置がＡＣＫをノードに送信しても、通信制約が厳しいため、ノードがＡＣＫを受信できない場合がある。たとえば、所定空間に散在されたノードは、ノード間の距離が近い他のノードによる電波の影響によりＡＣＫを受信できない場合がある。また、たとえば、エナジーハーベストにより発電された電力を用いて動作するノードは、電力不足によりＡＣＫを受信できない場合もあるし、ＡＣＫを受信することはできても電力不足によりＡＣＫを他のノードに送信できない場合もある。ＡＣＫを受信できない場合、たとえば、通信装置がデータを受信していても、ＡＣＫを受信できないためにデータを再送してしまう場合がある。
【０００６】
１つの側面では、本発明は、通信制約の厳しいノードからのデータ収集の効率化を図る通信方法、システム、および通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、第１のネットワークを介して通信可能な複数の通信装置の第１の通信装置が、センサーを有するノード群を含む第２のネットワークに対して、センサーのデータ収集要求を送信し、複数の通信装置の第２の通信装置が、データ収集要求に対応して第２のネットワーク内のノード間のマルチホップ通信により転送されるセンサーのデータを受信した場合、データ収集要求に対応するセンサーのデータを受信したことを示す受信情報を第１のネットワークを介して第１の通信装置に送信する通信方法、システム、および通信プログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、通信制約の厳しいノードからのデータ収集の効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１にかかるシステムの動作例を示す説明図である。
【図２】図２は、センサーネットワークシステムの接続例を示す説明図である。
【図３】図３は、利用者端末のハードウェア構成例を示すブロック図である。
【図４】図４は、データ収集要求装置のハードウェア構成例を示すブロック図である。
【図５】図５は、データ集約装置のハードウェア構成例を示すブロック図である。
【図６】図６は、ノードのハードウェア構成例を示すブロック図である。
【図７】図７は、実施の形態１にかかるセンサーネットワークシステムの機能構成例を示すブロック図である。
【図８】図８は、パケットのフォーマットの一例を示す説明図である。
【図９】図９は、キャリブレーション要求送信時の動作例を示す説明図（その１）である。
【図１０】図１０は、キャリブレーション要求送信時の動作例を示す説明図（その２）である。
【図１１】図１１は、キャリブレーション要求送信時の動作例を示す説明図（その３）である。
【図１２】図１２は、データ収集要求送信時の動作例を示す説明図（その１）である。
【図１３】図１３は、データ収集要求送信時の動作例を示す説明図（その２）である。
【図１４】図１４は、データ収集要求送信時の動作例を示す説明図（その３）である。
【図１５】図１５は、データ収集要求送信時の動作例を示す説明図（その４）である。
【図１６】図１６は、実施の形態１にかかる利用者端末によるキャリブレーション要求指示処理手順の一例を示すフローチャートである。
【図１７】図１７は、利用者端末によるデータ収集要求指示処理手順の一例を示すフローチャートである。
【図１８】図１８は、データ収集要求装置による要求指示処理手順の一例を示すフローチャートである。
【図１９】図１９は、ノードによるパケット処理手順の一例を示すフローチャートである。
【図２０】図２０は、データ集約装置によるデータ収集中止指示受信処理手順の一例を示すフローチャートである。
【図２１】図２１は、データ集約装置によるパケット受信処理手順の一例を示すフローチャートである。
【図２２】図２２は、データ集約装置によるキャリブレーション要求処理手順の一例を示すフローチャートである。
【図２３】図２３は、データ集約装置によるキャリブレーション開始処理手順の一例を示すフローチャートである。
【図２４】図２４は、データ集約装置によるキャリブレーション集約処理手順の一例を示すフローチャート（その１）である。
【図２５】図２５は、データ集約装置によるキャリブレーション集約処理手順の一例を示すフローチャート（その２）である。
【図２６】図２６は、データ集約装置によるデータ収集要求処理手順の一例を示すフローチャートである。
【図２７】図２７は、データ集約装置によるデータ集約処理手順の一例を示すフローチャート（その１）である。
【図２８】図２８は、データ集約装置によるデータ集約処理手順の一例を示すフローチャート（その２）である。
【図２９】図２９は、実施の形態２にかかるセンサーネットワークシステムの機能構成例を示すブロック図である。
【図３０】図３０は、実施の形態２にかかる利用者端末によるキャリブレーション要求指示処理手順の一例を示すフローチャートである。
【図３１】図３１は、利用者端末による再キャリブレーション要求指示処理手順の一例を示すフローチャートである。
【図３２】図３２は、データ集約装置によるノードＩＤ送信処理手順の一例を示すフローチャートである。
【図３３】図３３は、データ集約装置による所定数更新処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示の通信方法、システム、および通信プログラムの実施の形態を詳細に説明する。
【００１１】
（実施の形態１の説明）
図１は、実施の形態１にかかるシステムの動作例を示す説明図である。システム１００は、第１の通信装置となる通信装置１０１と、第２の通信装置となる通信装置１０２と、センサーを有するノード群としてノード＃１〜＃１６と、を含む。通信装置１０１、１０２は、第１のネットワークであるネットワーク１０３を介して接続される。ノード＃１〜＃１６は、第２のネットワークであるネットワーク１０４に含まれる。
【００１２】
各ノードは、各ノードが設置された環境に応じて得られるエネルギーを用いて発電するエナジーハーベスト素子を有し、エナジーハーベスト素子により発生する電力を充電する充電部に充電された電力を用いて動作する通信装置である。各ノードは、所定領域Ｒ内に配置される。所定領域は、たとえば、コンクリート、土、水、空気などの物質で満たされた領域である。各ノードは、十分に蓄電されると起動し、データを送信してスリープするという間欠動作を行う。また、エナジーハーベスト素子により発生する電力は限られるため、各ノードは、電力消費が少ない短距離無線を有しており、マルチホップ通信によりデータを送受信する。
【００１３】
また、各ノードは、センサーを有する。各ノードは、各々が有するセンサーから、所定領域内の温度、湿度、応力といったデータを測定する。
【００１４】
通信装置１０１は、ネットワーク１０４に対してセンサーのデータ収集要求を発行する。通信装置１０２は、センサーのデータ収集要求に対応するセンサーのデータを受信する。センサーのデータは、通信装置１０２を介してサーバに集約されて、解析処理に用いられる。
【００１５】
ネットワーク１０３は、有線信号または無線信号により複数のコンピュータを接続するものである。ネットワーク１０３は、通信が遮断される可能性が低く、確実に通信を行えることが多い。一方、ネットワーク１０４は、短距離無線を用いて複数のノードを接続するものである。
【００１６】
ここで、通信装置１０１、１０２が、センサーのデータを確実に取得するために、通信装置１０２がデータを受信した後、通信装置１０２が通信装置１０１に対して、ＡＣＫとなる、データを受信したことを示す受信信号を送信する。しかしながら、受信信号をノードによりマルチホッピング通信により通信装置１０１に送信しようとすると、ノードは通信制約が厳しいため、ノードがＡＣＫを受信できない場合がある。ここで、通信制約は、通信に対する制約である。たとえば、ノードは、所定空間に散在されるため、ノード間の距離が近い他のノードによる電波の影響によりＡＣＫを受信できない場合がある。また、ノードは、エナジーハーベスト素子により動作するため、電力不足によりＡＣＫを受信できない場合もあるし、電力不足により他のノードにＡＣＫを送信できない場合もある。
【００１７】
そこで、実施の形態１にかかるシステム１００は、通信装置１０１がノード群にデータ収集要求を送信し、通信装置１０２がノード群からデータを受信したら通信装置１０１にネットワーク１０３を用いて受信情報を直接送信する。これにより、システム１００は、通信制約が厳しいノード群を経由せずにデータの到達を通信装置１０１に伝えることができる。以下、図１の（Ａ）と図１の（Ｂ）とを用いてシステム１００の具体的な動作例を示す。
【００１８】
図１の（Ａ）において、通信装置１０１は、センサーを有するノード群を含む第２のネットワーク１０４に対して、センサーのデータ収集要求１１１を送信する。そして、図１の（Ｂ）において、通信装置１０２がセンサーのデータ収集要求１１１を受信したら、通信装置１０２は、データ収集要求１１１を受信したことを示す受信情報１１２を、ネットワーク１０３を介して通信装置１０１に送信する。次に、システム１００を、センサーネットワークシステム２００に適用した場合の例について、図２に示す。
【００１９】
図２は、センサーネットワークシステムの接続例を示す説明図である。センサーネットワークシステム２００は、利用者端末２０１と、データ収集要求装置２０２と、データ集約装置２０３と、ノード群となるノード＃１〜ノード＃１６と、を含む。利用者端末２０１と、データ収集要求装置２０２と、データ集約装置２０３とは、ネットワーク２０４でそれぞれ接続される。ノード＃１〜ノード＃１６は、ネットワーク２０５に含まれる。ここで、利用者端末２０１は、通信装置１０１に相当する。また、データ集約装置２０３は、通信装置１０２に相当する。データ収集要求装置２０２は、通信装置１０１が有する機能のうち、第３の通信装置として、ネットワーク２０５に対してデータ収集要求を行う機能を有する。また、ネットワーク２０４は、ネットワーク１０３に相当する。さらに、ネットワーク２０５は、ネットワーク１０４に相当する。
【００２０】
利用者端末２０１は、センサーネットワークシステム２００を利用するユーザが利用するコンピュータである。利用者端末２０１は、利用者の指示により、データ収集要求装置２０２にデータ収集指示を送信する。
【００２１】
データ収集要求装置２０２は、データ収集要求を周辺のノードに送信する装置である。ノードは、データ収集要求を受信すると、自ノードのセンサーを稼働して測定を行い、データ収集要求と収集データを周辺のノードに送信する。データ集約装置２０３は、受信した収集データを集約し、集約データを利用者端末２０１に送信する。
【００２２】
ネットワーク２０４は、複数のコンピュータを接続するものである。ネットワーク２０５は、たとえば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。次に、図３〜図６を用いて、利用者端末２０１、データ収集要求装置２０２、データ集約装置２０３、ノードのハードウェア構成例を示す。
【００２３】
（利用者端末２０１のハードウェア構成例）
図３は、利用者端末のハードウェア構成例を示すブロック図である。図３において、利用者端末２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、を含む。また、利用者端末２０１は、大容量不揮発メモリ３０４と、ネットワークＩ／Ｆ３０５と、を含む。また、利用者端末２０１は、ディスプレイ３０６と、キーボード３０７と、マウス３０８とを含む。また、ＣＰＵ３０１〜マウス３０８はバス３０９によってそれぞれ接続される。
【００２４】
ＣＰＵ３０１は、利用者端末２０１の全体の制御を司る演算処理装置である。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００２５】
大容量不揮発メモリ３０４は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、大容量不揮発メモリ３０４は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリ等が採用される。
【００２６】
ネットワークＩ／Ｆ３０５は、ネットワーク２０４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、ネットワークＩ／Ｆ３０５は、通信回線を通じてネットワーク２０４に接続され、ネットワーク２０４を介して他の装置に接続される。ネットワークＩ／Ｆ３０５には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００２７】
ディスプレイ３０６は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ３０６には、たとえば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２８】
キーボード３０７は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード３０７は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３０８は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス３０８は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００２９】
（データ収集要求装置２０２のハードウェア構成例）
図４は、データ収集要求装置のハードウェア構成例を示すブロック図である。データ収集要求装置２０２は、プロセッサ（ＣＰＵ）４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、不揮発メモリ４０４と、インターフェース（Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ））回路４０５と、無線通信回路４１１と、アンテナ４１２と、ネットワークＩ／Ｆ４１３と、を有する。ＣＰＵ４０１は、データ収集要求装置２０２全体の制御を司る演算処理装置である。また、データ収集要求装置２０２は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、不揮発メモリ４０４と、Ｉ／Ｏ回路４０５と、を接続するバス４０６を有する。データ収集要求装置２０２は、ノードと異なり外部電源に基づき動作してもよいし、内部電源に基づき動作してもよい。不揮発メモリ４０４は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、不揮発メモリ４０４は、フラッシュメモリ等が採用される。
【００３０】
また、Ｉ／Ｏ回路４０５には、無線通信回路４１１およびアンテナ４１２と、ネットワークＩ／Ｆ４１３が接続される。これにより、データ収集要求装置２０２は、無線通信回路４１１およびアンテナ４１２を介して、周辺のノードと無線通信することができる。さらに、データ収集要求装置２０２は、ネットワークＩ／Ｆ４１３を介して、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のプロトコル処理などにより、インターネットなどのネットワーク２０４を介して利用者端末２０１やデータ集約装置２０３と通信を行うことができる。
【００３１】
（データ集約装置２０３のハードウェア構成例）
図５は、データ集約装置のハードウェア構成例を示すブロック図である。データ集約装置２０３は、ＣＰＵ５０１と、ＲＯＭ５０２と、ＲＡＭ５０３と、大容量不揮発メモリ５０４と、Ｉ／Ｏ回路５０５と、無線通信回路５１１と、アンテナ５１２と、ネットワークＩ／Ｆ５１３と、を有する。ＣＰＵ５０１は、データ集約装置２０３全体の制御を司る演算処理装置である。また、データ集約装置２０３は、ＣＰＵ５０１と、ＲＯＭ５０２と、ＲＡＭ５０３と、大容量不揮発メモリ５０４と、Ｉ／Ｏ回路５０５と、を接続するバス５０６を有する。データ集約装置２０３は、ノードと異なり外部電源に基づき動作してもよいし、内部電源に基づき動作してもよい。大容量不揮発メモリ５０４は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、大容量不揮発メモリ５０４は、ＨＤＤ、フラッシュメモリ等が採用される。
【００３２】
また、Ｉ／Ｏ回路５０５には、無線通信回路５１１およびアンテナ５１２と、ネットワークＩ／Ｆ５１３が接続される。これにより、データ集約装置２０３は、無線通信回路５１１およびアンテナ５１２を介して、周辺のノードと無線通信することができる。さらに、データ集約装置２０３は、ネットワークＩ／Ｆ５１３を介して、ＩＰのプロトコル処理などにより、インターネットなどのネットワーク２０４を介して利用者端末２０１やデータ収集要求装置２０２と通信を行うことができる。
【００３３】
（ノードのハードウェア構成例）
図６は、ノードのハードウェア構成例を示すブロック図である。図６の例では、ノード＃１を例として、ノード＃１のハードウェア構成を示す。他のノードも、ノード＃１と同様のハードウェア構成となる。ノード＃１は、マイクロプロセッサ（以下、「ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）」と称する。）６０１と、センサー６０２と、無線通信回路６０３と、ＲＡＭ６０４と、ＲＯＭ６０５と、不揮発メモリ６０６と、アンテナ６０７と、ハーベスタ６０８と、バッテリ６０９と、を有する。ノード＃１は、ＭＣＵ６０１と、センサー６０２と、無線通信回路６０３と、ＲＡＭ６０４と、ＲＯＭ６０５と、不揮発メモリ６０６と、を接続するバス６１０を有する。
【００３４】
ＭＣＵ６０１は、ノード＃１の全体の制御を司る演算処理装置である。たとえば、ＭＣＵ６０１は、センサー６０２が検出したデータを処理する。センサー６０２は、設置箇所における所定の変位量を検出する装置である。センサー６０２は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナ６０７は、親機と無線通信する電波を送受信する。無線通信回路６０３（ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ））は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ６０７を介して送信する。無線通信回路６０３は、数１０ｃｍ付近にある他ノードと通信可能とする短距離無線が採用された通信回路でよい。
【００３５】
ＲＡＭ６０４は、ＭＣＵ６０１における処理の一時データを格納する記憶装置である。ＲＯＭ６０５は、ＭＣＵ６０１が実行する処理プログラムなどを格納する記憶装置である。不揮発メモリ６０６は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、不揮発メモリ６０６は、フラッシュメモリ等が採用される。
【００３６】
ハーベスタ６０８は、図１で説明したエナジーハーベスト素子であり、ノード＃１の設置箇所における外部環境、たとえば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う装置である。また、ハーベスタ６０８は、センサー６０２によって検出された変位量に応じて発電を行ってもよい。バッテリ６０９は、ハーベスタ６０８により発電された電力を蓄える装置である。すなわち、ノード＃１は、外部電源などが不要であり、動作に要求される電力を自装置の内部で生成する。
【００３７】
（センサーネットワークシステム２００の機能）
次に、センサーネットワークシステム２００の機能について説明する。図７は、実施の形態１にかかるセンサーネットワークシステムの機能構成例を示すブロック図である。センサーネットワークシステム２００は、第１取得部７０１と、算出部７０２と、第１判断部７０３と、第１送信部７０４と、第２判断部７１１と、第２送信部７１２と、を含む。第１取得部７０１〜第１送信部７０４は、利用者端末２０１が有する機能である。また、第１送信部７０４は、データ収集要求装置２０２が有してもよい。第２判断部７１１、第２送信部７１２は、データ集約装置２０３が有する機能である。
【００３８】
制御部となる第１取得部７０１〜第２送信部７１２は、記憶装置に記憶されたプログラムをＣＰＵ３０１、ＣＰＵ５０１が実行することにより、第１取得部７０１〜第２送信部７１２の機能を実現する。記憶装置とは、具体的には、たとえば、図３〜図５に示したＲＯＭ３０２、ＲＡＭ３０３、大容量不揮発メモリ３０４、ＲＯＭ５０２、ＲＡＭ５０３、大容量不揮発メモリ５０４などである。
【００３９】
第１取得部７０１は、利用者端末２０１から送信された信号がノード間のマルチホッピング通信によりデータ集約装置２０３に転送されるまでのホップ数を取得する。また、第１取得部７０１は、利用者端末２０１から送信された信号がノード間のマルチホッピング通信によりデータ集約装置２０３に転送されるまでのホップ数のうちの最大のホップ数を取得してもよい。また、第１取得部７０１は、利用者端末２０１から信号を複数回送信して、取得したホップ数の平均値や取得したホップ数の最大値をホップ数として取得してもよい。なお、取得したデータは、ＲＡＭ３０３、大容量不揮発メモリ３０４などの記憶領域に記憶される。
【００４０】
算出部７０２は、第１取得部７０１が取得したホップ数とネットワーク２０５内のノード間の通信時間とに基づいて、センサーのデータ収集にかかる収集時間を算出する。具体的な算出時間は、後述する（１）式にて示す。
【００４１】
また、算出部７０２は、０からホップ数までの整数ごとに、センサーの整数個のデータの規定サイズと、ネットワーク２０５内のノード間の単位データ当たりの通信時間とに基づいて、センサーの整数個のデータの通信時間を算出する。そして、算出部７０２は、０からホップ数までの整数ごとに算出したセンサーの整数個のデータの通信時間を累積することにより、センサーのデータ収集にかかる収集時間を算出してもよい。具体的な算出時間は、後述する（２）式〜（４）式にて示す。なお、算出した収集時間は、ＲＡＭ３０３、大容量不揮発メモリ３０４などの記憶領域に記憶される。
【００４２】
第１判断部７０３は、第１送信部７０４がデータ収集要求を送信してから算出部７０２が算出した収集時間が経過するまでに、データ集約装置２０３から受信情報を受信したか否かを判断する。また、第１判断部７０３が利用者端末２０１の機能であり、第１送信部７０４がデータ収集要求装置２０２の機能であるとする。このとき、第１判断部７０３は、第１送信部７０４がデータ収集要求を送信した時点を、利用者端末２０１がデータ収集要求装置２０２にデータ収集要求の指示を送信した時点としてもよい。さらにこの時、第１判断部７０３は、データ収集要求の指示にかかる時間を収集時間に加算してもよい。なお、判断結果は、ＲＡＭ３０３、大容量不揮発メモリ３０４などの記憶領域に記憶される。
【００４３】
第１送信部７０４は、ネットワーク２０５に対して、センサーのデータ収集要求を送信する。また、第１送信部７０４は、第１判断部７０３がデータ収集要求を送信してから収集時間が経過するまでに受信情報を受信していないと判断した場合、ネットワーク２０５に対して、データ収集要求を送信する。
【００４４】
第２判断部７１１は、データ収集要求に対応してネットワーク２０５内のノード間のマルチホップ通信により転送されるセンサーのデータを受信した場合、受信したセンサーのデータの個数が所定数以上であるか否かを判断する。なお、判断結果は、ＲＡＭ５０３、大容量不揮発メモリ５０４などの記憶領域に記憶される。
【００４５】
ここで、所定数とは、ネットワーク２０５内のノードの個数に基づく値である。所定数は、センサーネットワークシステム２００の利用者により予め設定される値である。たとえば、所定数は、最も単純な例では、ネットワーク２０５内のノードの数と同数となる。また、たとえば、所定数は、冗長性を考慮して１割多めにノードが設置された場合、設置した数より１割ほど少なめの数としてもよい。
【００４６】
第２送信部７１２は、データ収集要求に対応してネットワーク２０５内のノード間のマルチホップ通信により転送されるセンサーのデータを受信した場合、受信情報を、ネットワーク２０４を介して利用者端末２０１に送信する。受信情報は、データ収集要求に対応するセンサーのデータを受信したことを示す情報である。たとえば、受信情報は、データ収集要求に対応するセンサーのデータを受信したことを示す識別子でもよいし、センサーのデータそのものでもよい。
【００４７】
また、第２送信部７１２は、第２判断部７１１がセンサーのデータの個数が所定数以上であると判断した場合、受信情報を、ネットワーク２０４を介して利用者端末２０１に送信してもよい。
【００４８】
図８は、パケットのフォーマットの一例を示す説明図である。図８において、本実施の形態にかかるパケットとしては、キャリブレーション要求を示すパケットとデータ収集要求を示すパケットとの、２種類がある。以下、キャリブレーション要求を示すパケットを、「キャリブレーション要求パケット」と呼称する。データ収集要求を示すパケットは、「データ収集要求パケット」と呼称する。
【００４９】
キャリブレーション要求パケットは、パケットフォーマット８０１に従う。パケットフォーマット８０１は、先頭から順に、キャリブレーション要求フラグ、キャリブレーションＩＤ、ホップ数、ノードＩＤ１、ノードＩＤ２、…、というフィールドを有する。ノードＩＤは、ホップ数フィールドに格納された値分存在する。
【００５０】
キャリブレーション要求フラグフィールドには、該当のパケットがキャリブレーション要求パケットであることを示す値が格納される。キャリブレーションＩＤフィールドには、複数回のキャリブレーションを行う際に、データ集約装置２０３で過去のキャリブレーション要求と混同しないためのものであり、利用者端末２０１またはデータ収集要求装置２０２により一意の値が格納される。ホップ数フィールドには、データ収集要求装置２０２が送信する段階では０が格納されており、該当のパケットがノードを通過するたびに１ずつ増加した値が格納される。ホップ数フィールド以降は、該当のパケットが経由してきたノードのＩＤが格納されたノードＩＤフィールドが継ぎ足される。
【００５１】
データ収集要求パケットは、パケットフォーマット８０２に従う。パケットフォーマット８０２は、先頭から順に、データ収集要求フラグ、収集ＩＤ、データ数、ノードＩＤ１、収集データ１、ノードＩＤ２、収集データ２、…、というフィールドを有する。ノードＩＤと収集データとは、データ数フィールドに格納された値分存在する。
【００５２】
データ収集要求フラグフィールドには、該当のパケットがデータ収集要求であることを示す値が格納される。収集ＩＤフィールドには、前回の収集と混同しないために用いられる一意の値が格納される。データ数フィールドには、該当のパケットに付与されたノードＩＤおよび収集データを１組とした際の組の数が格納される。たとえば、データ収集要求装置２０２が送る段階では、収集データがないためデータ数フィールドには、０が格納される。なお、データ数フィールドには、データ数フィールドに続くセンサーノードＩＤと収集データのサイズが格納されてもよい。データ数フィールド以降は、該当のパケットが経由してきたノードのＩＤが格納されたノードＩＤフィールドと、該当のパケットが経由してきたノードのセンサー６０２から取得したデータが格納された収集データフィールドとが継ぎ足される。収集データフィールドのサイズは、予め決められた規定サイズである。
【００５３】
続けて、図９〜図１１を用いて、センサーネットワークシステム２００内にて、キャリブレーション要求パケットをリレーする際の動作例について説明する。
【００５４】
図９は、キャリブレーション要求送信時の動作例を示す説明図（その１）である。図９の（１）が示すように、利用者端末２０１は、キャリブレーション要求指示をデータ収集要求装置２０２に送信する。
【００５５】
次に、図９の（２）が示すように、キャリブレーション要求指示を受信したデータ収集要求装置２０２は、キャリブレーション要求パケットを、周辺のノードであるノード＃１とノード＃１０とに送信する。図９において、データ収集要求装置２０２が送信するキャリブレーション要求パケット９０１、９０２は、たとえば、キャリブレーションＩＤフィールドには"１"が格納されており、ホップ数フィールドには"０"が格納される。
【００５６】
図１０は、キャリブレーション要求送信時の動作例を示す説明図（その２）である。図１０では、キャリブレーション要求パケットをノード間でリレーする様子を示す。
【００５７】
パケットを受信したノードは、先頭フィールドを参照して、受信したパケットが、キャリブレーション要求パケットか、データ収集要求パケットかのいずれかを判断する。受信したパケットがキャリブレーション要求パケットであれば、ノードは、受信したパケットからノードＩＤを取得して、自ノードＩＤが含まれるか否かを判断する。
【００５８】
自ノードＩＤが含まれる場合、ノードは、経路がループして自ノードが送信したパケットがもどってきたことを示すため、ノードは、受信したパケットを破棄する。自ノードＩＤが含まれない場合、ノードは、受信したパケットのホップ数を１増加させるとともに、自ノードＩＤを新たなノードＩＤフィールドに格納する。そして、図１０の（３）が示すように、ノードは、自ノードＩＤを格納したパケットを、周辺のノードに送信する。
【００５９】
図１０の例では、ノード＃２は、キャリブレーション要求パケット１００１を周辺のノードであるノード＃３に送信する。キャリブレーション要求パケット１００１は、２つのノードＩＤフィールドを有する。キャリブレーション要求パケット１００１のノードＩＤフィールドのそれぞれには、"＃１"、"＃２"が格納される。また、ノード＃１６は、キャリブレーション要求パケット１００２を周辺のノードであるノード＃１３に送信する。キャリブレーション要求パケット１００２は、３つのノードＩＤフィールドを有する。キャリブレーション要求パケット１００２のノードＩＤフィールドのそれぞれには、"＃１０"、"＃１５"、"＃１６"が格納される。
【００６０】
図１１は、キャリブレーション要求送信時の動作例を示す説明図（その３）である。図１１では、キャリブレーション要求パケットをノード間でリレーした結果を示す。さらに、図１１では、ノード＃１２が故障しており、ノード＃１１が送信したキャリブレーション要求パケットがリレーできなかったとする。データ集約装置２０３は、図１１の（４）が示すように、受信したキャリブレーション要求パケットを集約して、大容量不揮発メモリ５０４に記憶する。具体的な集約手順について、次に示す。
【００６１】
パケットを受信した場合、データ集約装置２０３は、先頭フィールドを参照して、受信したパケットが、キャリブレーション要求パケットか、データ収集要求パケットかのいずれかを判断する。受信したパケットがキャリブレーション要求パケットであれば、データ集約装置２０３は、受信したパケットのホップ数を取得して、現在記憶中の最大ホップ数と比較する。取得したホップ数が最大ホップ数より大きければ、データ集約装置２０３は、取得したホップ数で最大ホップ数を更新する。また、データ集約装置２０３は、受信したパケットのノードＩＤフィールドに格納されたノードＩＤのうちの、現在記憶中のＩＤとして登録されていないＩＤを、現在記憶中のＩＤとして記憶する。
【００６２】
大容量不揮発メモリ５０４の具体的な記憶内容として、データ集約装置２０３は、キャリブレーションＩＤ"１"について、最大ホップ数"６"を記憶し、ノード数"１４"を記憶し、ノードＩＤリスト"＃１〜＃１０，＃１３〜＃１６"を記憶する。ホップ数が"６"となる経路は、図１１の例では、"＃１"、"＃６"、"＃７"、"＃８"、"＃９"、"＃５"の経路と、"＃１０"、"＃１５"、"＃１６"、"＃１３"、"＃１４"、"＃５"の経路と、である。
【００６３】
ノードＩＤを記憶した後、図１１に示すデータ集約装置２０３は、記憶したノードＩＤの個数が所定数以上であるかを判断する。記憶したノードＩＤの個数が所定数以上であれば、図１１の（５）が示すように、データ集約装置２０３は、最大ホップ数をネットワーク２０４を介して利用者端末２０１に送信する。
【００６４】
続けて、図１１の（６）が示すように、最大ホップ数を受信した利用者端末２０１は、最大ホップ数を用いて、最大収集時間を算出する。たとえば、利用者端末２０１は、下記（１）式を用いて、最大収集時間Ｗmaxを算出する。
【００６５】
Ｗmax＝Ｈmax×Ｔave  …（１）
【００６６】
ただし、Ｈmaxは、最大ホップ数である。また、Ｔaveは、ノード間の平均通信時間である。（１）式において、Ｔaveは、予め測定して求めた値である。
【００６７】
また、利用者端末２０１は、（２）式を用いて最大収集時間Ｗmaxを算出してもよい。
【００６８】
【数１】
0005971412.tif 000002
ただし、ＴHは、下記（３）式を用いて算出される。
【００６９】
ＴH＝ＴO＋ＤH×Ｐ  …（３）
【００７０】
また、ＴDは、下記（４）式を用いて算出される。
【００７１】
ＴD＝ＤD×Ｐ  …（４）
【００７２】
ただし、ＴOは、ノードでの通信処理時間である。また、ＤHは、パケットのヘッダ部分のデータ量である。ここで、パケットフォーマット８０１において、ヘッダ部分は、キャリブレーション要求フラグ、キャリブレーションＩＤ、ホップ数のフィールドである。また、パケットフォーマット８０２において、ヘッダ部分は、データ収集要求フラグ、収集ＩＤ、データ数のフィールドである。ＤDは、１ホップ分のパケットのデータ部分の規定データ量である。ここで、パケットフォーマット８０１において、データ部分は、ノードＩＤのフィールドである。また、パケットフォーマット８０２において、データ部分は、ノードＩＤ、収集データのフィールドである。Ｐは、単位データ量当たりの通信時間である。
【００７３】
（２）式〜（４）式において、ＴO、ＤH、ＤD、Ｐは、収集するデータの種類や、ノードの設計上の処理速度、通信速度により決定される値である。したがって、Ｗmaxを算出する際に、Ｈmax以外の変数は、固定値として扱うことができる。
【００７４】
続けて、図１２〜図１５を用いて、センサーネットワークシステム２００内にて、データ収集要求パケットをリレーする際の動作例について説明する。
【００７５】
図１２は、データ収集要求送信時の動作例を示す説明図（その１）である。図１２の（１）が示すように、利用者端末２０１は、データ収集要求指示をデータ収集要求装置２０２に送信する。データ収集要求指示を送信後、利用者端末２０１は、最大収集時間が経過するまで、データ集約装置２０３からのデータ収集要求指示に対応するデータを待ち受ける。
【００７６】
次に、図１２の（２）が示すように、データ収集要求指示を受信したデータ収集要求装置２０２は、データ収集要求パケットを、周辺のノードであるノード＃１とノード＃１０とに送信する。図１２において、データ収集要求装置２０２が送信するデータ収集要求パケット１２０１、１２０２は、たとえば、収集ＩＤフィールドには"１"が格納されており、データ数フィールドには"０"が格納される。
【００７７】
図１３は、データ収集要求送信時の動作例を示す説明図（その２）である。図１３では、データ収集要求パケットをノード間でリレーする様子を示す。
【００７８】
パケットを受信したノードは、先頭フィールドを参照して、受信したパケットが、キャリブレーション要求パケットか、データ収集要求パケットかのいずれかを判断する。受信したパケットがデータ収集要求パケットであれば、ノードは、受信したパケットからノードＩＤを取得して、自ノードＩＤが含まれるか否かを判断する。
【００７９】
自ノードＩＤが含まれる場合、ノードは、経路がループして自ノードが送信したパケットがもどってきたことを示すため、ノードは、受信したパケットを破棄する。自ノードＩＤが含まれない場合、ノードは、受信したパケットのデータ数を１増加させるとともに、自ノードＩＤおよび自ノードのセンサー６０２から測定したデータを、新たなノードＩＤフィールドおよび収集データフィールドに格納する。そして、図１３の（３）が示すように、ノードは、自ノードＩＤおよび測定したデータを格納したパケットを、周辺のノードに送信する。
【００８０】
図１３の例では、ノード＃２は、データ収集要求パケット１３０１を周辺のノードであるノード＃３に送信する。データ収集要求パケット１３０１は、２つのノードＩＤフィールドおよび収集データフィールドを有する。データ収集要求パケット１３０１のノードＩＤフィールドのそれぞれには、"＃１"、"＃２"が格納される。また、データ収集要求パケット１３０１の収集データフィールドのそれぞれには、"収集データｄ＃１"、"収集データｄ＃２"が格納される。
【００８１】
また、ノード＃１６は、データ収集要求パケット１３０２を周辺のノードであるノード＃１３に送信する。データ収集要求パケット１３０２は、３つのノードＩＤフィールドおよび３つの収集データフィールドを有する。データ収集要求パケット１３０２のノードＩＤフィールドのそれぞれには、"＃１０"、"＃１５"、"＃１６"が格納される。また、データ収集要求パケット１３０２の収集データフィールドのそれぞれには、"収集データｄ＃１０"、"収集データｄ＃１５"、"収集データｄ＃１６"が格納される。
【００８２】
図１４は、データ収集要求送信時の動作例を示す説明図（その３）である。図１４では、データ収集要求パケットをノード間でリレーした結果を示す。さらに、図１４では、ノード＃１２が故障しており、ノード＃１１が送信したデータ収集要求パケットがリレーできなかったとする。データ集約装置２０３は、図１４の（４）が示すように、受信したデータ収集要求パケットを集約して大容量不揮発メモリ５０４に記憶する。具体的な集約手順について、次に示す。
【００８３】
パケットを受信した場合、データ集約装置２０３は、先頭フィールドを参照して、受信したパケットが、キャリブレーション要求パケットか、データ収集要求パケットかのいずれかを判断する。受信したパケットがデータ収集要求パケットであれば、データ集約装置２０３は、受信したパケットのノードＩＤフィールドに格納されたノードＩＤのうちの、現在記憶中のＩＤとして登録されていないＩＤを、現在記憶中のＩＤとして記憶する。さらに、データ集約装置２０３は、登録されていなかったＩＤに対応する収集データを記憶する。
【００８４】
大容量不揮発メモリ５０４の具体的な記憶内容として、データ集約装置２０３は、収集ＩＤ"１"について、ノードＩＤリスト"＃１〜＃１０，＃１３〜＃１６"と、収集データリスト"収集データｄ＃１〜ｄ＃１０，ｄ＃１３〜ｄ＃１６"とを記憶する。
【００８５】
そして、データ集約装置２０３は、記録したＩＤ数が所定数以上か否かを判断する。記録したＩＤ数が所定数以上である場合、図１４の（５）が示すように、データ集約装置２０３は、受信情報としてノードＩＤリストと収集データリストとを利用者端末２０１に送信する。
【００８６】
図１５は、データ収集要求送信時の動作例を示す説明図（その４）である。図１５では、データ収集要求パケットをノード間でリレーした結果を示す。さらに、図１５では、ノード＃８、＃１２が故障しており、ノード＃６、＃７、＃１１が送信したデータ収集要求パケットがリレーできなかったとする。また、ノード＃９は、データ収集要求パケットが到達しなかったものとする。データ集約装置２０３は、図１５の（４）が示すように、受信したデータ収集要求パケットを集約して大容量不揮発メモリ５０４に記憶する。
【００８７】
そして、データ集約装置２０３は、記録したＩＤ数が所定数以上か否かを判断する。記録したＩＤ数が所定数未満である場合、データ集約装置２０３は、ノードＩＤリストと収集データリストを利用者端末２０１に送信しない。
【００８８】
そして、データ収集要求パケットを送信してから、最大収集時間が経過したとする。このとき、利用者端末２０１は、図１５の（５）が示すように、データ集約装置２０３にデータ集約装置２０３にデータ収集中止指示を送信する。データ収集中止指示を受信したデータ集約装置２０３は、データ収集要求パケットを集約する処理を中止する。
【００８９】
続けて、図１６〜図２８を用いて、実施の形態１にかかるセンサーネットワークシステム２００のフローチャートを示す。
【００９０】
図１６は、実施の形態１にかかる利用者端末によるキャリブレーション要求指示処理手順の一例を示すフローチャートである。実施の形態１にかかる利用者端末によるキャリブレーション要求指示処理は、センサーネットワークシステム２００に対してキャリブレーション要求を指示する処理である。
【００９１】
利用者端末２０１は、データ収集要求装置２０２に、キャリブレーション要求指示を送信する（ステップＳ１６０１）。次に、利用者端末２０１は、データ集約装置２０３から、最大ホップ数を受信するまで待機する（ステップＳ１６０２）。最大ホップ数を受信した場合、利用者端末２０１は、最大ホップ数を用いて、最大収集時間を算出して大容量不揮発メモリ３０４に記憶する（ステップＳ１６０３）。具体的な収集時間の算出例については、図１１にて説明した。
【００９２】
ステップＳ１６０３の処理終了後、利用者端末２０１は、実施の形態１にかかる利用者端末によるキャリブレーション要求指示処理を終了する。実施の形態１にかかる利用者端末によるキャリブレーション要求指示処理を実行することにより、利用者端末２０１は、データ収集要求に対応するデータを受信するまでの最適な時間を設定することができる。
【００９３】
図１７は、利用者端末によるデータ収集要求指示処理手順の一例を示すフローチャートである。利用者端末によるデータ収集要求指示処理は、センサーネットワークシステム２００に対してデータの収集要求を指示する処理である。
【００９４】
利用者端末２０１は、データ収集要求装置２０２に、データ収集要求指示を送信する（ステップＳ１７０１）。次に、利用者端末２０１は、データ収集要求を送信してから、最大収集時間が経過したか否かを判断する（ステップＳ１７０２）。最大収集時間が経過していない場合（ステップＳ１７０２：Ｎｏ）、利用者端末２０１は、データ集約装置２０３から、収集データを受信したか否かを判断する（ステップＳ１７０３）。収集データを受信した場合（ステップＳ１７０３：Ｙｅｓ）、利用者端末２０１は、利用者端末によるデータ収集要求指示処理を終了する。収集データを受信していない場合（ステップＳ１７０３：Ｎｏ）、利用者端末２０１は、ステップＳ１７０２の処理に移行する。
【００９５】
最大収集時間が経過した場合（ステップＳ１７０２：Ｙｅｓ）、利用者端末２０１は、データ集約装置２０３に、データ収集中止指示を送信する（ステップＳ１７０４）。利用者端末によるデータ収集要求指示処理を実行することにより、利用者端末２０１は、センサーネットワークシステム２００のデータを収集することができる。
【００９６】
図１８は、データ収集要求装置による要求指示処理手順の一例を示すフローチャートである。データ収集要求装置による要求指示処理は、受信した要求指示の種別に応じた処理を実行する処理である。また、要求指示処理は、ステップＳ１６０１またはステップＳ１７０１により、送信された要求指示を受信するときに実行される。
【００９７】
データ収集要求装置２０２は、要求指示の種別が次のいずれに一致するかを判断する（ステップＳ１８０１）。要求指示の種別は、キャリブレーション要求指示と、データ収集要求指示と、がある。要求指示の種別がキャリブレーション要求指示である場合（ステップＳ１８０１：キャリブレーション要求指示）、データ収集要求装置２０２は、キャリブレーション要求パケットを周辺のノードに送信する（ステップＳ１８０２）。
【００９８】
要求指示の種別がデータ収集要求指示である場合（ステップＳ１８０１：データ収集要求指示）、データ収集要求装置２０２は、データ収集要求パケットを周辺のノードに送信する（ステップＳ１８０３）。ステップＳ１８０２、またはステップＳ１８０３の処理終了後、データ収集要求装置２０２は、データ収集要求装置による要求指示処理を終了する。データ収集要求装置による要求指示処理を実行することにより、データ収集要求装置２０２は、要求指示の種別を判断して、要求指示の種別に応じた処理を実行することができる。
【００９９】
図１９は、ノードによるパケット処理手順の一例を示すフローチャートである。ノードによるパケット処理は、受信したパケットの種別に応じた処理を実行する処理である。また、パケット受信処理は、ステップＳ１８０２、ステップＳ１８０３、またはステップＳ１９１１により、送信されたパケットを受信するときに実行される。図１９の説明では、実行主体がノード＃１である場合を例にして説明する。
【０１００】
ノード＃１は、パケットの種別が次のいずれに一致するかを判断する（ステップＳ１９０１）。パケットの種別は、キャリブレーション要求パケットと、データ収集要求パケットと、がある。
【０１０１】
パケットの種別がキャリブレーション要求パケットである場合（ステップＳ１９０１：キャリブレーション要求パケット）、ノード＃１は、パケットからノードＩＤを取得して、自ノードＩＤと比較する（ステップＳ１９０２）。続けて、ノード＃１は、取得したノードＩＤのうちに、自ノードＩＤがあるか否かを判断する（ステップＳ１９０３）。自ノードＩＤがない場合（ステップＳ１９０３：Ｎｏ）、ノード＃１は、パケットのホップ数を１増加させる（ステップＳ１９０４）。次に、ノード＃１は、パケットの末尾に、自ノードＩＤを追加する（ステップＳ１９０５）。
【０１０２】
一方、パケットの種別がデータ収集要求パケットである場合（ステップＳ１９０１：データ収集要求パケット）、ノード＃１は、パケットからノードＩＤを取得して、自ノードＩＤと比較する（ステップＳ１９０６）。次に、ノード＃１は、取得したノードＩＤのうちに、自ノードＩＤがあるか否かを判断する（ステップＳ１９０７）。自ノードＩＤがない場合（ステップＳ１９０７：Ｎｏ）、ノード＃１は、センサー６０２から測定データを取得する（ステップＳ１９０８）。続けて、ノード＃１は、パケットのデータ数を１増加させる（ステップＳ１９０９）。次に、ノード＃１は、パケットの末尾に、自ノードＩＤと収集データとなる測定データとを追加する（ステップＳ１９１０）。
【０１０３】
ステップＳ１９０５、またはステップＳ１９１０の処理終了後、ノード＃１は、パケットを周辺のノードに送信する（ステップＳ１９１１）。ステップＳ１９１１の処理終了後、または、取得したノードＩＤのうちに自ノードＩＤがある場合（ステップＳ１９０３：Ｙｅｓ、ステップＳ１９０７：Ｙｅｓ）、ノード＃１は、ノードによるパケット処理を終了する。ノードによるパケット処理を実行することにより、ノード＃１は、受信したパケットの種別に応じた処理を実行することができる。
【０１０４】
図２０は、データ集約装置によるデータ収集中止指示受信処理手順の一例を示すフローチャートである。データ集約装置によるデータ収集中止指示受信処理は、利用者端末２０１からデータ収集中止指示を受信したときに実行する処理である。また、データ収集中止指示受信処理は、ステップＳ１７０４により、データ収集中止指示を受信するときに実行される。
【０１０５】
データ集約装置２０３は、現在記憶中のノードＩＤリストと収集データリストとを破棄する（ステップＳ２００１）。次に、データ集約装置２０３は、空のノードＩＤリストと収集データリストとを生成して記憶する（ステップＳ２００２）。続けて、データ集約装置２０３は、集約中の収集ＩＤを、収集中止として記憶する（ステップＳ２００３）。次に、データ集約装置２０３は、集約中の収集ＩＤに、収集ＩＤとして無効な値を記憶する（ステップＳ２００４）。
【０１０６】
ここで、無効な値とは、キャリブレーションＩＤや収集ＩＤとして利用しない値のことである。たとえば、センサーネットワークシステム２００の設計者が、システム設計時に予め、０とか０ｘＦＦＦＦなどの特定の値を無効の値として設定しておく。
【０１０７】
ステップＳ２００４の処理終了後、データ集約装置２０３は、データ集約装置によるデータ収集中止指示受信処理を終了する。データ集約装置によるデータ収集中止指示受信処理を実行することにより、データ集約装置２０３は、データ収集を中止することができる。
【０１０８】
図２１は、データ集約装置によるパケット受信処理手順の一例を示すフローチャートである。データ集約装置によるパケット受信処理は、受信したパケットの種別に応じた処理を実行する処理である。また、パケット受信処理は、ステップＳ１９１１により、送信されたパケットを受信するときに実行される。
【０１０９】
データ集約装置２０３は、パケットの種別が次のいずれに一致するかを判断する（ステップＳ２１０１）。パケットの種別は、キャリブレーション要求パケットと、データ収集要求パケットと、がある。
【０１１０】
パケットの種別がキャリブレーション要求パケットである場合（ステップＳ２１０１：キャリブレーション要求パケット）、データ集約装置２０３は、キャリブレーション要求処理を実行する（ステップＳ２１０２）。キャリブレーション要求処理の詳細は、図２２にて後述する。一方、パケットの種別がデータ収集要求パケットである場合（ステップＳ２１０１：データ収集要求パケット）、データ集約装置２０３は、データ収集要求処理を実行する（ステップＳ２１０３）。データ収集要求処理の詳細は、図２６にて後述する。
【０１１１】
ステップＳ２１０２、またはステップＳ２１０３の処理終了後、データ集約装置２０３は、データ集約装置によるパケット受信処理を終了する。データ集約装置によるパケット受信処理を実行することにより、データ集約装置２０３は、パケットの種別を判断して、パケットの種別に応じた処理を実行することができる。
【０１１２】
図２２は、データ集約装置によるキャリブレーション要求処理手順の一例を示すフローチャートである。データ集約装置によるキャリブレーション要求処理は、キャリブレーション要求パケットを受信した際に行う処理である。
【０１１３】
データ集約装置２０３は、パケットからキャリブレーションＩＤを取得する（ステップＳ２２０１）。次に、データ集約装置２０３は、取得したキャリブレーションＩＤが現在集約中のキャリブレーションＩＤと一致するか否かを判断する（ステップＳ２２０２）。取得したキャリブレーションＩＤが現在集約中のキャリブレーションＩＤと一致しない場合（ステップＳ２２０２：Ｎｏ）、データ集約装置２０３は、続けて、取得したキャリブレーションＩＤがキャリブレーション終了として記憶されたＩＤ群に含まれるか否かを判断する（ステップＳ２２０３）。
【０１１４】
取得したキャリブレーションＩＤがキャリブレーション終了として記憶されたＩＤ群に含まれない場合（ステップＳ２２０３：Ｎｏ）、データ集約装置２０３は、キャリブレーション開始処理を実行する（ステップＳ２２０４）。キャリブレーション開始処理の詳細は、図２３に後述する。続けて、データ集約装置２０３は、パケットからホップ数を取得する（ステップＳ２２０５）。
【０１１５】
取得したキャリブレーションＩＤが現在集約中のキャリブレーションＩＤと一致する場合（ステップＳ２２０２：Ｙｅｓ）、データ集約装置２０３は、パケットからホップ数を取得する（ステップＳ２２０６）。次に、データ集約装置２０３は、取得したホップ数が現在記憶中の最大ホップ数より大きいか否かを判断する（ステップＳ２２０７）。
【０１１６】
ステップＳ２２０５の処理終了後、または、取得したホップ数が現在記憶中の最大ホップ数より大きい場合（ステップＳ２２０７：Ｙｅｓ）、データ集約装置２０３は、取得したホップ数を最大ホップ数として記憶する（ステップＳ２２０８）。
【０１１７】
ステップＳ２２０８の処理終了後、または、取得したホップ数が現在記憶中の最大ホップ数以下である場合（ステップＳ２２０７：Ｎｏ）、データ集約装置２０３は、キャリブレーション集約処理を実行する（ステップＳ２２０９）。キャリブレーション集約処理の詳細は、図２４および図２５にて後述する。
【０１１８】
ステップＳ２２０９の処理終了後、または、取得したキャリブレーションＩＤがキャリブレーション終了として記憶されたＩＤ群に含まれる場合（ステップＳ２２０３：Ｙｅｓ）、データ集約装置２０３は、データ集約装置によるキャリブレーション要求処理を終了する。データ集約装置によるキャリブレーション要求処理を実行することにより、データ集約装置２０３は、キャリブレーション要求パケットを処理することができる。
【０１１９】
図２３は、データ集約装置によるキャリブレーション開始処理手順の一例を示すフローチャートである。データ集約装置によるキャリブレーション開始処理は、キャリブレーション要求パケットの集約を開始する処理である。
【０１２０】
データ集約装置２０３は、現在集約中のキャリブレーションＩＤが無効な値か否かを判断する（ステップＳ２３０１）。現在集約中のキャリブレーションＩＤが無効な値でない場合（ステップＳ２３０１：Ｎｏ）、データ集約装置２０３は、利用者端末２０１に、現在記憶中の最大ホップ数を送信する（ステップＳ２３０２）。なお、ステップＳ２３０１：Ｎｏとなる場合とは、利用者端末２０１がキャリブレーション要求パケットを再送したときである。
【０１２１】
ステップＳ２３０２の処理終了後、データ集約装置２０３は、現在記憶中のノードＩＤリストを破棄する（ステップＳ２３０３）。続けて、データ集約装置２０３は、空のノードＩＤリストを生成して記憶する（ステップＳ２３０４）。次に、データ集約装置２０３は、集約中のキャリブレーションＩＤを、キャリブレーション終了として記憶する（ステップＳ２３０５）。
【０１２２】
ステップＳ２３０５の処理終了後、または、現在集約中のキャリブレーションＩＤが無効な値である場合（ステップＳ２３０１：Ｙｅｓ）、データ集約装置２０３は、取得したキャリブレーションＩＤを、集約中として記憶する（ステップＳ２３０６）。ステップＳ２３０６の処理終了後、データ集約装置２０３は、データ集約装置によるキャリブレーション開始処理を終了する。データ集約装置によるキャリブレーション開始処理を実行することにより、データ集約装置２０３は、キャリブレーション要求パケットの集約準備をすることができる。
【０１２３】
図２４は、データ集約装置によるキャリブレーション集約処理手順の一例を示すフローチャート（その１）である。また、図２５は、データ集約装置によるキャリブレーション集約処理手順の一例を示すフローチャート（その２）である。データ集約装置によるキャリブレーション集約処理は、キャリブレーション要求パケットを集約する処理である。
【０１２４】
データ集約装置２０３は、変数ｉを１に設定する（ステップＳ２４０１）。次に、データ集約装置２０３は、変数ｉがパケットのホップ数以下か否かを判断する（ステップＳ２４０２）。変数ｉがパケットのホップ数以下である場合（ステップＳ２４０２：Ｙｅｓ）、データ集約装置２０３は、パケットからｉ番目のノードＩＤを取得する（ステップＳ２４０３）。次に、データ集約装置２０３は、取得したノードＩＤがノードＩＤリストに含まれるか否かを判断する（ステップＳ２４０４）。取得したノードＩＤがノードＩＤリストに含まれない場合（ステップＳ２４０４：Ｎｏ）、データ集約装置２０３は、取得したノードＩＤをノードＩＤリストに追加して記憶する（ステップＳ２４０５）。
【０１２５】
ステップＳ２４０５の処理終了後、または、取得したノードＩＤがノードＩＤリストに含まれる場合（ステップＳ２４０４：Ｙｅｓ）、データ集約装置２０３は、変数ｉをインクリメントする（ステップＳ２４０６）。そして、データ集約装置２０３は、ステップＳ２４０２の処理に移行する。
【０１２６】
変数ｉがパケットのホップ数より大きい場合（ステップＳ２４０２：Ｎｏ）、データ集約装置２０３は、ノードＩＤリストのノードＩＤの個数を計数する（ステップＳ２５０１）。続けて、データ集約装置２０３は、計数した個数が所定数以上か否かを判断する（ステップＳ２５０２）。
【０１２７】
計数した個数が所定数以上である場合（ステップＳ２５０２：Ｙｅｓ）、データ集約装置２０３は、利用者端末２０１に、現在記憶中の最大ホップ数を送信する（ステップＳ２５０３）。次に、データ集約装置２０３は、集約中のキャリブレーションＩＤを、キャリブレーション終了として記憶する（ステップＳ２５０４）。続けて、データ集約装置２０３は、現在集約中のキャリブレーションＩＤとして、無効な値を記憶する（ステップＳ２５０５）。次に、データ集約装置２０３は、現在記憶中のノードＩＤリストを破棄する（ステップＳ２５０６）。続けて、データ集約装置２０３は、空のノードＩＤリストを生成して記憶する（ステップＳ２５０７）。
【０１２８】
ステップＳ２５０７の処理終了後、または、計数した個数が所定数未満である場合（ステップＳ２５０２：Ｎｏ）、データ集約装置２０３は、データ集約装置によるキャリブレーション集約処理を終了する。データ集約装置によるキャリブレーション集約処理を実行することにより、データ集約装置２０３は、キャリブレーション要求パケットを集約して、ノードＩＤリストに集約結果を蓄積することができる。
【０１２９】
図２６は、データ集約装置によるデータ収集要求処理手順の一例を示すフローチャートである。データ集約装置によるデータ収集要求処理は、データ収集要求パケットを受信した際に行う処理である。
【０１３０】
データ集約装置２０３は、パケットから収集ＩＤを取得する（ステップＳ２６０１）。次に、データ集約装置２０３は、取得した収集ＩＤが現在集約中の収集ＩＤと一致するか否かを判断する（ステップＳ２６０２）。取得した収集ＩＤが現在集約中の収集ＩＤと一致しない場合（ステップＳ２６０２：Ｎｏ）、データ集約装置２０３は、続けて、取得した収集ＩＤが収集終了として記憶されたＩＤ群に含まれるか否かを判断する（ステップＳ２６０３）。取得した収集ＩＤが収集終了として記憶されたＩＤ群に含まれない場合（ステップＳ２６０３：Ｎｏ）、データ集約装置２０３は、続けて、現在集約中の収集ＩＤが無効な値か否かを判断する（ステップＳ２６０４）。
【０１３１】
現在集約中の収集ＩＤが無効な値でない場合（ステップＳ２６０４：Ｎｏ）、データ集約装置２０３は、利用者端末２０１に、現在記憶中のノードＩＤリストと収集データリストとを送信する（ステップＳ２６０５）。次に、データ集約装置２０３は、現在記憶中のノードＩＤリストと収集データリストとを破棄する（ステップＳ２６０６）。続けて、データ集約装置２０３は、空のノードＩＤリストと収集データリストとを生成して記憶する（ステップＳ２６０７）。次に、データ集約装置２０３は、集約中の収集ＩＤを、収集終了として記憶する（ステップＳ２６０８）。
【０１３２】
ステップＳ２６０８の処理終了後、または、現在集約中の収集ＩＤが無効な値である場合（ステップＳ２６０４：Ｙｅｓ）、データ集約装置２０３は、取得した収集ＩＤを、集約中として記憶する（ステップＳ２６０９）。
【０１３３】
ステップＳ２６０９の処理終了後、または、取得した収集ＩＤが現在集約中の収集ＩＤと一致する場合（ステップＳ２６０２：Ｙｅｓ）、データ集約装置２０３は、データ集約処理を実行する（ステップＳ２６１０）。データ集約処理は、図２７および図２８にて後述する。
【０１３４】
ステップＳ２６１０の処理終了後、または、取得した収集ＩＤが収集終了として記憶されたＩＤ群に含まれる場合（ステップＳ２６０３：Ｙｅｓ）、データ集約装置２０３は、データ集約装置によるデータ収集要求処理を終了する。データ集約装置によるデータ収集要求処理を実行することにより、データ集約装置２０３は、データ収集要求パケットを処理することができる。
【０１３５】
図２７は、データ集約装置によるデータ集約処理手順の一例を示すフローチャート（その１）である。また、図２８は、データ集約装置によるデータ集約処理手順の一例を示すフローチャート（その２）である。データ集約装置によるデータ集約処理は、データ収集要求パケットを集約する処理である。
【０１３６】
ここで、ステップＳ２７０１〜ステップＳ２７０５、ステップＳ２７０７、ステップＳ２８０１、ステップＳ２８０２は、ステップＳ２４０１〜ステップＳ２４０６、ステップＳ２５０１、ステップＳ２５０２と同一の処理であるため、説明を省略する。
【０１３７】
ステップＳ２７０５の処理終了後、データ集約装置２０３は、パケットのｉ番目の収集データを収集データリストに追加して記憶する（ステップＳ２７０６）。ステップＳ２７０６の処理終了後、データ集約装置２０３は、ステップＳ２７０７の処理に移行する。
【０１３８】
ステップＳ２８０２：Ｙｅｓの場合、データ集約装置２０３は、利用者端末２０１に、現在記憶中のノードＩＤリストと収集データリストとを送信する（ステップＳ２８０３）。次に、データ集約装置２０３は、集約中の収集ＩＤを、収集終了として記憶する（ステップＳ２８０４）。続けて、データ集約装置２０３は、現在集約中の収集ＩＤとして、無効な値を記憶する（ステップＳ２８０５）。次に、データ集約装置２０３は、現在記憶中のノードＩＤリストと収集データリストとを破棄する（ステップＳ２８０６）。続けて、データ集約装置２０３は、空のノードＩＤリストと収集データリストとを生成して記憶する（ステップＳ２８０７）。
【０１３９】
ステップＳ２８０７の処理終了後、または、ステップＳ２８０２：Ｎｏの場合、データ集約装置２０３は、データ集約装置によるデータ集約処理を終了する。データ集約装置によるデータ集約処理を実行することにより、データ集約装置２０３は、データ収集要求パケットを集約して、ノードＩＤリストと収集データリストとに集約結果を蓄積することができる。
【０１４０】
以上説明したように、センサーネットワークシステム２００によれば、利用者端末２０１がノード群にデータ収集要求を送信し、データ集約装置２０３がノード群からデータを受信したら通信装置１０１にネットワーク１０３を用いて受信情報を直接送信する。これにより、センサーネットワークシステム２００は、通信制約が厳しいノード群を経由せずにデータの到達を通信装置１０１に伝えることができる。そして、データ集約装置２０３は、データ集約装置２０３がノード群からデータを受信しているにも関わらず、データを再送してしまうということが起こらなくなるため、データ収集を効率的に行うことができる。
【０１４１】
また、センサーネットワークシステム２００によれば、データ収集要求装置２０２がデータ収集要求を送信してから、ホップ数を用いて算出した収集時間が経過するまでに、データ集約装置２０３から受信情報を受信したかを判断してもよい。これにより、センサーネットワークシステム２００は、データ収集要求に対応するデータを受信するであろう時間まで待機することができる。受信情報を受信しないまま収集時間を超えた場合、データ収集に失敗したことになり、センサーネットワークシステム２００は、データ収集の成功、失敗の判断の精度を向上できる。
【０１４２】
また、センサーネットワークシステム２００によれば、データ集約装置２０３がデータ収集要求に対応するデータを受信していないと判断した場合、データ収集要求装置２０２がデータ収集要求を送信してもよい。これにより、センサーネットワークシステム２００は、データ収集に失敗しても、再度データ収集を行うことができる。
【０１４３】
また、センサーネットワークシステム２００によれば、０からホップ数までの整数ごとに、整数個分のデータの規定サイズと単位データ当たりの通信時間とから、整数個分の通信時間を算出し、整数個分の通信時間を累積して、収集時間を算出してもよい。これにより、センサーネットワークシステム２００は、ホップするたびに増加するデータ量を考慮して収集時間を予測するため、データを受信するであろう時間をより正確に予測することができる。
【０１４４】
また、センサーネットワークシステム２００によれば、データ収集要求装置２０２がセンサーのデータをノードの個数に基づく所定数以上受信した場合、利用者端末２０１に受信情報を送信してもよい。これにより、ノードの全てからデータを収集しなくてもよく、ある程度のノードは故障していてもよいため、歩留まりが低い安価なノードを用いてセンサーネットワークシステム２００を構築することができる。また、ノードの全てからデータを収集しなくても、ある程度の数のデータを収集することにより、所定領域で何が起こっているのかを解析することができる。
【０１４５】
また、センサーネットワークシステム２００は、ノードがランダムに散在されており周辺にあるノードが不明であってもネットワークを構築することができる。
【０１４６】
（実施の形態２の説明）
実施の形態１にかかるセンサーネットワークシステム２００において、利用者端末２０１は、データ収集要求パケットを送信後、最大待機時間以内に収集データを受信しなければ再度データ収集要求を送信することを繰り返す。しかしながら、実施の形態１にかかるセンサーネットワークシステム２００はノードが故障した場合や何らかの条件によりノード間の経路が変わり、経路を迂回することで最大ホップ数が増加していた場合、収集データを利用者端末２０１に送信できなくなる。
【０１４７】
そこで、実施の形態２にかかるセンサーネットワークシステム２９００は、予め設定した回数を繰り返しても利用者端末２０１が収集データを受信できない場合に、再キャリブレーションを行う。なお、実施の形態１において説明した箇所と同様の箇所については、同一符号を付して図示および説明を省略する。
【０１４８】
図２９は、実施の形態２にかかるセンサーネットワークシステムの機能構成例を示すブロック図である。センサーネットワークシステム２９００は、第１取得部７０１〜第１送信部７０４と、第２取得部２９０１と、第２判断部２９０２と、第２送信部７１２とを有する。第２取得部２９０１、第２判断部２９０２、第２送信部７１２は、データ集約装置２０３が有する機能である。
【０１４９】
第２取得部２９０１は、利用者端末２０１から送信された信号がデータ集約装置２０３に転送されるまでに経由するネットワーク２０５内の１以上の経路上のノードの個数を取得する。複数の経路上にあるノードに関しては、重複を除いた個数でもよい。なお、取得したノードの個数は、ＲＡＭ５０３、大容量不揮発メモリ５０４などの記憶領域に記憶される。
【０１５０】
また、データ収集要求に対応して第２のネットワーク内のノード間のマルチホップ通信により転送されるセンサーのデータを受信したとする。この場合、第２判断部２９０２は、受信したセンサーのデータの個数が第２取得部２９０１が取得した１以上の経路上のノードの個数に基づく所定数以上であるか否かを判断する。
【０１５１】
図３０は、実施の形態２にかかる利用者端末によるキャリブレーション要求指示処理手順の一例を示すフローチャートである。実施の形態２にかかる利用者端末によるキャリブレーション要求指示処理は、センサーネットワークシステム２９００に対してキャリブレーション要求を指示する処理である。ここで、ステップＳ３００２〜ステップＳ３００５は、ステップＳ１７０１〜ステップＳ１７０４の処理と同一であるため、説明を省略する。
【０１５２】
利用者端末２０１は、試行回数を０に設定する（ステップＳ３００１）。ステップＳ３００１の処理終了後、利用者端末２０１は、ステップＳ３００２の処理に移行する。ステップＳ３００５の処理終了後、利用者端末２０１は、試行回数を１増加する（ステップＳ３００６）。次に、利用者端末２０１は、試行回数が所定の閾値より小さいか否かを判断する（ステップＳ３００７）。試行回数が所定の閾値より小さい場合（ステップＳ３００７：Ｙｅｓ）、利用者端末２０１は、ステップＳ３００２の処理に移行する。
【０１５３】
試行回数が所定の閾値以上である場合（ステップＳ３００７：Ｎｏ）、利用者端末２０１は、再キャリブレーション要求指示処理を実行する（ステップＳ３００８）。再キャリブレーション要求指示処理の詳細は、図３１にて後述する。ステップＳ３００８の処理終了後、利用者端末２０１は、ステップＳ３００１の処理に移行する。実施の形態２にかかる利用者端末によるキャリブレーション要求指示処理を実行することにより、利用者端末２０１は、データ収集要求に対応するデータを受信するまでの最適な時間を設定することができる。さらに、利用者端末２０１は、通信できなくなったノードが増加した等の理由により、データ集約装置２０３からデータが受信できない場合に、再キャリブレーションを行って、再びデータを受信するようにすることができる。
【０１５４】
図３１は、利用者端末による再キャリブレーション要求指示処理手順の一例を示すフローチャートである。利用者端末による再キャリブレーション要求指示処理は、キャリブレーションを行う処理である。
【０１５５】
利用者端末２０１は、データ収集要求装置２０２に、キャリブレーション要求指示を送信する（ステップＳ３１０１）。次に、利用者端末２０１は、最大収集時間＋α待機する（ステップＳ３１０２）。ここで、αは、所定時間でもよいし、最大収集時間に所定割合を乗算した値でもよい。続けて、利用者端末２０１は、データ集約装置２０３から、最大ホップ数を受信したか否かを判断する（ステップＳ３１０３）。
【０１５６】
最大ホップ数を受信していない場合（ステップＳ３１０３：Ｎｏ）、故障等により通信できなくなったノードが増加したことを意味するため、利用者端末２０１は、データ集約装置２０３にノードＩＤリスト送信指示を送信する（ステップＳ３１０４）。続けて、利用者端末２０１は、データ集約装置２０３からノードＩＤリストを受信するまで待機する（ステップＳ３１０５）。次に、利用者端末２０１は、受信したノードＩＤリストから、所定数を算出する（ステップＳ３１０６）。続けて、利用者端末２０１は、データ集約装置２０３に、所定数の更新指示を送信する（ステップＳ３１０７）。
【０１５７】
ステップＳ３１０７の処理終了後、または、最大ホップ数を受信した場合（ステップＳ３１０３：Ｙｅｓ）、利用者端末２０１は、最大待機時間を更新する（ステップＳ３１０８）。ステップＳ３１０８の処理終了後、利用者端末２０１は、利用者端末による再キャリブレーション要求指示処理を終了する。利用者端末による再キャリブレーション要求指示処理を実行することにより、利用者端末２０１は、通信できなくなったノードが増加した際に、所定数を変更することができる。
【０１５８】
図３２は、データ集約装置によるノードＩＤ送信処理手順の一例を示すフローチャートである。データ集約装置によるノードＩＤ送信処理は、ノードＩＤリストを送信する処理である。また、データ集約装置によるノードＩＤ送信処理は、ステップＳ３１０４の処理にて、利用者端末２０１がノードＩＤリスト送信指示をデータ集約装置２０３に送信した後、ノードＩＤリスト送信指示をデータ集約装置２０３が受信した際に実行される。
【０１５９】
データ集約装置２０３は、利用者端末２０１に、現在記憶中のノードＩＤリストを送信する（ステップＳ３２０１）。次に、データ集約装置２０３は、集約中のキャリブレーションＩＤを、キャリブレーション終了として記憶する（ステップＳ３２０２）。続けて、データ集約装置２０３は、現在集約中のキャリブレーションＩＤとして、無効な値を記憶する（ステップＳ３２０３）。次に、データ集約装置２０３は、現在記憶中のノードＩＤリストを破棄する（ステップＳ３２０４）。続けて、データ集約装置２０３は、空のノードＩＤリストを生成して記憶する（ステップＳ３２０５）。
【０１６０】
ステップＳ３２０５の処理終了後、データ集約装置２０３は、データ集約装置によるノードＩＤ送信処理を終了する。データ集約装置によるノードＩＤ送信処理を実行することにより、データ集約装置２０３は、ノードＩＤリストを利用者端末２０１に送信することができる。
【０１６１】
図３３は、データ集約装置による所定数更新処理手順の一例を示すフローチャートである。データ集約装置による所定数更新処理は、利用者端末２０１で新たに算出された所定数で更新する処理である。また、データ集約装置による所定数更新処理は、利用者端末２０１がステップＳ３１０７の処理を実行した結果、所定数の更新指示をデータ集約装置２０３が受信したときに実行される。
【０１６２】
データ集約装置２０３は、所定数を更新する（ステップＳ３３０１）。ステップＳ３３０１の処理終了後、データ集約装置２０３は、データ集約装置による所定数更新処理を終了する。データ集約装置による所定数更新処理を実行することにより、データ集約装置２０３は、更新された所定数を設定して、故障したノードが増えたとしても、収集したデータを利用者端末２０１に送信することができる。
【０１６３】
以上説明したように、センサーネットワークシステム２９００によれば、所定数を更新して、データ収集要求装置２０２がセンサーのデータが更新した所定数以上受信した場合、利用者端末２０１に受信情報を送信してもよい。これにより、センサーネットワークシステム２９００は、ノードの故障等によりホップ数が増大したとしても、データを収集することができる。
【０１６４】
なお、本実施の形態で説明した通信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６５】
上述した実施の形態１、２に関し、さらに以下の付記を開示する。
【０１６６】
（付記１）第１のネットワークを介して通信可能な複数の通信装置の第１の通信装置が、
センサーを有するノード群を含む第２のネットワークに対して、前記センサーのデータ収集要求を送信し、
前記複数の通信装置の第２の通信装置が、
前記データ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、前記データ収集要求に対応する前記センサーのデータを受信したことを示す受信情報を前記第１のネットワークを介して前記第１の通信装置に送信する、
処理を実行することを特徴とする通信方法。
【０１６７】
（付記２）前記第１の通信装置が、
前記第１の通信装置から送信された信号が前記ノード間のマルチホッピング通信により前記第２の通信装置に転送されるまでのホップ数を取得し、
取得した前記ホップ数と前記第２のネットワーク内のノード間の通信時間とに基づいて、前記センサーのデータ収集にかかる収集時間を算出し、
前記データ収集要求を送信してから算出した前記収集時間が経過するまでに、前記第２の通信装置から前記受信情報を受信したか否かを判断する、
処理を実行することを特徴とする付記１に記載の通信方法。
【０１６８】
（付記３）前記第１の通信装置が、
前記データ収集要求を送信してから前記収集時間が経過するまでに前記受信情報を受信していないと判断した場合、前記第２のネットワークに対して、前記データ収集要求を送信する、
処理を実行することを特徴とする付記２に記載の通信方法。
【０１６９】
（付記４）前記第１の通信装置が、
０から前記ホップ数までの整数ごとに、前記センサーの前記整数個のデータの規定サイズと、前記第２のネットワーク内のノード間の単位データ当たりの通信時間とに基づいて、前記センサーの前記整数個のデータの通信時間を算出する、処理を実行し、
前記収集時間を算出する処理は、
０から前記ホップ数までの整数ごとに算出した前記センサーの前記整数個のデータの通信時間を累積することにより、前記センサーのデータ収集にかかる収集時間を算出することを特徴とする付記２または３に記載の通信方法。
【０１７０】
（付記５）前記第２の通信装置が、
前記データ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、受信した前記センサーのデータの個数が前記第２のネットワーク内のノードの個数に基づく所定数以上であるか否かを判断する、処理を実行し、
前記第１の通信装置に送信する処理は、
前記センサーのデータの個数が前記所定数以上であると判断した場合、前記受信情報を前記第１のネットワークを介して前記第１の通信装置に送信することを特徴とする付記１〜４のいずれか一つに記載の通信方法。
【０１７１】
（付記６）前記第２の通信装置が、
前記第１の通信装置から送信された信号が前記第２の通信装置に転送されるまでに経由する前記第２のネットワーク内の１以上の経路上のノードの個数を取得する、処理を実行し、
前記センサーのデータの個数が前記所定数以上であるか否かを判断する処理は、
前記データ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、受信した前記センサーのデータの個数が取得した前記１以上の経路上のノードの個数に基づく所定数以上であるか否かを判断することを特徴とする付記５に記載の通信方法。
【０１７２】
（付記７）前記第１の通信装置が、
前記第１のネットワークを介して前記第１の通信装置に前記データ収集要求を送信し、
前記複数の通信装置の第３の通信装置が、
前記第１の通信装置から前記データ収集要求を受信した場合、前記第２のネットワークに対して、前記データ収集要求を送信し、
前記第２の通信装置が、
前記データ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、前記データ収集要求に対応する前記センサーのデータを受信したことを示す情報を前記第１のネットワークを介して前記第１の通信装置に送信する、
処理を実行することを特徴とする付記１〜６のいずれか一つに記載の通信方法。
【０１７３】
（付記８）第１のネットワークを介して通信可能な複数の通信装置と、第２のネットワークに含まれるセンサーを有するノード群と、を有するシステムにおいて、
前記第２のネットワークに対して、前記センサーのデータ収集要求を送信する第１送信部を有する前記複数の通信装置の第１の通信装置と、
前記データ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、前記データ収集要求に対応する前記センサーのデータを受信したことを示す受信情報を前記第１のネットワークを介して前記第１の通信装置に送信する第２送信部を有する前記複数の通信装置の第２の通信装置と、
を含むことを特徴とするシステム。
【０１７４】
（付記９）複数の通信装置の第１の通信装置に第１のネットワークを介して通信可能な第２の通信装置に、
センサーを有するノード群を含む第２のネットワークに対して、前記第１の通信装置が送信した前記センサーのデータ収集要求に対応して前記第２のネットワーク内のノード間のマルチホップ通信により転送される前記センサーのデータを受信した場合、前記データ収集要求に対応する前記センサーのデータを受信したことを示す受信情報を前記第１のネットワークを介して前記第１の通信装置に送信する、
処理を実行させることを特徴とする通信プログラム。
【符号の説明】
【０１７５】
１００  システム
１０１、１０２  通信装置
１０３、１０４、２０４、２０５  ネットワーク
２００  センサーネットワークシステム
２０１  利用者端末
２０２  データ収集要求装置
２０３  データ集約装置
７０１  第１取得部
７０２  算出部
７０３  第１判断部
７０４  第１送信部
７１１  第２判断部
７１２  第２送信部
２９０１  第２取得部
２９０２  第２判断部
【図１】
0005971412.tif 000003
【図２】
0005971412.tif 000004
【図３】
0005971412.tif 000005
【図４】
0005971412.tif 000006
【図５】
0005971412.tif 000007
【図６】
0005971412.tif 000008
【図７】
0005971412.tif 000009
【図８】
0005971412.tif 000010
【図９】
0005971412.tif 000011
【図１０】
0005971412.tif 000012
【図１１】
0005971412.tif 000013
【図１２】
0005971412.tif 000014
【図１３】
0005971412.tif 000015
【図１４】
0005971412.tif 000016
【図１５】
0005971412.tif 000017
【図１６】
0005971412.tif 000018
【図１７】
0005971412.tif 000019
【図１８】
0005971412.tif 000020
【図１９】
0005971412.tif 000021
【図２０】
0005971412.tif 000022
【図２１】
0005971412.tif 000023
【図２２】
0005971412.tif 000024
【図２３】
0005971412.tif 000025
【図２４】
0005971412.tif 000026
【図２５】
0005971412.tif 000027
【図２６】
0005971412.tif 000028
【図２７】
0005971412.tif 000029
【図２８】
0005971412.tif 000030
【図２９】
0005971412.tif 000031
【図３０】
0005971412.tif 000032
【図３１】
0005971412.tif 000033
【図３２】
0005971412.tif 000034
【図３３】
0005971412.tif 000035