A simple weather station, powered by an Adafruit ESP32 Feather. The measured results are uploaded every hour to a GitHub repository via its API.
- Temperature
- Humidity
- Barometric pressure
- Wind speed
- Wind direction
- Rainfall
- UV index
- Periodic data upload on a GitHub repository (default is 1h)
- WI-FI connection / reconnection on signal loss
The OmniWeather project also consists of a website that displays the data in a nice and user friendly way. The website is built with Vue.js and displays the latest report available on the server. You can check out it's repository here, and the deployed website on omniweather-beta.netlify.app.
You can also take a look at the hourly reports the microcontroller sends out to the server on this repo. It "should" still be running, and new reports are added every hour.
PlatformIO with Arduino C++
You'll first need a microcontroller to run everything. We used an Adafruit ESP32 Feather.
You will then need some sensors :
- BME280 sensor for temperature, humidity and pressure
- VEML6070 sensor for UV light
The wind speed, wind direction and rain sensors were 3D printed from this awesome project : LTB Weather Station by RobWLakes. He also explains how to mount the whole thing, and I also took some code from there. Massive thanks to him for that!
Everything was programmed with my ass, the code is kinda fucked, but it works and that's the only thing that matters. Every optimization is welcome!