Local weather service that runs on Linux and provides data for a user to see in an Android app.
This project allows a user to setup a personal weather service in one location. All of the weather information is displayed in a connected Android app. The personal weather service will also provide clothing recommendations (based on the user's preferences) to easily decide what to wear today.
- Check Current Weather
- Check Weather Forecast
- Set Preferences
- Receive Notications
- Get Clothing Recommendations
Run on a Linux based system.
make build-release-lib
sudo make install-lib
make build-release
This set of steps firsts builds the Rust dynamic library for talking to the NWS API with release flags, installs it to /usr/lib/
, builds the lanweatherd daemon with release flags linked to the installed library, then installs the daemon binary in /usr/sbin
and registers it with systemd. This will automatically start the weather service.
sudo
is needed for the install steps.
Run on a Linux based system.
The Arduino code must be flashed to the Arduino using the Arduino app. When flashing the code you must follow these steps to properly include the Si7021 library from Adafruit.
- Open the .ino file with the Arduino editor
- Select "Sketch" -> "Include Library" -> Manage Libraries...
- Type "Si7021" into the search bar
- Select the "Install" option on the "Adafruit Si7021 Library" result
- Flash the Arduino with the temp sensor code
Install Android Studio and configure an emulator. This project supports Android 7.0 and higher, so make sure to pick an emulator that is at least Android 7.0.
If the service is killed (like in htop) systemd should restart it. If you stop it with sudo systemctl stop lanweatherd
, then to restart it run sudo systemctl start lanweatherd
.
Plug the temperature sensor into the USB port of your computer.
Open the androidapp folder in Android Studio and click the run button (looks like a play button) at the top right of the window.
This shows how to setup the project and a walklthrough of the app.
- Tom Castle, Team Lead & Weather Service Engineer
- Ryan Bebb, UI Designer & Android App Engineer
- Brian Hurley, Sensor & Remote Service Engineer
- Eli Labell, Database Administrator & Android App Engineer