공유 구독 사용해 보기 - Watson IoT Platform
Watson IoT Platform 사용하기에서 IoT 앱을 준비했습니다.
Watson IoT Platform에서 공유 구독을 사용해 보세요.
1. Watson IoT Platform 서비스 준비
Watson IoT Platform 사용하기을 참조하여 Watson IoT Platform 서비스를 준비합니다.
Watson IoT Platform - 디바이스 등록 및 센서 데이터 전송을 참조하여 조직 이름, 장치 유형, 장치 ID, auth token 및 구독자 API 키와 auth token을 제공합니다
2. 파이썬 클라이언트에서 pub/sub 해보기
01_dev_pub.py
import paho.mqtt.client as mqtt
import random
import time
org = "6桁の組織ID"
device_type = "デバイス・タイプ" #device type
device_id = "デバイスID" #Defined as "Device ID" in Watson IoT Platform
auth_token = "18桁のauth-token" #auth token
username = "use-token-auth"
broker = org + ".messaging.internetofthings.ibmcloud.com"
client = "d:" + org + ":" + device_type + ":" + device_id
topic = "iot-2/evt/status/fmt/json"
def on_connect(client, userdata, rc):
print("Connected with result code "+str(rc))
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
def publish():
cnt = 1
while 1:
temp = random.randrange(250,450)/10.0
humid = random.randrange(500,1000)/10.0
print "counter = " + str(cnt) + ", temp = " + str(temp) + ", humid = " + str(humid)
msg = " {\"d\": {\"Counter\": " + str(cnt) + ",\"Temperature\": " + str(temp) +",\"Humidity\": " + str(humid) + "} }"
client.publish(topic, msg, 0, True)
cnt = cnt + 1
time.sleep(2)
if __name__ == '__main__':
client = mqtt.Client(client_id=client, clean_session=True, protocol=mqtt.MQTTv311)
client.username_pw_set(username, password=auth_token)
client.on_connect = on_connect
client.on_message = on_message
client.connect(broker, 1883, 60)
publish()
02_appl_shared_sub.py
import paho.mqtt.client as mqtt
org = "6桁の組織ID"
applId = "アプリ名(「shared_sub_appl」など)"
api_key = "「a-組織ID-10桁」形式のAPIキー" #API key
auth_token = "18桁のauth-token値" #auth-token
broker = org + ".messaging.internetofthings.ibmcloud.com"
# Only "A" was the key. No other change was needed. 17/04/24
client = "A:" + org + ":" + applId
topic = "iot-2/type/デバイス・タイプ/id/+/evt/status/fmt/json"
def on_connect(client, userdata, rc):
print("Connected with result code "+str(rc))
client.subscribe(topic)
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
if __name__ == '__main__':
client = mqtt.Client(client_id=client, clean_session=True, protocol=mqtt.MQTTv311)
client.username_pw_set(api_key, password=auth_token)
client.on_connect = on_connect
client.on_message = on_message
client.connect(broker, 1883, 60)
client.loop_forever()
결과 확인
-공유 구독하고 있던 02_appl_shared_sub.py 첫째로부터의 출력
-공유 구독하고 있던 02_appl_shared_sub.py 두 번째로부터의 출력
-공유 구독하고 있던 02_appl_shared_sub.py 세 번째로부터의 출력
Reference
이 문제에 관하여(공유 구독 사용해 보기 - Watson IoT Platform), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/egplnt/items/53e91914b3c3192db111텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)