Update
This commit is contained in:
parent
0457118385
commit
17312a5461
33
README.md
33
README.md
@ -3,14 +3,18 @@
|
|||||||
#### Reducing water waste by automatically dispensing lower bound water amounts, calculated using a ML Model using present weather data
|
#### Reducing water waste by automatically dispensing lower bound water amounts, calculated using a ML Model using present weather data
|
||||||
|
|
||||||
## About
|
## About
|
||||||
About
|
This project aims to integrate hardware IoT sensors (some RPi Zero's with I2C probes) and Machine Learning (Deep-NN) to predict how much water a outdoor garden will need every day.
|
||||||
|
|
||||||
|
The ML Model uses the last 24hrs of collected weather data to make a prediction around mow much water needs to be dispensed to keep the plants alive.
|
||||||
|
|
||||||
|
This approach hopes to reduce the overall water use by not watering plants in excess.
|
||||||
|
|
||||||
## Project diagram
|
## Project diagram
|
||||||
```TODO```
|
```TODO```
|
||||||
|
|
||||||
## File Structure
|
## File Structure
|
||||||
|
|
||||||
<!-- <details> -->
|
<details>
|
||||||
<summary>This part is long, click to expand</summary>
|
<summary>This part is long, click to expand</summary>
|
||||||
|
|
||||||
- `data_collector/` Main data collector and uploader module
|
- `data_collector/` Main data collector and uploader module
|
||||||
@ -50,7 +54,30 @@ About
|
|||||||
- `.gitignore` Gitignore file preventing all my API keys from showing up online...
|
- `.gitignore` Gitignore file preventing all my API keys from showing up online...
|
||||||
- `README.md` See `README.md`
|
- `README.md` See `README.md`
|
||||||
|
|
||||||
<!-- </details> -->
|
</details>
|
||||||
|
|
||||||
|
## Installation and running
|
||||||
|
1. Clone this repo
|
||||||
|
2. Create the secrets folders
|
||||||
|
3. Generate a set of firebase and OpenWeather API credentials and place them in the secrets folders, rename accordingly
|
||||||
|
4. Move the `master` folder to the main Pi
|
||||||
|
5. Move the `satellite` folder to the sensor Pi
|
||||||
|
6. Install Docker on all Devices
|
||||||
|
7. Build the docker images on the relevant architectures (for me everythong was build on armv7)
|
||||||
|
- `data_colelctor`: `docker build -t siot-weather-collector .`
|
||||||
|
- `data_processor`: `docker build -t siot-data-processor .`
|
||||||
|
- `master/irrigator`: `docker build -t master-node .`
|
||||||
|
- `master`: `docker build -t irrigator .`
|
||||||
|
- `satellite`: `docker build -t satellite .`
|
||||||
|
8. *NOTE: The ML Dockerfile is very long and complicated because tensorflow does not play well with a 32 bit arm architeture, if you are building for x86 or arm64, you may need to change the file*
|
||||||
|
9. Run the docker containers:
|
||||||
|
- The `data_collector` on the cloud device: `docker run -d --restart always --name siot_weather_collector siot-weather-collector`
|
||||||
|
- The `data_processor` on the cloud device: `docker run -dp 3535:3535 --restart always --name siot_watering_predictor siot-data-processor`
|
||||||
|
- The `master` on the master Pi: `docker run -dp 3333:3333 --privileged --restart always master-node`
|
||||||
|
- The `master/irrigator` on the master Pi: `docker run -d --privileged --restart always irrigator`
|
||||||
|
- The `satellite` on the sensor Pi: `docker run -d --privileged --restart always satellite`
|
||||||
|
10. While you are free to use my ML model included in this repo, I suggest you explore the `manual_data_processing` folder and create your own.
|
||||||
|
11. You will also need at least 24hrs of data before the model can make predictions, so the `siot-weather-collector` image must be started at least 24hrs before the others
|
||||||
|
|
||||||
## Maintainers and Contributors
|
## Maintainers and Contributors
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user