[PYTHON] Créer une boîte de publication MQTT

introduction

Boîte de publication MQTT

Utilisez les bibliothèques suivantes comme bibliothèques MQTT pour Python.

Masu crée une boîte Python et change le type d'entrée de "bang" à "string".

2015032101.png

Éléments de réglage

Les éléments de réglage sont comme ça.

Vous permet de spécifier l'hôte du courtier MQTT, le port, les valeurs KeepAlive et les valeurs de rubrique, QOS et Retain auxquels envoyer le message.

2015032102.png

Code Python

Le code ressemble à ceci. Obtenez divers paramètres, connectez-vous au courtier MQTT et envoyez un message.

Pour savoir comment utiliser la bibliothèque dans la boîte, je me suis référé à l'article suivant.

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()

Connectez-vous avec Choregraphe

Connectez la boîte "Text Edit" pour régler le contenu du message et la boîte "MQTT" que vous avez créée.

2015032103.png

Côté abonné

Préparez un abonné qui recevra les messages envoyés du côté éditeur MQTT. Il utilise la même bibliothèque Paho que le côté Pub.

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()

Contrôle de fonctionnement

Exécuter l'abonné

Exécutez sur votre PC et attendez de recevoir un message pour le sujet.

$ python sub.py

Exécutez Publisher

Exécutez le programme dans Choregraphe et envoyez un message.

Affichage des résultats

Le message Éditeur-> Courtier-> Abonné a été transmis et affiché du côté Abonné.

$ python sub.py
topic: my/topic/pepper, payload: Hello World from Pepper, qos: 0, retain: 0

Impressions

Recommended Posts

Créer une boîte de publication MQTT
Créer une boîte de publication MQTT Partie 2
Créer une boîte d'abonné MQTT
Faisons un plugin Errbot
Créer une boîte HTTP Get
Créer une boîte à Tweet pour Pepper
Créer un diagramme composite RVB 3 couleurs
Créer un exe Scrapy avec Pyinstaller