Alibaba Cloud IoT Platformに接続してみました

こんにちは! はくです。

Alibaba Cloud IoT Platform上に、仮想デバイスを定義し、IoT Platform環境と接続をやって見ました。
温度センサーがCloud環境へ温度を送信することをシミュレーションできたため、
その内容を紹介します。

環境紹介

■Cloud側

・Alibaba Cloud国際サイト日本リージョンを利用しました。

中国サイトのほうがIoT関連のプロダクトが充実ですが、デバイス接続だけであれば、国際サイトでも十分です。

■Device側

・MacBook + JavaLinkKitDemo。実デバイスは不要

必要ものは以下のリンクから入手できます。 

JavaLinkKitDemo.zip 

 ※ドキュメント

JavaIDE:IntelliJ IDEA

JDK 8 and JRE 8

■NW

・Wi-Fi。MacBookをインターネットに繋げれば何でも良い

 

ちなみに、国際サイトと中国サイトのコンサル画面は以下です。

f:id:sbc_haku:20191128172723p:plain

国際サイト

f:id:sbc_haku:20191128173112p:plain

中国サイト

概念紹介

■Thing Model

Alibaba IoT PlatformはThing Modelを用いて、物理デバイスの抽象化を行います。

・Productは物理デバイス類を定義する

・Featureは物理デバイス類の属性および振る舞いを定義する

・DeviceはProductを継承し、その物理デバイス類に属する1つの実物を表現する

 

Featureは更に、3つの分類があります。

・Properties:物理デバイス類の属性を定義する

 例えば、センサーが取れる情報の種類、温度、湿度など

・Serivces:物理デバイス類の振る舞いを定義する

・Event:運用観点で分析、監視したいデータを定義する。さらに、Info,Alert,Errorとのサブ種類が付いている

 

Object Oriented Programmingの考え方で例えすると、

Product = Class

Feature:Properties =Properties

Service = Method

Device = Instance

の感じですね。

 

■識別子と認証

Thing Modelを用いて定義したモデルの識別子は以下となります。

Product:ProductKey

Feature:Identifier

Service:Identifier

Device:Identifier

 

ちなみに、上記Thing Modelの方法論を標準化を推進するICAという組織があります。

興味がある方は、下記サイトへご参照ください。

https://www.ica-alliance.org/alliance?spm=a2c79.11843787.1271562.2.3bcc52309aUV16

 

サイトにおいて定義済みのモデルの確認とJsonファイルのDownloadできます。

f:id:sbc_haku:20200121145941p:plain

f:id:sbc_haku:20200121145901p:plain

操作手順

https://iot.console.aliyun.com/ 国際サイトへログインし、IoT Platformのコンソール画面に入る。デバイス管理のプロダクトメニューをクリックする

f:id:sbc_haku:20200121092346p:plain

 

②下記の手順に従って温度計デバイスを作成する

f:id:sbc_haku:20200121093225p:plain

f:id:sbc_haku:20200121093459p:plain

f:id:sbc_haku:20200121093954p:plain

f:id:sbc_haku:20200121094008p:plain

f:id:sbc_haku:20200121094358p:plain

 ③上記デバイス作成後、デバイス詳細画面にてDevice Secretを確認できます。

f:id:sbc_haku:20200121123752p:plain

④Javaを改造

device_id.jsonに接続に必要な情報を反映※プロダクト詳細画面、デバイス詳細画面にて確認できます

f:id:sbc_haku:20200121124334p:plain

送信したいプロパーティーと値をtest_case.jsonに記載します。

f:id:sbc_haku:20200121130528p:plain

送信先を東京にするように、DeviceInfoData.javaのregionを修正

public String region = "ap-northeast-1";

Helloworld.javaを実行

※そのまま実行すると、test_case.jsonの値をIoT PFへ送信します。

ランダムの温度を送信するように、javaを改造したが、割愛します。

⑤結果確認

testDeviceがIoT  PFと通信できて、「オンライン」となりました。

f:id:sbc_haku:20200121131203p:plain

 

まとめ

 Alibaba Cloud の IoT Platformを使って、簡単にデバイスの作成と接続を実現できます。

デフォルト機能として、Quick Startも提供されています。SDKのDemoも自動生成れるため、プログラミングに慣れていない方にお勧めします。