{"id":25388757,"url":"https://github.com/artembotnev/esp32-weather-station","last_synced_at":"2026-04-24T12:32:37.776Z","repository":{"id":182299367,"uuid":"213350595","full_name":"ArtemBotnev/ESP32-weather-station","owner":"ArtemBotnev","description":"The simple copy of \"ESP32-weather-station\", with Sallas ","archived":false,"fork":false,"pushed_at":"2020-09-07T09:17:48.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-10T02:40:39.819Z","etag":null,"topics":["cpp","esp32","iot"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArtemBotnev.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}},"created_at":"2019-10-07T10:06:08.000Z","updated_at":"2023-09-15T14:55:44.000Z","dependencies_parsed_at":"2023-07-19T13:44:11.310Z","dependency_job_id":null,"html_url":"https://github.com/ArtemBotnev/ESP32-weather-station","commit_stats":null,"previous_names":["artembotnev/esp32-weather-station"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ArtemBotnev/ESP32-weather-station","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtemBotnev%2FESP32-weather-station","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtemBotnev%2FESP32-weather-station/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtemBotnev%2FESP32-weather-station/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtemBotnev%2FESP32-weather-station/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArtemBotnev","download_url":"https://codeload.github.com/ArtemBotnev/ESP32-weather-station/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArtemBotnev%2FESP32-weather-station/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32223933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["cpp","esp32","iot"],"created_at":"2025-02-15T13:38:36.081Z","updated_at":"2026-04-24T12:32:37.759Z","avatar_url":"https://github.com/ArtemBotnev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weather station\n#### The project based on ESP32 module, builds via Arduino IDE.\n#### Main features: registration temperature(outdoors, room), humidity(outdoors, room) and atmosphere pressure.\nThree screens change in a loop and show current: Temperature(t, C), Humidity(h, %), Atm. pressure(p, mmHg).\nAlso, for each measure parameter there're additional data: minimum value, average value, maximum value.\nAll additional values calculated for the current day, and reset at the beginning of a new day (period from 00:00 to 23:59).\nAvailable interaction with telegram bot, which send data message.\n\n\u003cimg src=\"https://github.com/ArtemBotnev/gifs/blob/master/esp32_weather_station/temp.png\" width=\"184\" height=\"250\"\u003e \u003cimg src=\"https://github.com/ArtemBotnev/gifs/blob/master/esp32_weather_station/humidity.png\" width=\"182\" height=\"248\"\u003e \u003cimg src=\"https://github.com/ArtemBotnev/gifs/blob/master/esp32_weather_station/ws_pressure.png\" width=\"167\" height=\"248\"\u003e\n\n- [Display settings](#display-settings)\n- [Storage settings](#storage-settings)\n- [Telegram bot settings](#telegram-bot-settings)\n- [List of dependencies(libraries)](#list-of-dependencieslibraries)\n- [List of modules(components)](#list-of-modulescomponents)\n- [Pin connections](#pin-connections)\n\n#### Display settings:\nIn order to show some string as a title of display, the feature ```showTitle``` of Display class must be enabled, when you can add string as a parameter to ```setTitle``` method.\n```c++\ndisplay.showTitle = true;\ndisplay.setTitle(\"your title\");\n```\nBy default ```showTitle``` is enabled and display shows current time.\n\nIn order to show additional data min, average, max value for each measure parameter, the feature ```showAdditionData``` of Display class must be enabled.\n```c++\ndisplay.showAdditionData = true;\n```\nBy default ```showAdditionData``` is enabled.\n\n#### Storage settings:\nIt supports the storage of additional data(min, average, max value for each measure parameter) in case of power failure and restoring data at the next controller boot (in the same day).\nIn order to be able to save data in non-volatile memory of the controller, it is necessary to format it in SPIFFS file system.\nFor more detail of using and adjustment SPIFFS look at \n[arduino-esp32fs-plugin](https://github.com/me-no-dev/arduino-esp32fs-plugin)\nIt's not necessary to use storage and format file system. You can skip this just disable storage feature.\n```c++ \n#define USE_STORAGE false\n```\nThis constant is ```true``` by default.\n\n*In case of using storage, several points should be noted:*\nThe variable ```storageIsAvailable``` will be ```true``` if storage works as expected and there're no errors.\nYou can specify periodic of data backups in minutes.\n```c++ \ndataManager.setSaveStateFrequency(20);\n```\nBy default it is 10. Value shout be from 0 to 59 (0 - save every loop iteration).\n\n#### Telegram bot settings:\nOne important option is interaction with telegram bot. \n\u003cbr\u003e\nFirst of all, it's necessary to create telegram bot by the [Bot father](https://core.telegram.org/bots#3-how-do-i-create-a-bot). \n\u003cbr\u003e\nNext step - enable network, telegram options and add WiFi network properties:\n```c++ \n// Turn to false if you don't want to use network\n#define NETWORK_ENABLED true\n// Turn to false if you don't want to use telegram (available only if network enabled)\n#define TELEGRAM_ENABLED true\n\n#define SSID \"XXXXXX\"     // your network SSID (name)\n#define PASSWORD \"YYYYYY\" // your network key\n```\nwhen add bot token:\n```c++ \n#define BOT_TOKEN \"XXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"  // your Bot Token (Get from Botfather)\n```\nNow bot is ready.\n\u003cbr\u003e\nStart messaging with bot - send any message, bot will respond with last measured data.\n\n\u003cimg src=\"https://github.com/ArtemBotnev/gifs/blob/master/esp32_weather_station/weather_bot_message.png\" width=\"352\" height=\"260\"\u003e\n\nBot also can respond with additional data set (min, average, max value for each measure parameter).\nIn that case send to bot message, which start with latin letter 'f' or 'F' or with cyrillic letter 'п' or 'П'.\n\n\u003cimg src=\"https://github.com/ArtemBotnev/gifs/blob/master/esp32_weather_station/weather_bot_full_message.png\" width=\"352\" height=\"600\"\u003e\n\n#### List of dependencies(libraries):\n- Core\n  - Wire - provided with IDE.\n  - SPI - provided with IDE.\n- Sensors \n  - [Adafruit_Sensor](https://github.com/adafruit/Adafruit_Sensor)\n  - [Adafruit_BME280](https://github.com/adafruit/Adafruit_BME280_Library)\n  - [DFRobot_SHT20](https://github.com/DFRobot/DFRobot_SHT20)\n- Time\n  - [DS3231](https://github.com/jarzebski/Arduino-DS3231)\n- Graphics\n  - [Adafruit_GFX](https://github.com/adafruit/Adafruit-GFX-Library)\n  - [Adafruit_ILI9341](https://github.com/adafruit/Adafruit_ILI9341)\n- Storage\n  - FS - provided with ESP32 plugin.\n  - SPIFFS - provided with ESP32 plugin.\n  - [ArduinoJson](https://github.com/bblanchon/ArduinoJson)\n- Network\n  - WiFi - provided with ESP32 plugin.\n  - WiFiClientSecure - provided with ESP32 plugin.\n- Telegram bot\n  - WiFiClientSecure - provided with ESP32 plugin.  \n  - [UniversalTelegramBot](https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot)  \n  \n#### List of modules(components):\n- Core\n  - ESP-WROOM-32.\n- Sensors\n  - Room sensor(temperature, humidity, adm. pressure) - BME/BMP280.\n  - Outdoor waterproof sensor(temperature, humidity) SHT-20 or better.\n- Time\n  - Module with DS3231 chip and battery power supply.\n- Display\n  - 2.8\" 240x320 SPI TFT LCD Serial Port Module, ILI9341 5V/3.3V 2.8 inch LED Display For 5110 Interface \nor similar.\n\n#### Pin connections:\n| ESP32 | TFT Display | BME/BMP280 | SHT-20 | DS3231 |\n|-------|-------------|------------|--------|--------|\n| 3v3   | Vcc         | VIN        | VIN    | Vcc    |\n| GND   | GND         | GND        | GND    | GND    |\n| VIN   | LED         |            |        |        |\n| 2     | RESET       |            |        |        |\n| 4     | DC          |            |        |        |\n| 15    | CS          |            |        |        |\n| 18    | SCK         |            |        |        |\n| 19    | SDO(MISO)   |            |        |        |\n| 23    | SDI(MOSI)   |            |        |        |\n| 32    |             | SCL        | SCL    | SCL    |\n| 33    |             | SDA        | SDA    | SDA    |\n\n\u003cimg src=\"https://github.com/ArtemBotnev/gifs/blob/master/esp32_weather_station/image.png\"\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartembotnev%2Fesp32-weather-station","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartembotnev%2Fesp32-weather-station","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartembotnev%2Fesp32-weather-station/lists"}