We often work with embedded devices and time-series data. Based on these experiences, we’ve found out that there is no proper and well-optimized platform that integrates devices with external clouds’ storage. During the process of developing a new sensor, we would like to have an easy way of storing reads on the public cloud. Days of research showed, that there is no solution that we will be happy to use for that purpose.
We found a few platforms but unfortunately, there are mostly closed products that we are not able to modify to fit our needs.
That’s why we decided to build our own custom solution, which simplifies to the minimum the process of sending data to the cloud but also leaves room for modifications.
First of all, we wrote down all specifications, that we wanted to achieve:
- The energy-efficient device, that can work at least one year on a battery. It will work as a bridge between a sensor and a cloud,
- The universal web application that will be able to show different types of measurements. Also, adding a new chart or changing layout should be trivial,
- The solution, that is easy to scale up and relatively cheap for maintenance. Also, it has to be transferable – we’d love to share it with others.
In the next step, we built up a prototype. We’ve chosen Amazon Web Services because it strongly supports IoT projects, which convinces us for this platform. AWS provides several useful tools for managing and secure communication between devices and storage. You can read more about it here: https://wizzdev.pl/blog/tag/aws/
It also has a good database for time-series data and when using serverless technologies, it’s cheaper than others that we were considering.
As a mobile platform, we’re using ESP32 microcontroller – we’ve got a long experience with it and it’s also an energy-saving device. You can read more about power management on ESP32 here: https://wizzdev.pl/blog/power-management-for-iot-mcus/
Our visualization was created with Vue. It’s a modern and flexible Js library. It allows us to rapidly extending visualization with new features. It is also serverless friendly technology that can be hosted on any CDN server.
While developing it, we kept in mind, that we would like to have various types of reads – as a result, adding a new type of reads is done with zero codding!
On the main page, you can see a table with all enabled devices and a list of last measurements. There is also a chart, that shows every measurement from the last 4 hours.
You can group devices based on the ‘group’ field or their ‘type’ field. These values can be set while configuring the device using an external tool described here: https://wizzdev.pl/blog/embedding-terraform-in-custom-application/,
which is used also for adding and removing devices from the database.
Here you can explore archival reads. There are some predefined time periods, that you can choose using a select box, but you are also able to define by yourself the time period from which you want to see the readings.
Our solution also displays the device configuration stored in shadow. (We’re going to post about the shadows, so stay in touch!)
We would love to share our solutions with others. We can use any sensor with ESP32 or adjust our codebase to another embedded platform. Our powerful and long experience with IoT projects and observations made during the process of developing the solution described above, allows us to estimate time to live on the battery without long and expensive tests. Our platform is a great choice for companies, that want a stable, tested solution for storing and visualizing time-series data on their own, without sharing them with untrusted third-party companies.
You can explore our visualization under this link: https://iot-demo.wizzdev.pl
If you are interested in our project, feel free to write to us: firstname.lastname@example.org