MQTT and Python For Beginners -Tutorials
源自於 http://www.steves-internet-guide.com/mqtt-python-beginners-course/
發行訊息至broker
Main Client Methods
The paho mqtt client class has several methods.The main ones are:
- connect() and disconnect()
- subscribe() and unsubscribe()
- publish()
Each of these methods is associated with a callback. See Later.
Importing The Client Class
To use the client class you need to import it. Use the following:
Import paho.mqtt.client as mqtt
Creating a Client Instance
The client constructor takes 4 optional parameters, as shown below .but only the client_id is necessary, and should be unique.
Client(client_id=””, clean_session=True, userdata=None, protocol=MQTTv311, transport=”tcp”)
To create a instance use:
client =mqtt.Client(client_name)
Connecting To a Broker or Server
Before you can publish messages or subscribe to topics you need to establish a connection to a broker.
To do this use the connect method of the Python mqtt client.
The method can be called with 4 parameters. The connect method declaration is shown below with the default parameters.
connect(host, port=1883, keepalive=60, bind_address="")
Note: You only need to supply the broker name/IP address.
The general syntax is
client.connect(host_name)
公開 MQTT Borker
- ESP8266 连接到免费的公共 MQTT 服务器 - broker.emqx.io:1883
- test.mosquitto.org - test.mosquitto.org:1883
- Sandboxes | IoT development made simple - mqtt.eclipse.org:1883
- The Public MQTT Broker by HiveMQ - Check out our MQTT Demo - broker.hivemq.com:1883
Publishing Messages
Once you have a connection you can start to publish messages.
To do this we use the publish method.
The publish method accepts 4 parameters. The parameters are shown below with their default values.
publish(topic, payload=None, qos=0, retain=False)
The only parameters you must supply are the topic, and the payload.
The payload is the message you want to publish.
The general syntax is:
client.publish("house/light","ON")
Example Python Script:
We are now in a position to create our first Python Script to Publish a message.
The script below publishes the message OFF to topic house/main-light
import paho.mqtt.client as mqtt #import the client1
broker_address="192.168.1.184"
#broker_address="iot.eclipse.org" #use external broker
client = mqtt.Client("P1") #create new instance
client.connect(broker_address) #connect to broker
client.publish("house/main-light","OFF")#publish
import time import paho.mqtt.client as mqtt #import the client1 broker_address="broker.hivemq.com" #broker_address="iot.eclipse.org" #use external broker client = mqtt.Client("P1") #create new instance client.connect(broker_address) #connect to broker client.publish("alex9ufo/house/main-light","OFF")#publish print ("publish (alex9ufo/house/main-light,OFF") time.sleep(10) client.publish("alex9ufo/house/main-light","ON")#publish print ("publish (alex9ufo/house/main-light, ON")
沒有留言:
張貼留言