{"id":24757728,"url":"https://github.com/hkoosha/homer1","last_synced_at":"2026-04-26T16:31:21.179Z","repository":{"id":45676817,"uuid":"408107309","full_name":"hkoosha/homer1","owner":"hkoosha","description":"Home air quality monitoring. esp32 project to read sensors and write to influxdb and prometheus: PMS5003, S8, BMP180, SHT3X","archived":false,"fork":false,"pushed_at":"2024-02-11T07:41:56.000Z","size":815,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T09:11:25.655Z","etag":null,"topics":["airquality","airquality-sensor","airqualitymonitoringsystem","bmp180","esp-idf","esp32","influxdb","pms5003","prometheus","s8","sgp30","sht3x"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hkoosha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-09-19T11:22:24.000Z","updated_at":"2025-01-15T17:02:43.000Z","dependencies_parsed_at":"2025-01-28T15:45:32.450Z","dependency_job_id":null,"html_url":"https://github.com/hkoosha/homer1","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hkoosha/homer1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkoosha%2Fhomer1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkoosha%2Fhomer1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkoosha%2Fhomer1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkoosha%2Fhomer1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hkoosha","download_url":"https://codeload.github.com/hkoosha/homer1/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkoosha%2Fhomer1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32305032,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["airquality","airquality-sensor","airqualitymonitoringsystem","bmp180","esp-idf","esp32","influxdb","pms5003","prometheus","s8","sgp30","sht3x"],"created_at":"2025-01-28T15:34:53.870Z","updated_at":"2026-04-26T16:31:21.164Z","avatar_url":"https://github.com/hkoosha.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Update\n\nThis project is ported to Raspberry Pi Pico: https://github.com/hkoosha/homer2\n\n## What?\n\nA project to read out sensors connected to ESP32 and write to InfluxDB and expose for Prometheus. ESP-IDF based.\n\nRaspberry Pi auto configuration included (for Grafana, Prometheus and InfluxDB).\n\nSensors:\n\n- BMP180\n- SHT3X\n- S8 (SenseAir)\n- PMS5003\n\n## How?\n\n- Clone this project.\n- Setup [esp idf](1) locally.\n- Run `idf.py menuconfig`. In homer1 menu:\n  - Wifi: optionally set Wifi SSID and password or disable wifi for debugging.\n  - Reporting: optionally enable [InfluxDB](https://www.influxdata.com/) and\n    [Prometheus](https://prometheus.io/).\n  - Sensors: enable the sensors you're planning to connect. Configure and take\n    note of the pins you will connect the sensors to here. do **NOT** enable\n    SGP30.\n  - Display: if you have an e-paper [driver](https://www.waveshare.com/wiki/E-Paper_ESP32_Driver_Board)\n    board, enable it here, and configure the pin used for interrupt signal\n    comming from driver board to the main esp32. If you don't have a driver\n    board nonetheless but would like to write the sensor readings to I2c bus\n    you can still use this functionality.\n- Connect the sensors to the pins you configured above. All I2C sensors go to\n  the same pins. S8 and PMS5003 each go to different pins because without a\n  mux, UART can only support a single device.\n- Connect the power to esp32 and see the readings in serial console or on\n  e-paper.\n\n### e-paper display\n\nThe Arduino file is located in [displayer\\_esp32](displayer_esp32) directory.\nIt's writetn for a 7.5 waveshare\n[e-paper display](https://www.waveshare.com/product/displays/7.5inch-e-paper.htm),\nusing the [driver](https://www.waveshare.com/wiki/E-Paper_ESP32_Driver_Board) board.\nA proper UI is TBD and not yet written.\n\n### Prometheus / InfluxDB / Grafana\n\nYou can find the configuration scripts for InfluxDB and Prometheus on a raspberry\npi in [raspberry](./raspberry/) directory. If you're not using raspberry you can\nstill get the grafana dashboard scripts from here.\n\n## ROADMAP\n\n- Make it power consumption friendly.\n- SHT3X takes no calibration.\n- SGP30 causes panic in interrupt handler of i2c.\n\n#### References\n\nSome BMP180 code stolen from:\n[krzychb/bmp180-tests](https://github.com/krzychb/bmp180-tests) [APACHE-2.0]\u003cbr\u003e\nSome S8 code stolen from:\n[SFeli/ESP32_S8](https://github.com/SFeli/ESP32_S8/blob/master/ESP32_S8_01.ino)\u003cbr\u003e\nSome Prometheus ideas got from:\n[polyfloyd/esp32-sensornode](https://github.com/polyfloyd/esp32-sensornode)\n\n## Screenshots\n\nInfluxDB:\n\n![InfluxDB](screenshots/influxdb.png)\n\u003cbr\u003e\n\u003cbr\u003e\n\nGrafana:\n\n![Grafana](screenshots/grafana.png)\n\u003cbr\u003e\n\u003cbr\u003e\n\nSerial output:\n\n![esp32 output](screenshots/esp32_output.png)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhkoosha%2Fhomer1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhkoosha%2Fhomer1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhkoosha%2Fhomer1/lists"}