ME 310 2022-'23 AREC Team - Winter Quarter Functional system
This repository contains code to read information from a DWM1001-Dev/MDEK-1001 system and generate a heatmap.
Of particular use on the above pages:
- Raspberry Pi 3B image
- Includes MQTT broker and webserver for configuration
DWM1001C Software and Documentation Pack(.zip archive)/MDEK1001/Quick Start Guide- setup system/DMW1001/Product and Design Documents/Gateway Quick Deployment Guide- One stop shop for actually getting the system working!!
/DMW1001/Product and Design Documents/API Guide- Commands for interfacing over serial comms
At least 4 DWM1000's should be setup around the desired area on the same network as 'anchors.' A Raspberry Pi should also be connected to a DWM1000 and configured in its gateway setting. This provides an MQTT broker and web interface for finding the locations of all the beacons.
In addition, an InfluxDB database should be configured and setup to read the location data. This can be cloud or locally hosted, so long as the configuration matches in pullPos_InfluxDB.py. Telegraf should be configured to move data from the MQTT server to the influxDB database.
Beacons can be setup to move around the room, provided they are in 'tag' mode and on the same network as the anchors. Their locations will be reported to MQTT with their hardware ID's providing the topic. In addition, their information will be visible on the Raspberry Pi Gateway's web server.
A single heatmap can generated by running
python3 Heatmap.py {Location/to/save}A heatmap can be automatically generated every 5 minutes by running
python3 TimeRepeater.pyThis will simply call heatmap.py every 5 minutes with a set file path to save. This path can be customized inside the repeater file itself.
Specific points can be fed into the heatmap generator with
python3 HeatmapSynt.py Currently, this is setup to draw a single hotspot at (1,1) in order to demonstrate the feathering effect. It can be customized to read in a .csv file, or otherwise manually defined set of points.