Was ist MQTT? Weitere Informationen finden Sie auf den folgenden Websites. Eine kurze Erklärung ist jedoch das Lightweight-Protokoll des Pub / Sub-Messaging-Modells. Da davon ausgegangen wird, dass es von einem schwachen Gerät betrieben wird, das über IoT und WoT verbunden werden kann, sind verschiedene kostengünstige Verarbeitungen möglich.
Ich denke, Pepper kann es verwenden, also werde ich es versuchen.
MQTT Ich lerne.
Verwenden Sie die folgenden Bibliotheken als MQTT-Bibliotheken für Python.
Masu erstellt eine Python-Box und ändert den Eingabetyp von "Bang" in "String".
Die Einstellungselemente sind wie folgt.
Hier können Sie den MQTT-Broker-Host, den Port, die KeepAlive-Werte sowie die Themen-, QOS- und Retain-Werte angeben, an die die Nachricht gesendet werden soll.
Der Code sieht so aus. Holen Sie sich verschiedene Parameter, stellen Sie eine Verbindung zum MQTT-Broker her und senden Sie eine Nachricht.
Informationen zur Verwendung der Bibliothek in der Box finden Sie im folgenden Artikel.
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
def onLoad(self):
self.framemanager = ALProxy("ALFrameManager")
self.folderName = None
def onUnload(self):
import sys
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
host = self.getParameter("Broker Host")
port = self.getParameter("Broker Port")
keep_alive = self.getParameter("KeepAlive")
topic = self.getParameter("Topic")
qos = self.getParameter("Qos")
retain = self.getParameter("Retain")
mqttc = paho.Client()
mqttc.connect(host, port, keep_alive)
mqttc.publish(topic, payload, qos, retain)
def onInput_onStop(self):
self.onUnload()
self.onStopped()
Verbinden Sie das Feld "Textbearbeitung" zum Festlegen des Nachrichteninhalts und das von Ihnen erstellte Feld "MQTT".
Bereiten Sie einen Abonnenten vor, der von der MQTT Publisher-Seite gesendete Nachrichten empfängt. Es verwendet dieselbe Paho-Bibliothek wie die Pub-Seite.
sub.py
import paho.mqtt.client as paho
def on_message(mqttc, obj, msg):
print("topic: " + msg.topic + ", payload: " + str(msg.payload) + ", qos: \
" + str(msg.qos) + ", retain: " + str(msg.retain))
if __name__ == '__main__':
mqttc = paho.Client()
mqttc.on_message = on_message
mqttc.connect("test.mosquitto.org", 1883, 60)
mqttc.subscribe("my/topic/pepper", 0)
mqttc.loop_forever()
Führen Sie es auf Ihrem PC aus und warten Sie, bis Sie eine Nachricht zum Thema erhalten.
$ python sub.py
Führen Sie das Programm in Choregraphe aus und senden Sie eine Nachricht.
Die Nachricht Publisher-> Broker-> Subscriber wurde übertragen und auf der Subscriber-Seite angezeigt.
$ python sub.py
topic: my/topic/pepper, payload: Hello World from Pepper, qos: 0, retain: 0
Recommended Posts