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ソリューションセット
ご質問やご要望はこちらから
お気軽にお問い合わせください

製造業が直面する課題と人材難・IT化・技術継承の解決策

2021-07-28

新型コロナウイルス感染症(以下、コロナ)の感染拡大によってテレワークが徐々に定着しつつあるなか、製造業もまた時代の変化に適応しなければならない時期にさしかかっています。少子高齢化による人手不足やIT化の遅れ、移り変わる社会情勢に対応しきれていないことなど、製造業が抱える課題と解決策について解説します。

ローカル5Gとは? メリット・デメリットと活用法を解説

2021-07-28

2020年3月、国内で次世代の通信規格として新たに商用化した5G。そうしたなか、通信キャリアが展開する5Gとは別に、企業や自治体などが独自に5Gネットワークを構築できるローカル5Gが登場しました。この記事では、ローカル5Gの仕組みをはじめ、メリット・デメリット、製造業における活用法などを解説します。

プライベートLTE導入の課題と活用シーン

2021-07-28

プライベートLTEは、有線でのネットワーク構築が難しい大規模な工場、遠隔制御装置や監視装置を使用するなど、安定した通信が求められる状況において活用が期待されています。この記事では、プライベートLTEのメリットや導入のために押さえておきたい点、活用が期待できる事業などを解説します。

設備点検・監視を効率化するアナログメーターのデジタル化

2021-07-08

製造業においては人手不足の現状も無視できません。今後も深刻化していくと予想される製造業の人手不足に対応するためには、IoTを活用した業務効率化が急務です。今回は工場の設備点検・監視業務における課題やアナログメーターをデジタルデータ化するメリットについて解説します。

スマートファクトリーの実情と5G導入で期待できるメリット

2021-07-08

近年、工場の設備や機械をインターネットで接続するスマートファクトリーが注目されています。そうしたなか、スマートファクトリー化を後押しする次世代の通信技術として、高速大容量通信や多数同時接続に対応した5G回線が登場しました。この記事では、5Gの基礎知識や特徴、スマートファクトリー市場の現状、5Gを活用することによる具体的なメリットなどを解説します。