はじめに
いまさらかもやけど、Google Cloud IoT Coreでどんなことできるか知っとこうと思って、チュートリアルを試してみることにした。
Cloud IoT Coreって?
データを収集するときのデバイスの管理するサービス。
デバイスとかエッジ側のゲートウェイとクラウドをつなぐ部分。
IoTサービス全体の中では、ほんの一部。
集めたデータは他のサービスにつないで使うっぽい。
認証とかのセキュリティをサポートしてる。
MQTTとHTTPをサポートしてる。
いわゆるMQTTのブローカー的に使う。
デバイスの登録とかモニターもREST API使って管理できる。
Cloud IoT Core | Cloud IoT Core | Google Cloud
モノのインターネットの概要 | ソリューション | Google Cloud
環境
クラウド側とローカル(デバイス)側の環境。
クラウド
- Google Cloud IoT Core
ローカル
- Chrome OS Version 77.0.3865.56 (Official Build) beta (64-bit)
$ gcloud --version
Google Cloud SDK 263.0.0
bq 2.0.47
core 2019.09.13
gsutil 4.42
したこと
Quickstart
まず、公式のチュートリアルにそって作業した。
日本語と英語が混在してるから、混乱する。
うごいてそう。
Quickstart | Cloud IoT Core Documentation | Google Cloud
- プロジェクト作る
- レジストリ作る
- トピック作る
- Key作る
- デバイス登録
- デバイスとKey交換。
- gcloudでsubscriptionを作成
- node.jsでMQTTでpublish
- gcloudでpull(subscribe)してデータ取得
- Clean upってのは保留。
Python Client for Cloud IoT API
node.jsとgcloudだけじゃいまいちわからなかったので、Pythonでやってるのないかしらべてみた。
pipでgoogle-cloud-iotってのをインストールしたら割りと簡単にdeviceの情報をとれそう。管理用?
publish/subscribeのコードではなさそう。
Python Client for Cloud IoT API — google-cloud 9289c52 documentation
Python Client for Cloud IoT API — google-cloud-iot 0.1.0 documentation
Google Cloud IoT Core Python Samples
Pythonでpublishするサンプル。
中身はpaho.mqtt.client使ってる。
その気になったら、これを変更してセンサーデータとかもっとチープな別の端末から送られてきた情報をpublishしたらよさそう。
Google Cloud IoT CoreでMQTTを試す - Qiita
その他
gcloud使うときの認証
Authentication — google-api-core 0.1.0 documentation
わかったこと
デバイスはレジストリで管理。
データはトピックで管理。
そのあとのサービスにつなぐ方法も調べないと使えなさそう。
Quickstart | Cloud IoT Core Documentation | Google Cloud
所感
すこし、雰囲気がわかってきた。
認証とかをうまいことサポートしてくれてるの安心感ある。
IoTって言葉がついてるけど、機能的にはすごく狭いところやった。
Google、チュートリアル的にvirtualenvおしやった。しらんかった。