{"id":20563380,"url":"https://github.com/pilotak/wemosweatherstation","last_synced_at":"2025-04-14T14:42:43.091Z","repository":{"id":91903492,"uuid":"146803980","full_name":"pilotak/WemosWeatherStation","owner":"pilotak","description":"An all-in-one ESP8266 based weather station. ","archived":false,"fork":false,"pushed_at":"2021-08-05T18:03:57.000Z","size":2175,"stargazers_count":19,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T03:41:20.851Z","etag":null,"topics":["bmp280","esp8266","htu21d","lps35hw","mcp9808","meteo","mqtt","ota","sht31","weather-station","wh1080"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pilotak.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":"2018-08-30T20:37:17.000Z","updated_at":"2024-06-14T08:33:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"85475a95-3d26-45ac-a161-8f6cce6fb7dd","html_url":"https://github.com/pilotak/WemosWeatherStation","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotak%2FWemosWeatherStation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotak%2FWemosWeatherStation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotak%2FWemosWeatherStation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotak%2FWemosWeatherStation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pilotak","download_url":"https://codeload.github.com/pilotak/WemosWeatherStation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248898631,"owners_count":21179807,"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":["bmp280","esp8266","htu21d","lps35hw","mcp9808","meteo","mqtt","ota","sht31","weather-station","wh1080"],"created_at":"2024-11-16T04:17:58.623Z","updated_at":"2025-04-14T14:42:43.085Z","avatar_url":"https://github.com/pilotak.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wemos weather station\n[![build](https://github.com/pilotak/WemosWeatherStation/workflows/build/badge.svg)](https://github.com/pilotak/WemosWeatherStation/actions) \n[![Framework Badge Arduino](https://img.shields.io/badge/framework-arduino-00979C.svg)](https://arduino.cc)\n\nAn all-in-one ESP8266 based weather station. Hardware configuration is split into two parts due to easier maintenance in case of ESP8266 failure and fuse replacement (the board outside is protected against lighting). FW can easily be compiled by PlatformIO or Arduino IDE if necessary, otherwise can be downloaded in **Releases**.\n\nData are sent over MQTT where [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) is waiting to push data to [InfluxDB](https://www.influxdata.com/time-series-platform/influxdb/) and [Grafana](https://grafana.com/) tool to render charts.\n\n**Main futures:**\n- Easy configuration via [WiFiManager](https://github.com/tzapu/WiFiManager)\n- WeMos based shield\n- WH1080 mechanical components for rain, wind measurements and radiation shield\n- MCP9808: high precision temperature sensor\n- HTU21D or SHT31D: humidity sensor\n- BMP280 or LPS35HW: pressure sensor\n- Output data is via MQTT\n- supports Arduino OTA, HTTP OTA and [NoFuss OTA](https://github.com/xoseperez/espurna)\n\n*Note: on the board there can be only one humidity sensor, one pressure sensor and one temperature sensor in any combination, please see `platformio.ini`*\n\n## Wemos-meteo shield\nBased on my libraries:\n- [WeatherMeters](https://github.com/pilotak/WeatherMeters)\n- [MeteoFunctions](https://github.com/pilotak/MeteoFunctions)\n\n### MQTT topics:\n#### `name/status`\nIf online:\n`sensors` key: binary map of sensors state (OK=1, failure=0)\n```json\n{\n  \"status\": 1,\n  \"ip\": \"192.168.1.7\",\n  \"rssi\": -10,\n  \"sensors\": 7,\n  \"fw_ver\": \"1.0.0\"\n}\n```\n\notherwise:\n```json\n{\n  \"status\": 0\n}\n```\n\n#### `name/sensors`\nIf any of the value can't be calculated, it sends `NaN`\n```json\n{\n  \"humidity_rel\": 79.84,\n  \"humidity_abs\": 14.93,\n  \"pressure_rel\": 1021.85,\n  \"pressure_abs\": 967.55,\n  \"dew\": 2.13,\n  \"humidex\": 3.69,\n  \"heat\": 3.97,\n  \"cloud\": 390.13,\n  \"temp\": [\n    5.32,\n    5.36,\n    5.43\n  ]\n}\n```\n\n#### `name/upgrade`\nAs a data send link to `*.bin` upgrade package and it will reply in topic `name/upgrade/status`\n(HTTP support only) *ie.: `http://somewebsite.com/upload/package.bin`*\n\n#### `name/height`\nAs a data send new height and it will confirm in topic `name/height/new`\n\n\u003ctable border=\"0\"\u003e\n \u003ctr\u003e\n    \u003ctd\u003e\u003cimg alt=\"Wemos meteo 1\"src=\"./Images/WeMos-meteo_1.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"Wemos meteo 2\"src=\"./Images/WeMos-meteo_2.jpg\"/\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/table\u003e\n\n![Wemos meteo 3](./Images/WeMos-meteo_3.jpg)\n\n## Weather board\nFits directly into radiation shield, just connect wind sensors, rain gauge bucket and you ready to measure. For future i have included extention connector for measuring sun light and UV index.\n\n**_Update, I have created a sencond version of WeatherBoard with water-proof sensors SHT31D and LPS35HW but be carefull they are difficult to solder due to its size._**\n\n\u003ctable border=\"0\"\u003e\n \u003ctr\u003e\n    \u003ctd\u003e\u003cimg alt=\"WeatherBoard 1\"src=\"./Images/WeatherBoard_1.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"WeatherBoard 2\"src=\"./Images/WeatherBoard_2.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"WeatherBoard 3\"src=\"./Images/WeatherBoard_3.jpg\"/\u003e\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"WeatherBoard V2\"src=\"./Images/WeatherBoard_v2.jpg\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/table\u003e\n\n## Server configuration\nBelow you can find a `docker-compose.yaml` file for fast integration onto your server.\n```yaml\nversion: \"3.6\"\n\nservices:\n  mosquitto:\n    container_name: mosquitto\n    restart: always\n    image: eclipse-mosquitto\n    ports:\n      - 1883:1883\n    volumes:\n      - ${DOCKER_PATH}/mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf\n      - ${DOCKER_PATH}/mosquitto/pwfile:/mosquitto/config/pwfile\n      - ${DOCKER_PATH}/mosquitto/data:/mosquitto/data\n\n  influxdb:\n    container_name: influxdb\n    restart: always\n    image: influxdb:alpine\n    environment:\n      - INFLUXDB_REPORTING_DISABLED=true\n      - INFLUXDB_DB=${INFLUX_DB}\n      - INFLUXDB_ADMIN_USER=${INFLUX_ADMIN_USER}\n      - INFLUXDB_ADMIN_PASSWORD=${INFLUX_ADMIN_PASSWORD}\n      - INFLUXDB_USER=${INFLUX_USER}\n      - INFLUXDB_USER_PASSWORD=${INFLUX_PASSWORD}\n      - INFLUXDB_READ_USER=${INFLUX_READ_USER}\n      - INFLUXDB_READ_USER_PASSWORD=${INFLUX_READ_PASSWORD}\n      - INFLUXDB_WRITE_USER=${INFLUX_WRITE_USER}\n      - INFLUXDB_WRITE_USER_PASSWORD=${INFLUX_WRITE_PASSWORD}\n      - INFLUXDB_HTTP_AUTH_ENABLED=true\n    volumes:\n      - ${DOCKER_PATH}/influxdb:/var/lib/influxdb\n    ports:\n      - 8086:8086\n\n  grafana:\n    container_name: grafana\n    restart: always\n    image: grafana/grafana\n    depends_on:\n      - influxdb\n    environment:\n      - GF_ANALYTICS_REPORTING_ENABLED=false\n      - GF_ANALYTICS_CHECK_FOR_UPDATES=false\n      - GF_SECURITY_DISABLE_GRAVATAR=true\n      - GF_SNAPSHOTS_EXTERNAL_ENABLED=false\n      - GF_AUTH_ANONYMOUS_ENABLED=true\n      - GF_AUTH_ANONYMOUS_ORG_NAME=${INFLUX_DB}\n      - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer\n      - GF_AUTH_DISABLE_SIGNOUT_MENU=true\n      - GF_AUTH_BASIC_ENABLED=false\n      - GF_SERVER_ROOT_URL=https://meteo.${MY_DOMAIN}\n    volumes:\n      - ${DOCKER_PATH}/grafana:/var/lib/grafana\n    ports:\n      - 3000:3000\n\n  telegraf_meteo:\n    container_name: telegraf_meteo\n    restart: always\n    image: telegraf:alpine\n    depends_on:\n      - influxdb\n      - mosquitto\n    volumes:\n      - ${DOCKER_PATH}/telegraf/meteo.conf:/etc/telegraf/telegraf.conf:ro\n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpilotak%2Fwemosweatherstation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpilotak%2Fwemosweatherstation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpilotak%2Fwemosweatherstation/lists"}