https://github.com/xtrinch/esp-weather-station
OpenWeatherMap & IotFreezer weather station running on ESP32/8266 and a TFT display
https://github.com/xtrinch/esp-weather-station
esp32 esp8266 openweathermap weather-station
Last synced: about 1 year ago
JSON representation
OpenWeatherMap & IotFreezer weather station running on ESP32/8266 and a TFT display
- Host: GitHub
- URL: https://github.com/xtrinch/esp-weather-station
- Owner: xtrinch
- License: other
- Created: 2021-01-03T12:30:23.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-05-29T15:21:47.000Z (about 4 years ago)
- Last Synced: 2025-02-28T19:52:59.197Z (over 1 year ago)
- Topics: esp32, esp8266, openweathermap, weather-station
- Language: C++
- Homepage:
- Size: 225 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: license.txt
Awesome Lists containing this project
README
# esp-weather-station
Displays current weather data from open weather (https://openweathermap.org/) and your own sensor data from IotFreezer (https://iotfreezer.com/).
Adapted for 2.4in screen (I used ILI9341, for all supported options, see TFT_eSPI's docs).
Uses the `ArduinoJSON` library for json parsing, `TFT_eSPI` for drawing on the screen.
Heavily inspired by https://github.com/Bodmer/OpenWeather. Built with platformIO.

The data above the line is from OpenWeatherMap, below the line is IotFreezer.
## Components and prerequisites
- ESP32 or ESP8266
- TFT screen
- An account on OpenWeatherMap, to get the API key
- An account on IotFreezer and some sensor data uploaded to it
## Usage
Before flashing, copy `import_env.example.py` to `import_env.py` and fill in your own configuration.
Make sure you upload the `/data` folder where the images and fonts reside to the ESP before flashing. You can do that with `pio run --target uploadfs` or just use the platformio addon for vscode and click on `Upload Filesystem Image`.
To generate a BMP that works with this repo, use image magick:
`magick convert *.bmp -background black -alpha remove -compress none -depth 24 %d.bmp`
## Steps that follow
I also did some manual soldering work and 3d printed a case for it (slides into a wall mount, so you can easily flash and upgrade it):

The repository can be found at https://github.com/xtrinch/parametric-display-casing. It's parametric, so you just measure the actual dimensions of your finished soldered product and enter them into the FreeCAD spreadsheet and print it.