マルツTOP > APPLICATION LAB TOPページ おすすめ技術記事アーカイブス > クラウドに迅速に接続し、IoTデータを直接送信して、クラウドにリモートアクセスする方法

クラウドに迅速に接続し、IoTデータを直接送信して、クラウドにリモートアクセスする方法

著者 Bill Giovino 氏
Digi-Keyの北米担当編集者 提供
2019-03-13
マルツ掲載日:2019-06-17


 多くの開発者がIoTプロジェクトの構築に携わっており、それらのプロジェクトではデータストレージ、リモートアクセス、そして最近ではデータ分析サービスへの接続が必要です。ただし、そのような接続を行うための最も効率的で安全性の高い手段を見つけることは、開発者にとってそれほど簡単ではありません。

 この記事では、Microchip TechnologyのGoogle Cloud評価ボードをIoTセンサエンドポイントとして使用し、GoogleのCloud IoTプラットフォームに接続する方法について説明します。この方法により、シンプルなブラウザベースのインターフェースを使用してどこからでも読み込めるように、評価ボードでデータを格納できます。

クラウドストレージを使い始める

 組み込みIoTエンドポイントの場合、クラウドホスティングを使い始めるには、必須の安全な接続とソフトウェアを使用できるクラウドサーバが必要になります。Google Cloud Platform(GCP)によってその要件が満たされます。また、組み込みIoTエンドポイントには、エンドポイントをリモートで制御できるようにするファームウェアも必要です。Microchip Technologyは、AC164160 AVR-IoTクラウド評価ボードで必要なソフトウェアをすべて提供することによって開発プロセスを簡素化しました。


図1:Microchip TechnologyのAVR-IoTクラウド評価ボードは、完全なIoTエンドポイントです。開発者は、この評価ボードを使用してプロジェクトをGoogle Cloud IoTサーバに迅速に接続できます。(画像提供:Microchip Technology)

 AVR-IoTボードはIoTエンドポイントに適したボードですが、その動作を詳しく調べてみると、IoTエンドポイントとクラウドコンピューティングの動作の仕組みもよくわかります。

AVR-IoTボードの動作

 この評価ボードは、Wi-Fi経由でGoogle Cloudサーバに接続するように構成されています。サーバ接続が確立されると、データをリアルタイムに格納して表示できます。

 評価ボードのコンポーネントは低電力用に最適化されるように選択されていて、バッテリ駆動のIoTエンドポイントに最適です。マイクロコントローラはMicrochip TechnologyのATMEGA4808-MFR 8ビットAVRプロセッサであり、8.5mA)消費する20MHzで稼働します。スタンバイモードでは、リアルタイムクロック(RTC)のみが稼働し、690nAを消費します。

 このマイクロコントローラはボードを制御し、すべてのセンサとLEDへのインターフェースを備えています。コアは、48Kバイトのフラッシュ、6KバイトのSRAM、および256バイトのEEPROMによってサポートされます。Wi-Fi接続データの格納にはEEPROMを使用します。2サイクルのハードウェア乗算器は、CPUサイクルを減らすことで電力を節約します。

 ATMEGA4808は、4つの16ビットタイマ、3つのUSART、1つのSPIインターフェース、および1つのアナログコンパレータなどの周辺機器が完全に備わっていて、低電力IoTセンサエンドポイントのアプリケーションに最適です。

 Wi-Fi接続では、ATMEGA4808はSPIシリアルポートを経由してMicrochip TechnologyのATWINC1510-MR210UB1961 (2.4GHz、802.11 b/g/n )IoT Wi-Fiモジュールに接続します(図2)。このモジュールは完全に自己完結型で、WEP、WPA、WPA2セキュリティをサポートしています。また、一体型のアンテナを備えており、RFアンテナレイアウトに詳しくない開発者でも着手できます。より広い範囲に対応する必要性に備えて、外部アンテナもサポートします。暗号化による接続はTLSでサポートされます。


図2:Microchip TechnologyのWINC1510 Wi-Fiモジュールはフットプリントが21.7mm×14.7mmで、2.4GHz 802.11 b/g/nワイヤレスアクセスポイントをサポートします。SPIシリアルポートで、ホストマイクロコントローラへ接続します。(画像提供:Microchip Technology)

 WINC1510は2.7V~3.6V電源で動作し、動作時は290mAを消費します。仮眠(Doze)モードではデバイスがパワーダウンし、すべての設定が保存されます。このモードでは、モジュールは380μAを消費しますが、これはビーコンモニタリングなどの無線のオン/オフを切り替える超低電力アプリケーションに適しています。

 WINC1510は、150msでWi-Fiアクセスに接続する機能を備えています。ホストマイクロコントローラへの完全なインターフェース用に使用される8つのピンには、4線SPIスレーブインターフェースと制御信号用の4つのGPIOがあります。モジュールには、南北アメリカ、ヨーロッパ、アジアで使用するためのすべての証明書が含まれています。これにより最終設計でFCC認証を得るプロセスが簡単になります。

 AVR-IoTボードのフットプリントは63.5mm×25.4mmで、PCとは電源とデータの両方に対応するUSBケーブル経由で接続します。サポートされるOSは、Windows、Linux、MacOSです。電力が投入されるとボードの4つのLED(青、緑、黄色、赤)が左から右に順番に2回点滅し、ボードが適切に動作していることを示します。

 ボードはPC上ではフラッシュメモリスティックのようになり、5つのファイルが表示されます。インターネットに接続するには、CLICK-ME.HTMという名前のファイルをクリックします。クリックするとデフォルトのブラウザに、ローカルWi-Fiに接続するためのページが表示されます(図3)。


図3:Microchip TechnologyのAVR-IoTボードをローカルのWi-Fiネットワークに接続するには、このCLICK-ME.HTMファイルの左下にWi-Fiアクセスポイント情報を入力します。(画像提供:Microchip Technology)

 ネットワーク名を入力し、ネットワークタイプを選択してパスワードを入力すると、青色LEDが点灯しボードがローカルのWi-Fiネットワークに接続されたことを示します。その直後に、緑色LEDが点灯し、ボードがGoogle Cloudサーバに接続したことを示します。ボードがGoogle Cloudサーバにデータを送信するたびに、黄色のLEDが点滅します。AVR-IoTとGoogle Cloudサーバ間で送信されるすべての情報は暗号化されます。

IoT、暗号化された接続、データ暗号化

 ポイント間のインターネットトラフィックは、一般にTLS(Transport Layer Security)を使用して暗号化された安全な接続を経由して伝送されます。ただし、それでもハッカーが暗号化された接続の脆弱性を見つけて、「MITM攻撃(中間者攻撃)」を仕掛けることでデータを捕捉する可能性があります。プロジェクトの設計がこのような攻撃にさらされないようにするには、通常はAESまたはSHAの暗号化標準を使用してデータを暗号化する必要もあります。

 Google Cloudに送信されるデータを暗号化するために、AVR-IoTにはMicrochip TechnologyのATECC608A-MAHCZ-T Security CryptoAuthenticationチップが付属しており、このチップはI2Cインターフェース経由でAVRマイクロコントローラに接続します。ATECC608Aは、AES-128やSHA-256など多くの暗号化標準をサポートしている暗号メモリチップです。このチップを使用して、Google Cloudサーバとの通信に使用する公開キーおよび秘密キーを保存します。

 どのAVR-IoTでもそれぞれのATECC608Aは、あらかじめプログラムされた状態で、その独自の一意公開キーおよび秘密キーとともにMicrochip Technologyから提供されます。ATECC608Aの秘密キーはセキュアストレージ内にあり、I2Cインターフェースがロジックアナライザでモニタされログ記録される場合でも表示されません。

 公開キーはGoogle Cloudに送信されるURLに表示され、AVR-IoTに接続されたホストPCのUSBインターフェースで読み取り可能なPUBKEY.TXTファイルにも記述されています。ATECC608Aの詳しい動作についての情報は、機密保持契約に基づいてのみMicrochip Technologyから取得できます。

 ただし、AVR-IoT内のATMEGA4808マイクロコントローラのファームウェアは、セキュアなGoogle CloudプロジェクトでATECC608Aを効率的に使用できるように設定されています。これにより、ATECC608Aの暗号化機能の詳細は開発者にとってほとんど透過的となり、開発が著しく簡素化、迅速化されます。

 高いセキュリティが求められるIoTエンドポイント向けに、ATECC608Aはアプリケーションとチップ自体の両方を保護します。物理的なハッキングへの耐性が強く、維持するメモリ内容に超低温を適用したり定格外の高速または低速なI2Cクロックを使用したりする多くのサイドチャンネル攻撃を検出し防御できます。また、デバイスをデキャップ(開封)して内部アーキテクチャを探ろうとする攻撃も検出できます。デバイスの内部メモリの内容も暗号化されます。ATECC608Aには、Microchip Technologyのエンジニアのみが知る秘密のセキュリティメカニズムが含まれる場合もあります。

Google Cloud IoTサーバとの連携

 AVR-IoTをGoogle Cloud IoTサーバに接続すると、データ交換が開始されます。AVR-IoTには光センサと温度センサの両方が含まれています。これらのセンサからのデータはGoogle Cloudサーバに送信され、リアルタイムに表示できます(図4)。ブラウザでデータを表示するには、以下のURLを入力する必要があります。
    avr-iot.com/device/{publickey}
 ここで、{publickey}はAVR-IoTボードに割り当てられている公開キーです。

 使用されるGoogle Cloudサーバはデモのサンドボックスアカウントなので、AVR-IoTからGoogle Cloudに送信されるデータは永続的には保存されず、サーバとの接続の切断にともない消去されます。


図4:Google Cloud IoTサーバによるウェブページでは、AVR-IoTから得られる温度センサと光センサのデータを表示できます。(画像提供:Microchip Technology)

 より完全な機能を備えたクラウドサーバ向けとして、AVR-IoTキットにはプライベートGoogle Cloudアカウントにアップグレードするための手順が含まれています。プライベートGoogle Cloudアカウントでは、開発者は情報を後から利用するためにGoogle Cloudに永続的に保存できます。

 また、プライベートGoogle Cloud上にAVR-IoTと通信可能なウェブインターフェースを構築して、評価ボード上のカスタムファームウェアにコマンドを送信できるアプリケーションを、そのウェブインターフェースによりオンラインでホスティングすることもできます。たとえば開発者は、電子機器に接続できるATmega4808上のどのGPIOピンも、世界中のあらゆる場所から制御できます。

結論

 クラウドのストレージ、アクセスおよび利用方法について説明している多くの書籍やウェブサイトがありますが、多くの場合は実例ごとに学習するのが最も簡単です。Microchip TechnologyのAVR-IoTボードによって、クラウドへの接続が簡単になると同時に、クラウドのストレージ、暗号化、IoTエンドポイントの制御の基本が明確に示されます。

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。




このページのコンテンツはDigi-Key社より提供されています。
英文でのオリジナルのコンテンツはDigi-Keyサイトでご確認いただけます。
   


Digi-Key社の全製品は 1個からマルツオンラインで購入できます


※製品カテゴリー総一覧はこちら



ODM、OEM、EMSで定期購入や量産をご検討のお客様へ【価格交渉OK】

毎月一定額をご購入予定のお客様や量産部品としてご検討されているお客様には、マルツ特別価格にてDigi-Key社製品を供給いたします。
条件に応じて、マルツオンライン表示価格よりもお安い価格をご提示できる場合がございます。
是非一度、マルツエレックにお見積もりをご用命ください。


ページトップへ