For this week, I looked into the different software to actually gather data from our system.
Three components: a dashboard and UI layer, a database to hold the data, and (optionally) containers
For UI to make an optimal dashboard for all sensors, I found Grafana to be optimal. Grafana is optimized to display data from sensors with speed and temperature, and has built-in user-friendly features to help users implement dashboards. It has an easy setup and is very lightweight in terms of storage and processing power required, making it optimal for a Raspberry Pi.
Alternatives include:
- Kibana- Which is better when you need to search for things, which is a feature we don’t really need
- Redash- Which is optimized to display only SQL databases
- MetaBase- Which is very user-friendly, but meant to display business analytics rather than temperature, fan speed, etc.
InfluxDB will be the database platform we plan to use. It can easily pull and push sensor data with Python and does so very efficiently. Furthermore, all data is time-stamped and optimized for sensors. InfluxDB is also very lightweight and fast, which makes it easy to use on the Pi.
Alternatives include:
- QuestDB- high-performance, fast-speed DB, but uses SQL interface, and I don’t know SQL
- Prometheus- This requires exports to transfer data, which is heavier and bulky
Lastly, Docker is a container system used to work across different systems. The code will exist within a sandbox so that it’s not run locally. This prevents the “works on one machine but not another” problem. I’ve used Docker before in a software engineering class and have a good understanding of it, and I believe it will make our project better
Another thing to note is that there already exists a bunch of software that links Grafana to InfluxDB to Docker, so if I get stuck, I have a handful of other repositories to reference.