デバイスのデータを SORACOM Harvest Data に保存する
デバイスのデータを Harvest Data に保存します。
操作を始める前に準備が必要です (クリックして確認してください)
(1) SORACOM Air for セルラーの IoT SIM、および IoT SIM を利用できるデバイスを準備する
各種デバイスでの IoT SIM の使用方法については 各種デバイスで SORACOM Air を使用する を参照してください。
(2) Harvest Data を有効化する
デバイスのデータを Harvest Data に保存する場合は、デバイスに取り付けた IoT SIM が所属するグループで Harvest Data を有効化します。詳しくは、Harvest Data を有効化する を参照してください。
準備完了IoT SIM を利用するデバイスまたは LoRaWAN デバイスから、Harvest Data のエントリポイントへデータを送信すると、自動的に送信元の IoT SIM の IMSI とタイムスタンプがデータに付与され、Harvest Data にデータが保存されます。LoRaWAN デバイスからデータを送信すると、LoRaWAN ゲートウェイ ID 等も自動的に付与されます。
HTTP でデータを送信する場合、Harvest Data のエントリポイントに HTTP POST リクエストを送信してください。また、データの種類を content-type で指定してください。
コマンド例:
$ curl -v -X POST http://harvest.soracom.io \
-H "content-type:application/json" \
-d '{
"temperature": 20,
"latitude": 35.677097,
"longitude": 139.732950
}'
x-soracom-timestamp
ヘッダーで UNIX 時間 (ミリ秒) を指定すると、任意の時刻のデータとして Harvest Data に保存できます。
2023 年 12 月 24 日 20 時 58 分 34 秒 123 (1671883114123
) に送信したデータとして保存する例:
$ curl -v -X POST http://harvest.soracom.io \
-H "content-type:application/json" \
-H "x-soracom-timestamp:1671883114123" \
-d '{
"temperature": 20
}'
HTTP でデータを送信する場合、Harvest Data のエントリポイントに HTTP POST リクエストを送信してください。
x-soracom-timestamp
ヘッダーに任意の時刻の UNIX 時間 (ミリ秒) を指定すると、データの送信日時を変更できます。
import requests
# header = {"x-soracom-timestamp": f'1671883114123'} # Custom data send time {#http-python-header--x-soracom-timestamp-f1671883114123--custom-data-send-time}
header = {}
payload = {"temperature": 20}
response = requests.post("http://harvest.soracom.io", headers=header, json=payload)
print(response.status_code)
print(response.text)
Harvest Data のエントリポイント (harvest.soracom.io:8514
) に TCP でデータを送信します。簡単にテストする場合は、telnet
コマンドが便利です。
hello
を TCP で送信するコマンドの例は、以下のとおりです。
$ telnet harvest.soracom.io 8514
Trying 100.127.xxx.xxx...
Connected to 100.127.xxx.xxx.
Escape character is '^]'.
hello
201
^]
telnet> quit
Connection closed.
送信が成功すると、上記のようにレスポンスコード 201
が返ります。
Harvest Data のエントリポイント (harvest.soracom.io:8514
) に UDP でデータを送信します。簡単にテストする場合は、nc
コマンドが便利です。
hello
を UDP で送信するコマンドの例は、以下のとおりです。
$ echo -n "hello" | nc -u -w10 harvest.soracom.io 8514
201
送信が成功すると、上記のようにレスポンスコード 201
が返ります。
LoRaWAN デバイスを設定する の ステップ 2: SORACOM Harvest Data を使って疎通確認する を参照してください。
マルチバイト文字を送信する際は、ユーザーコンソールでの文字化けを避けるために、UTF-8 でエンコードしてください。