catch-img

CONEXIOBlackBearでAWS IoT Greengrassを使ってみる


はじめに

こんにちは。コネクシオIoTブログ 技術記事担当のHです。

さて、今回はCONEXIOBlackBearとAmazon Web Service(以下、AWS)との連携について取り上げます。

CONEXIOBlackBear は、IoT Greengrass用AWSデバイス認定を取得しており、AWSサービスで機能するデバイスとして、すぐに利用できます。AWS IoT Greengrassを活用すると、例えば、AWS上で作成した学習モデルをCONEXIOBlackBear内にデプロイし、エッジAIで即座に処理するといったことが、セキュアかつ容易にできます。これにより、製造現場におけるモーター故障予兆検知や画像AIによる不良個体識別といった、現場でのエッジAI活用が期待できます。



そこで、今回はサンプルプログラムをAWS IoT Greengrassを使ってCONEXIOBlackBearへデプロイし動作させる手順を紹介したいと思います。CONEXIOBlackBearは認定デバイスなので、AWS公式のドキュメントに沿った手順が多いのですが、一部CONEXIOBlackBear上での作業が必要になるため、その作業内容を本記事で具体的に示すことで、よりイメージが沸くのではと思います。

なお、こちらの資料ダウンロードページから入手できる簡易プログラミングマニュアルには、CONEXIOBlackBearへのAWS IoT Greengrass Coreソフトウェアをインストールする手順が掲載されていますが、この記事ではもう少し詳しい内容となっています。


詳細

0. 実施環境

- CONEXIOBlackBear OSバージョン1.1.5

- AWS IoT Greengrass Coreソフトウェア バージョン 1.9.2

- AWS Lambdaプログラムのランタイム Python 2.7


1. CONEXIOBlackBearへのAWS IoT Greengrass Coreソフトウェアのインストール

AWS IoT Greengrassを CONEXIOBlackBear で利用するには、「AWS IoT Greengrass Coreソフトウェア」を CONEXIOBlackBear にインストールすることが必要です。


1.1 CONEXIOBlackBearの準備

まず、こちらを参考にCONEXIOBlackBear上で、以下のようにユーザーとグループを作成します。

adduser --system ggc_user
addgroup --system ggc_group


1.2 Greengrassグループ・コアの作成と、セキュリティリソース・設定ファイルをダウンロード

次は、PC上で作業を行います。

以下のリンクを参考に、AWS IoT Greengrassコンソールにて、Greengrassグループ、コアの作成およびコアのセキュリティリソースと設定ファイルをダウンロードしていきます。

https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/gg-config.html

手順10まで進めます。手順9で、作業しているPC上にセキュリティリソースと設定ファイル一式0123456789-setup.tar.gzというファイルのダウンロードを忘れないでください。​ ​​​​(0123456789は、実際はランダムな文字列)


1.3 AWS IoT Greengrass Core ソフトウェアをダウンロード、インストール

CONEXIOBlackBearに戻って、以下のコマンドにてソフトウェア一式を配置します。

cd /tmp
wget https://d1onfpft10uf5o.cloudfront.net/greengrass-core/downloads/1.9.2/greengrass-linux-armv7l-1.9.2.tar.gz
tar -xzvf greengrass-linux-armv7l-1.9.2.tar.gz -C /

参考


1.4 Greengrass Coreのセキュリティリソースと設定ファイルを配置

さらに、AWS IoT Greengrassコンソールでダウンロードした0123456789-setup.tar.gzをCONEXIOBlackBear上にコピーします。

そして、コピー先にて、

tar -xzvf 0123456789-setup.tar.gz -C /greengrass

として展開します。また、以下のようにrootCA証明書をダウンロードします。

cd /greengrass/certs
wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem

ここまでで、AWS IoT Greengrass Coreソフトウェアのインストールが完了しました。


1.5 AWS IoT Greengrass Coreソフトウェア デーモンの起動

以下で、デーモンが起動できます。このデーモンが起動している状態であれば、AWS IoT Greengrass コンソールから、エッジソフトウェアをデプロイできます。

cd /greengrass/ggc/core/    
./greengrassd start

以下のように、出力されれば、デーモンの起動が完了です。

Setting up greengrass daemon
Validating hardlink/softlink protection
Waiting for up to 1m10s for Daemon to start

Greengrass successfully started with PID: 29962

ということで、次はデプロイを行っていきます。


2. サンプルのプログラムをCONEXIOBlackBearにデプロイして動作を確認する

ここでは、AWS IoT Greengrass Core SDKに同梱のサンプルプログラムを、AWS IoT GreengrassからCONEXIOBlackBearへデプロイし、動作させてみます。以下を参考に進めます。

https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/module3-I.html


2.1 AWS IoT Greengrass Core SDKのダウンロードとサンプルLambdaプログラムの作成

以下の2つのリンクにある手順に従って、AWS IoT Greengrass Core SDK同梱のサンプルプログラムをAWS Lambda上に作成し、AWS IoT Greengrass Coreに追加します。少し手順が多いですが、順番通り進めます。注意が必要なのは、手順15で、ストリームマネージャーを無効化するのを忘れないことです。有効化されていると、今回使用しているAWS IoT Coreソフトウェア v1.9.2ではデプロイに失敗します。

https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/create-lambda.html

https://docs.aws.amazon.com/ja_jp/greengrass/latest/developerguide/config-lambda.html

今回はPython用のサンプルを使用するため、

https://github.com/aws/aws-greengrass-core-sdk-python/

からバージョン1.2.0をPC上にダウンロード、展開し、Greengrass_HelloWorldというlambda関数をAWS上に作成しました。


2.2 CONEXIOBlackBearへLambdaプログラムをデプロイ

そして、こちらに従って、CONEXIOBlackBearへデプロイします。

デプロイされた様子が以下です。成功しました。


3. デプロイされたプログラムの動作確認

正しくデプロイされると、CONEXIOBlackBearからAWS IoT CoreへMQTTメッセージがパブリッシュされているはずなので、確認してみます。参考

AWS IoTコンソールのテストページで"hello/world"トピックをサブスクライブすると、以下のように表示されました。5秒ごとに飛んできます。


まとめ

以上のように、AWS IoT GreengrassをCONEXIOBlackBearで利用する実際の手順をご紹介しました。今回は簡単なサンプルプログラムを動作させましたが、CONEXIOBlackBearがAWS IoT Greengrassとの連携で威力を発揮するのは、エッジAIを扱うときだと思いますので、今後、エッジAIをデプロイして動かす記事についても取り上げていきたいと思います。


H

H

コネクシオ株式会社・IoT開発担当者

5分で理解できる!
Smart Ready IoTソリューションセット
ご質問やご要望はこちらから
お気軽にお問い合わせください

工場内の古い機械もIoT化できる? 導入の効果や方法を解説

2021-09-22

デジタル技術の発展により、さまざまなモノがインターネットとつながるIoT化が進んでいます。工場の設備・機械にIoTを活用しようと思いつつも、「どのようにIoT化を進めていけばよいのか具体的な取り組みが分からない」という方もいらっしゃるのではないでしょうか。今回は、製造現場におけるIoTの導入状況を踏まえつつ、機械をIoT化する効果や方法などを解説します。

工場の巡回・点検業務を効率化して負荷を軽減する方法

2021-09-22

企業の人手不足が深刻化するなか、自社の工場内で設備・機械の点検業務に多くの労力を要している現場もあるのではないでしょうか。なかでも、アナログメーターの場合は人の目による読み取りが必要になるため、点検者の負荷も大きくなります。この記事では、人手による巡回・点検業務の課題や効率化方法について解説します。

予防保全とは? 事後保全との違いとIoT活用による予知保全を解説

2021-09-22

製造現場で日々稼働している設備や機械を管理して安定した稼働を実現するには、適切な保全活動が欠かせません。保全活動には予防保全・事後保全などがありますが、近年はIoTを活用した“予知保全”も取り入れられています。この記事では、製造現場の設備・機械を適切に管理するための予防保全と事後保全の違い、IoTを活用した予知保全について解説します。

予知保全にAI技術を導入するメリットと活用法

2021-08-30

生産工程で発生するさまざまなデータを蓄積して、AIが持つ学習技術・解析機能を活用することで、設備保全体制の強化につながると期待されています。この記事では、製造現場における予知保全の目的を踏まえ、AI技術の活用方法やメリットなどを解説します。

製造現場の予知保全CBMとは? TBMとの違いやメリットを解説

2021-08-30

モノづくりを行う製造現場では、IoT技術を取り入れた次世代の予知保全であるCBMが登場しています。従来のTBMに比べて、より効率的な設備保全ができると期待されています。本記事では、CBMの基礎知識をはじめ、従来のTBMとの違い、CBM導入のメリットなどをまとめて解説します。