1.1.3.4. 動作確認をする(実⾏コード例)¶
本項では、「構成A: Things Cloud・温湿度センサー利用」における動作確認方法・実行コード例について記載しています。
なお、本書中の設定値の「< >」の表記については、ご利用の環境により各自入力いただく箇所となります("<"から">"までを設定値に置き換えてください)。
Things Cloudの接続情報を確認する¶
IoT機器にて設定するにあたり、転送先クラウドサービスのThings Cloudの接続・設定情報を確認します。
事前に設定したThings Cloudについて、以下の情報が分からない場合は下記の手順でご確認ください。
- MQTT Client ID
- SmartRESTテンプレ―トID
ブラウザーにて以下のURLにアクセスし、Things Cloudにログインします。
- Things Cloudログインページ: https://<Things Cloudテナント名>.je1.thingscloud.ntt.com/
画面左上に「デバイス管理」と表示されていることを確認します。「デバイス管理」ではない場合、画面右上のメニューから[デバイス管理]をクリックしてください。
画面左のメニューより、[デバイス]>[すべてのデバイス]をクリックし、リスト中にIoT機器が表示されていることを確認します。
対象のIoT機器をクリックし、デバイスの詳細画面に移動します。
詳細画面中のメニューより、[識別子]をクリックし、遷移先画面の「外部ID」の値を確認・保存してください。こちらの値が「MQTT Client ID」です。
画面左のメニューより、[デバイス タイプ]>[SmartREST テンプレート]をクリックし、テンプレート一覧を表示し、対象のSmartRESTテンプレートの「ID」の値を確認・保存してください。こちらの値が「SmartRESTテンプレ―トID」です。
データ転送テストをする¶
Raspberry Piにてデータ転送をする¶
Raspberry Piのターミナルを開きます。
以下のコマンドを実行します。
$ mosquitto_pub --host an1.icgw.ntt.com --port 1883 --qos 0 --topic s/uc/<Things CloudのSmartRESTテンプレートID> -m ',25,60' -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機器をクリックし、デバイスの詳細画面に移動します。
詳細画面中のメニューより、[計測値]をクリックし、遷移先画面のグラフにデータ(温度:25度、湿度:60%)が表示されていることを確認します。
注釈
本手順を実施し、Things Cloudにデータが送信された後、「1.1.3.2. Things Cloudを設定する - アラートメール送信設定をする」に記載のアラートメール送信設定を実施いただくことが可能となります。
実行Pythonコードサンプルを確認する¶
温湿度データの取得およびThings Cloudへのデータ転送を繰り返し(※)実行するPythonコードのサンプルを掲載します。
注釈
- (※)実行を停止するには、「Ctrl」+「c」を入力します。
Temp-Hum_TC.py
import RPi.GPIO as GPIO
import dht11
import time
import datetime
import subprocess
# Set Parameters
ADDR = "an1.icgw.ntt.com"
PORT = "1883"
TOPIC = "s/uc/<Things CloudのSmartRESTテンプレートID>"
QOS = "<QoS>"
ID = "<Things CloudでのMQTT Client ID>"
# initialize GPIO
GPIO.setwarnings(True)
GPIO.setmode(GPIO.BCM)
# read data using pin 14
temp_sensor = dht11.DHT11(pin=14)
try:
while True:
result = temp_sensor.read()
if result.is_valid():
print("Last valid input: " + str(datetime.datetime.now()))
cmd = "mosquitto_pub --host " + str(ADDR) +" --port "+ str(PORT) + " --qos " + str(QOS) + " --topic " + str(TOPIC) + " -m '," + str(result.temperature) + "," + str(result.humidity) + "' -i " + str(ID)
proc = subprocess.run(cmd, shell = True)
print("Temperature: %-3.1f C" % result.temperature)
print("Humidity: %-3.1f %%" % result.humidity)
except KeyboardInterrupt:
print("Cleanup")
GPIO.cleanup()
print("Ended program by KeyboardInterrupt.")