1.1.3.4. 動作確認をする(実⾏コード例)

本項では、「構成A: Things Cloud・温湿度センサー利用」における動作確認方法・実行コード例について記載しています。

なお、本書中の設定値の「< >」の表記については、ご利用の環境により各自入力いただく箇所となります("<"から">"までを設定値に置き換えてください)。

Things Cloud接続情報確認

IoT機器にて設定するにあたり、転送先クラウドサービスのThings Cloudの接続・設定情報を確認します。

事前に設定したThings Cloudについて、以下の情報が分からない場合は下記の手順でご確認ください。

  • MQTT Client ID
  • SmartRESTテンプレ―トID
  1. ブラウザーにて以下のURLにアクセスし、Things Cloudにログインします。

    • Things Cloudログインページ: https://<Things Cloudテナント名>.je1.thingscloud.ntt.com/
  2. 画面左上に「デバイス管理」と表示されていることを確認します。「デバイス管理」ではない場合、画面右上のメニューから「デバイス管理」をクリックしてください。

    Device Management
  3. 画面左のメニューより、「デバイス」>「すべてのデバイス」をクリックし、リスト中にIoTデバイスが表示されていることを確認します。

    Device List
  4. 対象のIoTデバイスをクリックし、デバイスの詳細画面に移動します。

  5. 詳細画面中のメニューより、「識別子」をクリックし、遷移先画面の「外部ID」の値を確認・保存してください。こちらの値が「MQTT Client ID」です。

    MQTT Client ID
  6. 画面左のメニューより、「デバイス タイプ」>「SmartREST テンプレート」をクリックし、テンプレート一覧を表示し、対象のSmartRESTテンプレートの「ID」の値を確認・保存してください。こちらの値が「SmartRESTテンプレ―トID」です。

    SmartREST Template

データ転送テスト

Raspberry Piでのデータ転送

  1. Raspberry Piのターミナルを開きます。

  2. 以下のコマンドを実行します。

    $ 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>
    
  3. ターミナル上に、以下のような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でのデータ受信確認

  1. ブラウザーにて以下のURLにアクセスし、Things Cloudにログインします。

    • Things Cloudログインページ: https://<Things Cloudテナント名>.je1.thingscloud.ntt.com/
  2. 画面左上に「デバイス管理」と表示されていることを確認します。「デバイス管理」ではない場合、画面右上のメニューから「デバイス管理」をクリックしてください。

    Device Management
  3. 画面左のメニューより、「デバイス」>「すべてのデバイス」をクリックし、リスト中にIoTデバイスが表示されていることを確認します。

    Device List
  4. 対象のIoTデバイスをクリックし、デバイスの詳細画面に移動します。

  5. 詳細画面中のメニューより、「計測値」をクリックし、遷移先画面のグラフにデータ(温度:25度、湿度:60%)が表示されていることを確認します。

    Temp Result
    Hum Result

注釈

本手順を実施し、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.")