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