Im vorherigen Artikel (http://qiita.com/yokobonbon/items/be0da968bba40b396187) habe ich erklärt, dass es einfach ist, IoT-Geräte mit Python zu emulieren.
Dieses Mal möchte ich die Lebendigkeit des Geräts mithilfe des Pub / Sub-Mechanismus von AWS IoT einfach überwachen.
Das in Vorheriger Artikel erstellte Objekt wird verwendet. Implementieren Sie daher den Inhalt.
Auf der Geräteseite wird davon ausgegangen, dass das Client-Zertifikat und die UUID des Geräts zur Ausführung angegeben sind. Es handelt sich um eine einfache Implementierung, die ein Thema für die Überwachung von Leben und Tod auf der Geräteseite registriert. Wenn dort eine Nachricht eingeht, wird sie beantwortet.
Unten finden Sie einen Beispielcode für Python
class AWSIoTClient:
def __init__(self, endpoint, rootCA, key, cert, uuid):
self.myMQTTClient = AWSIoTMQTTClient("python-thing")
self.myMQTTClient.configureEndpoint(endpoint, 8883)
self.myMQTTClient.configureCredentials(rootCA, key, cert)
self.myMQTTClient.configureOfflinePublishQueueing(-1) # Infinite offline Publish queueing
self.myMQTTClient.configureDrainingFrequency(2) # Draining: 2 Hz
self.myMQTTClient.configureConnectDisconnectTimeout(10) # 10 sec
self.myMQTTClient.configureMQTTOperationTimeout(5)
self.notificationTopic = uuid + "/notification"
self.eventTopic = uuid + "/event"
def start(self):
self.myMQTTClient.connect()
print "Wating for : " + self.notificationTopic
self.myMQTTClient.subscribe(self.notificationTopic, 1, self.customCallback)
def customCallback(self, client, userdata, message):
print message.payload
callbackMessage = "{\n I'm healthy\n}"
client.publish(self.eventTopic, callbackMessage, 1)
def main():
args = Args()
client = AWSIoTClient(args.getEndpoint(), args.getRootCA(), args.getKey(), args.getCert(),
args.getUUID())
client.start()
while True:
time.sleep(1)
Die Abonnementmethode MQTTClient überwacht das Thema "UUID / Benachrichtigung". Wenn eine Nachricht in das Thema geschrieben wird, wird die customCallback-Methode aufgerufen, um die Nachricht in das Thema "UUID / Ereignis" zu schreiben. Dadurch wird die Überwachung von Leben und Tod einfach realisiert.
Der Wert 1 im zweiten Argument der Subscribe-Methode repräsentiert den QOS von MQTT.
Die Implementierung der Python-App funktioniert wie folgt
python python-thing.py -e XXXX.iot.ap-northeast-1.amazonaws.com -r root-CA.crt -c test_thing.cert.pem -k test_thing.private.key -u 1234
Nachdem das Gerät bereit ist, können Sie über die AWS IoT-Konsole eine Nachricht an das Thema senden. In der AWS IoT-Konsole können Sie "Test" auswählen, um eine Nachricht an ein Thema "Veröffentlichen" zu senden oder eine Nachricht "Abonnieren" zu lesen.
Zunächst wird das Thema 1234 / event mit einer Integritätsprüfung vom Gerät zurückgegeben. Abonnieren Sie es daher wie folgt.
Senden Sie dann eine Nachricht an das 1234 / Benachrichtigungsthema, auf das das Gerät wartet:
Die Geräteseite empfängt die Themennachricht und antwortet wie folgt auf 1234 / Ereignis.
Die Überwachung von Leben und Tod kann leicht realisiert werden, indem eine Nachricht an ein anderes Thema zurückgegeben wird, wenn eine Nachricht an ein bestimmtes Thema kommt. AWS IoT ist großartig, da dies in wenigen Stunden von Ihnen selbst erreicht werden kann.
Recommended Posts