# Arduino weather station This is a simple weather station based on Arduino Uno R3 and a TE Connectivity's weather hat. ## Hardware - Arduino Uno R3 - TE Connectivity's weather hat - 16x2 LCD display (optional) - Raspberry Pi or any other SBC ## Software This project has a couple of library dependencies: #### Arduino - [ArduinoJson](https://github.com/bblanchon/ArduinoJson) - [TEWeatherShield](https://github.com/TEConnectivity/Weather_Shield_Arduino_Library) - [LiquidCrystal_I2C](https://github.com/marcoschwartz/LiquidCrystal_I2C) #### Raspberry Pi - **WireGuard** (optional, used to link a remote Home Assistant instance) - **systemd** (used to prepare the environment on the Home Assistant instance) - **ser2net** (used to expose the serial port to the Home Assistant instance) ## Installation 1. Flash the Arduino with the `vremenska-postaja.ino` sketch or flash the included `build/vremenska-postaja.ino.hex` binary. 2. Set up **ser2net** on the Raspberry Pi. The configuration file is located in `ser2net.conf`. The default port is `2000`. 3. Set up **WireGuard** and link the Raspberry Pi to a remote Home Assistant instance. (Optional!) 4. Set up **socat-remote** service on the Home Assistant instance. The service file is located in `socat-remote.service`. 5. Add the `weather_station` platform to your Home Assistant instance. The configuration file is located in `configuration.yaml`.