MQTT

From XinaBox Wiki!
Jump to: navigation, search

XinaBox operates an MQTT server for the purpose of allowing users of our kits, at time of writing, XK01 and XK07, to capture data as they are uploaded from the kits to the internet.

MQTT.svg

As per the above diagram, the kits - here illustrated as 3 x XK01 kits, are uploading data either to the XinaBox MQTT server or to the ThinSat MQTT server. That is determined when the CW01 in each of the kits are been provisioned, by means of a dropdown, where either XinaBox or ThinSat is selected. See more on the pages regarding configuring XK01 and XK07.

If ThinSat is selected, the data runs straight from the ThinSat MQTT server to the Space Data Dashboard (sdd.nsldata.com), which is maintained by NearSpaceLaunch as part of the Virginia Space program. Only participants of that program will be able to gain access to that server environment.

However choosing the XinaBox MQTT server, will allow you to see the data on the XinaBox dashboard, data.xinabx.cc. The website is a sandboxed website, which means everybody have access to all data and all configuration, and can do what pleases them, for that reason we need to verify your intentions before giving you access to data.xinabox.cc.

The dashboard is based on Kibana with data stored on an ElasticSearch database. It is beyond this documentation to describe how to to use the Kibana software, as plenty of online tutorials are available. The intention with the sandboxed dashboard, is to give the user an easy access to data and allowing to graph or even download the data to a spreadsheet.

Own Server/Own Cloud

You can however also get access to the MQTT server and subscribe to your (and others data). The subscribed data can then be forwarded to either your own server or to a cloud based environment, such as Microsoft Azure, Google Cloud, or Amazon Web Services.

The data arrives as JSON formatted data, see below example for XK01:

{
	"GS": {
		"SW01": {
			"Temperature(C)": 29.75,
			"Humidity(%)": 10,
			"Pressure(Pa)": 82825,
			"Altitude(m)": 1668
		},
		"SL01": {
			"Lux": 448,
			"UVA(mW/m^2)": -37,
			"UVB(mW/m^2)": -39,
			"UVI": -0.078794
		},
		"CW01": {
			"RSSI(dB)": -90,
			"Chip ID": "10746701",
			"MAC": "5C:CF:7F:A3:FB:4D",
			"Firmware": "1.400"
		},
		"Input": {
			"Unit Name": "My Unit"
		},
		"Timestamp": {
			"Created": "2018-12-04T16:21:58"
		}
	}
}

Access

  • Server: mqtt.xinabox.cc
  • Port: 1883
  • Username: -
  • Password: -
  • Topic: x/data/<index>/<chip-id>
  • Where <index> is the index entered during the CW01 configuration, the default is smallsat.
  • and <chip-id> is the identity of the specific CW01.

You can typically subscribe to a top level, such as x/data/myindex/# allowing you to read all the data from myindex