+
+
+# OmniWeather
+
+A simple weather station, powered by an Adafruit ESP32 Feather. The measured results are uploaded every hour to a SSH server.
+
+
+
+## Measured Data
+
+- Temperature
+- Humidity
+- Barometric pressure
+- Wind speed
+- Wind direction
+- Rainfall
+- UV index
+
+## Features
+
+- Periodic data upload on a SSH server (default is 1h)
+- WI-FI connection / reconnection on signal loss
+
+## Usage/Examples
+
+[Here's a page](https://foxi.ltam.lu/2CI/pirda350/public/OmniWeather/Weather_Reports/) that shows the output of this code. It should still be running, and new reports are added every hour.
+
+We also created [an UI in Vue.js](https://foxi.ltam.lu/2CI/collo939/public/OmniWeather/) that goes through the latest hourly report and shows it in an user friendly way. You may take a look at it, it should also be updating every hour.
+
+## Tech Stack
+
+**Microcontroller:** PlatformIO
+
+**Server:** Simple SSH storage server
+
+## Deployment
+
+You'll first 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](https://www.thingiverse.com/thing:2849562). He also explains how to mount the whole thing, and I also took some code from there. Massive thanks to him for that!
+
+## Optimizations
+
+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!
+
+## Authors
+
+- [@fauconspartiate](https://github.com/FauconSpartiate)
+- [@xavion-lux](https://github.com/xavion-lux)
+- [@aiglespartiate](https://github.com/AigleSpartiate)
+
+## License
+
+[GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/)
diff --git a/platformio.ini b/platformio.ini
new file mode 100644
index 0000000..7ad248a
--- /dev/null
+++ b/platformio.ini
@@ -0,0 +1,24 @@
+; PlatformIO Project Configuration File
+;
+; Build options: build flags, source filter
+; Upload options: custom upload port, speed and extra flags
+; Library options: dependencies, extra library storages
+; Advanced options: extra scripting
+;
+; Please visit documentation for the other options and examples
+; https://docs.platformio.org/page/projectconf.html
+
+[env:featheresp32]
+platform = espressif32
+board = featheresp32
+framework = arduino
+monitor_speed = 115200
+lib_deps =
+ beegee-tokyo/DHT sensor library for ESPx@^1.18
+ bblanchon/ArduinoJson@^6.19.4
+ ewpa/LibSSH-ESP32@^2.2.0
+ adafruit/DHT sensor library@^1.4.3
+ adafruit/Adafruit BMP280 Library@^2.6.2
+ adafruit/Adafruit BME280 Library@^2.2.2
+ adafruit/Adafruit VEML6070 Library@^1.0.6
+ adafruit/Adafruit AM2320 sensor library@^1.2.2
diff --git a/src/OmniWeather.cpp b/src/OmniWeather.cpp
new file mode 100644
index 0000000..9a11ea9
--- /dev/null
+++ b/src/OmniWeather.cpp
@@ -0,0 +1,260 @@
+#include