{"id":21032064,"url":"https://github.com/adlerweb/esp8266-bme280-multi","last_synced_at":"2025-10-26T21:35:24.135Z","repository":{"id":144853682,"uuid":"146807261","full_name":"adlerweb/ESP8266-BME280-Multi","owner":"adlerweb","description":"ESP8266 + BME280 -\u003e MQTT, Serial, HTTP-Server, HTTP-Client/Volkszähler","archived":false,"fork":false,"pushed_at":"2019-03-28T19:32:26.000Z","size":18,"stargazers_count":31,"open_issues_count":3,"forks_count":14,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-13T10:16:12.068Z","etag":null,"topics":["arduino","bme280","esp8266","mqtt","volkszaehler"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adlerweb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-08-30T21:12:53.000Z","updated_at":"2025-05-01T15:47:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"c95059a8-0bdb-4381-a883-ce5de8d98b46","html_url":"https://github.com/adlerweb/ESP8266-BME280-Multi","commit_stats":{"total_commits":16,"total_committers":2,"mean_commits":8.0,"dds":0.0625,"last_synced_commit":"74fa3f387cf9dbdefedc7f36f961bf946727ba21"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adlerweb%2FESP8266-BME280-Multi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adlerweb%2FESP8266-BME280-Multi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adlerweb%2FESP8266-BME280-Multi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adlerweb%2FESP8266-BME280-Multi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adlerweb","download_url":"https://codeload.github.com/adlerweb/ESP8266-BME280-Multi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254349224,"owners_count":22056301,"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","bme280","esp8266","mqtt","volkszaehler"],"created_at":"2024-11-19T12:40:20.232Z","updated_at":"2025-10-14T05:37:34.569Z","avatar_url":"https://github.com/adlerweb.png","language":"C++","readme":"# ESP8266-BME280-Multi\nESP8266 + BME280 -\u003e MQTT, Serial, HTTP-Server, HTTP-Client/Volkszähler\n\nReads an BME280 using ESP8266 and provides the results via Serial/USB, an internal HTTP-Server, MQTT (with TLS) and HTTP-GET to a [Volkszähler](http://volkszaehler.org/)\n\n# Wiring\n| BME280 | ESP8266              |\n|--------|----------------------|\n| VCC    | 3.3V                 |\n| GND    | GND                  |\n| SDA    | GPIO4 (D2 @ NodeMCU) |\n| SCL    | GPIO5 (D1 @ NodeMCU) |\n\n# Configuration\nInsert your WiFi-Parameters in the main code (src/main.cpp). If you use MQTT add the corresponding parameters, otherwise remove USE_MQTT. Same goes for the Volkszähler-Settings (VZ_) and USE_VOLKSZAEHLER. You can control every how many seconds the sensor is polled and the values distributed using ***stats_interval***.\n\n# Building\n\nWhen using [PlatformIO](https://www.platformio.org) just download/clone and open the project folder. You should be able to build everything right away.\nOn Arduino ensure [PubSubClient](https://github.com/knolleary/pubsubclient) is installed.\n\n# Functionality\n\n## Serial\n\nEvery ***stats_interval*** seconds the following text will appear:\n\n```\nT: 12.34 *C\nDP: 12.34 *C\nH: 12.34 %\nAH: 1.34 g/m3\nRP: 1234.56 hPa\nP: 1234.56 hPa\n```\n\nT is temperature, DP dew pont, H relative humidity, AH absolute humidity, RP relative pressure and P absolute pressure at sea level.\n\nIf you're using Volkszähler additional debug output with the computed URLs and HTTP-Status will be present.\n\n## HTTP-Server\n\nJust access the module using HTTP. You can get the modules IP using serial, MQTT or your routers DHCP-leases. You'll find all values mentioned above. Every access triggers the module to gather a new set of values from the sensor, so the display should always display up to date measurements.\n\nAccess /ota to start an OTA-update.\n\n## MQTT\n\nThis code assumes you use TLS and password-authentication. All path originate from ***mqtt_root***. On boot the module will publish static parameters:\n\n```\n/esp/bme280/status/online 1\n/esp/bme280/hardware esp8266tls-bme280\n/esp/bme280/version 0.0.1\n/esp/bme280/statsinterval 60\n/esp/bme280/mac 11:22:33:44:55:66\n```\n\nStatsinterval is in seconds.\n\nEvery ***stats_interval*** seconds variable data will be published:\n\n/esp/bme280/ip 192.168.123.123\n/esp/bme280/uptime 123\n/esp/bme280/rssi 100\n/esp/bme280/get/temperature 12.34\n/esp/bme280/get/dewpoint 12.34\n/esp/bme280/get/humidity_abs 12.34\n/esp/bme280/get/humidity 12.34\n/esp/bme280/get/pressure 1234.56\n/esp/bme280/get/pressure_rel 1234.56\n\nUptime is in seconds, RSSI in %.\n\nAdditional commands are:\n* /esp/bme280/set/ping -\u003e Received value is requblished to /esp/bme280/get/pong\n* /esp/bme280/set/reset -\u003e Device reboots\n* /esp/bme280/set/update -\u003e Device enters ArduinoOTA mode\n\n## Volkszähler\n\nAdd new channels for the corresponding measurements using the frontend. Note the UUIDs and add them to the corresponding configuration values. Check ***vz_url*** points to your middleware.php/data. If you do not want to record a specific measurement set the UUID to \"\".\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadlerweb%2Fesp8266-bme280-multi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadlerweb%2Fesp8266-bme280-multi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadlerweb%2Fesp8266-bme280-multi/lists"}