2021年03月22日
by RAMBO
【2023年11月24日追記】
・GTR-388LTE-M(Type-K)はHTTP/HTTPSの通信に対応していません。
・GTR-388LTE-M(Type-D)はシリアルナンバーがJ00463以降のモデルは
HTTP/HTTPSの通信に対応しています。(2021年9月頃以降に販売)
GTR-388LTE-M は取得データを
で設定した宛先に送信することができます。
今回は、TCP Socketでデータを受信するための、サンプルプログラムを紹介します。
1. 受信用サーバーの準備
AWS の EC2 上に作成した Linux サーバーインスタンス上で待ち受けプログラムを動作させます。
サンプルのプログラムは Python3 で作成します。 server.py
というファイル名にしています。
import socket
HOST = "XXX.XXX.XXX.XXX" # サーバーのIPアドレス
PORT = 5000 # ポート番号(5000にしています)
BUFSIZE = 4096
tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_server.bind((HOST, PORT))
tcp_server.listen()
while True:
client, address = tcp_server.accept()
print("Connected!! [ Source : {}]".format(address))
data = client.recv(BUFSIZE)
print("Received Data : {}".format(data))
client.send(b"OK")
client.close()
2. GTR-388LTE-M 宛先の設定
Config Tool にて宛先を設定します。
起動後、[Communication]タブにて
項目 |
設定 |
(E0)Host IP 1 |
サーバーのIPアドレス |
(E1)Host Port number1 |
サーバープログラムで指定したポート番号
上記例だと5000 |
を設定します。また、(A1)のチェックを外してください。
[Motion Sensor]タブにて、(Rb)Report Media in static のテキストボックスをクリックします。
「Report Media Coise」ダイアログが表示されるので、TCP
を選択し、[Apply]をクリックします。
設定後、デバイスに設定を書き込んでください。
3. データの受信
3-1. サーバープログラムの起動
1で作成したプログラムを起動します。
python3 server.py
3-2. デバイスの起動
GTR-388LTE-M を起動します。
端末を振る(5秒以上)などし、内蔵のGセンサーで動きを検知させ、データを送信します。
3-3. データの確認
データ受信に成功すると、画面に表示されます。
パケットキャプチャ結果です(黄色: サーバー, 緑色: クライアント)。
(参考)テスト用データの送信
クライアント用プログラムを作成することで、デバイスがなくてもテスト用データを送信することができます。
import socket
HOST = "XXX.XXX.XXX.XXX" # サーバーのIPアドレス
PORT = 5000 # ポート番号
BUFSIZE = 4096
tcp_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_client.connect((HOST, PORT))
tcp_client.send(b"GSr,GTR-388,XXXXXXXXXXXXXXX,0000,5,a080,3,>180321,081602,E14230.8271,N4341.5351,236,0.01,346,10,0.7,12400mV,>3114mV,0,6,23,00,00,00,00*68!")
response = tcp_client.recv(BUFSIZE)
print("[*]Received a response : {}".format(response))
tcp_client.close()