From lechacal
Revision as of 20:35, 31 May 2019 by Administrator (Talk | contribs)

Jump to: navigation, search

There are two ways to setup MQTT.
1/ Running a python script.
2/ Using Emonhub.

Using Python Script

In this setup the Raspberrypi where the RPICT is will be the MQTT broker. A script will run to convert the serial string from the RPICT into channel feed.

Setup Mosquito broker

Install Mosquitto using the commands below:

sudo apt install -y mosquitto mosquitto-clients

Enable the service to start at boot time:

sudo systemctl enable mosquitto.service

Make the script

A simple python script can be edited. Create a file with the content of the script below:

MQTT_SERV = "localhost"

CHANNELS = ["NodeID", "RP1", "RP2", "RP3", "RP4", "RP5", "RP6", "RP7",
		"Irms1", "Irms2", "Irms3", "Irms4", "Irms5", "Irms6", "Irms7",

import paho.mqtt.client as mqtt
import serial
ser = serial.Serial('/dev/ttyAMA0', 38400)

client = mqtt.Client("P1")
client.username_pw_set(MQTT_USER, MQTT_PASS)

 	while 1:
 		# Read one line from the serial buffer
		 line = ser.readline()
	 	# Remove the trailing carriage return line feed
	 	line = line[:-2]
	 	# Create an array of the data
	 	Z = line.split(' ')
	 	# Print it for debug
	 	print line
		# Publish to the MQTT broker
 		for i in range(len(Z)):
 			client.publish("%s/%s" % (MQTT_PATH, CHANNELS[i]), Z[i]) 
except KeyboardInterrupt:

Modify the five parameters MQTT_SERV, MQTT_PATH, MQTT_USER, MQTT_PASS and CHANNELS to your needs.

Save the file and launch it with the command

python myfile.py

Using Emonhub