gobot.io/x/gobot/v2@v2.1.0/examples/keyboard_mqtt.go (about) 1 //go:build example 2 // +build example 3 4 // 5 // Do not build by default. 6 7 package main 8 9 import ( 10 "gobot.io/x/gobot/v2" 11 "gobot.io/x/gobot/v2/platforms/keyboard" 12 "gobot.io/x/gobot/v2/platforms/mqtt" 13 ) 14 15 func main() { 16 keys := keyboard.NewDriver() 17 mqttAdaptor := mqtt.NewAdaptor("tcp://iot.eclipse.org:1883", "conductor") 18 19 work := func() { 20 keys.On(keyboard.Key, func(data interface{}) { 21 key := data.(keyboard.KeyEvent) 22 23 switch key.Key { 24 case keyboard.ArrowUp: 25 mqttAdaptor.Publish("rover/frente", []byte{}) 26 case keyboard.ArrowRight: 27 mqttAdaptor.Publish("rover/derecha", []byte{}) 28 case keyboard.ArrowDown: 29 mqttAdaptor.Publish("rover/atras", []byte{}) 30 case keyboard.ArrowLeft: 31 mqttAdaptor.Publish("rover/izquierda", []byte{}) 32 } 33 }) 34 } 35 36 robot := gobot.NewRobot("keyboardbot", 37 []gobot.Connection{mqttAdaptor}, 38 []gobot.Device{keys}, 39 work, 40 ) 41 42 robot.Start() 43 }