Skip to the content.

TU Delft ENS mmWave

This serves as a guide to deploy mmWave sensors using TI IWR6843K mmWave board as developed at ENS Group at TU Delft. Image

Project Contributors

  1. Akshit Gupta
  2. Erwin Russel

    Under the guidance of Marco Zuniga and Fernando Kuipers.

Code Organisation

Indoors

For the indoor use case, we are using the sense and direct HVAC configuration for the IWR6843K mmWave board.

Once the board is flashed with the desired firmware (Sense and Direct HVAC in this case), we can get the data in a UART stream. The remaining files are concerned with receiving the data, parsing it and pushing it to our database and dashboard.

Outdoor

Needs updating by Erwin

Software Stack

The software stack is organised as follows.

Image

Basically, the system follows a TIG stack, a popular architecture used in real time IoT and monitoring applications.

  1. The code for reading the UART stream from the board is based on Python. Details for this are already discussed in previous section.
  2. This data is sent to central influxDB server running on Google Cloud Platform (on port 8086). It is recommended to become familiar with the advantages of using a time series database over standard SQL (here)[]. Basically, for IoT time series data with high duty cycle, time series data makes the storage of measurements efficient.
  3. On the pi, telegraf is also used to push real time performace metrics to this influxDB server. The duty cycle is set to 1 reading every 30s and the the configuration file for telegraf is located at the default location (/etc/telegraf/telegraf.conf)
  4. For dashboard, grafana is used which is deployed on the same server running influxDB on Google Cloud Platform (on port 3000). Again, it is recommended to atleast become familiar with the advantages of making the dashboard using grafana over custom built HTML/CSS/JS and the ease of use. Overall, Telegraf-InfluxDB-Grafana support nearly seamless integration and later if needed, the real time logs, the reading of the people count and point cloud data can also be sent using telegraf using file input or tail plugin.

Step by Step to deploy a new node

On Raspberry Pi, install dependencies i.e. Python3, Telegraf To push people count data from mmWave sensor to influxDB.

git clone  repo_url //change repo url
cd mmWave
nano config.ini //change deviceId to uniquely identify device
nohup python3 client.py > output.log &

To push performance characteristics, setup telegraf with below configuration.

[agent]
hostname = “EWI-1”
flush_interval = “30s”
interval = “30s”
# Input Plugins
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
report_active = false
[[inputs.disk]]
ignore_fs = [“tmpfs”, “devtmpfs”, “devfs”]
[[inputs.io]]
[[inputs.mem]]
[[inputs.net]]
[[inputs.system]]
[[inputs.swap]]
[[inputs.netstat]]
[[inputs.processes]]
[[inputs.kernel]]
# Output Plugin InfluxDB
[[outputs.influxdb]]
database = “telegraf”
urls = [ “influxDb url" ]
username = “askENS”
password = “askENS”

Creating new users to access data in Grafana and InfluxDb

Grafana contains 3 types of users namely admin, editor and viewer. The admin details are shared with ENS and new users can be created on request. To create new account follow the steps here. The grafana server is running on port 3000 of the server and influxDB on port 8086.

References

  1. https://dev.ti.com/tirex/explore/node?node=AJoMGA2ID9pCPWEKPi16wg__VLyFKFf__LATEST
  2. https://docs.influxdata.com/influxdb/v1.8/
  3. https://www.influxdata.com/time-series-platform/telegraf/
  4. https://grafana.com/docs/grafana/latest/getting-started/
  5. https://nwmichl.net/2020/07/14/telegraf-influxdb-grafana-on-raspberrypi-from-scratch/

Support or Contact

Having trouble with any of these steps? Mail us and we’ll help you sort it out.