MQTT/Mosquitto

From Teknologisk videncenter
Jump to: navigation, search

Example on publish/subscribe

Publish script

NOTE: No security in this example

#!/bin/bash

# Publish:
# Robot/stand4/motor/x/rpm
# Robot/stand4/motor/x/temperatur
# Robot/stand4/motor/x/position
# Robot/stand8/motor/y/rpm
# Robot/stand8/motor/y/temperatur
# Robot/stand8/motor/y/position
# henrik/cputemp/fahrenheit

publish() {
         mosquitto_pub -h 93.166.84.21 -m $1 -t $2
}

robot() {
        XRPM=`echo "$RANDOM % 500 + 1000" | bc`
        YRPM=`echo "$RANDOM % 500 + 1000" | bc`
        XPOS=`echo "$RANDOM % 360" | bc`
        YPOS=`echo "$RANDOM % 360" | bc`
        XTMP=`echo "$RANDOM % 50 + 150" | bc`
        YTMP=`echo "$RANDOM % 50 + 150" | bc`

        publish $XRPM  "robot/${1}/motor/x/rpm"
        publish $YRPM  "robot/${1}/motor/y/rpm"
        publish $XPOS  "robot/${1}/motor/x/position"
        publish $YPOS  "robot/${1}/motor/y/position"
        publish $XTMP  "robot/${1}/motor/x/temperatur"
        publish $YTMP  "robot/${1}/motor/y/temperatur"
}


while :
do
        TEMPERATUR=`echo "$RANDOM % 50 + 150" | bc`
        publish $TEMPERATUR  "henrik/cputemp/fahrenheit"
        echo -en "."
        sleep 2
        robot stand4
        sleep 1
        robot stand8
        sleep 1
done

Subscribe

Example 1:

mosquitto_sub -v -h 93.166.84.21 -t '#'

Example 2:

mosquitto_sub -v -h 93.166.84.21 -t 'robot/+/motor/+/rpm'

Mosquitto on Ubuntu

To use mosquitto on all interfaces and anonymous. Add these lines to /etc/mosqquitto/mosquitto.conf

allow_anonymous true
listener 1883 0.0.0.0