This repository has been archived on 2025-02-01. You can view files and clone it, but cannot push or open issues or pull requests.
esp8266-temperature/messaging-mqtt/paho-sensorrandom-pub.go
2018-04-20 09:43:56 +02:00

44 lines
940 B
Go

package main
import (
MQTT "github.com/eclipse/paho.mqtt.golang"
"math/rand"
"encoding/json"
"time"
)
type sensordata struct {
Temperature float32
Humidity float32
Battery float32
Light float32
}
func main() {
opts := MQTT.NewClientOptions().AddBroker("tcp://localhost:1883")
opts.SetClientID("go-sipmle-publish")
c := MQTT.NewClient(opts)
if token := c.Connect(); token.Wait() && token.Error() != nil {
panic(token.Error())
}
rand.Seed(time.Now().UTC().UnixNano())
for i := 0; i < 1000; i ++ {
d := sensordata{randfun(0, 20), randfun(10, 30), randfun(0, 100), randfun(0, 255)}
text, _ := json.Marshal(d)
token := c.Publish("abqGF3nbCeYIYzOckDrU1vOq6uuU16rb/test/counter2/", 2, false, text)
if token.Wait() && token.Error() != nil {
panic(token.Error())
}
time.Sleep(5 * time.Second)
}
}
func randfun(min int, max int) float32 {
t := rand.Float32() * float32(max-min)
return float32(min) + t
}