Dieses Mal habe ich eine Box auf der Abonnentenseite von MQTT erstellt und sie mit Pepper ausprobiert.
Klicken Sie hier, um den Inhalt des Vorgangs auf der Publisher-Seite anzuzeigen.
Ich studiere immer noch MQTT.
Verwenden Sie die folgenden Bibliotheken als MQTT-Bibliotheken für Python.
Legen Sie die MQTT-Brokerinformationen und die zu erfassenden Themeninformationen fest.
Stellen Sie eine Verbindung zum MQTT-Broker her und abonnieren Sie das Thema. Danach versetzt loop_forever es in den Empfangsbereitschaftszustand. Melden Sie sich am Ende des Programms vom Thema ab.
Informationen zur Verwendung der Bibliothek in der Box finden Sie im folgenden Artikel.
(Nachdem ich etwas überprüft hatte, wollte ich den Code reparieren)
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
def onLoad(self):
self.framemanager = ALProxy("ALFrameManager")
self.folderName = None
def onUnload(self):
import sys
self.mqttc.unsubscribe(self.topic)
if self.folderName and self.folderName in sys.path:
sys.path.remove(self.folderName)
self.folderName = None
def onInput_onStart(self, payload):
import sys, os
self.folderName = os.path.join(
self.framemanager.getBehaviorPath(self.behaviorId), "../lib")
if self.folderName not in sys.path:
sys.path.append(self.folderName)
import paho.mqtt.client as paho
self.host = self.getParameter("Broker Host")
self.port = self.getParameter("Broker Port")
self.keep_alive = self.getParameter("KeepAlive")
self.topic = self.getParameter("Topic")
self.qos = self.getParameter("Qos")
self.mqttc = paho.Client()
self.mqttc.on_message = self.onMessage
self.mqttc.connect(self.host, self.port, self.keep_alive)
self.mqttc.subscribe(self.topic, self.qos)
self.mqttc.loop_forever()
def onMessage(self, mqttc, obj, msg):
self.logger.info("topic: " + msg.topic + ", payload: " + str(msg.payload) + ", qos: " + str(msg.qos) + ", retain: " + str(msg.retain))
def onInput_onStop(self):
self.onUnload()
self.onStopped()
Überspringen Sie einfach "Hallo Welt" zum MQTT-Broker.
pub.py
# coding=utf8
import paho.mqtt.client as paho
mqttc = paho.Client()
mqttc.connect("test.mosquitto.org", 1883, 60)
mqttc.publish("my/topic/pepper5", "hello world", 1)
Führen Sie das Programm in Choregraphe aus und warten Sie, bis die Nachricht empfangen wird.
Führen Sie Publisher vom Terminal aus.
$ python pub.py
Die Nachricht Publisher-> Broker-> Subscriber wird übertragen und der Inhalt wird im Log Viewer von Choregraphe auf der Subscriber-Seite angezeigt.
Wenn Sie versuchen, die Verarbeitung beim Empfang einer Nachricht auf der Abonnentenseite in das unten stehende Formular zu ändern, spricht Pepper.
def onMessage(self, mqttc, obj, msg):
tts = ALProxy("ALTextToSpeech")
tts.say(msg.payload)
Recommended Posts