LoginSignup
0
2

More than 1 year has passed since last update.

環境センサーのデータをスマホでモニタリングする(Flutter) - データ蓄積編 -

Last updated at Posted at 2021-08-31

概要

  • 新型コロナの影響で環境センシングデバイス、可視化ツールの需要が高まっている。
  • 前回「IoT-DX-Kit」を使って、スマホのFlutterアプリ上で気温、湿度を可視化してみた。
  • 今回はクラウド(AWS)上にデータ蓄積を行う。
  • EC2インスタンスやRDB、S3を使わない方法を試してみた。

AWSのCloudWatchにデータが温湿度データが蓄積されている様子
スクリーンショット 2021-08-31 9.08.03.png

用意するもの

  • IoT-DX-Kit マイコンボード
  • DHT22 温湿度センサー
  • AWSアカウント

環境構築

(1)Flutterをインストール
 https://www.arduino.cc/en/main/software
(2)Flutter Blueをインストール
 https://github.com/sparkfun/SparkFun_MAX3010x_Sensor_Library
(3)AWSアカウントを作成

構成

APIサーバーを作らず、API Gateway宛に届いたPOSTデータを契機にLambdaがCloudWatchに書き込むようにする
スクリーンショット 2021-08-31 9.25.40.png

プログラミング

Lambdaにて、POSTされたデータをCloudWatchに書き出すスクリプトを書いておく
LambdaはデフォルトでCloudWatch Logにログを書き出すようになっているのでIAM設定の必要はなし

名前:(任意)
ランタイム:Node.js 14.x
アクセス権限:AWS ポリシーテンプレートから新しいロールを作成
ロール名:(任意)

スクリーンショット 2021-08-31 9.53.33.png
テストイベントの作成」からテストを作って、実行後ステータス200で正常終了することを確認する

index.js
exports.handler = (event, context, callback) => {
    console.log("callback response " + JSON.stringify(event['body-json']));
    callback(null, {"message":"Received!"});
};

API GatewayでAPIリソース(/reciever)を追加する
スクリーンショット 2021-08-31 9.55.55.png

Flutter側で、API Gatewayより発行されたURLにに温湿度データをPOSTする処理を追加する
API Gatewayでは、x-api-key ヘッダーでアクセス制限をかけておく

lib/utils/little_endian_extractor.dart
Future<void> sendjson(data) async {
  final url =
      "https://abcabcabc.execute-api.ap-northeast-1.amazonaws.com/test-receiver-999-105/receiver";
  Map requestBody = {
    "temperture": (data.getInt8(0) + data.getInt8(1) / 100),
    "humidity": (data.getInt8(2) + data.getInt8(3) / 100),
    "datetime": DateTime.now().toString()
  };
  String body = json.encode(requestBody);
  print(body);
  http.Response response =
      await http.post(Uri.parse(url), body: body, headers: {
    "Content-Type": "application/json",
    "x-api-key": "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabc"
  });
  var res = json.decode(response.body);
  print(res);
}

検証

CloudWatchでデータが蓄積されている様子
スクリーンショット 2021-08-31 10.02.23.png

ダッシュボードからウィジェットを追加すればグラフ表示も可能

スクリーンショット 2021-08-31 10.07.03.png
ダッシュボードの設定
スクリーンショット 2021-08-31 10.09.13.png

次回に向けて

  • 蓄積したデータを他のAWSサービスを利用して分析に使うことを考えてみる
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2