Help us understand the problem. What is going on with this article?

AlibabaCloud IoTPlatformにおけるデータの流れを理解する① -デバイスからIoT Platformにデータを送信する-

More than 1 year has passed since last update.

 はじめに

AlibabaCloudのデバイス管理サービスであるIoT Platform。

  • 様々なプロトコルでデバイスと双方向通信ができる
  • デバイスの認証・管理ができる
  • 受け取ったデータをルールに従って転送できる

と様々な機能があるのだが、いざ利用しようと思うと、

DataHub/トピック/カテゴリ/RuleEngineなど、データの流れが分かりにくい部分も多い。
(少なくとも、私はそう感じた・・・。)
そこで、今回はAlibabaCoud IoTPlatformにおけるデータの流れを説明しようと思う。

データの流れ全体像

まず、今回で実現するデータの流れを図示する。
IoT Platformのプロダクトを作成したとき、[解析しない / カスタマイズ (バイナリデータを示す)] と [Alink JSON] のいずれかのデータ型を選択する必要がある。

  • 解析しない / カスタマイズ: ルールエンジンはバイナリデータを解析せず、データはターゲットに渡される。
  • Alink JSON: データはまず TSL (Thing Specification Language) に解析され、ルールエンジンは解析されたデータに SQL 文を実行する。

下記は、Alink JSON形式を選択した場合の流れである。

image.png
公式サイトから引用

構成

具体的な説明にあたっては、実機を使ったほうが分かりやすいので環境を準備する。

DeviceはCentOS7.6で構築したECS上で、Node.js用のサンプルモジュールからデータを送信することにする。
IoT Platformでデータを受信したのち、TableStoreに転送して格納する流れとした。
image.png

環境構築順序

IoT Platform

IoT Platformは、マネジメントコンソールで[IoTPlatform]を選択したのち左ペインに表示される[クイックスタート]に従って構築した。
なお、[ステップ2 開発キットの選択]では、
デバイスOS:Linux、接続プロトコル:MQTT、SDK:Node.jsを選択した。
基本的に指示通り進めるだけなので、迷うところはないと思うが、「ステップ4設定とテスト」はECS構築完了時の動作確認に使うので、閉じないこと。

image.png

ECS

※検証なので、すべてrootユーザで実施する。

ECSローンチまでの構築方法は、公式サイト参照のこと。
イメージは、AlibabaCloudが提供する、centos_7_06_64_20G_alibase_20190711.vhdを使用した。
上記イメージからローンチした場合、unzipコマンドが通らないので、unzipはインストールしておく。

# yum install unzip

次にNode.jsもインストール。

$ yum install nodejs

[クイックスタート]の中でダウンロードしたaliyun_iot_device_quickstart.zipをECS上に配置し解凍。

# unzip aliyun_iot_device_quickstart.zip

初期状態ではstart.shに実行権限がないので、実行権限を与える。

# cd aliyun_iot_device_quickstart
# ll
total 20
-rw-r--r-- 1 root root 154 Aug 20 02:44 device_id_password.json
-rw-r--r-- 1 root root 656 Oct  9  2018 index.js
-rw-r--r-- 1 root root 249 Dec 21  2018 package.json
-rw-r--r-- 1 root root 144 Oct 10  2018 start.bat
-rw-r--r-- 1 root root 121 Oct  1  2018 start.sh
# chmod 744 start.sh 
# ll
total 20
-rw-r--r-- 1 root root 154 Aug 20 02:44 device_id_password.json
-rw-r--r-- 1 root root 656 Oct  9  2018 index.js
-rw-r--r-- 1 root root 249 Dec 21  2018 package.json
-rw-r--r-- 1 root root 144 Oct 10  2018 start.bat
-rwxr--r-- 1 root root 121 Oct  1  2018 start.sh

start.shを実行。
Aliyun Iot Device SDKがインストールされたのち、データがIoT Platformに転送され始める。

# sh ./start.sh
Installing Aliyun Iot Device SDK...
~中略~
npm WARN simple@1.0.0 No description
npm WARN simple@1.0.0 No repository field.
Connect successfully!
Post properties every 5 seconds...
Post properties: {"Status":1,"Data":"Hello, world!"}
Post properties: {"Status":1,"Data":"Hello, world!"}

マネジメントコンソールのIoT Pratform(ステップ4設定とテスト)を確認すると、デバイスがオンラインとなりデータが送信されている
ことが分かる。
image.png

次回に向けて

今回は、デバイスからIoT Platformに対してデータを送信するところまでを説明した。次回はTableStoreを構築し、
デバイスのデータをTableStoreに格納するまでの流れを説明する。

AlibabaCloud IoTPlatformにおけるデータの流れを理解する② -IoT Platformが受信したデータをTableStoreに格納する-

TakuyaMihara
AlibabaCloud 2019 MVP AWS/AlibabaCloudがメイン、ときどきAzure。 システムアーキテクト。 トライアスロンが好き。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした