This project was a student experiment, which provides tools. The main idea was to read data from many heat meters at the same time and present it on a mobile application or web application. The project has a few parts
- IoT reading data from meter via MODBUS
- IoT support WiFi configuration manager
- Send data to an external database
- Read data via mobile app
- Provide API for mobile app
- Create an admin panel to manage devices and related data
IoT
A microcontroller is a base to establish communication between meter and device. The microcontroller after establishing a connection with WIFI can communicate with the server sending data to the service via API. I had to create a script that will be able to read the register of the meter and support HTTP requests and also help with managing WIFI.
Rest API
API was necessary to receive incoming requests from microcontrollers and also to provide data and authentication for the mobile app. API and web UI were handled by the Laravel framework.
Mobile app
My part on the mobile app was only to provide API, for the application and authentication based on OAuth2.
UI
The concept for the design for the user page was simple: provide more rounded and wavy shapes, which could be related to the water. Colors should be between bluish (cold) and purple-red (hot), which could represent cold-hot water. Page was built with Laravel with Vue.js elements.
Other features
The system is able to automatically generate invoices. In the system, there is a simple invoice payment tracker (paid, not paid).