imu-tools
v0.1.4
Published
Web browser subscription to BLE and MQTT IMU sensor data
Downloads
19
Readme
IMU BLE / MQTT Subscription
This package allows code in a web page to subscribe to data that is published by an ESP32 connected to a BNO055 IMU. The ESP32 should be running either the MicroPython code in imu-tools, or the Arduino (C++) code in Arduino-BLE-IMU. See those projects for information on how to configure the ESP32.
Additional examples are in osteele/imu-client-examples.
Usage – MQTT
To use this code with an MQTT broker, include the MQTT library in the header
(between the <head>
and the </head>
tags) of the HTML file:
<script src="https://cdn.jsdelivr.net/npm/[email protected]/paho-mqtt.js"></script>
Add the following to sketch.js
to import the onSensorData
function, and use
it to subscribe to sensor data:
import {
mqttConnect,
onSensorData,
} from "https://cdn.jsdelivr.net/npm/imu-tools/index.js";
mqttConnect({ hostname: "example.com" });
onSensorData((data) => console.info("sensor data:", data));
The hostname
option to mqttConnect
can also specify a port number:
"example.com:1877"
. The options may also include username
, password
, and
deviceid
. If deviceId
is specified, only messages from the specified device
are processed.
Connection Settings Control Panel
The MQTT broker can be set by enabling a control panel that allows the user to specify the MQTT connection settings.
Add the following to the HTML header:
<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/dat.gui.min.js"></script>
The page will now display a control panel in the upper right corner.
The location of the control panel can be customized by adding an HTMl element
with id connection-gui
.
The controller saves the connection settings to local storage. They are used by all pages that include this library.
Acknowledgements
This code uses the Eclipse Paho JavaScript Client for MQTT connectivity. It uses dat.gui to display the control panel.
License
MIT