This software tool was initially developed for our own needs to gather and analyze precision and accuracy of position data measured by Ultra Wide Band system that is based on DecaWave DWM1001 devices. The system is indeed capable of measuring the location of Tags (devices) with accuracy of ~4" (10 cm), although some tweaking may be required while positioning the sensors (Anchors) and tracked devices (Tags). There are incredible number of possible implementations of UWB technology in variety of industries and we are proud to note that we realized this potential way before Apple came up with announcement of including UWB in iPhone 11.
In the process of development we enhanced system capabilities by removing the constraints of archiving the measured data on the UWB Gateway. The gateway consists of Raspberry Pi 3B Model2 and a UWB device in a Bridge Node role. With the help of Python programming, Serial access and MQTT we extended the location of measured data to the Cloud, again, through MQTT protocol, and accessing this data anywhere in the world with our application, again over MQTT protocol. Therefore, the application users with their PC or laptop do not have to be in the WiFi range from the UWB Gateway.
For the application to work correctly it should be properly configured in the following order:
Configuration Tab contains Tags Configuration sub-tab. You can define static tag alias, coordinates, and ID. The latter should match the device hardware ID as set by DecaWave, for example "0C0E". It is imperative to provide full information in order to ensure correct software operation and and especially the ability to analyze the measurement precision and accuracy.
Tags can be further categorized for convenience by Group, Category, and Class to ease identification of tags in a multi-tag scenarios.
Trigger is the logical condition that gets signaled when the measure position of the Tag crosses the boundaries of the defined Geo-Fence. Trigger can be Ingress (signaled when Tag is entering Geo-Fence) or Egress (when Tag is exiting Geo-Fence). The application allows to define a trigger to be of either kind along with Area Plan the trigger "belongs" to and Email and/or SMS recipient. These recipients will be notified when Geo-Fence trigger is signaled/breached.
Users may chose to modify Python scripts on Raspberry Pi and publish UWB-measured position data in any online MQTT Broker. The application provides a few examples of free online MQTT Brokers such as Amazon's CloudMQTT and Flespi MQTT, both running Mosquitto MQTT Broker. The data format is identical to that resulting from 'lep' command ran on DWM1001 device shell.
Video - Connecting to MQTT Broker
Connection Wizard located on Data Acquisition tab makes it easy:
When position data is being received and displayed on Data Acquisition tab and user switches to Real-Time Tracking tab, the latter displays the measured positions as they arrive into the application.
This tab also allows enabling/disabling monitoring of the triggers that were configured earlier.
Data Acquisition and Analysis
Connecting to pre-configured online MQTT Broker and subscribing to the topic published by UWB Gateway.
Position Data is displayed in real-time. Switching to Data Analysis tab automatically creates data snapshot of all received data so far that can be analyzed immediately .
While receiving position data in real-time - switching to Real-Time Tracking tab will show the position of objects/people tagged with UWB Tag relatively to the floor plan.