context about pandas and matplotlib in the backend

This commit is contained in:
simon 2021-03-08 11:14:38 +07:00
parent 054a544ee6
commit 0fe1e73d17
1 changed files with 8 additions and 3 deletions

View File

@ -4,7 +4,7 @@ This is a place to show off what went into building my AQI measuring station cur
[lpb-air.com](lpb-air.com)
This is a *Minimum Viable Product* and under development. The main purpose is educational.
This is under constant development. The main purpose is educational.
The webserver is a simple VPS, provisioned with docker-compose.yml.
@ -16,7 +16,12 @@ Connected to that is:
## backend
A [flask](https://pypi.org/project/Flask/) based application that takes the data from the ESP8266 for processing and storage.
[Postgres](https://www.postgresql.org/) handles the storage of the measurements. The data is split up into two different tables, one for aqi related data and one for the weather data.
[Postgres](https://www.postgresql.org/) handles the storage of the measurements. The data is split up into two different tables, one for aqi related data and one for the weather data.
Python interacts with Postgres with the help of the [psycopg](https://www.psycopg.org/) library.
The flask app is recreating the graphs to visualize the aqi, PM 2.5 and PM 10 values on an interval. Aggregating is done with the [Pandas](https://pandas.pydata.org/) Python library and the graphs are created with [matplotlib](https://matplotlib.org/).
The backend runs on a separate subdomain so it could easily be scaled horizontaly onto a separate server in the future.
## frontend
A simple web site that gets AQI values from the backend to publish it nicely to see. Mostly build with HTML/CSS/JS and a little bit of PHP.
A simple web site that gets AQI values from the backend to publish it nicely to see. Mostly build with HTML/CSS/JS and a little bit of PHP.
New data is pulled from the backend on a interval with JavaScript and XMLHttpRequest library.
The Lightbox to take a closer look at the graphs is curtesy of [Lokesh Dhakar](https://github.com/lokesh/lightbox2).