こんにちは! はくです。
Alibaba Cloud IoT Platform上に、仮想デバイスを定義し、IoT Platform環境と接続をやって見ました。
温度センサーがCloud環境へ温度を送信することをシミュレーションできたため、
その内容を紹介します。
環境紹介
■Cloud側
・Alibaba Cloud国際サイト日本リージョンを利用しました。
中国サイトのほうがIoT関連のプロダクトが充実ですが、デバイス接続だけであれば、国際サイトでも十分です。
■Device側
・MacBook + JavaLinkKitDemo。実デバイスは不要
■NW
・Wi-Fi。MacBookをインターネットに繋げれば何でも良い
ちなみに、国際サイトと中国サイトのコンサル画面は以下です。
概念紹介
■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できます。
操作手順
①https://iot.console.aliyun.com/ 国際サイトへログインし、IoT Platformのコンソール画面に入る。デバイス管理のプロダクトメニューをクリックする
②下記の手順に従って温度計デバイスを作成する
③上記デバイス作成後、デバイス詳細画面にてDevice Secretを確認できます。
④Javaを改造
device_id.jsonに接続に必要な情報を反映※プロダクト詳細画面、デバイス詳細画面にて確認できます
送信したいプロパーティーと値をtest_case.jsonに記載します。
送信先を東京にするように、DeviceInfoData.javaのregionを修正
public String region = "ap-northeast-1";
Helloworld.javaを実行
※そのまま実行すると、test_case.jsonの値をIoT PFへ送信します。
ランダムの温度を送信するように、javaを改造したが、割愛します。
⑤結果確認
testDeviceがIoT PFと通信できて、「オンライン」となりました。
まとめ
Alibaba Cloud の IoT Platformを使って、簡単にデバイスの作成と接続を実現できます。
デフォルト機能として、Quick Startも提供されています。SDKのDemoも自動生成れるため、プログラミングに慣れていない方にお勧めします。