RPICT and MQTT
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"
MQTT_PATH = "RPICT7V1"
MQTT_USER = "emonpi"
MQTT_PASS = "emonpimqtt2016"
CHANNELS = ["NodeID", "RP1", "RP2", "RP3", "RP4", "RP5", "RP6", "RP7",
"Irms1", "Irms2", "Irms3", "Irms4", "Irms5", "Irms6", "Irms7",
"Vrms"]
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)
client.connect(MQTT_SERV)
try:
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:
client.disconnect()
ser.close()