2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AlibabaCloud IoT Platform設定方法

Last updated at Posted at 2019-12-13

こんにちは。ひつじです。
IoTライフみなさん楽しんでますか!?

今回はAlibaba CloudのIoT Platformを紹介していきます。

IoTといえば、センサー(マイコン)から情報を収集して色々やっていくイメージですが、本記事では入門向けとしてセンサーではなくmosquittoというオープンソースから直接コマンドを発行してMQTT通信を確認していきます。

#今回の内容

1.Alibaba Cloud IoT Platformの設定を行う
2.mosquitto clientからPub通信を行う

i1.png

###用語

用語 説明
パブリッシャ データを送付するクライアント
サブスクライバ データを受信するクライアント
ブローカー パブリッシャとサブスクライバを仲介する
トピック ブローカーがもつデータの送付先、アドレス

###プロダクト設定

では、早速、IoT Platformの設定を進めていきます。

Alibaba Cloud IoT Platformでは、プロダクトとデバイスという概念があります。
プロダクトはデバイスの集合体です。IoT Platform を使用するための最初のステップは、プロダクトの作成です。

IoT platformを選択->デバイス管理->プロダクト->プロダクトの作成

以下のような画面が起動します。

i2.png

ゆくゆくはSIMを使った通信を考慮して、「モバイル2G/3G/4G」を設定しておきましょう。

###デバイス設定
デバイス管理->デバイス->デバイスの作成

i3.png

DeviceNameには入力規則があるので、ヘルプで確認しておきましょう。
OKをクリックするとデバイス証明書が表示されるので、控えておきましょう。

i4.png

productkey : a61QmwQD5ZF
DiviceName : mosheep
DeviceSecret : ********

###トピック登録
先に説明しましたがトピックとはブローカー上に配置する宛先みたいなものです。プロダクト管理画面から作成したプロダクトを選択してください。

プロダクトの詳細画面にて「トピック」カテゴリを選択してください。
するとデフォルトで作成されたトピックが確認できると思います。

今回使用するトピックを作成していきます。

i5.png i6.png

今回使用するトピックが作成できました。

/a61QmwQD5ZF/${deviceName}/user/sheep

これでIoT Plattformの設定は完了です。

#mosquittoの設定

次にクライアント側の作業を実施していきます。
IoT用語でいうパブリッシャとサブスクライバの環境になります。
先述の通りセンサー(マイコン)ではなくmosquittoで通信をみていこうと思います。

#####環境
ECS(CentOS 7.x)+パブリックIP

以下のコマンドでmosquitto-clientsをインストールします。

wget http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-7/home:oojah:mqtt.repo -O "/etc/yum.repos.d/Mosquitto.repo"
yum install mosquitto-clients

※mosquittoの本体をいれれば、ECSがブローカーとして機能します。

これでmosquitto環境が作成されました。

###通信用コマンドの作成

では、コマンドを実行してIoT Platformで確認してみましょう。

パブリッシュするためのコマンドは以下です。

mosquitto_pub -h  "ホスト名(エンドポイント名)" \
-i "クライアントID" \
-u "ユーザ名" \
-P "パスワード" \
-t "トピック" \
-m 'メッセージ' \
-q 'QoS'

それぞれ作り方を見ていきましょう。
詳細はTIPS!に記載しますが、クライアントIDとパスワードはAlibaba提供のツールの利用をお勧めします。

Alibaba Cloud提供のハッシュ生成ツール

i7.png

作成するのに必要なパラメータは前段のデバイス証明書を参照しましょう。

ホスト名
[ProductKey].iot-as-mqtt.[RegionId].aliyuncs.com

クライアントID
[ClientID]|securemode=3,signmethod=hmacsha1|

※securemode=2だとTLSモード、securemode=3だとTLS使わないモード
※[ClientID]は上記のハッシュ生成ツールの任意で決めた文字列です。

ユーザ名
[deviceName]&[ProductKey]

パスワード
devicesercretとproductKey&deviceName&clientIdの文字列をsha1でハッシュ生成する
※上記のハッシュ生成ツールで生成されたパスワードです。

トピック
前段で作成したトピックを指定

メッセージ
任意(運びたいデータ)

Qos
0:届くか保証されない(かなり軽い)
1:届くことが保証されるが重複の可能性あり(軽い)
2:メッセージに過不足なく正確に届く(ちょっと重い)

今回の認証情報でコマンドを作成すると以下のようなイメージになります(パスワードはサンプルです。)

mosquitto_pub \
-h "a61QmwQD5ZF.iot-as-mqtt.ap-northeast-1.aliyuncs.com" \
-i "cid|securemode=3,signmethod=hmacsha1|" \
-u "mosheep&a61QmwQD5ZF" \
-P "QQA5E3998123E8D7777FE7BDB7777C5B00DC6556" \
-t "/a61QmwQD5ZF/mosheep/user/sheep" \
-m '{id:"0001",data:"hello world"}' \
-q 0

上記コマンドを実行するとIoT Platformにデータが送信されます。

ではコンソール上で確認していきます。

i8.png i9.pngmosquitto_pubで送付した値が受けれていますね。

###TIPS!
接続用のパスワードですが、
devicesercretとproductKey&deviceName&clientIdの文字列をsha1でハッシュ生成する必要があります。
詳細は以下のリンクに記載されておりますが、AlibabaCloudが提供しているツールを使うのが楽です。

マニュアル

[https://www.alibabacloud.com/help/doc-detail/86706.html:embed:cite]

#まとめ

いかがでしたでしょうか。
GUIで設定するだけで、簡単にブローカーが作成できましたね。
mosquittoをクライアントとしてAlibaba CloudでMQTT通信を受信する流れをご理解いただけたと思います。

次回はセンサー(マイコン)から実際のセンシングデータを連携してみたいと思います。
それではご査収ください~(^-^)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?