{"id":13894060,"url":"https://github.com/entorb/arduino-sensorics","last_synced_at":"2025-08-01T15:31:52.821Z","repository":{"id":103799478,"uuid":"306845537","full_name":"entorb/arduino-sensorics","owner":"entorb","description":"Code for reading various sensors attached to a Arduino ESP32, data is uploaded via WiFi to an InfluxDB or displayed.","archived":false,"fork":false,"pushed_at":"2024-08-08T20:43:19.000Z","size":2246,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-24T22:32:45.930Z","etag":null,"topics":["arduino","arduino-sensorics","bh1750","bme280","bme680","co2","co2ampel","esp32","esp32-arduino","i2c","influxdb","mh-z19","oled","rgb-led","tm1637"],"latest_commit_sha":null,"homepage":"","language":"C++","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/entorb.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":"2020-10-24T09:06:44.000Z","updated_at":"2024-09-28T14:09:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"2f989fc4-f32a-4e6d-8a36-bcbc6f476e3c","html_url":"https://github.com/entorb/arduino-sensorics","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entorb%2Farduino-sensorics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entorb%2Farduino-sensorics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entorb%2Farduino-sensorics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entorb%2Farduino-sensorics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/entorb","download_url":"https://codeload.github.com/entorb/arduino-sensorics/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228389159,"owners_count":17912189,"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":["arduino","arduino-sensorics","bh1750","bme280","bme680","co2","co2ampel","esp32","esp32-arduino","i2c","influxdb","mh-z19","oled","rgb-led","tm1637"],"created_at":"2024-08-06T18:01:22.864Z","updated_at":"2024-12-06T00:10:31.689Z","avatar_url":"https://github.com/entorb.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# Arduino-sensorics\n\n* Arduino ESP32 micro-controller programming\n* Provides simple and clean library for\n  * reading of various sensors\n  * export data via WiFi to InfluxDB for visualization in Grafana, see my [raspi-sensorics](https://github.com/entorb/raspi-sensorics/) repository\n  * writing to various displays\n  * using a device_setup.h file to select the devices attached to that specific Arduino ESP32\n  * read data from MQTT\n\n## Devices implemented so far\n\n* Abstract device class that all other devices inherit from in [TM_Device_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_Device_Class.cpp)\n* InfuxDB interface via WiFi in [TM_InfluxDB_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_InfluxDB_Class.cpp)\n* BME280 sensor for temperature, humidity and pressure in [TM_BME280_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_BME280_Class.cpp)\n* BH1750 sensor for illumination in [TM_BH1750_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_BH1750_Class.cpp)\n* MH-Z19B sensor for CO2 concentration in [TM_MH_Z19_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_MH_Z19_Class.cpp)\n* 7-segment 4-digit TM1637 display in [TM_7SegmentDisplay_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_7SegmentDisplay_Class.cpp)\n* OLED display 128x32px and 128x64px in [TM_OLED_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_OLED_Class.h)\n* RGB-LEDs: Ring and Single LED in [TM_LED_Ring_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_LED_Ring_Class.cpp)\n\n## Arduino packages used\n\n* [Adafruit BME280 Library](https://github.com/adafruit/Adafruit_BME280_Library)\n* [BH1750](https://github.com/claws/BH1750)\n* [ESP8266 Influxdb](https://github.com/tobiasschuerg/InfluxDB-Client-for-Arduino)\n* [MH-Z19](https://github.com/WifWaf/MH-Z19)\n* [TM1637](https://github.com/avishorp/TM1637)\n* [U8G2](https://github.com/olikraus/u8g2)\n* [(MQTT) PubSubClient](https://github.com/knolleary/pubsubclient)\n\n## Achievements\n\n* Learning basics of C++: inheritance, templates, ...\n* Using pre compiler #define in device_setup.h file to select which classes are compiled to save time and memory\n* Power reduction from 1W to 0.3W by\n  * Under-clocking the ESP32 from 240 to 80 MHz via setCpuFrequencyMhz(80) in ([TM_ESP32_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_ESP32_Class.cpp)\n  * Enabling WiFi modem sleep via esp_wifi_set_ps(WIFI_PS_MODEM) in [TM_InfluxDB_Class.cpp](https://github.com/entorb/arduino-sensorics/blob/main/libraries/TM/src/TM_InfluxDB_Class.cpp)\n* OLED display: implemented bar chart\n* Standalone CO2 traffic light for our kindergarden and school\n  * offline\n  * in proper case\n  * using display and traffic light for visualization\n  * see German [Bauanleitung](https://github.com/entorb/arduino-sensorics/blob/main/CO2-Ampel-Bauanleitung.md)\n* Experiment with display devices\n\n## Next steps\n\n* Design and build cases via CAD and CNC\n* Add more sensors\n\n## Photos and screenshots\n\nCO2 Traffic Light V1.2: Massproduction and added history bar chart via OLED display ([Bauanleitung](https://github.com/entorb/arduino-sensorics/blob/main/CO2-Ampel-Bauanleitung.md))\n![4xCO2-in-Holz](https://github.com/entorb/arduino-sensorics/blob/main/photos/4xCO2-in-Holz.jpg)\n\nCO2 Traffic Light V1 for our School ([Bauanleitung](https://github.com/entorb/arduino-sensorics/blob/main/CO2-Ampel-Bauanleitung.md))\n![ASGS-V1.jpg](https://github.com/entorb/arduino-sensorics/blob/main/photos/ASGS-V1.jpg)\n\nCO2 Traffic Light Prototype for our Kindergarten: Display of CO2 level (measured by MH-Z19B) on a 7-segment display and RGB-LED\n![KiTa-V1.jpg](https://github.com/entorb/arduino-sensorics/blob/main/photos/KiTa-V1.jpg)\n\nExperimenting with different displays\n![Display-Test.jpg](https://github.com/entorb/arduino-sensorics/blob/main/photos/Display-Test.jpg)\n\nDisplay of CO2 level on small OLED display (measured by MH-Z19B)\n![ESP32-MHZ19-OLED128x32.jpg](https://github.com/entorb/arduino-sensorics/blob/main/photos/ESP32-MHZ19-OLED128x32.jpg)\n\nDisplay of CO2 in Grafana (measured by MH-Z1B9)\n![Grafana-CO2.png](https://github.com/entorb/arduino-sensorics/blob/main/photos/Grafana-CO2.png)\n\nDisplay of temperature, humidity and pressure in Grafana (measured by BME280)\n![Grafana-T-H-P.png](https://github.com/entorb/arduino-sensorics/blob/main/photos/Grafana-T-H-P.png)\n\n## Similar projects\n\n* [UN-Hack-Bar: CO2 Ampeln für alle](https://www.un-hack-bar.de/2020/10/25/co2-ampeln-fuer-alle/)\n* [UN-Hack-Bar: Repository](https://git.unhb.de/smash/co2ampel)\n* [Heise: CO2-Ampel: Bauanleitung](https://www.heise.de/select/make/2020/5/2022015381334973804)\n* [Heise: CO2-Ampel: Erfahrungsbericht aus der Schule](https://www.heise.de/news/CO2-Ampel-Erfahrungsbericht-aus-der-Schule-4932471.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentorb%2Farduino-sensorics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fentorb%2Farduino-sensorics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentorb%2Farduino-sensorics/lists"}