# Imperial College London # Sensing and IoT Coursework Project #### Reducing water waste by automatically dispensing lower bound water amounts, calculated using a ML Model using present weather data ## About About ## Project diagram ```TODO``` ## File Structure This part is long, click to expand - `data_collector/` Main data collector and uploader module - `secrets/` Private API keys - `icl-iot-weather-firebase-adminsdk.json` Firebase key for database access - `weather_api_key.txt` OpenWeather API key - `data_colelctor.py` Python script for data collection - `Dockerfile` Containerizing the application - `requirements.txt` Python requirements for running the script - `data_processor/` ML on demand data processing module - `firebase_python_image/` Since building a tf image takes ages, we build it once and use it for testing the ml script later - `Dockerfile` Building a tensorflow image for armv7l - `secrets/` Private API keys - `icl-iot-weather-firebase-adminsdk.json` Firebase key for database access - `watering_model.model/` Saved ML modelfor water predicitons - `Dockerfile` Containerizing the application - `water_predictor.py` On demand, real time watering predictor script - `Diagrams/` Process and block diagrams - `block_and_process_diagrams.drawio` TODO - `lora_nodes/` Scripts running on the Pi Zero nodes - `master/` Scripts running on the primary, internet connected Pi - `irrigator/` Daily watering module - `Dockerfile` Containerizing the application - `irrigator.py` Daily watering script - `requirements.txt` Python requirements for running the script - `Dockerfile` Containerizing the application - `main.py` Main data server, collects data from satellite over LoRa and returns over http - `requirements.txt` Python requirements for running the script - `satellite/` Data reading and sending module for the sensor Pi - `Dockerfile` Containerizing the application - `main.py` LoRa commend listener, temperature reader and pump controller - `requirements.txt` Python requirements for running the script - `manual_data_processing/` iPython notebooks used for data processing and model training - `datasets/*` Various datasets used for processing and training - TODO - `site/*` Monitoring website, HTML+CSS+JS, hosted on Firebase - `.gitignore` Gitignore file preventing all my API keys from showing up online... - `README.md` See `README.md` ## Maintainers and Contributors Max Hunt: [me@maxhunt.design](mailto:me@maxhunt.design)