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  }