# 概要
自社のアナログ式漏水検知センサーから送られてきたデータをクラウドに蓄積し、漏水情報の確認および漏水検知アラートを行うクラウドサービスの開発
# 担当
バックエンドの設計と開発を担当、私以外のチーム構成は以下のとおり
- 窓口担当:1人
- フリーランスの外注(フロントエンド開発):1人
計 3人
# 使用技術や開発環境等
- Python
- Lambda
- API Gateway
- DynamoDB
- Amplify
- IoT Core
- Amazon SES
- CloudFormation
- S3
- Cognito
- SAM CLI
- Docker
- WSL
# 背景
不動産関連企業様に新規開発製品となる漏水検知センサーの開発依頼を打診されました。
IoT業界参入のために、自社が得意とするアナログ式センサーの開発だけでなく、可視化のためのWebサービスの内製化が必要であると判断し開発着手に至りました。
# 課題
自社で開発するセンサーがLTE回線でクラウドと直接通信を行う仕様とSub-GHz無線と自社開発のIoTゲートウェイを介して通信を行う仕様とで2種類開発されており、Webサービスはセンサーの通信方式を気にせず可視化を行う必要がありました。
特にIoTゲートウェイを介する場合は、ゲートウェイの組み込みソフト内でセンサーの紐づけを行うといったことを行うため、Webサービス上でセンサー登録が二度手間となってしまうといった課題がありました。
# 取り組み
以下のようにAWSのマネージドサービスを活用しバックエンドを構築しました。
- センサーから送信されたデータはIoT Coreで受け付け、Lambdaを活用してデータ整形などの後続処理を行いDynamoDBへの蓄積
- Webサービスのフロントエンドからバックエンドに対する操作を行うためにAPI GatewayとLambdaを活用したAPIを用意し、蓄積されたデータを取得したり、バックエンドへセンサー情報を登録したりするための仕組みを実装
- Lambdaを活用してセンサーから送信されたデータの内容からユーザーへのメール通知を行う
- ユーザー認証基盤にCognitoを活用
- フロントエンドはAWS Amplify Hostingでホスティング
- ロギングにCloudWatchを活用
# 工夫した点
- IoT Eventsを活用してセンサー、もしくはゲートウェイから通信があったかどうかの死活監視を実現しました
- IoT ゲートウェイを介したかどうかの判断ができるように、ペイロードにゲートウェイの状態や現在紐づけているセンサーの一覧情報を付与してもらうように組み込みソフト開発担当者に打診しました。その結果、ゲートウェイ自体の死活監視もできるようになった事に加え、IoTゲートウェイ内の紐づけ情報を用いてクラウド側で差分をとりながら登録情報を更新することができるようになりました。
# 取り組みの結果
これらの取り組みによって、自社で開発中の漏水検知センサーと連携するWebサービスを構築でき、展示会出展や国交省が取り組むワンコイン浸水センサ実証実験などの実証実験に参加できるまでになりました。