catch-img

【第二回Meraki D-1グランプリ入賞!】MerakiとAWSを連携させよう


2023 年 8 月 4 日(金)に開催されたシスコシステムズ合同会社主催Meraki D-1グランプリにて、弊社の有志メンバー(NOP D-1チーム)による応募作品「スマートオフィスソリューション」が"未来の働き方賞 "を受賞しました!!!
※第二回Meraki D-1グランプリ とは?⇒こちら


作品提出にあたり、ソリューションの紹介動画を作成しております。
ソリューションの背景や実装については、以下の紹介動画を見ていただけると嬉しいです🙌

MerakiはAPI機能が非常に拡充されており、スマートオフィスソリューションも既存のMeraki環境に追加でMeraki Dashboardへの設定と、AWS Lambdaへのプログラムのみで実装が可能です。
今回は技術記事として会議室案内ソリューションについて、Merakiで使用したAPI機能をご紹介させていただきます!

※本ブログでご紹介している「スマートオフィスソリューション」は、当イベントの応募作品であり、弊社で提供しているサービスではありませんのでご了承ください。

目次[非表示]

  1. 1.コンポーネント説明
    1. 1.1.Meraki Dashboard
    2. 1.2.Meraki MV22
    3. 1.3.API Gateway
    4. 1.4.AWS Lambda
    5. 1.5.(参考)S3
    6. 1.6.(参考)Rekognition
  2. 2.会議室案内 構成図 および 処理フロー
    1. 2.1.人物検知を通知
    2. 2.2.Get Device Camera Analytics Live
    3. 2.3.Generate Device Camera Snapshot
  3. 3.おわりに


コンポーネント説明

Meraki Dashboard

Meraki DashboardはMerakiシリーズの設定から監視まで可能なクラウドダッシュボード APIの設定もここから可能
Merakiシリーズの設定から監視まで可能なクラウドダッシュボード
APIの設定もここから可能

Meraki MV22

Meraki MV22はMerakiシリーズのカメラ Snapshot APIを使って画像の取得などが可能
Merakiシリーズのカメラ
Snapshot APIを使って画像の取得などが可能

API Gateway

API GatewayはAWS上で動くサービス Meraki DashboardからWebhookを受け取り、AWS Lambdaに渡す。
AWS上で動くサービス
Meraki DashboardからWebhookを受け取り、AWS Lambdaに渡す。

AWS Lambda

AWS LambdaはAWS上でコード実行ができるサービス Gatewayから呼び出す
AWS上でコード実行ができるサービス
Gatewayから呼び出す

(参考)S3

S3はAWS上のストレージサービス 他のAWSサービスと連携してファイル等のやり取りが可能
AWS上のストレージサービス
他のAWSサービスと連携してファイル等のやり取りが可能

(参考)Rekognition

RekognitionはAWS上で画像解析ができるサービス S3に保存された画像の解析や、画像同士の比較が可能。
AWS上で画像解析ができるサービス
S3に保存された画像の解析や、画像同士の比較が可能。

会議室案内 構成図 および 処理フロー

会議室案内ソリューションのコンポーネント同士がどう繋がっているのか解説します!

会議室案内ソリューションの構成図 Merakiから通知されたAWSはCamera Analystics Liveを発出 映像に映っている人数が帰ってきたら、snapshot を取得

※説明内では説明のため人物検知をトリガーにしておりますが、プライバシー保護の観点から他の人為的な手段を推奨いたします。ソリューションではローカルサーバーを使用いたしました。

人物検知を通知

Merakiで管理されているカメラで何かを検出したら通知が発出されるように設定します。

Meraki Dashboardのカメラの設定からモーションアラートを開いている
カメラの設定からモーションアラートで、イベント検出頻度や感度の設定が可能です。
アラートスケジュールを「常時」もしくは「スケジュールする」にすることで動体検出時に指定した宛先に通知を飛ばすことができます。
BETA版のようですが、「人を検出時のみアラート」という設定も可能なようです。

Meraki Dashboardの「ネットワーク全体」から、「設定」>「アラート」を開いている
「ネットワーク全体」から、「設定」>「アラート」に進みます。
AWSのAPI Gatewayから入手したWebhookの宛先をURLに設定します。任意の名前を設定しておくことで、他の項目でWebhookの指定をすることができるようになります。

Meraki Dashboardの「ネットワーク全体」から、「設定」>「アラート」に進み、ページ内のカメラの項目に移動し、「モーションアラートのカスタム受信者」にチェックを入れている
同ページ内のカメラの項目に移動し、「モーションアラートのカスタム受信者」にチェックを入れます。
追加受信者に、先ほど設定した任意の名前を利用して「Webhook:任意の名前」が設定できるようになっていますので追加します。
ここまでの設定で、カメラが何かしらのモーションを検知したときに設定したWebhookの宛先に通知を送ることができるようになりました。


Get Device Camera Analytics Live

動画では省略しておりますが、Get Device Camera Analytics LiveのAPIを使用することで、現在映っている人数のカウントを行っています。
Rekognitionで解析するにあたり、「snapshot内の人物が1名である」という縛りがあった方が画像が扱いやすいです。今回のソリューションを作るにあたっては、S3に認証したい人物が1人で映っている画像を格納し、画像のファイル名を人物の名前にしてあります。snapshot側も1名の画像で固定することで、比較が容易になります。

Lambdaへの記載例
    #人数数える処理
    url = "https://api.meraki.com/api/v1/devices/****/camera/analytics/live"
    payload = None
    headers = {
        "Accept": "application/json",
        "X-Cisco-Meraki-API-Key": "****"
    }
    response = requests.request('GET', url, headers=headers, data = payload)


レスポンス例
    { "ts": "2018-08-15T18:32:38.123Z", "zones": { "0": { "person": 1 } } }


Generate Device Camera Snapshot

Generate Device Camera SnapshotのAPIを使用することで、指定したシリアルのMeraki MVに映っている映像がsnapshotとして保存され、画像が表示されるURLがレスポンスとして返されます。
URLはAWS Lambdaのtmp領域を用いて一時的に保存し、S3にアップロードを行います。

Lambdaへの記載例
    #snapshotの生成
     url = "https://api.meraki.com/api/v1/devices/****/camera/generateSnapshot"
     payload = {}
     headers = {
     "Content-Type": "application/json",
     "Accept": "application/json",
     "X-Cisco-Meraki-API-Key": "****"
     }
     response_snapshot = requests.request('POST', url, headers=headers, data=payload)

レスポンス例
    { "url": "https://spn4.meraki.com/stream/jpeg/snapshot/****",
    "expiry": "Access to the image will expire at 2018-12-11T03:12:39Z." }

おわりに

今回はNOPのスマートオフィスソリューションについてご紹介させていただきました。
お気づきかもしれませんが、顔認証までのシステムで手元に必要なものはMerakiのカメラのみです。AWSについても、ネット上のナレッジが非常に豊富で 0からAWSを触った筆者でもすぐに扱えました。また、APIを使う都合上Merakiとの親和性も高く、今後サービス実装に当たっては必須になってくるかと思います。

ネットワンパートナーズでは積極的にDevNet活動に取り組んでおり、これまでの活動もパートナーBLOG紹介しております。ぜひご確認ください!

Meraki MVでアイデア創出!Cisco D-1グランプリ受賞の裏側を参加メンバーに聞く

これからのネットワークエンジニアに必要な武器とは?NOP DevNet取り組みのご紹介 実装ハードルの低い顔認証システムをぜひ試してみてください!

Cisco Innovation Challengeにチャレンジ!

窪田瑛(くぼたあきら)

窪田瑛(くぼたあきら)

ネットワークエンジニア志望
ご不明な点はお気軽に
お問い合わせください
ソリューション・カタログは
こちら