Hosting IoT

There are several free stand-alone or online tools for monitoring IoT projects for individual users. However, the cost becomes prohibitive if you wish to share data and display graphs online and to the public. Consequently, our IoT Experimenters group focuses on open-source software systems, which offer significant learning opportunities for non-commercial purposes.

We primarily use six key open-source software systems to host our IoT systems live over the internet. Combined, this allows us to develop, process and display a range of graphical and data systems.

  1. Ubuntu is the operating system we use, chosen for its long-supported lifespan.
  2. Docker allows applications to run in isolated containers on a single computer. We utilize Docker to manage and isolate software packages such as NodeRed, InfluxDB, Grafana, and Nginx.
  3. NodeRed is a powerful programming tool to interconnect hardware devices, APIs, and online services. We have employed NodeRed as an MQTT Broker to efficiently format and store data from diverse sources in our database.
  4. InfluxDB is a robust open-source time series database. Developed using the Go programming language, it excels in storing and retrieving time series data for various purposes, including operations monitoring, application metrics, IoT sensor data, and real-time analytics.
  5. Grafana is a dynamic open-source web application for analytics and interactive visualizations. When connected to supported data sources, it offers a wide range of charts, graphs, and alerting capabilities.
  6. Nginx forwards incoming connections from the web to the corresponding application and handles encryption over the internet.

Combining all these applications on one operating system means it can sit within a Virtual Private Server (VPS), being the only ongoing cost. The VPS system is run on the following resources KVM/2GB RAM/30GB Storage/2 CPU Cores/1TB Data/Adelaide.