エッジ制御によるIoT鉄道模型の自動運転
2019-02-19
山添 知久
- LonWorksとAWS Greengrassによるエッジ制御 -
Vol.3
自己紹介
• 山添 知久 (Tomohisa Yamazoe) @zoe6120
• IoT エンジニア
• IT業界やビルディングオートメーション業界でオープン
技術による機器・設備のIoT化に取り組んでいます。
• (NPO) LonMark JapanでIIoT研究会やっています
• データセンタ機器メーカー、BAデバイスベンダを経て
フリーランス
Control IoTLT vol.3 2
🌎 https://zoe6120.com/
https://www.linkedin.com/in/tyamazoe/
https://www.facebook.com/tyamazoe/
LonMark Japan:
https://ssl.lmjapan.org
https://www.facebook.com/lonmarkjapan/
IoT鉄道模型
Control IoTLT vol.3 3
IoT鉄道模型 − スマートビルディングEXPO
https://youtu.be/LsRlSaTsITA
システム構成
Control IoTLT vol.3 4
エッジサーバ
• RasPi + AWS Greengrass
Core
• Lambda function :
– 列車のシーケンス制御
Lambda
function
AWS IoT
AWS Greengrass
制御
プログラム
DB
LonWorks 列車コントローラ
• Raspberry Pi + Echelon IzoT SDK
• 列車位置の検出
• PWM電圧制御による列車速度制御
• リレーによるポイント切換
DALI 照明コントローラと連動
ローカルにも制御機能を持たせたい -> 信頼性の向上
エッジ : 応答性の要する処理
クラウド : 可視化、ログ保存、データ解析など
SORACOM
Lagoon
LonWorksとAWS Greengrassによる鉄道模型の自動運転
システムレイアウト
Control IoTLT vol.3 5
列車コントローラ
列車検出
IoT Gateway
OpenBlocks +
SORACOM Air
Greengrass
0-12VDC
Greengrass
• Raspberry Pi にGreengrass Core をインストール
• Greengrass Coreはサービス(デーモン)として常
時起動
• Lambdaがデプロイされる
• MQTTでAWS IoTおよびデバイスへ
Control IoTLT vol.3 6
列車
コント
ローラ
RasPi
MQTT
Greengrass Core
RasPi
Lambda
function
AWS IoT
デプロイ
MQTT
列車コントローラ部分
• Raspberry Pi にIzoT SDK(LonWorksのSDK)+ AWS IoT SDKをインストール
• Pythonでデバイスプログラム
• GPIO経由で外部ボード制御
• MQTTでGreengrassへ
Control IoTLT vol.3 7
IzoT SDK
AWS IoT
SDK
RasPi
ESP32
DevKitC
制御
ボード
UART
PWM
DIO
Photo
Sensor
0~12V
DC
リレー
列車検出
速度制御
ポイント
切換え
MQTT
Greengr
ass Core
RasPi
A/D
Greengrassで実装した機能
• Lambda自動運転シーケンス
• 周回
• Position 2: Slow
• Position 1: Fast
• 待機
• Position 1: stop
• Point切換え
• 反転してslow
• Position 0: stop
• 5秒後 slow
• Position 1 Fast
• Point切換え
• 5周走行したら待機
Control IoTLT vol.3 8
Greengrassの設定方法
• AWS IoT Greengrass
• Greengrassグループ作成
• Core, Device作成
• Lambdaの指定
• サブスクリプション設定
• デバイス間通信
• デプロイ
• GG coreにLambdaを配置
Control IoTLT vol.3 9
• AWS Lambda
• 永続的な関数として
開発
• AWS IoTで指定
• Greengrass Core
• ラズパイにGreengrass SDK
インストール
• Greengrass coreサービス
の起動
• Lambdaがデプロイされる
• Greengrass デバイス
• AWS IoT SDKインストール
• 任意言語でデバイスプロ
グラム
• SDK機能からGGへMQTT
メッセージ送受信
デプロイ
AWS IoT Greengrass コンソール
• サブスクリプション デプロイ
Control IoTLT vol.3 10
AWS IoT Greengrass Lmbda設定
Control IoTLT vol.3 11
• Greengrass用の追加設定
Greengrass CoreにデプロイされたLambda
• デプロイされたLambdaはGreengrass Core配下に存在する。
/greengrass/ggc/deployment/lambda/arn:aws:lambda:<リージョン>:<awsの
ID>:function:<function名>:<バージョン>
直接編集しても動作しました。とりあえずデバッグはできます。
Control IoTLT vol.3 12
例:
pi@raspi
$/greengrass/ggc/deployment/lambda/arn:aws:lambda:ap-
northeast-
1:xxxxxxxxxxxx:function:GGrassIzoTTrain:25/greengrassI
zoTTrain.py
SORACOM Lagoon を使ったダッシュボード
Control IoTLT vol.3 13
AWS Greengrass
IoT鉄道模型の周回数データの表示
httpリクエストにより Inventory – Harvest 連携してデータ蓄積
SORACOM以外のデータもLagoonへ
Control IoTLT vol.3 14
Lambda
function
OpenBlocks
http post
SORACOM
Harvest
SORACOM
Inventory
SORACOM
Lagoon
AWS Greengrass
RasPi
列車検出センサ +1
3日間の展示会出展結果
• 3日間無事動作
• 電波状況が悪く、ダッシュボードの更新(5分間隔)は度々タイムアウトが発生
• 列車の制御には影響なし
• 周回数
• SORACOM Air 使用料金 : SIM2枚
• (データ通信費は90%以上がWebアクセスによるもの)
Control IoTLT vol.3 15
基本料金 Harvest データ通信 合計
60 15 85 160
1日目 2日目 3日目 合計
1859 2384 1721 5761
Control IoTLT vol.3 16
エッジ制御まとめ
• メリット:
• 高い応答性 –エッジ(=ローカル)での応答
• 信頼性の向上 – クラウド接続が切れても制御可能
• OTA – AWSからのデプロイでエッジプログラム更新
• 通信費コスト削減 - クラウドとの通信量減
• デメリット:
• 定義・設定項目が多い – サブスクリプション、デバイス定義
• Lambda:デバッグに工数大
• デバイス数増加すると管理工数大
• とは言え、装置に近い場所で現実的なソリューション
• 大規模なシステムには詳細な検討が必要?
Control IoTLT vol.3 17
発表予定
• LonMark Japan 第7回 IIoT研究会
• 2019/3/15(金) @代々木オリンピックセンター
• 1) LonWorksとAWS Greengrassによるエッジ制御の実演
• 2) LonMark最新情報、クラウドとIoTについて
• 3) i.LON700新製品情報
Control IoTLT vol.3 18
LonMark Japan:
https://ssl.lmjapan.org
https://www.facebook.com/lonmarkjapan/
Thank You!
Control IoTLT vol.3 19

エッジ制御によるIoT鉄道模型の自動運転

  • 1.
  • 2.
    自己紹介 • 山添 知久(Tomohisa Yamazoe) @zoe6120 • IoT エンジニア • IT業界やビルディングオートメーション業界でオープン 技術による機器・設備のIoT化に取り組んでいます。 • (NPO) LonMark JapanでIIoT研究会やっています • データセンタ機器メーカー、BAデバイスベンダを経て フリーランス Control IoTLT vol.3 2 🌎 https://zoe6120.com/ https://www.linkedin.com/in/tyamazoe/ https://www.facebook.com/tyamazoe/ LonMark Japan: https://ssl.lmjapan.org https://www.facebook.com/lonmarkjapan/
  • 3.
    IoT鉄道模型 Control IoTLT vol.33 IoT鉄道模型 − スマートビルディングEXPO https://youtu.be/LsRlSaTsITA
  • 4.
    システム構成 Control IoTLT vol.34 エッジサーバ • RasPi + AWS Greengrass Core • Lambda function : – 列車のシーケンス制御 Lambda function AWS IoT AWS Greengrass 制御 プログラム DB LonWorks 列車コントローラ • Raspberry Pi + Echelon IzoT SDK • 列車位置の検出 • PWM電圧制御による列車速度制御 • リレーによるポイント切換 DALI 照明コントローラと連動 ローカルにも制御機能を持たせたい -> 信頼性の向上 エッジ : 応答性の要する処理 クラウド : 可視化、ログ保存、データ解析など SORACOM Lagoon LonWorksとAWS Greengrassによる鉄道模型の自動運転
  • 5.
    システムレイアウト Control IoTLT vol.35 列車コントローラ 列車検出 IoT Gateway OpenBlocks + SORACOM Air Greengrass 0-12VDC
  • 6.
    Greengrass • Raspberry PiにGreengrass Core をインストール • Greengrass Coreはサービス(デーモン)として常 時起動 • Lambdaがデプロイされる • MQTTでAWS IoTおよびデバイスへ Control IoTLT vol.3 6 列車 コント ローラ RasPi MQTT Greengrass Core RasPi Lambda function AWS IoT デプロイ MQTT
  • 7.
    列車コントローラ部分 • Raspberry PiにIzoT SDK(LonWorksのSDK)+ AWS IoT SDKをインストール • Pythonでデバイスプログラム • GPIO経由で外部ボード制御 • MQTTでGreengrassへ Control IoTLT vol.3 7 IzoT SDK AWS IoT SDK RasPi ESP32 DevKitC 制御 ボード UART PWM DIO Photo Sensor 0~12V DC リレー 列車検出 速度制御 ポイント 切換え MQTT Greengr ass Core RasPi A/D
  • 8.
    Greengrassで実装した機能 • Lambda自動運転シーケンス • 周回 •Position 2: Slow • Position 1: Fast • 待機 • Position 1: stop • Point切換え • 反転してslow • Position 0: stop • 5秒後 slow • Position 1 Fast • Point切換え • 5周走行したら待機 Control IoTLT vol.3 8
  • 9.
    Greengrassの設定方法 • AWS IoTGreengrass • Greengrassグループ作成 • Core, Device作成 • Lambdaの指定 • サブスクリプション設定 • デバイス間通信 • デプロイ • GG coreにLambdaを配置 Control IoTLT vol.3 9 • AWS Lambda • 永続的な関数として 開発 • AWS IoTで指定 • Greengrass Core • ラズパイにGreengrass SDK インストール • Greengrass coreサービス の起動 • Lambdaがデプロイされる • Greengrass デバイス • AWS IoT SDKインストール • 任意言語でデバイスプロ グラム • SDK機能からGGへMQTT メッセージ送受信 デプロイ
  • 10.
    AWS IoT Greengrassコンソール • サブスクリプション デプロイ Control IoTLT vol.3 10
  • 11.
    AWS IoT GreengrassLmbda設定 Control IoTLT vol.3 11 • Greengrass用の追加設定
  • 12.
    Greengrass CoreにデプロイされたLambda • デプロイされたLambdaはGreengrassCore配下に存在する。 /greengrass/ggc/deployment/lambda/arn:aws:lambda:<リージョン>:<awsの ID>:function:<function名>:<バージョン> 直接編集しても動作しました。とりあえずデバッグはできます。 Control IoTLT vol.3 12 例: pi@raspi $/greengrass/ggc/deployment/lambda/arn:aws:lambda:ap- northeast- 1:xxxxxxxxxxxx:function:GGrassIzoTTrain:25/greengrassI zoTTrain.py
  • 13.
  • 14.
    IoT鉄道模型の周回数データの表示 httpリクエストにより Inventory –Harvest 連携してデータ蓄積 SORACOM以外のデータもLagoonへ Control IoTLT vol.3 14 Lambda function OpenBlocks http post SORACOM Harvest SORACOM Inventory SORACOM Lagoon AWS Greengrass RasPi 列車検出センサ +1
  • 15.
    3日間の展示会出展結果 • 3日間無事動作 • 電波状況が悪く、ダッシュボードの更新(5分間隔)は度々タイムアウトが発生 •列車の制御には影響なし • 周回数 • SORACOM Air 使用料金 : SIM2枚 • (データ通信費は90%以上がWebアクセスによるもの) Control IoTLT vol.3 15 基本料金 Harvest データ通信 合計 60 15 85 160 1日目 2日目 3日目 合計 1859 2384 1721 5761
  • 16.
  • 17.
    エッジ制御まとめ • メリット: • 高い応答性–エッジ(=ローカル)での応答 • 信頼性の向上 – クラウド接続が切れても制御可能 • OTA – AWSからのデプロイでエッジプログラム更新 • 通信費コスト削減 - クラウドとの通信量減 • デメリット: • 定義・設定項目が多い – サブスクリプション、デバイス定義 • Lambda:デバッグに工数大 • デバイス数増加すると管理工数大 • とは言え、装置に近い場所で現実的なソリューション • 大規模なシステムには詳細な検討が必要? Control IoTLT vol.3 17
  • 18.
    発表予定 • LonMark Japan第7回 IIoT研究会 • 2019/3/15(金) @代々木オリンピックセンター • 1) LonWorksとAWS Greengrassによるエッジ制御の実演 • 2) LonMark最新情報、クラウドとIoTについて • 3) i.LON700新製品情報 Control IoTLT vol.3 18 LonMark Japan: https://ssl.lmjapan.org https://www.facebook.com/lonmarkjapan/
  • 19.