icl-iot-weather/README.md
2021-01-06 13:09:09 +00:00

2.5 KiB

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)