1.1.4.4. 動作確認をする(実行コード例)¶
本項では、「構成B: Things Cloud・GPSセンサー利用」における動作確認方法・実行コード例について記載しています。
なお、本書中の設定値の「< >」の表記については、ご利用の環境により各自入力いただく箇所となります("<"から">"までを設定値に置き換えてください)。
Things Cloudの接続情報を確認する¶
IoT機器にて設定をするにあたり、転送先クラウドサービスのThings Cloudの接続・設定情報を確認します。
事前に設定したThings Cloudについて、以下の情報が分からない場合は下記の手順でご確認ください。
- MQTT Client ID
ブラウザーにて以下のURLにアクセスし、Things Cloudにログインします。
- Things Cloudログインページ: https://<Things Cloudテナント名>.je1.thingscloud.ntt.com/
画面左上に「デバイス管理」と表示されていることを確認します。「デバイス管理」ではない場合、画面右上のメニューから[デバイス管理]をクリックしてください。
画面左のメニューより、[デバイス]>[すべてのデバイス]をクリックし、リスト中にIoT機器が表示されていることを確認します。
対象のIoT機器をクリックし、デバイスの詳細画面に移動します。
詳細画面中のメニューより、[識別子]をクリックし、遷移先画面の「外部ID」の値を確認・保存してください。
データ転送テストをする¶
Raspberry Piにてデータ転送をする¶
Raspberry Piのターミナルを開きます。
以下のコマンドを実行します。
$ mosquitto_pub --host an1.icgw.ntt.com --port 1883 --qos 0 --topic s/us -m ',43.0000,141.0000' -i <Things CloudでのMQTT Client ID>
ターミナル上に、以下のようなMQTT転送のステータスが表示されることを確認します。
Client xxxxx sending CONNECT Client xxxxx received CONNACK (0) Client xxxxx sending PUBLISH (d0, q0, r0, m1, 's/uc/xxxxx', ... (6 bytes)) Client xxxxx sending DISCONNECT
Things Cloudにてデータの受信確認をする¶
ブラウザーにて以下のURLにアクセスし、Things Cloudにログインします。
- Things Cloudログインページ: https://<Things Cloudテナント名>.je1.thingscloud.ntt.com/
画面左上に「デバイス管理」と表示されていることを確認します。「デバイス管理」ではない場合、画面右上のメニューから[デバイス管理]をクリックしてください。
画面左のメニューより、[デバイス]>[すべてのデバイス]をクリックし、リスト中にIoT機器が表示されていることを確認します。
対象のIoT機器をクリックし、デバイスの詳細画面に移動します。
詳細画面中のメニューより、[位置]をクリックし、遷移先画面の地図上に位置情報(緯度:北緯43度、経度:東経141度)が表示されていることを確認します。
データ転送テストの手順は以上です。
実行Pythonコードサンプルを確認する¶
位置情報データの取得およびThings Cloudへのデータ転送を繰り返し(※)実行するPythonコードのサンプルを掲載します。
注釈
- (※)実行を停止するには、「Ctrl」+「c」を入力します。
GPS_TC.py
import time
import subprocess
from gps3 import gps3
# Set Parameters
ADDR = "an1.icgw.ntt.com"
PORT = "1883"
TOPIC = "s/us"
QOS = "0"
ID = "10000000b524bfa7"
socket = gps3.GPSDSocket()
data_stream = gps3.DataStream()
socket.connect()
socket.watch()
try:
for gps_data in socket:
if gps_data:
data_stream.unpack(gps_data)
now = data_stream.TPV['time']
lat = data_stream.TPV['lat']
lon = data_stream.TPV['lon']
if (now != 'n/a' and lat != 'n/a' and lon != 'n/a'):
cmd = "mosquitto_pub --host " + str(ADDR) + " --port " + str(PORT) + " --qos " + str(QOS) + " --topic " + str(TOPIC) + " -m '" + str(lat) + "," + str(lon) + "' -i " + str(ID)
proc = subprocess.run(cmd, shell = True)
print('Time: ', now)
print('Lat: ', lat)
print('Lon: ', lon)
# every 1 seconds
#time.sleep(1)
except KeyboardInterrupt:
print("Ended program by KeyboardInterrupt.")
quit()
except StopIteration:
socket = None
print("GPSD has terminated.")