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  }