以下の説明では、説明を目的として、以下に記載される本発明の実施形態の完全な理解を提供するために、多数の特定の詳細が示される。しかしながら、本発明の実施形態がこれらの特定の詳細のうちのいくつかを用いずに実施され得ることは、当業者には明らかである。他の例では、本発明の実施形態の基本原理を不明瞭にすることを避けるために、周知の構造及びデバイスをブロック図の形態で示す。
本発明の一実施形態は、新しいIoTデバイス及びアプリケーションを設計及び構築するために開発者によって利用され得るモノのインターネット(IoT)プラットフォームを含む。具体的には、一実施形態は、所定のネットワーキングプロトコルスタックを含むIoTデバイス、及びIoTデバイスがインターネットに連結されるIoTハブ用の基本ハードウェア/ソフトウェアプラットフォームを含む。加えて、一実施形態は、IoTサービスを含み、これを通じてIoTハブ及び接続されたIoTデバイスが、以下に説明するようにアクセスされ、管理され得る。加えて、IoTプラットフォームの一実施形態は、IoTサービス、ハブ、及び接続されたデバイスにアクセスし、それらを構成する、IoTアプリケーション又はウェブアプリケーション(例えば、クライアントデバイス上で実行される)を含む。既存のオンライン小売業者及び他のウェブサイトオペレータは、本明細書に記載されたIoTプラットフォームを利用して、既存のユーザベースに独自のIoT機能を容易に提供することができる。
図1Aは、本発明の実施形態が実装され得るアーキテクチャプラットフォームの概要を例示する。具体的には、例示した実施形態は、それ自体インターネット220を介してIoTサービス120に通信可能に連結されている中央IoTハブ110に、ローカル通信チャネル130を介して通信可能に連結された複数のIoTデバイス101〜105を含む。IoTデバイス101〜105のそれぞれは、ローカル通信チャネル130のそれぞれを有効にするために、IoTハブ110と最初にペアリングすることができる(例えば、後述するペアリング技術を使用して)。一実施形態では、IoTサービス120は、各ユーザのIoTデバイスから収集されたユーザアカウント情報及びデータを維持するためのエンドユーザデータベース122を含む。例えば、IoTデバイスがセンサ(例えば、温度センサ、加速度計、熱センサ、動作検出器など)を含む場合、データベース122は、IoTデバイス101〜105により収集されるデータを記憶するように継続的に更新され得る。データベース122内に記憶されたデータは、次に、ユーザデバイス135上にインストールされたIoTアプリケーション又はブラウザを介して(又はデスクトップ若しくは他のクライアントコンピュータシステムを介して)エンドユーザに、かつウェブクライアント(例えば、IoTサービス120に加入しているウェブサイト130など)に、アクセス可能にされてもよい。
IoTデバイス101〜105には、それ自体及びその周辺に関する情報を収集し、収集された情報を、IoTハブ110を介してIoTサービス120、ユーザデバイス135、及び/又は外部ウェブサイト130に提供するための様々なタイプのセンサが備わっていてもよい。IoTデバイス101〜105のうちのいくつかは、IoTハブ110を介して送信される制御コマンドに応答して、指定された機能を行うことができる。IoTデバイス101〜105によって収集される情報の様々な具体例及び制御コマンドが以下に提供される。以下に説明する一実施形態では、IoTデバイス101は、ユーザ選択を記録し、ユーザ選択をIoTサービス120及び/又はウェブサイトに送信するように設計されたユーザ入力デバイスである。
一実施形態では、IoTハブ110は、4G(例えば、モバイルWiMAX、LTE)又は5Gセルラーデータサービスなどのセルラーサービス115を介してインターネット220への接続を確立するセルラー無線を含む。代替的に、又は加えて、IoTハブ110は、WiFiアクセスポイント又はルータ116を介してWiFi接続を確立するためのWiFi無線を含むことができ、これは、IoTハブ110をインターネットに(例えば、エンドユーザにインターネットサービスを提供するインターネットサービスプロバイダを介して)連結する。当然のことながら、本発明の基本原理は、いかなる特定のタイプの通信チャネル又はプロトコルにも限定されないことに留意すべきである。
一実施形態では、IoTデバイス101〜105は、電池電力で長期間(例えば、数年)動作することができる超低電力デバイスである。電力を節約するために、ローカル通信チャネル130は、Bluetooth(登録商標) Low Energy(LE)などの低電力無線通信技術を使用して実装することができる。この実施形態では、IoTデバイス101〜105及びIoTハブ110のそれぞれには、Bluetooth(登録商標) LE無線及びプロトコルスタックが備わっている。
言及したように、一実施形態では、IoTプラットフォームは、ユーザが、接続されたIoTデバイス101〜105、IoTハブ110、及び/又はIoTサービス120にアクセスし、それらを構成することを可能にする、ユーザデバイス135上で実行されるIoTアプリケーション又はウェブアプリケーションを含む。一実施形態では、アプリケーション又はウェブアプリケーションは、そのユーザベースにIoT機能性を提供するように、ウェブサイト130のオペレータによって設計されてもよい。例示したように、ウェブサイトは、各ユーザに関連するアカウント記録を含むユーザデータベース131を維持することができる。
図1Bは、複数のIoTハブ110〜111、190に対する追加の接続オプションを例示する。この実施形態では、単一のユーザが、単一のユーザ構内180(例えば、ユーザーの自宅又はビジネス)にオンサイトでインストールされた複数のハブ110〜111を有することができる。これは、例えば、IoTデバイス101〜105のすべてを接続するのに必要な無線範囲を拡張するために行われ得る。上述したように、ユーザが複数のハブ110、111を有する場合、それらは、ローカル通信チャネル(例えば、Wifi、イーサネット(登録商標)、電力線ネットワーキングなど)を介して接続されてもよい。一実施形態では、ハブ110〜111のそれぞれは、セルラー115又はWiFi 116接続(図1Bには明示されていない)を介してIoTサービス120への直接接続を確立することができる。代替的に、又は加えて、IoTハブ110などのIoTハブのうちの1つは、「マスター」ハブとして機能することができ、これは、IoTハブ111などのユーザ構内180上の他のすべてのIoTハブに接続性及び/又はローカルサービスを提供する(IoTハブ110とIoTハブ111を接続する点線で示すように)。例えば、マスターIoTハブ110は、IoTサービス120への直接接続を確立する唯一のIoTハブであってもよい。一実施形態では、「マスター」IoTハブ110のみに、IoTサービス120への接続を確立するためのセルラー通信インターフェースが備わっている。このように、IoTサービス120と他のIoTハブ111との間のすべての通信は、マスターIoTハブ110を通って流れる。この役割において、マスターIoTハブ110には、他のIoTハブ111とIoTサービス120との間で交換されるデータ(例えば、可能であれば、いくつかのデータ要求にローカルでサービスする)に対してフィルタリング動作を行うための追加のプログラムコードが提供され得る。
IoTハブ110〜111がどのように接続されていようとも、一実施形態では、IoTサービス120は、ハブをユーザと論理的に関連付け、接続されたIoTデバイス101〜105のすべてを、インストールされたアプリケーション135(及び/又はブラウザベースのインターフェース)を有するユーザデバイスを介してアクセス可能な、単一の包括的なユーザインターフェースの下に結合する。
この実施形態では、マスターIoTハブ110及び1つ以上のスレーブIoTハブ111は、WiFiネットワーク116、イーサネット(登録商標)ネットワーク、及び/又は電力線通信(PLC)ネットワーキング(例えば、ネットワークの全部若しくは一部がユーザの電力線を介して実行される)、ローカルネットワークを介して接続してもよい。加えて、IoTハブ110〜111に対して、IoTデバイス101〜105のそれぞれは、いくつか例を挙げると、WiFi、イーサネット(登録商標)、PLC、又はBluetooth(登録商標) LEなどの任意のタイプのローカルネットワークチャネルを使用して、相互接続してもよい。
図1Bはまた、第2のユーザ構内181にインストールされたIoTハブ190を示す。実質的に無制限の数のそのようなIoTハブ190は、世界中のユーザ構内のIoTデバイス191〜192からデータを収集するようにインストールされ、構成され得る。一実施形態では、2つのユーザ構内180〜181は、同じユーザに対して構成されてもよい。例えば、一方のユーザ構内180がユーザの基本的なホームであり、他方のユーザ構内181がユーザのバケーションホームであってもよい。そのような場合、IoTサービス120は、IoTハブ110〜111、190をユーザと論理的に関連付け、取り付けられたすべてのIoTデバイス101〜105、191〜192を、単一の包括的なユーザインターフェースの下に結合し、インストールされたアプリケーション135(及び/又はブラウザベースのインターフェース)を有するユーザデバイスを介してアクセス可能にする。
図2に例示するように、IoTデバイス101の例示的な実施形態は、プログラムコード及びデータ201〜203を記憶するメモリ210と、プログラムコードを実行しデータを処理する低電力マイクロコントローラ200とを含む。メモリ210は、ダイナミックランダムアクセスメモリ(DRAM)などの揮発性メモリであってもよいし、フラッシュメモリなどの不揮発性メモリであってもよい。一実施形態では、不揮発性メモリを永続記憶に使用し、揮発性メモリをプログラムコードの実行及びデータの実行に使用することができる。更に、メモリ210は、低電力マイクロコントローラ200内に統合されてもよく、バス又は通信ファブリックを介して低電力マイクロコントローラ200に連結されてもよい。本発明の基本原理は、メモリ210のいかなる特定の実装にも限定されない。
例示したように、プログラムコードは、IoTデバイス101のアプリケーション開発者によって利用され得る所定のビルディングブロックのセットを含む、IoTデバイス201及びライブラリコード202によって行われる特定用途向けの機能セットを定義するアプリケーションプログラムコード203を含むことができる。一実施形態では、ライブラリコード202は、各IoTデバイス101とIoTハブ110との間の通信を可能にするための通信プロトコルスタック201などのIoTデバイスを実装するために必要とされる基本機能のセットを含む。言及したように、一実施形態では、通信プロトコルスタック201は、Bluetooth(登録商標) LEプロトコルスタックを含む。この実施形態では、Bluetooth(登録商標) LE無線機及びアンテナ207は、低電力マイクロコントローラ200内に統合されてもよい。しかしながら、本発明の基本原理は、いかなる特定の通信プロトコルにも限定されない。
図2に示す特定の実施形態はまた、ユーザ入力を受信し、ユーザ入力を低電力マイクロコントローラに提供する複数の入力デバイス又はセンサ210を含み、低電力マイクロコントローラは、アプリケーションコード203及びライブラリコード202に従ってユーザ入力を処理する。一実施形態では、入力デバイスの各々は、エンドユーザにフィードバックを提供するLED 209を含む。
加えて、例示した実施形態は、低電力マイクロコントローラに電力を供給するための電池208を含む。一実施形態では、非充電式コイン型電池が使用される。しかしながら、別の実施形態では、統合された充電式電池を使用することができる(例えば、交流電源(図示せず)にIoTデバイスを接続することによって再充電可能)。
オーディオを発生するためのスピーカー205も設けられている。一実施形態では、低電力マイクロコントローラ299は、スピーカー205上にオーディオを発生するために圧縮されたオーディオストリーム(例えば、MPEG−4/アドバンストオーディオコーディング(AAC)ストリーム)を復号するための、オーディオ復号ロジックを含む。代替的に、低出力マイクロコントローラ200及び/又はアプリケーションコード/データ203が、ユーザが入力デバイス210を介して選択を入力すると、エンドユーザに口頭のフィードバックを提供するための、デジタルでサンプリングされたオーディオスニペットを含むことができる。
一実施形態では、IoTデバイス101が設計される特定のアプリケーションに基づいて、1つ以上の他の/代替のI/Oデバイス又はセンサ250が、IoTデバイス101に含まれてもよい。例えば、温度、圧力、湿度などを測定するために環境センサを含めることができる。IoTデバイスがセキュリティデバイスとして使用される場合には、セキュリティセンサ及び/又はドアロックオープナーが含まれてもよい。当然のことながら、これらの例は、単に例示目的で提供されている。本発明の基本原理は、いかなる特定のタイプのIoTデバイスにも限定されない。実際に、ライブラリコード202が備わった低電力マイクロコントローラ200の高度にプログラム可能な性質が与えられると、アプリケーション開発者は、新しいアプリケーションコード203及び新しいI/Oデバイス250を容易に開発して、実質的に任意のタイプのIoTアプリケーションのために低電力マイクロコントローラとインターフェースをとる。
一実施形態では、低電力マイクロコントローラ200はまた、通信を暗号化するための、及び/又は符号を生成するための暗号化鍵を記憶するための安全な鍵ストアを含む。代替的に、鍵は、加入者識別モジュール(SIM)内に確保されてもよい。
一実施形態では、実質的に電力を消費していない超低電力状態からIoTデバイスを起動させるために、ウェイクアップ受信器207が含まれる。一実施形態では、ウェイクアップ受信器207は、図3に示すように、IoTハブ110上に構成されたウェイクアップ送信器307から受信されたウェイクアップ信号に応答して、IoTデバイス101をこの低電力状態から出させるように構成される。具体的には、一実施形態では、送信器307と受信器207は共に、テスラコイルなどの電気共振トランス回路を形成する。動作中、ハブ110が非常に低い電力状態からIoTデバイス101を起動させる必要がある場合、エネルギーは送信器307から受信器207への無線周波数信号を介して送信される。エネルギー移動の理由で、IoTデバイス101は、それが低電力状態にあるときには、ハブからの信号を継続的に「聞く」必要がないので、実質的に電力を消費しないように構成することができる(ネットワーク信号を介してデバイスを起動させることができる、ネットワークプロトコルの場合と同様に)。むしろ、IoTデバイス101のマイクロコントローラ200は、送信器307から受信器207に電気的に送信されたエネルギーを使用することによって効果的にパワーダウンされた後に起動するように構成される。
図3に例示するように、IoTハブ110はまた、プログラムコード及びデータ305を記憶するためのメモリ317と、プログラムコードを実行しデータを処理するためのマイクロコントローラなどのハードウェアロジック301とを含む。広域ネットワーク(WAN)インターフェース302及びアンテナ310は、IoTハブ110をセルラーサービス115に連結する。代替的に、上で言及したように、IoTハブ110は、ローカルエリアネットワーク通信チャネルを確立するためにWiFiインターフェース(及びWiFiアンテナ)又はイーサネット(登録商標)インターフェースなどのローカルネットワークインターフェース(図示せず)を含むこともできる。一実施形態では、ハードウェアロジック301はまた、通信を暗号化するための、及び/又は符号を生成/検証するための暗号化鍵を記憶するための安全な鍵ストアを含む。代替的に、鍵は、加入者識別モジュール(SIM)内に確保されてもよい。
ローカル通信インターフェース303及びアンテナ311は、IoTデバイス101〜105のそれぞれとのローカル通信チャネルを確立する。上で言及したように、一実施形態では、ローカル通信インターフェース303/アンテナ311はBluetooth(登録商標) LE規格を実装する。しかしながら、本発明の基本原理は、IoTデバイス101〜105とのローカル通信チャネルを確立するためのいかなる特定のプロトコルにも限定されない。図3においては別個のユニットとして示されているが、WANインターフェース302及び/又はローカル通信インターフェース303は、ハードウェアロジック301と同じチップ内に組み込まれてもよい。
一実施形態では、プログラムコード及びデータは、ローカル通信インターフェース303及びWANインターフェース302を介して通信するための別個のスタックを含む通信プロトコルスタック308を含む。加えて、デバイスペアリングプログラムコード及びデータ306は、IoTハブを新しいIoTデバイスとペアリングすることができるようにメモリに記憶され得る。一実施形態では、各新しいIoTデバイス101〜105には、ペアリングプロセス中にIoTハブ110に通信される一意的なコードが割り当てられる。例えば、一意的なコードは、IoTデバイス上のバーコードに組み込まれてもよく、かつバーコードリーダ106によって読み取られてもよく、又はローカル通信チャネル130を介して通信されてもよい。別の実施形態では、一意的なIDコードがIoTデバイスに磁気的に組み込まれ、IoTハブは、無線周波数ID(RFID)又は近距離通信(NFC)センサなどの磁気センサを有し、IoTデバイス101がIoTハブ110の数インチ内で移動するとき、コードを検出する。
一実施形態では、一意的なIDが通信されると、IoTハブ110は、ローカルデータベース(図示せず)に問い合わせること、コードが許容可能であることを検証するためにハッシュを行うこと、及び/又はIoTサービス120と通信することによって、一意的なIDを検証し、ユーザデバイス135及び/又はウェブサイト130でIDコードを認証する。認証されると、一実施形態では、IoTハブ110は、IoTデバイス101をペアリングし、メモリ317(これは、言及したように、不揮発性メモリを含むことができる)にペアリングデータを記憶する。ペアリングが完了すると、IoTハブ110は、本明細書に記載の様々な機能を行うためにIoTデバイス101と接続することができる。
一実施形態では、IoTサービス120を運営する組織は、開発者が新しいIoTサービスを容易に設計できるように、IoTハブ110及び基本ハードウェア/ソフトウェアプラットフォームを提供することができる。具体的には、IoTハブ110に加えて、開発者には、ハブ110内で実行されるプログラムコード及びデータ305を更新するためのソフトウェア開発キット(SDK)が提供されてもよい。加えて、IoTデバイス101については、SDKは様々な異なるタイプのアプリケーション101の設計を容易にするために、ベースのIoTハードウェア(例えば、低電力マイクロコントローラ200及び図2に示す他の構成要素)用に設計された広範なライブラリコード202のセットを含む。一実施形態では、SDKは、開発者がIoTデバイスの入力と出力を指定するだけでよいグラフィカル設計インターフェースを含む。IoTデバイス101がハブ110及びサービス120に接続することを可能にする通信スタック201を含むネットワーキングコードはすべて、開発者のために既に配置されている。加えて、一実施形態では、SDKは、モバイルデバイス(例えば、iPhone(登録商標)及びAndroidデバイス)用のアプリケーションの設計を容易にするライブラリコードベースも含む。
一実施形態では、IoTハブ110は、IoTデバイス101〜105とIoTサービス120との間のデータの連続的な双方向ストリームを管理する。IoTデバイス101〜105への/からの更新がリアルタイムで要求されるとき(例えば、ユーザがセキュリティデバイス又は環境読み取りの現在の状態を見る必要がある場合)、IoTハブは、ユーザデバイス135及び/又は外部のウェブサイト130に定期的な更新を提供するためにオープンTCPソケットを維持することができる。更新を提供するために使用される特定のネットワーキングプロトコルは、基礎をなすアプリケーションのニーズに基づいて調整されてもよい。例えば、連続的な双方向ストリームを有することが理にかなっていない可能性がある場合、必要なときに情報を収集するために単純な要求/応答プロトコルを使用することができる。
一実施形態では、IoTハブ110及びIoTデバイス101〜105の両方が、ネットワークを介して自動的に更新可能である。具体的には、IoTハブ110について新しい更新が利用可能であるとき、IoTサービス120から更新を自動的にダウンロードしてインストールすることができる。それは、古いプログラムコードを交換する前に、まず、更新されたコードをローカルメモリにコピーし、実行して、更新を検証し得る。同様に、IoTデバイス101〜105のそれぞれについて更新が利用可能である場合、それらはIoTハブ110によって最初にダウンロードされ、IoTデバイス101〜105のそれぞれにプッシュアウトされてもよい。各IoTデバイス101〜105は、IoTハブに関して上述したのと同様の方法で更新を適用し、更新の結果をIoTハブ110に報告する。更新が成功した場合、IoTハブ110は、更新をそのメモリから削除して、(例えば、各IoTデバイスについての新しい更新を確認し続けることができるように)それぞれのIoTデバイスにインストールされている最新バージョンのコードを記録する。
一実施形態では、IoTハブ110は、A/C電力を介して給電される。具体的には、IoTハブ110は、A/C電源コードを介して供給されるA/C電圧をより低いDC電圧に変換するための変圧器を備えた電源ユニット390を含むことができる。
図4Aは、IoTシステムを使用してユニバーサル遠隔制御操作を行うための、本発明の一実施形態を例示する。具体的には、この実施形態では、IoTデバイス101〜103のセットには、(ほんの数例を挙げると)空気調節装置/ヒータ430、照明システム431、及び視聴覚機器432を含む、様々な異なるタイプの電子機器を制御する遠隔制御コードを送信するための、赤外線(IR)及び/又は無線周波数(RF)ブラスタ401〜403がそれぞれ備わっている。図4Aに示される実施形態では、IoTデバイス101〜103にはまた、以下に記載されるように、それらが制御するデバイスの動作を検出するためのセンサ404〜406がそれぞれ備わっている。
例えば、IoTデバイス101におけるセンサ404は、現在の温度/湿度を検知し、それに応じて、現在の所望の温度に基づき空気調節装置/ヒータ430を制御するための温度及び/又は湿度センサであってもよい。この実施形態では、空気調節装置/ヒータ430は、遠隔制御デバイス(典型的には、それ自体が温度センサをその中に組み込んだ遠隔制御)を介して制御されるように設計されるものである。一実施形態では、ユーザは、ユーザデバイス135上にインストールされたアプリケーション又はブラウザを介して、所望の温度をIoTハブ110に提供する。IoTハブ110上で実行される制御ロジック412は、センサ404から現在の温度/湿度を受信し、それに応じて、所望の温度/湿度に従ってIR/RFブラスタ401を制御するように、IoTデバイス101にコマンドを送信する。例えば、温度が所望の温度未満である場合、制御ロジック412は、温度を上げるように、IR/RFブラスタ401を介して空気調節装置/ヒータにコマンドを送信してもよい(例えば、空気調節装置をオフにすることか、又はヒータをオンにすることのいずれかによって)。コマンドは、IoTハブ110上のデータベース413に記憶された必要な遠隔制御コードを含んでもよい。代替的に、又は加えて、IoTサービス421は、指定されたユーザ選好及び記憶された制御コード422に基づき電子機器430〜432を制御するために、制御ロジック421を実装してもよい。
例示した実施例におけるIoTデバイス102は、照明431を制御するために使用される。具体的には、IoTデバイス102のセンサ405は、照明設備431(又は他の照明装置)によってもたらされている光の現在の輝度を検出するように構成される、光センサ又は光検出器であってもよい。ユーザは、ユーザデバイス135を介して、IoTハブ110に所望の照明レベル(オン又はオフの指示を含む)を指定してもよい。それに応答して、制御ロジック412は、照明431の現在の輝度レベルを制御するように、IR/RFブラスタ402にコマンドを送信する(例えば、現在の輝度が低すぎる場合は照明を明るくするか、若しくは現在の輝度が高すぎる場合は照明を暗くする、又は単純に照明をオン若しくはオフにする)。
例示した実施例におけるIoTデバイス103は、視聴覚機器432(例えば、テレビ、A/V受信器、ケーブル/衛星受信器、AppleTV(商標)など)を制御するように構成される。IoTデバイス103のセンサ406は、現在の周囲音量レベルを検出するためのオーディオセンサ(例えば、マイクロホン及び関連ロジック)、並びに/又はテレビによって発生した光に基づき(例えば、指定されたスペクトル内の光を測定することによって)、テレビがオンであるか、それともオフであるかを検出するための光センサであってもよい。代替的に、センサ406は、検出された温度に基づき、オーディオ機器がオンであるか、それともオフであるかを検出するための、視聴覚機器に接続された温度センサを含んでもよい。再度、ユーザデバイス135を介したユーザ入力に応答して、制御ロジック412は、IoTデバイス103のIRブラスタ403を介して視聴覚機器にコマンドを送信してもよい。
上記が本発明の一実施形態の単なる例示的な実施例であることに留意すべきである。本発明の基本原理は、IoTデバイスによって制御されるいかなる特定のタイプのセンサ又は機器にも限定されない。
IoTデバイス101〜103がBluetooth(登録商標) LE接続を介してIoTハブ110に連結される実施形態では、センサデータ及びコマンドは、Bluetooth(登録商標) LEチャネル上で送信される。しかしながら、本発明の基本原理は、Bluetooth(登録商標) LE又はいかなる他の通信規格にも限定されない。
一実施形態では、電子機器のそれぞれを制御するために必要とされる制御コードは、IoTハブ110上のデータベース413及び/又はIoTサービス120上のデータベース422に記憶される。図4Bに例示するように、制御コードは、IoTサービス120上で維持される異なる機器に対して、制御コード422のマスターデータベースからIoTハブ110に提供されてもよい。エンドユーザは、ユーザデバイス135上で実行されるアプリケーション又はブラウザを介して制御される電子(又は他の)機器のタイプを指定してもよく、それに応答して、IoTハブ上の遠隔制御コード学習モジュール491は、IoTサービス120上の遠隔制御コードデータベース492から、必要とされるIR/RFコードを検索してもよい(例えば、一意的なIDを有する各電子機器を識別する)。
加えて、一実施形態では、IoTハブ110には、遠隔制御コード学習モジュール491が、電子機器が備わった元の遠隔制御495から直接新しい遠隔制御コードを「学習」することを可能にする、IR/RFインターフェース490が備わっている。例えば、空気調節装置430が備わった元の遠隔制御に対する制御コードが、遠隔制御データベースに含まれない場合、ユーザは、ユーザデバイス135上のアプリケーション/ブラウザを介してIoTハブ110と対話して、元の遠隔制御によって生成された様々な制御コードをIoTハブ110に教えてもよい(例えば、温度を上げる、温度を下げるなど)。いったん遠隔制御コードが学習されると、それらは、IoTハブ110上の制御コードデータベース413に記憶されてもよく、かつ/又は中央遠隔制御コードデータベース492に含まれるために、IoTサービス120に送り返されてもよい(続いて、同じ空気調節装置ユニット430を有する他のユーザによって使用されてもよい)。
一実施形態では、IoTデバイス101〜103のそれぞれは、極端に小さいフォームファクタを有し、両面テープ、小さい釘、磁気アタッチメントなどを使用して、それらの対応する電子機器430〜432上又はその近くに取り付けられてもよい。空気調節装置430などの1つの機器を制御するために、IoTデバイス101を十分に離して配置し、センサ404が自宅内の周囲温度を正確に測定することができるようにすることが望ましい(例えば、空気調節装置上に直接IoTデバイスを配置することは、空気調節装置が作動しているときに低すぎるか、又はヒータが作動しているときに高すぎる温度測定値をもたらす)。対照的に、照明を制御するために使用されるIoTデバイス102は、センサ405が現在の照明レベルを検出するように、照明設備431上又はその近くに配置されてもよい。
記載される一般的な制御機能を提供することに加えて、IoTハブ110及び/又はIoTサービス120の一実施形態は、各電子機器の現在の状態に関連した通知をエンドユーザに送信する。次いで、テキストメッセージ及び/又はアプリケーション特有の通知であってもよい通知は、ユーザのモバイルデバイス135のディスプレイ上に表示されてもよい。例えば、ユーザの空気調節装置が長期間オンであるが温度が変化していない場合、IoTハブ110及び/又はIoTサービス120は、空気調節装置が適切に機能していないという通知をユーザに送信してもよい。ユーザが自宅におらず(人感センサを介して検出されてもよく、若しくはユーザの現在の検出された位置に基づいてもよい)、センサ406が、視聴覚機器430がオンであることを示すか、又はセンサ405が、照明がオンであることを示す場合、ユーザが視聴覚機器432及び/又は照明431をオフにしたいかどうか尋ねる通知がユーザに送信されてもよい。同じタイプの通知が、任意の機器のタイプに対して送信されてもよい。
いったんユーザが通知を受信すると、彼/彼女は、ユーザデバイス135上のアプリケーション又はブラウザを介して電子機器430〜432を遠隔制御してもよい。一実施形態では、ユーザデバイス135は、タッチスクリーンデバイスであり、アプリケーション又はブラウザは、機器430〜432を制御するためのユーザが選択可能なボタンを用いて、遠隔制御の画像を表示する。通知を受信した後、ユーザは、グラフィカル遠隔制御を開き、様々な異なる機器をオフにするか、又は調節してもよい。IoTサービス120を介して接続されている場合、ユーザの選択は、IoTサービス120から、次いで制御ロジック412を介して機器を制御するIoTハブ110に転送されてもよい。代替的に、ユーザ入力は、ユーザデバイス135からIoTハブ110に直接送信されてもよい。
一実施形態では、ユーザは、電子機器430〜432に対して様々な自動制御機能を行うように、IoTハブ110上の制御ロジック412をプログラミングしてもよい。上述の所望の温度、輝度レベル、及び音量レベルを維持することに加えて、制御ロジック412は、ある特定の条件が検出された場合に電子機器を自動的にオフにしてもよい。例えば、制御ロジック412が、ユーザが自宅にいないこと、及び空気調節装置が機能していないことを検出する場合、それは、空気調節装置を自動的にオフにしてもよい。同様に、ユーザが自宅におらず、センサ406が、視聴覚機器430がオンであることを示すか、又はセンサ405が、照明がオンであることを示す場合、制御ロジック412は、視聴覚機器及び照明をそれぞれオフにするように、IR/Rブラスタ403及び402を介してコマンドを自動的に送信してもよい。
図5は、電子機器530及び531を監視するためのセンサ503及び504が備わった、IoTデバイス104及び105の追加の実施形態を例示する。具体的には、この実施形態のIoTデバイス104は、コンロがオンのままになっているときを検出するように、コンロ530上又はその近くに配置されてもよい、温度センサ503を含む。一実施形態では、IoTデバイス104は、温度センサ503によって測定された現在の温度を、IoTハブ110及び/又はIoTサービス120に送信する。コンロが閾値期間を超えてオンであることが検出される場合(例えば、測定された温度に基づき)、制御ロジック512は、ストーブ530がオンであることをユーザに通知する通知を、エンドユーザのデバイス135に送信してもよい。加えて、一実施形態では、IoTデバイス104は、ユーザからの命令を受信することに応答して、又は自動的に(ユーザによって制御ロジック512がそうするようにプログラミングされる場合)、のいずれかによって、コンロをオフにするための制御モジュール501を含んでもよい。一実施形態では、制御ロジック501は、コンロ530への電気又はガスを遮断するためのスイッチを備える。しかしながら、他の実施形態では、制御ロジック501は、コンロ自体内に統合されてもよい。
図5はまた、洗濯機及び/又は乾燥機などのある特定のタイプの電子機器の動作を検出するための動作センサ504を有する、IoTデバイス105を例示する。使用され得る別のセンサは、周囲の音量レベルを検出するためのオーディオセンサ(例えば、マイクロホン及びロジック)である。上述の他の実施形態のように、この実施形態は、ある特定の指定された条件が満たされた場合、エンドユーザに通知を送信してもよい(例えば、動作が長期間検出され、洗濯機/乾燥機がオフになっていないことを示す場合)。図5に示されないが、IoTデバイス105にはまた、自動的に、かつ/又はユーザ入力に応答して、(例えば、電気/ガスをオフに切り替えることによって)洗濯機/乾燥機531をオフにするための制御モジュールが備わっていてもよい。
一実施形態では、制御ロジック及びスイッチを有する第1のIoTデバイスは、ユーザの自宅内のすべての電力をオフにするように構成されてもよく、制御ロジック及びスイッチを有する第2のIoTデバイスは、ユーザの自宅内のすべてのガスをオフにするように構成されてもよい。次いで、センサを有するIoTデバイスは、ユーザの自宅内の電気又はガス駆動の機器上又はその近くに位置付けられてもよい。特定の機器がオンのままである(例えば、コンロ530)ことをユーザが通知された場合、ユーザは、自宅内のすべての電気又はガスをオフにするコマンドを送信して、損傷を防止してもよい。代替的に、IoTハブ110及び/又はIoTサービス120の制御ロジック512は、そのような状態で電気又はガスを自動的にオフにするように構成されてもよい。
一実施形態では、IoTハブ110及びIoTサービス120は、周期的な間隔で通信する。IoTサービス120が、IoTハブ110への接続が切れていることを検出する場合(例えば、指定された継続時間、IoTハブからの要求又は応答を受信していないことによって)、それは、エンドユーザのデバイス135にこの情報を通信する(例えば、テキストメッセージ又はアプリケーション特有の通知を送信することによって)。
正確性のための装置及び方法
IoTシステムにおけるユーザ位置の検知
現在の無線「スマート」ロック及びガレージドアオープナーは、エンドユーザがモバイルデバイスを介してロック及び/又はガレージドアを制御することを可能にする。これらのシステムを動作させるために、ユーザは、モバイルデバイス上でアプリケーションを開き、開ける/ロック解除又は閉じる/ロックオプションを選択しなければならない。それに応じて、無線信号が、所望の動作を実装する無線ロック又はガレージドア上の又はそれに連結された受信器に送信される。下記の考察は無線「ロック」に焦点を合わせているが、「ロック」という用語は、標準的ドアロック、無線ガレージドアオープナー、及び建物又は他の位置へのアクセスを制限するための任意の他のデバイスを指すように本明細書で広く使用される。
いくつかの無線ロックは、ユーザがいつドアの外側にいるかを決定しようと試み、それに応じて、開く/ロック解除機能をトリガする。図6は、例えば、無線デバイス603からの信号の信号強度に基づいて、無線デバイス603と共にユーザがドア601の外側から近づいてくるのに応答して、無線ロック602がトリガされる、実施例を例示する。例えば、無線ロック602は、無線デバイス603からの受信信号強度インジケータ(RSSI)を測定してもよく、それが閾値(例えば、−60dbm)に達すると、ドア601をロック解除する。
これらの技術にまつわる1つの明白な問題は、RSSI測定が無指向性であるということである。例えば、ユーザは、無線デバイス603と共に自宅を動き回り、無線ロック602又はガレージドアオープナーの横を通り過ぎ、それによってそのトリガを引き起こす場合がある。この理由で、ユーザ近接性の検出に基づいて動作する無線ロックの使用は、限定されてきた。
図7は、IoTハブ及び/又はIoTデバイス710を使用して、ユーザの位置をより高い正確性をもって決定する、本発明の一実施形態を例示する。具体的には、本発明のこの実施形態は、無線デバイス703とIoTロックデバイス702との間の信号強度を測定し、また、無線デバイス703と1つ以上のIoTデバイス/ハブ710との間の信号強度も測定して、ユーザが自宅の外にいる場合と自宅の中にいる場合とを差異化する。例えば、ユーザが、自宅の中又は外でIoTロック702から特定の距離にいる場合、自宅の中の場所からの信号強度761及び自宅の外の信号強度760は、概ね同じであり得る。図6に例示するものなどの、従来のシステムは、これらの2つの場合の間を決して差異化することがなかった。しかしながら、図7に示す実施形態では、ユーザが自宅の外及び自宅の中にいるときにそれぞれIoTハブ/デバイス710と無線デバイス703との間で測定された信号強度測定値750及び751における差異を使用して、ユーザの位置を決定する。例えば、無線デバイス703が外の位置にあるとき、信号強度750は、無線デバイス703が中の位置にあるときの信号強度751とは測定できるほどに異なり得る。ほとんどの場合において自宅の中の信号強度751はより強いはずであるが、信号強度751が実際にはより弱い実例もあり得る。重要な点は、信号強度を使用して、2つの場所を差異化し得るということである。
信号強度値760〜761、750〜751は、IoTハブ/デバイス710において又はIoTロック702において評価されてもよい(それがこの評価を行うインテリジェンスを有する場合)。この考察の残りの部分では、信号強度評価が、IoTハブ710によって行われることを想定し、IoTハブ710は次いで、評価の結果に基づいて、無線通信チャネル770(例えば、BTLE)を介してロック又はロック解除コマンド(又は、既にロックされている/ロック解除されている場合にはコマンドなし)をIoTロック702に送信し得る。しかしながら、IoTロック702が、評価を行うロジックにより構成されている場合(例えば、信号強度値がIoTロック702に提供される場合)には、同じ基礎的評価及び結果がIoTロック702によって直接行われてもよいことに留意すべきである。
図8は、それが2つのIoTハブ/デバイス710〜711からの信号強度値を利用するので、より高い正確性を提供することが可能である、別の実施形態を例示する。この実施形態では、信号強度805は、無線デバイス703と(1)IoTハブ/デバイス711、(2)IoTハブ/デバイス710、及び(3)IoTロック702との間で測定される。簡略化のために、無線デバイスは、図8において単一の位置で示される。
一実施形態では、収集された信号強度値のすべてが、IoTハブデバイス710〜711のうちの一方に提供され、そのIoTハブデバイスが次いで値を評価して、ユーザの位置(例えば、内側又は外側)を決定する。ユーザが外側にいると決定する場合、IoTハブ/デバイス710は、コマンドをIoTロック702に送信して、ドアをロック解除し得る。代替的に、IoTロック702が評価を行うロジックを有する場合、IoTハブ/デバイス710〜711は、信号強度値をIoTロック702に送信してもよく、IoTロック702が信号強度値を評価してユーザの位置を決定する。
図9に例示するように、一実施形態では、IoTハブ710上の校正モジュール910が、無線デバイス703上のアプリケーション又はブラウザベースのコードと通信して、信号強度測定値を校正する。校正中、システム校正モジュール910及び/又は校正アプリケーションは、ドアの外側及びドアの内側(例えば、外側、ドア1の6フィート外側、ドア1の6フィート内側、ドア2の6フィート外側など)のある特定の位置に立つようユーザに指図し得る。ユーザは、ユーザインターフェース上の図形を選択することによって、彼/彼女が所望の場所にいることを示してもよい。システム校正アプリケーション及び/又はシステム校正モジュール910は次いで、収集された信号強度値900をIoTハブ/デバイス710上の位置データベース1301内の各位置と関連付ける。
いったんユーザの異なる既知の位置についての信号強度値が収集され、データベース901に記憶されると、信号強度分析モジュール911は、これらの値を使用して、検出された信号強度値に基づいて、ドアをロック/ロック解除するIoTロックコマンド950を送信するかどうかを決定する。図9に示される実施形態では、2つの異なるドアに関する4つの例示的な位置、すなわち、ドア1の外側、ドア1の内側、ドア2の外側、及びドア2の内側が示される。RSSI1値は、無線ロックと関連付けられ、−60dbmの閾値に設定される。故に、一実施形態では、信号強度分析モジュール911は、RSSI1値が少なくとも−60dmbでない限り、ユーザの位置を決定するためのその評価を行わない。RSSI2及びRSSI3値は、ユーザの無線デバイスと2つの異なるIoTハブ/デバイスとの間で測定された信号強度値である。
RSSI1閾値に達したと想定して、信号強度分析モジュール911は、IoTハブ/デバイスとびユーザの無線デバイスとの間で測定された現在の信号強度値900を、位置データベース901からのRSSI2/RSSI3値と比較する。現在のRSSI値が、RSSI2(例えば、IoTハブ/デバイス710について)及びRSSI3について(例えばIoTハブ/デバイス711について)のデータベースにおいて指定される値の指定範囲内である場合、無線デバイスは、関連付けられた位置にある又はその近くにあると決定される。例えば、「ドア1の外側」位置と関連付けられたRSSI2値が−90dbmであるので(例えば、校正中に行われた測定に基づいて)、RSSI2について現在測定される信号強度が−93dbm〜−87dbmである場合、RSSI2比較が検証され得る(±3dbmの指定範囲を想定して)。同様に、「ドア1の外側」位置と関連付けられたRSSI3値が−85dbmであるので(例えば、校正中に行われた測定に基づいて)、RSSI3について現在測定される信号強度が−88dbm〜−82dbmである場合、RSSI3比較が検証され得る。故に、ユーザがIoTロックに対して−60dbm値内にいる、かつRSSI2及びRSSI3についての指定を上回る範囲内にいる場合、信号強度分析モジュール911は、ロックを開けるコマンド950を送信する。この方法で異なるRSSI値を比較することによって、システムは、RSSI2及びRSSI3についてのRSSI測定値を使用して、中にいる場合及び外にいる場合を差異化するので、ユーザが自宅の中からIoTロックの−60dbm内を通り過ぎるときの望ましくない「ロック解除」事象を回避する。
一実施形態では、信号強度分析モジュール911は、中にいる場合と外にいる場合との間の最大量の差異化を提供するRSSI値に依存する。例えば、中にいる場合及び外にいる場合に対するRSSI値が同等であるか又は非常に近い(例えば、RSSI3値がドア2の内側及びドア2の外側についてそれぞれ−96dbm及び−97dbmなど)事例がいくつかあり得る。そのような場合、信号強度分析モジュールは、他のRSSI値を使用して、2つの場合を差異化する。加えて、一実施形態では、信号強度分析モジュール911は、記録されたRSSI値が近いとき、比較に使用されるRSSI範囲を動的に調節し得る(例えば、測定されたRSSI値がより近いとき、それらの範囲をより小さくする)。故に、上記の実施例において±3dbmが比較範囲として使用される一方で、RSSI測定値がどれだけ近いかに基づいて、様々な異なる範囲が比較のために設定されてもよい。
一実施形態では、システム校正モジュール910システムは、ユーザがドアを通って入るたびにdbm値を測定することによって、システムを訓練し続ける。例えば、最初の校正に続いてユーザが自宅に首尾よく入ることに応答して、システム校正モジュール910は、RSSI2及びRSSI3についての追加のRSSI値を記憶してもよい。この方法で、中にいる場合と外にいる場合との間を更に差異化するために、RSSI値の範囲が、各場合につき、位置/信号強度データベース901に記憶されてもよい。最終結果は、現在利用可能なものよりも遥かにより正確な無線ロックシステムである。
本発明の一実施形態に従った方法が図10に例示される。本方法は、上述のシステムアーキテクチャとの関連で実装され得るが、いかなる特定のシステムアーキテクチャにも限定されない。
1001で、ユーザデバイスとIoTロックとの間の無線信号強度が測定される。1002で、信号強度が指定される閾値を上回る(すなわち、ユーザがドアの近くにいることを示す)場合、1002で、ユーザデバイスと1つ以上のIoTハブ/デバイスとの間の無線信号強度が測定される。1003で、収集された無線信号強度値が、以前に収集及び記憶された信号強度値と比較されて、ユーザの位置を決定する。例えば、RSSI値が、ユーザが以前にドアの外側にいたときのRSSI値の指定範囲内にある場合、ユーザが現在ドアの外側にいることが決定され得る。1004で、評価に基づいて、ユーザがドアの外側にいるかどうかに関する決定が下される。そうである場合、1005で、IoTロックを使用してドアが自動的にロック解除される。
IoTロックシステムを校正するための方法が、図11に例示される。1101で、ユーザは、ドアの外側に立つよう求められ、1102で、ユーザデバイスと1つ以上のIoTデバイス/ハブとの間で無線信号強度データが収集される。言及したように、要求は、ユーザの無線デバイスにインストールされたユーザアプリケーションを介してユーザに送信され得る。1103で、ユーザは、ドアの内側に立つよう求められ、1104で、ユーザデバイスとIoTデバイス/ハブとの間で無線信号強度データが収集される。1105で、信号強度データがデータベースに記憶され、これにより、それを使用して、本明細書に記載されるように信号強度値を比較して、ユーザの現在位置を決定し得る。
例示的な実施形態としてユーザの自宅が本明細書で使用されるが、本発明の実施形態は、消費者用途に限定されないことに留意されたい。例えば、これらの同じ技術を用いて、ビジネス又は他のタイプの建物へのアクセスを提供してもよい。
一実施形態では、上述したものと同様の技術を使用して、ユーザの自宅全体にわたってユーザを追跡する。例えば、ユーザの自宅においてユーザの無線デバイスと様々なIoTデバイス/ハブとの間のRSSI測定値を追跡することによって、異なるユーザ位置の「マップ」が編纂され得る。このマップを次いで使用して、ユーザが現在位置する部屋におけるスピーカーにオーディオを方向付けるなどのサービスをエンドユーザに提供してもよい。
図12は、無線デバイス703と複数のIoTデバイス1101〜1105及びIoTハブ1110との間で測定されたRSSI値を使用して、ユーザが部屋A、B、又はCにいるかを決定する、例示的なシステムの概要を提供する。具体的には、例示されるように、無線デバイス703と、IoTハブ1110、IoTデバイス1103、及びIoTデバイス1102との間で測定されたRSSI値1121〜1123に基づいて、IoTハブ1110は、ユーザが現在部屋Bにいることを決定し得る。同様に、ユーザが部屋Cの中に移動するとき、無線デバイス703と、IoTデバイス1104〜1105及びIoTハブ1110との間のRSSI測定値を次いで使用して、ユーザが部屋Cにいることを決定してもよい。3つのRSSI測定1121〜1123のみが図12に示されるが、RSSI測定は、より高い正確性を提供するために、無線デバイス703の範囲内の任意のIoTデバイス又はIoTハブとの間で行われてもよい。
一実施形態では、IoTハブ1110は、それ自体と様々なIoTデバイス1101〜1105及び無線デバイス703との間のRSSI値に基づいた三角測量技術を用いて、ユーザの位置を三角測量してもよい。例えば、IoTデバイス1102、IoTハブ1110、及び無線デバイス703との間に形成されたRSSI三角形を使用して、三角形の各辺のRSSI値に基づいて、無線デバイス703の現在の位置を決定してもよい。
一実施形態では、上述したものと同様の校正技術を使用して、各部屋における信号強度値を収集してもよい。図13は、上述の実施形態にあるように、無線デバイス703上のアプリケーション又はブラウザベースのコードと通信して信号強度測定値を校正する、システム校正モジュール910を例示する。校正中、システム校正モジュール910及び/又は校正アプリケーションは、IoTシステムが使用されているアプリケーションに応じて、異なる部屋に、及び各部屋内のある特定の場所に立つようユーザに指図してもよい。上述したように、ユーザは、ユーザインターフェース上の図形を選択することによって、彼/彼女が所望の場所にいることを示してもよい。システム校正アプリケーション及び/又はシステム校正モジュール910は次いで、収集された信号強度値900をIoTハブ/デバイス710上の位置データベース901内の各位置と関連付ける。
いったんユーザの異なる既知の位置についての信号強度値が収集され、データベース1301に記憶されると、信号強度分析モジュール911は、これらの値を使用して、ユーザの自宅の周りで様々なIoTデバイス1101〜1105を制御する。例えば、IoTデバイス1101〜1105がホームオーディオシステム用のスピーカー又は増幅器を含む場合、信号強度分析モジュール911は、オーディオが再生されている部屋を制御するIoTデバイスコマンド1302を送信してもよい(例えば、ユーザが存在する部屋におけるスピーカーをオンにし、他の部屋におけるスピーカーをオフにする)。同様に、IoTデバイス1101〜1105が照明制御ユニットを含む場合、信号強度分析モジュール911は、ユーザが存在する部屋における照明をオンにし、他の部屋における照明をオフにするIoTデバイスコマンド1302を送信してもよい。当然ながら、本発明の基本原理は、いかなる特定のエンドユーザ用途にも限定されない。
言及したように、システム校正モジュール910の一実施形態は、用途に基づいて、部屋内の異なる点についてのRSSIデータを収集する。図13において、RSSI範囲は、各部屋につき、その部屋内の異なる場所に立つようユーザに指図することによって、収集される。例えば、ユーザの家族の部屋に関して、RSSI1、RSSI2、及びRSSI3について、それぞれ、−99dbm〜−93dbm、−111dbm〜−90dbm、及び−115dbm〜−85dbmのRSSI範囲が収集される(すなわち、3つの異なるIoTデバイス/ハブから収集される)。無線デバイス703の現在の場所がこれらの範囲の各々に該当するとき、信号強度分析モジュール911は、ユーザが家族の部屋にいると決定し、指定された機能の組(例えば、照明、オーディオをオンにするなど)を行うIoTデバイスコマンド1302を送信する可能性がある。加えて、部屋内の特定の点に関して、特定のRSSI値が収集され得る。例えば、図13においては、ユーザが家族の部屋においてソファに座っているときに−88dbm、−99dbm、及び−101dbmの値が収集された。上述の実施形態にあるように、信号強度分析モジュール911は、RSSI値が記憶されたRSSI値の指定範囲にある(例えば、±3dbmである間に収まる)場合、ユーザがカウチの上にいると決定し得る。加えて、先の実施形態にあるように、システム校正モジュール910は、RSSI値が最新にとどまることを確実にするために、異なる位置に関してデータを収集し続けてもよい。例えば、ユーザが家族の部屋の配置構成を変える場合、カウチの場所は移動し得る。この場合、システム校正モジュール910は、ユーザが現在カウチに座っているかどうかをユーザに尋ね(例えば、RSSI値が、データベースに記憶されたものと類似していることを所与として)、信号強度データベース1301を新たな値で更新してもよい。
一実施形態では、様々なタイプのIoTデバイスとのユーザの対話を使用して、ユーザの位置を決定してもよい。例えば、ユーザの冷蔵庫にIoTデバイスが備わっている場合、システムは、ユーザが冷蔵庫のドアを開けたことを検出するとすぐにRSSI測定を行ってもよい。同様に、照明システムがIoTシステムを含む場合、ユーザが自宅又はビジネスの異なる部屋における照明を調節するときに、システムは、RSSI測定を自動的に行ってもよい。別の例として、ユーザが様々な家庭用器具(例えば、洗濯機、乾燥機、食洗器)、視聴覚機器(例えば、テレビ、オーディオ機器など)、又はHVACシステム(例えば、サーモスタットを調節する)と対話するときに、システムは、RSSI測定値をキャプチャし、その測定値をこれらの位置と関連付けてもよい。
上述の実施形態では単一のユーザについて記載されているが、本発明の実施形態は、複数のユーザに関して実装されてもよい。例えば、システム校正モジュール910は、信号強度データベース1301に記憶されるべきユーザA及びユーザBの両方に関して、信号強度値を収集してもよい。信号強度分析モジュール911は次いで、信号強度測定値の比較に基づいてユーザA及びBの現在の位置を識別し、ユーザA及びBの自宅の周りでIoTデバイスを制御するIoTコマンド1302を送信してもよい(例えば、ユーザA及びBが存在する部屋における照明/スピーカーをオンにしておく)。
本明細書に記載される本発明の実施形態において用いられる無線デバイス703は、スマートフォン、タブレット、装着可能なデバイス(例えば、スマートウォッチ、ネックレス又はブレスレットに付いたトークン)、又はRSSI値を検出することが可能な任意の他の形態の無線デバイス703であってもよい。一実施形態では、無線デバイス703は、Bluetooth(登録商標) LE(BTLE)などの短距離、低電力無線通信プロトコルを介して、IoTデバイス1101〜1105及びIoTハブ1110と通信する。加えて、一実施形態では、無線デバイス703は、Wifiなどのより長距離の無線プロトコルを介して、IoTハブ1110と通信する。故に、この実施形態では、RSSI値は、無線デバイス703によって集められ、より長距離のプロトコルを使用してIoTハブ1110に戻して通信されてもよい。加えて、個々のIoTデバイス1101〜1105の各々が、RSSI値を収集し、短距離無線プロトコルを介してこれらの値をIoTハブ1110に戻して通信してもよい。本発明の基本原理は、RSSI値を収集するために使用されるいかなる特定のプロトコル又は技術にも限定されない。
本発明の一実施形態は、本明細書に記載される技術を使用して、短距離無線プロトコルを使用してIoTハブ1110の範囲を拡張する無線エクステンダーのための理想的な場所を位置決めする。例えば、一実施形態では、新たなエクステンダーを購入するとすぐに、システム校正モジュール910は、無線エクステンダーデバイスと共にユーザの自宅の部屋の各々の中に移動するようユーザに対する指図を送信する(例えば、無線デバイス703上のアプリケーションに指図を送信することによって)。ユーザをプロセスにわたってステップ毎に誘導するために、無線デバイス703上で接続ウィザードもまた実行され得る。システム校正モジュール910によって送信される又はウィザードからの指図に従って、ユーザは各部屋の中に歩いて行き、無線デバイス703上のボタンを押す。IoTハブ1110は次いで、それ自体とエクステンダーとの間の信号強度、及び同様に、エクステンダーとシステムにおける他のIoTデバイスのすべてとの間の信号強度を測定する。システム校正モジュール910又は無線デバイスウィザードは次いで、無線エクステンダーを置く最適な位置の優先リストについてのユーザの意向を可能にしてもよい(すなわち、無線エクステンダーとIoTハブ1110との間及び/又は無線エクステンダーとIoTデバイス1101〜1105との間で最も高い信号強度を有する位置を選択する)。
上述の本発明の実施形態は、現在のIoTシステムには見出されない、IoTシステム内の微調整された位置認識を実現する。加えて、位置検出の正確性を改善するために、一実施形態(embodiemnt)では、無線デバイス703上のGPSシステムが、各位置に関するGPSデータ並びにRSSIデータを含む、ユーザの自宅の正確なマップを提供するために使用される精密なGPSデータを通信してもよい。
改善されたセキュリティのための実施形態
一実施形態では、各IoTデバイス101の低電力マイクロコントローラ200及びIoTハブ110の低電力ロジック/マイクロコントローラ301は、以下に記載される実施形態によって使用される暗号化鍵を記憶するための安全な鍵ストアを含む(例えば、図14〜19及び関連する文章を参照されたい)。代替的に、鍵は、後述するように、加入者識別モジュール(SIM)内に確保されてもよい。
図14は、IoTサービス120、IoTハブ110、並びにIoTデバイス101及び102の間の通信を暗号化するために公開鍵インフラストラクチャ(PKI)技術及び/又は対称鍵交換/暗号化技術を使用する、俯瞰的なアーキテクチャを例示する。
公開/秘密鍵ペアを使用する実施形態をまず説明し、続いて、対称鍵交換/暗号化技術を使用する実施形態を説明する。具体的には、PKIを使用するある実施形態では、一意的な公開/秘密鍵ペアが、各IoTデバイス101〜102、各IoTハブ110、及びIoTサービス120と関連付けられる。一実施形態では、新しいIoTハブ110がセットアップされるとき、その公開鍵がIoTサービス120に提供され、新しいIoTデバイス101が設定されるとき、その公開鍵がIoTハブ110とIoTサービス120との両方に提供される。デバイス間で公開鍵を安全に交換するための様々な技術が以下に記載される。一実施形態では、いかなる受信デバイスも、署名を認証することによって公開鍵の妥当性を検証することができるように、すべての公開鍵が、受信デバイスのすべてに既知である親鍵(すなわち、一種の証明書)によって署名される。したがって、未加工の公開鍵を単に交換するのではなく、むしろこれらの証明書が交換されることになる。
例示したように、一実施形態では、各IoTデバイス101、102は、各デバイスの秘密鍵を安全に記憶するために、それぞれ、安全な鍵ストア1401、1403を含む。次に、セキュリティロジック1402、1304が、安全に記憶された秘密鍵を利用して、本明細書に記載される暗号化/解読動作を行う。同様に、IoTハブ110は、IoTハブ秘密鍵、並びにIoTデバイス101〜102及びIoTサービス120の公開鍵を記憶するための安全な記憶装置1411、並びに、鍵を使用して暗号化/解読動作を行うためのセキュリティロジック1412を含む。最後に、IoTサービス120は、それ自体の秘密鍵、様々なIoTデバイス及びIoTハブの公開鍵を安全に記憶するための安全な記憶装置1421、並びに、鍵を使用してIoTハブ及びデバイスとの通信を暗号化/解読するためのセキュリティロジック1413を含んでもよい。一実施形態では、IoTハブ110がIoTデバイスから公開鍵証明書を受信すると、IoTハブ110は、それを(例えば、上述の親鍵を使用して署名を認証することにより)検証し、次いで、その中から公開鍵を抽出し、その公開鍵をその安全な鍵ストア1411に記憶する。
一例として、一実施形態では、IoTサービス120が、コマンド又はデータ(例えば、ドアをロック解除するコマンド、センサを読み取る要求、IoTデバイスにより処理/表示されるべきデータなど)をIoTデバイス101に送信する必要があるとき、セキュリティロジック1413は、IoTデバイス101の公開鍵を使用してそのデータ/コマンドを暗号化して、暗号化されたIoTデバイスパケットを生成する。一実施形態では、それは次に、IoTハブ110の公開鍵を使用し、IoTデバイスパケットを暗号化して、IoTハブパケットを生成し、IoTハブパケットをIoTハブ110に送信する。一実施形態では、サービス120は、デバイス101が、それが信頼されるソースから変更されていないメッセージを受信していることを検証することができるように、上述のその秘密鍵又は親鍵を用いて、暗号化されたメッセージに署名する。デバイス101は次いで、秘密鍵及び/又は親鍵に対応する公開鍵を使用して、署名を認証してもよい。上で言及したように、対称鍵交換/暗号化技術は、公開/秘密鍵暗号化の代わりに使用されてもよい。これらの実施形態では、1つの鍵をプライベートに記憶し、対応する公開鍵を他のデバイスに提供するのではなく、それぞれのデバイスに、暗号化のために、かつ署名を認証するために使用されるものと同じ対称鍵のコピーを提供してもよい。対称鍵アルゴリズムの一例は高度暗号化標準(AES)であるが、本発明の基本原理は、いかなるタイプの特定の対称鍵にも限定されない。
ある対称鍵実装形態を使用すると、各デバイス101は、IoTハブ110と対称鍵を交換するために、安全な鍵交換プロトコルに入る。動的対称鍵プロビジョニングプロトコル(DSKPP)などの安全な鍵プロビジョニングプロトコルが、安全な通信チャネルを介して鍵を交換するために使用され得る(例えば、コメント要求(RFC)6063を参照されたい)。しかしながら、本発明の基本原理は、いかなる特定の鍵プロビジョニングプロトコルにも限定されない。
対称鍵が交換されたら、それらは、各デバイス101及びIoTハブ110によって、通信を暗号化するために使用され得る。同様に、IoTハブ110及びIoTサービス120は、安全な対称鍵交換を行い、次に、交換された対称鍵を使用して通信を暗号化し得る。一実施形態では、新しい対称鍵が、デバイス101とハブ110との間、かつハブ110とIoTサービス120との間で定期的に交換される。一実施形態では、デバイス101、ハブ110、及びサービス120の間での新しい通信セッションのたびに、新しい対称鍵が交換される(例えば、通信セッション毎に新しい鍵が生成され、安全に交換される)。一実施形態では、IoTハブ内のセキュリティモジュール1412が信頼される場合、サービス120は、ハブセキュリティモジュール1312とセッション鍵を交渉し得、次いで、セキュリティモジュール1412が、各デバイス120とセッション鍵を交渉することになる。サービス120からのメッセージは、次いで、ハブセキュリティモジュール1412で解読及び検証され、その後、デバイス101への送信のために再暗号化される。
一実施形態では、ハブセキュリティモジュール1412でのセキュリティ侵害を防止するために、1回限りの(恒久的な)インストール鍵が、インストール時にデバイス101とサービス120との間で交渉されてもよい。メッセージをデバイス101に送るとき、サービス120は、まずこのデバイスインストール鍵を用いて暗号化/MACし、次にハブのセッション鍵を用いてそれを暗号化/MACし得る。ハブ110は次に、暗号化されたデバイスブロブを検証及び抽出し、それをデバイスに送ることになる。
本発明の一実施形態では、リプレイアタックを防止するためにカウンタ機構が実装される。例えば、デバイス101からハブ110へ(又は逆もまた同様)の連続する通信それぞれに、継続的に増加するカウンタ値が割り当てられ得る。ハブ110とデバイス101との両方がこの値を追跡し、デバイス間での連続する通信それぞれにおいてその値が正しいことを検証する。これと同じ技術が、ハブ110とサービス120との間に実装され得る。この方法でカウンタを使用すると、各デバイス間での通信を偽装することがより困難になる(カウンタ値が誤ったものになるため)。しかしながら、これを用いずとも、サービスとデバイスとの間で共有されたインストール鍵は、すべてのデバイスに対するネットワーク(ハブ)規模の攻撃を防止するであろう。
一実施形態では、公開/秘密鍵暗号化を使用するとき、IoTハブ110は、その秘密鍵を使用してIoTハブパケットを解読し、暗号化されたIoTデバイスパケットを生成し、それを、関連付けられたIoTデバイス101に送信する。IoTデバイス101は次にその秘密鍵を使用して、IoTデバイスパケットを解読して、IoTサービス120を起点とするコマンド/データを生成する。それは次に、データを処理し、かつ/又はコマンドを実行してもよい。対称暗号化を使用すると、各デバイスは、共有された対称鍵を用いて暗号化及び解読を行う。いずれかの場合であれば、各送信デバイスはまた、受信デバイスがメッセージの信頼性を検証することができるように、その秘密鍵を用いてメッセージに署名してもよい。
異なるセットの鍵が、IoTデバイス101からIoTハブ110へ、かつIoTサービス120への通信を暗号化するために使用されてもよい。例えば、ある公開/秘密鍵構成を使用して、一実施形態では、IoTデバイス101上のセキュリティロジック1402は、IoTハブ110の公開鍵を使用して、IoTハブ110に送信されたデータパケットを暗号化する。次いで、IoTハブ110上のセキュリティロジック1412は、IoTハブの秘密鍵を使用して、データパケットを解読し得る。同様に、IoTデバイス101上のセキュリティロジック1402及び/又はIoTハブ110上のセキュリティロジック1412は、IoTサービス120の公開鍵を使用して、IoTサービス120に送信されたデータパケットを暗号化し得る(それは次いで、IoTサービス120上のセキュリティロジック1413によって、サービスの秘密鍵を使用して解読され得る)。対称鍵を使用すると、デバイス101及びハブ110は、ある対称鍵を共有し得、一方でハブ及びサービス120は、異なる対称鍵を共有し得る。
上記の説明において、ある特定の具体的詳細が上に記載されるが、本発明の基本原理は、様々な異なる暗号化技術を使用して実装され得ることに留意すべきである。例えば、上述した一部の実施形態は、非対称の公開/秘密鍵ペアを使用するが、別の実施形態は、様々なIoTデバイス101〜102、IoTハブ110、及びIoTサービス120の間で安全に交換される対称鍵を使用し得る。更に、一部の実施形態では、データ/コマンド自体は暗号化されないが、データ/コマンド(又は他のデータ構造)上の署名を生成するために鍵が使用される。その後、受信者が、その鍵を使用して署名を認証し得る。
図15に例示するように、一実施形態では、各IoTデバイス101上の安全な鍵ストアは、プログラム可能な加入者識別モジュール(SIM)1501を使用して実装される。この実施形態では、IoTデバイス101は、IoTデバイス101上のSIMインターフェース1500内に据え付けられたプログラムされていないSIMカード1501と共にエンドユーザに最初に提供され得る。1つ以上の暗号鍵のセットを用いてSIMをプログラミングするために、ユーザは、プログラム可能なSIMカード1501をSIMインターフェース500から取り出し、それをIoTハブ110上のSIMプログラミングインターフェース1502に挿入する。次いで、IoTハブ上のプログラミングロジック1525が、IoTデバイス101をIoTハブ110及びIoTサービス120に登録/ペアリングするように、SIMカード1501を安全にプログラミングする。一実施形態では、公開/秘密鍵ペアは、プログラミングロジック1525によってランダムに生成されてもよく、次いで、このペアの公開鍵は、IoTハブの安全な記憶デバイス411内に記憶されてもよく、一方で秘密鍵は、プログラム可能なSIM 1501内に記憶されてもよい。加えて、プログラミングロジック525は、IoTハブ110、IoTサービス120、及び/又は任意の他のIoTデバイス101の公開鍵を、(IoTデバイス101上のセキュリティロジック1302による発信データの暗号化に使用するために)SIMカード1401上に記憶してもよい。いったんSIM 1501がプログラミングされると、新しいIoTデバイス101に、SIMを安全な識別子として使用して(例えば、SIMを用いてデバイスを登録するための既存の技術を使用して)IoTサービス120がプロビジョニングされ得る。プロビジョニング後、IoTハブ110とIoTサービス120との両方が、IoTデバイスの公開鍵のコピーを、IoTデバイス101との通信を暗号化する際に使用されるように安全に記憶する。
図15に関して上述した技術は、新しいIoTデバイスをエンドユーザに提供する際の多大な柔軟性を提供する。(現在行われているのと同様に)ユーザが販売/購入の際に各SIMを特定のサービスプロバイダに直接登録することを要するのではなく、エンドユーザによりIoTハブ110を介してSIMを直接プログラミングしてもよく、プログラミングの結果は、IoTサービス120に安全に通信され得る。その結果、新しいIoTデバイス101がオンライン又はローカルの小売業者からエンドユーザに販売され、後にIoTサービス120が安全にプロビジョニングされ得る。
SIM(加入者識別モジュール)という具体的な文脈において登録及び暗号化技術を上述したが、本発明の基本原理は「SIM」デバイスに限定されない。むしろ、本発明の基本原理は、暗号鍵セットを記憶するための安全な記憶装置を有する、いかなるタイプのデバイスを使用して実装されてもよい。更に、上記の実施形態は取り外し可能なSIMデバイスを含むのに対し、一実施形態では、SIMデバイスは取り外し可能でないが、IoTデバイス自体が、IoTハブ110のプログラミングインターフェース1502に挿入されてもよい。
一実施形態では、ユーザがSIM(又は他のデバイス)をプログラミングすることを要するのではなく、SIMは、エンドユーザへの流通前に、IoTデバイス101に予めプログラミングされる。この実施形態では、ユーザがIoTデバイス101をセットアップするとき、本明細書に記載される様々な技術が、IoTハブ110/IoTサービス120と新しいIoTデバイス101との間で暗号鍵を安全に交換するために使用され得る。
例えば、図16Aに例示するように、各IoTデバイス101又はSIM 401は、IoTデバイス101及び/又はSIM 1501を一意的に識別するバーコード又はQRコード(登録商標)1501と共にパッケージ化されていてもよい。一実施形態では、バーコード又はQRコード(登録商標)1601は、IoTデバイス101又はSIM 1001の公開鍵の符号化表現を含む。代替的に、バーコード又はQRコード(登録商標)1601は、IoTハブ110及び/又はIoTサービス120によって、公開鍵を識別又は生成するために使用されてもよい(例えば、安全な記憶装置内に既に記憶されている公開鍵に対するポインタとして使用される)。バーコード又はQRコード(登録商標)601は、別個のカード上に(図16Aに示されるように)印刷されてもよく、又はIoTデバイス自体に直接印刷されてもよい。バーコードが印刷される場所に関わらず、一実施形態では、IoTハブ110には、バーコードを読み取り、得られたデータをIoTハブ110上のセキュリティロジック1012及び/又はIoTサービス120上のセキュリティロジック1013に提供するために、バーコードリーダ206が備わっている。次いで、IoTハブ110上のセキュリティロジック1012は、IoTデバイスの公開鍵をその安全な鍵ストア1011内に記憶してもよく、IoTサービス120上のセキュリティロジック1013は、この公開鍵をその安全な記憶装置1021内に(後の暗号化通信に使用するために)記憶してもよい。
一実施形態では、バーコード又はQRコード(登録商標)1601内に含まれるデータはまた、インストールされたIoTアプリケーション又はIoTサービスプロバイダにより設計されたブラウザベースのアプレットを用いて、ユーザデバイス135(例えば、iPhone(登録商標)又はAndroidデバイスなど)によりキャプチャされてもよい。キャプチャされると、バーコードデータは、安全な接続(例えば、セキュアソケットレイヤー(SSL)接続など)を介して、IoTサービス120に安全に通信され得る。バーコードデータはまた、安全なローカル接続を介して(例えば、ローカルWiFi又はBluetooth(登録商標) LE接続を介して)クライアントデバイス135からIoTハブ110に提供されてもよい。
IoTデバイス101上のセキュリティロジック1002及びIoTハブ110上のセキュリティロジック1012は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせを使用して実装され得る。例えば、一実施形態では、セキュリティロジック1002、1012は、IoTデバイス101とIoTハブ110との間にローカル通信チャネル130を確立するために使用されるチップ(例えば、ローカルチャネル130がBluetooth(登録商標) LEである場合、Bluetooth(登録商標) LEチップ)内に実装される。セキュリティロジック1002、1012の具体的な位置に関わらず、一実施形態では、セキュリティロジック1002、1012は、ある特定のタイプのプログラムコードを実行するために安全な実行環境を確立するように設計される。これは、例えば、TrustZone技術(一部のARMプロセッサで利用可能)及び/又はトラステッド・エグゼキューション・テクノロジー(Intelにより設計)を使用することによって、実装され得る。当然のことながら、本発明の基本原理は、いかなる特定のタイプの安全な実行技術にも限定されない。
一実施形態では、バーコード又はQRコード(登録商標)1501は、各IoTデバイス101をIoTハブ110とペアリングするために使用され得る。例えば、Bluetooth(登録商標) LEデバイスをペアリングするために現在使用されている標準的な無線ペアリングプロセスを使用するのではなく、バーコード又はQRコード(登録商標)1501内に組み込まれたペアリングコードをIoTハブ110に提供して、IoTハブを対応するIoTデバイスとペアリングしてもよい。
図16Bは、IoTハブ110上のバーコードリーダ206が、IoTデバイス101と関連付けられたバーコード/QRコード(登録商標)1601をキャプチャする、一実施形態を例示する。言及したように、バーコード/QRコード(登録商標)1601は、IoTデバイス101上に直接印刷されてもよく、又はIoTデバイス101と共に提供される別個のカード上に印刷されてもよい。いずれの場合においても、バーコードリーダ206は、バーコード/QRコード(登録商標)1601からペアリングコードを読み取り、このペアリングコードをローカル通信モジュール1680に提供する。一実施形態では、ローカル通信モジュール1680は、Bluetooth(登録商標) LEチップ及び関連付けられたソフトウェアであるが、本発明の基本原理は、いかなる特定のプロトコル規格にも限定されない。いったんペアリングコードが受信されると、それは、ペアリングデータ1685を含む安全な記憶装置内に記憶され、IoTデバイス101とIoTハブ110とが自動的にペアリングされる。この方法でIoTハブが新しいIoTデバイスとペアリングされるたびに、そのペアリングに関するペアリングデータが、安全な記憶装置685内に記憶される。一実施形態では、IoTハブ110のローカル通信モジュール1680がペアリングコードを受信すると、それは、このコードを鍵として使用して、ローカル無線チャネルを介したIoTデバイス101との通信を暗号化し得る。
同様に、IoTデバイス101側では、ローカル通信モジュール1590が、IoTハブとのペアリングを示すペアリングデータを、ローカルの安全な記憶デバイス1595内に記憶する。ペアリングデータ1695は、バーコード/QRコード(登録商標)1601で識別される予めプログラミングされたペアリングコードを含んでもよい。ペアリングデータ1695はまた、安全なローカル通信チャネルを確立するために必要な、IoTハブ110上のローカル通信モジュール1680から受信されるペアリングデータ(例えば、IoTハブ110との通信を暗号化するための追加の鍵)を含んでもよい。
したがって、バーコード/QRコード(登録商標)1601は、ペアリングコードが無線で送信されないため、現在の無線ペアリングプロトコルよりも遥かに安全な方法でローカルペアリングを行うために使用され得る。加えて、一実施形態では、ペアリングに使用されるものと同じバーコード/QRコード(登録商標)1601を使用して暗号鍵を識別し、IoTデバイス101からIoTハブ110へ、かつIoTハブ110からIoTサービス120への安全な接続を構築することができる。
本発明の一実施形態に従ってSIMカードをプログラミングするための方法が、図17に例示される。本方法は、上述のシステムアーキテクチャ内で実装され得るが、いかなる特定のシステムアーキテクチャにも限定されない。
1701で、ユーザは、空のSIMカードを備えた新しいIoTデバイスを受け取り、1602で、ユーザは、空のSIMカードをIoTハブに挿入する。1703で、ユーザは、1つ以上の暗号鍵のセットを用いて空のSIMカードをプログラミングする。例えば、上で言及したように、一実施形態では、IoTハブは、公開/秘密鍵ペアをランダムに生成し、秘密鍵をSIMカード上に、かつ公開鍵をそのローカルの安全な記憶装置内に記憶し得る。加えて、1704で、少なくとも公開鍵がIoTサービスに送信され、これにより、それを使用して、IoTデバイスを識別し、かつIoTデバイスとの暗号化通信を確立し得る。上で言及したように、一実施形態では、「SIM」カード以外のプログラム可能なデバイスが、図17に示される方法でSIMカードと同じ機能を行うために使用されてもよい。
新しいIoTデバイスをネットワークに統合するための方法が、図18に例示される。本方法は、上述のシステムアーキテクチャ内で実装され得るが、いかなる特定のシステムアーキテクチャにも限定されない。
1801で、ユーザは、暗号鍵が予め割り当てられている新しいIoTデバイスを受け取る。1802で、この鍵がIoTハブに安全に提供される。上で言及したように、一実施形態では、これは、IoTデバイスと関連付けられたバーコードを読み取って、デバイスに割り当てられた公開/秘密鍵ペアの公開鍵を識別することを伴う。バーコードは、IoTハブによって直接読み取られても、又はアプリケーション若しくはブラウザを介してモバイルデバイスによってキャプチャされてもよい。別の実施形態では、Bluetooth(登録商標) LEチャネル、近距離通信(NFC)チャネル、又は安全なWiFiチャネルなどの安全な通信チャネルが、鍵の交換のためにIoTデバイスとIoTハブとの間に確立されてもよい。鍵の送信方法に関わらず、受信されると、それはIoTハブデバイスの安全な鍵ストア内に記憶される。上で言及したように、セキュアエンクレーブ、トラステッド・エグゼキューション・テクノロジー(TXT)、及び/又はTrustzoneなどの様々な安全な実行技術が、鍵の記憶及び保護のためにIoTハブで使用され得る。加えて、1803で、鍵がIoTサービスに安全に送信され、IoTサービスが、この鍵をそれ自体の安全な鍵ストア内に記憶する。それは次に、この鍵を使用して、IoTデバイスとの通信を暗号化し得る。再度、この交換は、証明書/署名付き鍵を使用して実装されてもよい。ハブ110内では、記憶された鍵の改変/追加/除去を防止することが特に重要である。
公開/秘密鍵を使用してコマンド/データをIoTデバイスに安全に通信するための方法が、図19に例示される。本方法は、上述のシステムアーキテクチャ内で実装され得るが、いかなる特定のシステムアーキテクチャにも限定されない。
1901で、IoTサービスは、IoTデバイス公開鍵を使用してデータ/コマンドを暗号化して、IoTデバイスパケットを作成する。それは次に、IoTハブの公開鍵を使用し、このIoTデバイスパケットを暗号化して、IoTハブパケットを作成する(例えば、IoTデバイスパケット周囲のIoTハブラッパーを作成)。1902で、IoTサービスは、IoTハブパケットをIoTハブに送信する。1903で、IoTハブは、IoTハブの秘密鍵を使用してIoTハブパケットを解読して、IoTデバイスパケットを生成する。それは次いで、1904で、IoTデバイスパケットをIoTデバイスに送信し、IoTデバイスは、1905において、IoTデバイス秘密鍵を使用してIoTデバイスパケットを解読して、データ/コマンドを生成する。1906で、IoTデバイスは、データ/コマンドを処理する。
対称鍵を使用するある実施形態では、対称鍵交換は、各デバイス間(例えば、各デバイスとハブと、及びハブとサービスとの間)で交渉され得る。鍵交換が完了すると、各送信デバイスは、対称鍵を使用して各送信を暗号化し、かつ/又はそれに署名し、その後、そのデータを受信デバイスに送信する。
本発明の実施形態は、上で説明した様々な工程を含み得る。本工程は、汎用又は特殊目的のプロセッサに本工程を行わせるために使用され得る、機械実行可能命令において具現化することができる。代替的に、これらの工程は、工程を行うためのハードワイヤードロジックを含む特定のハードウェア構成要素によって、又はプログラミングされたコンピュータ構成要素及びカスタムハードウェア構成要素の任意の組み合わせによって、行うことができる。
本明細書に記載される場合、命令は、ある特定の動作を行うように構成されるか、又は所定の機能若しくはソフトウェア命令が非一時的コンピュータ可読媒体中に具現化されたメモリ内に記憶されている、特定用途向け集積回路(ASIC)などの、ハードウェアの特定の構成を指し得る。したがって、図面に示される技術は、1つ以上の電子デバイス(例えば、エンドステーション、ネットワーク要素など)上に記憶及び実行されるコード及びデータを使用して実装され得る。そのような電子デバイスは、非一時的コンピュータ機械可読記憶媒体(例えば、磁気ディスク、光ディスク、ランダムアクセスメモリ、読み出し専用メモリ、フラッシュメモリデバイス、相変化メモリ)、並びに一時的なコンピュータ機械可読通信媒体(例えば、搬送波、赤外線信号、デジタル信号などの電気的、光学的、音響的又は他の形態の伝搬信号)などのコンピュータ機械可読記憶媒体を使用して、コード及びデータを記憶及び(内部で及び/又はネットワークを介して他の電子デバイスと)通信する。加えてそのような電子デバイスは、典型的に、1つ以上の記憶デバイス(非一時的機械可読記憶媒体)、ユーザ入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、並びにネットワーク接続などの、1つ以上の他の構成要素に連結された1つ以上のプロセッサのセットを含む。プロセッサの組と他の構成要素との連結は、典型的には、1つ以上のバス及びブリッジ(バスコントローラとも呼ばれる)を通じて行われる。記憶デバイスとネットワークトラフィックを運ぶ信号のそれぞれは、1つ以上の機械可読記憶媒体及び機械可読通信媒体を表す。したがって、所与の電子デバイスの記憶デバイスは、その電子デバイスの1つ以上のプロセッサのセット上で実行するためのコード及び/又はデータを典型的に記憶する。当然のことながら、本発明の実施形態の1つ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの異なる組み合わせを使用して実装されてもよい。
この詳細な説明全体を通じて、説明を目的として、本発明の完全な理解を提供するために、多数の特定の詳細を記載した。しかしながら、本発明は、これらの具体的な詳細の一部がなくても実施され得ることは、当業者にとって明らかであろう。ある特定の例では、既知の構造及び機能は、本発明の主題を不明瞭にすることを回避するために、詳述しなかった。したがって、本発明の範囲及び趣旨は、以下の特許請求の範囲の観点から判断されるべきである。