{"id":18096160,"url":"https://github.com/bbilly1/aqi_monitor","last_synced_at":"2026-04-11T01:44:46.616Z","repository":{"id":62626180,"uuid":"339277867","full_name":"bbilly1/aqi_monitor","owner":"bbilly1","description":"This is a place to show off what went into building my AQI measuring station.","archived":false,"fork":false,"pushed_at":"2024-04-03T13:49:34.000Z","size":1426,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-02T04:17:12.634Z","etag":null,"topics":["aqi","aqi-measuring-station","aqi-monitor","arduino","docker","docker-compose","esp8266","flask","microcontroller"],"latest_commit_sha":null,"homepage":"https://www.lpb-air.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbilly1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-16T03:48:06.000Z","updated_at":"2024-05-04T09:30:40.511Z","dependencies_parsed_at":"2023-10-20T17:05:55.125Z","dependency_job_id":"4d57405d-a47a-41f6-afbb-b5200118d901","html_url":"https://github.com/bbilly1/aqi_monitor","commit_stats":{"total_commits":157,"total_committers":1,"mean_commits":157.0,"dds":0.0,"last_synced_commit":"a1aeb97e41d425c564c4e4b09ca06ab4d468b061"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbilly1%2Faqi_monitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbilly1%2Faqi_monitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbilly1%2Faqi_monitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbilly1%2Faqi_monitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbilly1","download_url":"https://codeload.github.com/bbilly1/aqi_monitor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247428418,"owners_count":20937471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aqi","aqi-measuring-station","aqi-monitor","arduino","docker","docker-compose","esp8266","flask","microcontroller"],"created_at":"2024-10-31T19:12:51.427Z","updated_at":"2026-04-11T01:44:41.590Z","avatar_url":"https://github.com/bbilly1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AQI sensor project\n\n![social_preview.jpg](web/static/img/social_preview.jpg?raw=true \"Preview\")  \nThis is a place to show off what went into building my AQI measuring station currently publishing to:\n\n[lpb-air.com](lpb-air.com)\n\nThis site is under constant development. The main purpose is educational.\n\nThe webserver is a simple VPS, provisioned with docker-compose.yml.\n\n## aqi_monitor\n*aqi_monitor.ino* is the arduino script running on the **nodeMCU ESP8266** microcontroller. The microcontroller posts data to the flask backend on a regular interval. This is a legacy option, not in use any more now due to it's limitations.\n\n## aqi_monitor_py\nRewritten sensor script in Python, runs on a raspberry pi instead.\n\nConnected to that is:  \n* SDS011: pm2.5 and pm10 sensor from Nova Fitness.\n* BME280: Pressure Humidity Temperature Sensor Module.\n\n## web\nA [flask](https://pypi.org/project/Flask/) based application that takes the data from the ESP8266 for processing and storage and renders a HTML/CSS/JavaScript frontend from template.   \n[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.  \nPython interacts with Postgres with the help of the [psycopg](https://www.psycopg.org/) library.  \nThe 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/).  \nNew data is pulled from the backend on a interval with JavaScript and XMLHttpRequest library.  \n\n## credits\nThe Lightbox to take a closer look at the graphs is curtesy of [Lokesh Dhakar](https://github.com/lokesh/lightbox2).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbilly1%2Faqi_monitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbilly1%2Faqi_monitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbilly1%2Faqi_monitor/lists"}