March 28, 2024
Connect Your First Device to Qubitro with MQTT and Python
In this tutorial, you'll learn how to connect your first IoT device to the Qubitro platform using MQTT and Python. This simple guide is designed for beginners and assumes no prior experience with IoT, MQTT, or Qubitro.
Prerequisites
Before we begin, make sure you have the following:
- A Qubitro account. If you don't have one, sign up at Qubitro's website.
- Python installed on your computer. Python 3.6 or higher is recommended.
- An MQTT client library for Python. We will use
paho-mqtt
for this tutorial.
Step 1: Install the Paho-MQTT Client
Open your terminal or command prompt and install the paho-mqtt
library using pip:
pip install paho-mqtt
Step 2: Create a Device on Qubitro
- Log in to your Qubitro account and navigate to the 'Devices' section.
- Click on 'Create Device' and select the device type that matches your project. For this tutorial, you can start with a generic device.
- Name your device and save the credentials provided by Qubitro. You will need the Device ID and Token for MQTT authentication.
Step 3: Connect and Publish to Qubitro with MQTT
Create a new Python file and include the following code. Remember to replace YOUR_DEVICE_ID
and YOUR_DEVICE_TOKEN
with the credentials you obtained from Qubitro.
import ssl import time import json import paho.mqtt.client as mqtt # Define the MQTT broker information and device credentials broker_host = "broker.qubitro.com" broker_port = 8883 device_id = "YOUR_DEVICE_ID" device_token = "YOUR_DEVICE_TOKEN" # Define callback functions def on_connect(client, userdata, flags, rc): if rc == 0: print("Connected to Qubitro!") else: print("Failed to connect, return code:", rc) def on_publish(client, userdata, mid): print("Published: " + str(payload)) # Create the MQTT client, set the TLS context, and provide device credentials client = mqtt.Client(client_id=device_id) context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) client.tls_set_context(context) client.username_pw_set(username=device_id, password=device_token) # Assign the callback functions to the client client.on_connect = on_connect client.on_publish = on_publish # Connect to the MQTT broker and start the client loop client.connect(broker_host, broker_port, 60) client.loop_start() # Define the payload to be published payload = { "temp": 64, "Key2": 30.5 } # Publish the payload every 2 seconds while True: if client.is_connected(): client.publish(device_id, json.dumps(payload)) time.sleep(2)
This script connects your device to Qubitro using MQTT. The on_connect
callback function confirms the connection status.
This script sets up a secure connection to Qubitro using TLS, connects to the MQTT broker, and publishes a simple payload containing temperature data. It repeats the publishing process every 2 seconds.
Step 4: Monitor Your Device Data on Qubitro
After running the script, log into your Qubitro account. You should see the data being published from your device in real-time. Use Qubitro's monitoring tools to analyze the incoming data.
Conclusion
You've now successfully connected your device to Qubitro and started publishing data using MQTT and Python. This foundation allows you to expand your IoT project by adding more devices, sensors, and data types to your Qubitro account.
Couldn't find the guide you need?
Let us know what you're looking for, and we'll create the guide for you!