NEQTO Docs
  • Languages icon日本語
    • English
  • ドキュメント
  • API
  • FAQ

›NEQTO

Getting Started

  • NEQTO Hello World!
  • Tutorial Step 1. NEQTO Console設定
  • Tutorial Step 2. デバイス設定とサービスの開始 (NEQTO Bridge)
  • Tutorial Step 2. デバイス設定とサービスの開始 (STM32 Discovery)
  • Tutorial Step 2. デバイス設定とサービスの開始 (SPRESENSE)
  • Tutorial Step 3. スクリプトを使ったアプリケーション開発

NEQTO

  • NEQTO アカウント登録
  • サブアカウント
  • APIの利用
  • GCP用NEQTO CloudSync
  • NEQTO Engineファームウェアリスト
  • お問い合わせに関するガイドライン

NEQTO Console

  • はじめに
  • 基本情報
  • 管理者専用の操作
  • デバイス管理
  • Linuxデバイス管理
  • 一括登録
  • スクリプト
  • アクション & コンタクト
  • Consoleでデータを表示
  • NEQTO Apps

    • NEQTO Apps について
    • NEQTO Infinitypool
    • NEQTO Insights
    • NEQTO Custodia
    • NEQTO Flow
  • Machine Driver
  • 推奨ブラウザ
  • 請求情報

SPRESENSE

    ハードウェア仕様

    • 01. About Spresense

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. Spresense Wi-Fi 初期設定
    • 04. Spresense LTE-M 初期設定
    • 05. デバッグログ取得方法
    • 06. システムLED動作
    • 07. イベントメッセージ
    • 08. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. GPIO
    • 12. UART
    • 13. SPI
    • 14. I2C
    • 15. ADC
    • 16. GNSS
    • 17. Camera
    • 18. Utils
    • 19. nqSpresense
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte

STM32 Discovery

    ハードウェア仕様

    • 01. About STM32 Discovery Kit (B-L4S5I-IOT01A)

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. STM32 Discovery Wi-Fi 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 18. Utils
    • 19. nqDiscovery
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi

NEQTO Bridge

    ハードウェア仕様

    • 01. NEQTO Bridge Module
    • 02. NEQTO Bridge Wi-Fi Module
    • 03. NEQTO Bridge LTE-1 Module
    • 04. NEQTO Bridge LTE-M/NB Module
    • 05. NEQTO Bridge IO Board
    • 06. NEQTO Bridge Digital IO Board
    • 07. NEQTO Bridge Connector Board

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. NEQTO Bridge Wi-Fi Module 初期設定
    • 03. NEQTO Bridge LTE Module 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 17. BLE
    • 18. Utils
    • 19. nqBridge
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte
    • 25. nqLAN
    • 26. nqEx

Linux-based device

    ソフトウェア仕様

    • 01. システム要件
    • 02. インストール
    • 03. ソフトウェア構成
    • 04. 動作フロー
    • 05. デバッグログ取得方法
    • 06. イベントメッセージ
    • 07. ソフトウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. RTC
    • 10. UNIXSocket
    • 11. FileSystem
    • 12. SubProcess
    • 13. Utils
    • 14. nqLinux
    • 15. nqService
    • 16. nqMqtt
    • 17. nqFOTA
    • 18. nqLAN

neqto.js Libraries

  • About neqto.js Libraries
  • UART

    • GM65 Barcode Reader
    • SRF Ultrasonic Range Finder - Serial Mode

    I2C

    • HTS221 v2 Temperature and Humidity Sensor
    • LIS2DW12 v2 Accelerometer
    • SRF Ultrasonic Range Finder - I2C Mode
    • [Archive] HTS221 Temperature and Humidity Sensor
    • [Archive] LIS2DW12 Accelerometer

    Utils

    • RTC Alarm Synchronized Scheduler

    Integration

    • AWS S3 v2
    • AWS IoT Core v2
    • Azure IoT v2
    • GCP IoT Core
    • [Archive] AWS S3
    • [Archive] AWS IoT Core

neqto.js Snippets

  • About neqto.js Snippets
  • DataDog
  • Dropbox
  • Google Sheets
  • InfluxDB
  • Oracle Cloud Object Storage
  • Salesforce
  • SAP Cloud Platform Internet of Things
  • Splunk
  • Niagara

Release Notes

  • NEQTO Console アップデート
  • NEQTO Firmware (Bridge Wi-Fi/LTE Module) リリース
  • NEQTO Firmware (STM32 Discovery Wi-Fi) リリース
  • NEQTO Firmware (Spresense Wi-Fi/LTE-M) リリース
  • NEQTO Engine Linux版 リリース

GCP用NEQTO CloudSync

はじめに

CloudSync diagram

NEQTO CloudSyncとは、お客様のNEQTO とGCP環境のデバイスを簡単に同期できるツールです。CloudSyncとNEQTO GCPライブラリ を利用することで、簡単にGCPにIoTデータを送ることができます。

NEQTO CloudSyncはコンテナとしてGCP Marketplaceで配布されています。無料で配布されており、GKE、Compute Instancers、GAE フレキシブル環境上で利用することができます。GAE (Google App Engine) フレキシブル環境上にカスタムランタイム環境でのデプロイを推奨しております。

前提条件

  • GCPアカウント
  • GCPのRegistryの設定

GAE フレキシブル環境 (Custom Runtime)にデプロイ

このチュートリアルでは、Cloud Shell を使用して、CloudSync を App Engine にデプロイします。

はじめに、アプリケーションのzipファイルをCloud Shellにcurlコマンドでダウンロードします。その後、unzipコマンドでzipファイルを解凍しアプリケーションのフォルダに移動します。

curl https://download.neqto.com/cloudsync/nqcloudsync-dist-gcp.zip -o nqcloudsync-dist-gcp.zip
unzip nqcloudsync-dist-gcp.zip
cd nqcloudsync-dist-gcp

ディレクトリには2つのファイルがあります。一つ目のファイルは app.yaml です。これは環境変数に加えて、アプリケーションの実行方法をApp Engineに指示する設定ファイルです。env_variablesセクションをお客様の環境に合わせて編集を行ってください。

注意: runtimeとenvは、変更を行わないでください。

runtime: custom
env: flex
env_variables:
  COMPANY_CODE: "COMPANYCODEHERE"
  NQ_REGION: "NEQTOREGIONHERE"
  PROJECT_ID:  "GCPPPROJECTIDHERE"
  REGISTRY_ID: "REGISTRYID"
  CLOUD_REGION: "GCPREGIONHERE"
KeyValue
COMPANY_CODENEQTO でログインする際の企業コード。
NQ_REGION同期対象のNEQTO のリージョンです。(例: asia-pacific-1)
PROJECT_ID同期対象のGCP環境のプロジェクトID。
REGISTRY_IDGCP IoT Coreに同期するRegitry IDです。
CLOUD_REGIONGCP IoT Coreの使っているリージョンです。

2つ目のファイルは Dockerfile です。このファイルは、App EngineにCloudSyncのイメージを取得するための場所を指示しています。このファイルはお客様で編集する必要はありません。

FROM marketplace.gcr.io/cloudsync-public/cloudsync

環境変数を設定後、アプリケーションをデプロイします。

gcloud app deploy

あらかじめプロジェクトやApp Engineの環境を設定する必要がります。また、このリリースの詳細が正しいかどうかを確認するために、プロンプトを経由で(Y)を入力し認証を求められる場合があります。

注意: このデプロイ時点でのアプリはインターネット上の誰でもアクセス可能であることに注意してください。

このアプリはGoogle APIとプログラム的に相互作用するため、アクセス権の管理を適切に行うことをお勧めします。これらのセキュリティを有効にする方法ついては、次のセクションをご参照ください。

セキュリティ

Webアプリを保護するために、Google CloudのIdentity Aware Proxy (IAP)を使用します。これによりCloudSyncを利用する上で、Google Cloud Consoleへのログインし、アクセス権を与えられたユーザーであるかを要求できるようになります。

まず、Google Cloudにログインし、使用しているプロジェクトを選択します。次に、検索で「Identity-Aware Proxy」を検索します。

GCP Console Search

アプリケーションのリストで、App Engine インスタンスを見つけ、IAP のトグルをオンの位置にスライドさせます。

IAP

最後に、目的のアプリインスタンスにチェックを入れ、右のパネルで「Add Member」をクリックします。

IAP Add Member

メンバーのGoogleアカウントに関連するメールアドレスを入力し、ロールの選択をクリックします。「Cloud IAP」オプションを選択し、「IAP-Secured Web App User」オプションを選択し、変更内容を保存します。

Select Settings

プライベートブラウザでアプリに再度アクセスすると、ログインを促すプロンプトが表示されます。明示的にアクセスを許可されていないアカウントにログインするとロックされ、メンバーとして追加したアカウントにログインすると、アプリにアクセスできるようになります。

これで準備は完了です。

使い方

GAEデプロイ後は、App Engineが提供するURLからアクセスすることができます。そのURLにアクセスすると、ログイン画面が表示されます。

Login Screen

CloudSyncを利用する上で、まずはログインが必要です。

注意: 会社コードはインストール時に環境変数として設定されているため、ここでは入力しません。

ログイン後、NEQTO で作成したグループがすべて表示されます。

Groups

リスト内のグループをクリックすると、ノードリスト画面に移動します。

Nodes

ノードは、GCPとNEQTO の両方に存在する場合に同期されます。クラウドはGCP IoT Coreと通信するために必要な環境変数をすべて持っています。

ノード一覧の「同期」欄には、3つのアイコンのいずれかが表示され、ステータスが表示されます。

現在同期中のノードには同期アイコンが表示されます。

Synced Icon

同期されていないノードには同期されていないアイコンが表示されます。

Not Synced Icon

GCPにのみ存在するノード、またはNEQTO にのみ存在するノードは、ノードの同期が失敗している可能性があります。

Issue

詳細を確認するには、リストの右側の行の情報アイコンをクリックしてください。

Info Icon

どの環境で同期が取れなくなったか等、ノードの様々な情報を確認することができます。

Details

同期が取れなくなったノードを修正するには、まず目的のノードを選択して「同期を解除」します。右上の「非同期」ボタンをクリックすると、デバイスの同期が解除されます。

Details

デバイスの同期を解除すると、Google Cloudからデバイスが削除され、NEQTO Consoleから同期時に作成されたGCP環境変数が削除されます。

デバイスを再度同期したり、新しいデバイスを同期したりするには、すべてを選択してから「同期」アイコンをクリックします。

Sync

syncをクリックすると、GCP APIを呼び出してデバイスを登録し、プロビジョニングが行われます。その後、秘密鍵とその他の必要な情報を取得し、それをNEQTO のノードの環境変数に保存します。

作成された環境変数は以下の通りです。

キー値
gcp_cloud_sync_keyGCP IoT Coreに接続するために必要な秘密鍵。
gcp_registry_idGCP IoT Core レジストリの ID です。
gcp_project_id同期するGCPプロジェクトのIDです。
gcp_region_idレジストリのリージョンです。
gcp_device_idGCPのデバイスID。これは、「nq_」とNEQTO ノードUUIDを連結したものです。

これらの環境変数はNEQTO GCP Libraryを通して取得し、GCP IoT Coreへのデータ送信を開始することができます。

Sample Script

// Ref: GCP IoT Core Library documentation
var gcpIotCa =  "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----\n";
var params = {
    privateKey: ENV["gcp_cloud_sync_key"],
    project: ENV["gcp_project_id"],
    location: ENV["gcp_region_id"],
    registry: ENV["gcp_registry_id"],
    device: ENV["gcp_device_id"],
};

var iot_core = new GOOGLE_IOT_CORE(params);

iot_core.setRootCa(gcpIotCa);

var host = iot.buildGrpcUrl();
var payload = secure.base64Encode("Publishing via HTTP");
var callback = function(err, resp) {
    if (err) {
        print(JSON.stringify(err));
    }

    if (resp) {
        print(JSON.stringify(resp));
    }
}
var body = {
    "binary_data": payload
}
var jwt = iot.makeDeviceJWT(3600);  //update JWT each connection. 3600 == 1 hour.
iot.httpPost(jwt, `${host}:publishEvent`, JSON.stringify(body), callback);

Updated: 2021-06-30
← 前次 →
  • はじめに
  • 前提条件
  • GAE フレキシブル環境 (Custom Runtime)にデプロイ
    • セキュリティ
  • 使い方
    • Sample Script
NEQTO とはニュースサービスFAQプライバシーポリシー}
NEQTO Console
はじめに基本情報管理者専用の操作デバイス管理NEQTO Apps
NEQTO Bridge
NEQTO Bridge ピン配置NEQTO Bridge Wi-Fi ModuleNEQTO Bridge LTE-1 Moduleデバッグログ取得方法イベントメッセージ
APIのドキュメント
APIの利用グローバル APIリージョン APIAPIサービス利用規約
Jigsaw, Inc.
© 2023 JIG-SAW INC.