Contents
APIの作成(HTTP request Nodeの利用)
1.概要
GCP(Google Cloud Platform)のVM(Virtual Machine)上のデータベースに蓄えたセンサデータの解析やバックアップ(長期保管)のために、VM上のデータベースのデータを外部からアクセスして取り出す必要があります。そのためにVMにアクセスする方法の一つとして、API(Application Programming Interface)を定義してデータの取得を行う方法があります。
いちご農家のビニールハウスの環境データ(気温、湿度、気圧、空気清浄度、二酸化炭素濃度)をVMのデータベース上に蓄積し、APIで呼び出す実験を行いましたので報告します。
APIを解読して、データベースにアクセスしデータを返す処理は、Node-REDで実現しました。
2.APIの仕様
2-1.APIのフォーマット
以下の5つのデータをJSONフォーマットでHTTP Requestの“GET”メソッドで送信します(date情報はオプション)。
JSONの例
{“login”:”sample@abc.ad.jp”,
“passid”:”abc123xyz789”,
“sensor”:”BME680”,
“node”:2,
“date_from:”,”2022-06-11T13:30:00+9:00”,
”date_to”:”2022-06-12T13:30:00+9:00”}
2-2.取得できる(返される)データ
APIで指定したノード、センサ、日付のデータを取得できます.
2-3. nodeの説明
Node番号は、いちご農家で各R-MSMに接続されたLPWA(Low Power Wide Area)無線機の番号です。
事務所のGateWayに接続された親機がNode1で、子機は5台でNode2~Node6まであります。
2-4.ステータスコード
HTTP Responseのステータスコードとして下記の番号を返却します。’200’はOKです。
2-5.dateの補完処理
date情報はオプションです。省略された場合以下の様に補完処理を行います。
[注意事項]
日付が誤っていたりした場合には、データが返りますが、補完された日付の場合があります。日付を確認いただくか、ステータスコードを確認ください。
3. APIの実装内容
3-1. 実装項目
GCPのVM上のNode-REDで上記APIのアクセスを処理します。処理内容は、大きく次の6つです。
1) login名とpassidのチェック
2) sensor名のチェック
3) dateの妥当性チェック
4) nodeの妥当性チェック
5) sensorとdateとnodeがOKであれば、
a. データベースからデータを取り出す
b. Logに記録を残す(login名とpassidとアクセス内容)
6) HTTP Responseを返す
3-2. Node-REDの実装
4. テスト
4-1. テスト項目
以下の18項目を代表のテストとして行いました。
4-2. テストのNode-RED実装
5. Node-REDでの取得例