Skip to content

Commit

Permalink
Merge branch 'feature/docs'
Browse files Browse the repository at this point in the history
  • Loading branch information
MRo47 committed Oct 15, 2023
2 parents 6e9a07f + b575d3a commit 1477007
Show file tree
Hide file tree
Showing 102 changed files with 1,637 additions and 622 deletions.
Binary file removed BOM/BOM_AeroModule_2021-02-07.csv
Binary file not shown.
Binary file added BOM/BOM_PCB_2023-25-03_16-15_2023-10-13.csv
Binary file not shown.
Binary file removed BOM/LCSC_Exported_20210207_094124.xlsx
Binary file not shown.
385 changes: 0 additions & 385 deletions Circuit/AeroModule_2021-02-14.json

This file was deleted.

Binary file removed Circuit/AeroModule_2021-02-14.zip
Binary file not shown.
Binary file removed Circuit/Schematic_AeroModule_2021-02-14.pdf
Binary file not shown.
Binary file added Circuit/mistygro.zip
Binary file not shown.
432 changes: 432 additions & 0 deletions Circuit/mistygro_easyeda_2023-10-08.json

Large diffs are not rendered by default.

Binary file added Circuit/mistygro_schematic_2023-10-08.pdf
Binary file not shown.
16 changes: 16 additions & 0 deletions Docs/app.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# App

<p float="left">
<img src="../Images/app_main.jpg" width="200" />
<img src="../Images/app_analytics1.jpg" width="200" />
<img src="../Images/app_analytics2.jpg" width="200" />
</p>

- The app shows current state of the relays, sensors and allows recording manual inputs on the main page
- The analytics page shows the history of the relays, sensors and manual inputs for the duration of 24 hours.
- Click and holding on the graph reads the actual value at that time.

## Recording pH and total dissolved solids (TDS)

1. Click on the pH or TDS card > This will open up a dialog.
2. Measure the pH or TDS and add into the dialog and then click save.
9 changes: 9 additions & 0 deletions Docs/circuit_design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Circuit design

The Easy EDA project file (*.zip) and schematics are included in the [Circuit](../Circuit) directory.

1. Circuit was designed in Easy EDA and got manufactured from [JLCPcb](https://jlcpcb.com/)
2. Parts were purchased and soldered by hand, the BOM for which is in [BOM](../BOM/)
3. The switch for misters was not used but simply the terminals were selected for normally open position of the relay.
4. The ESP32 is mounted on 2 single row 0.1" female pin headers (makes it easy to replace the ESP32 if its damaged).
5. Connectors were crimped for power, temperature sensor and LDR and then connected to the circuit.
16 changes: 16 additions & 0 deletions Docs/electronics_enclosure_design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Electronics enclosure design

## Requirements

- Takeaway container (comes with an easy access lid ;) )
- Covid test, test tube for the LDR casing (great for diffusing light)

## Steps

1. Holes were drilled for power input, temperature sensor input, LDR input, light relay outputs and mister outputs.
2. Connectors were crimped onto the wires, routed through the enclosure and connected to the PCB.
3. The mister outputs from the PCB are connected to a 5.5 x 2.5mm male barrel jacks. These plug into the mister female barrel jack sockets.

<img src="../Images/pcb_enclosure.jpg" alt="pcb enclosure" width="800"/>

<img src="../Images/ldr_mount.jpg" alt="ldr mount" width="800"/>
51 changes: 51 additions & 0 deletions Docs/grow_lamp_design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Lamp design

## Requirements

- A brick for the base
- Piece of waste pipe from a plumbing job which had an elbow joint
- Clothes hanger
- Zip ties

## Steps

1. The height of the pipe was measured such that its atleast the maximum height of the crop when harvesting with some tolerance for light and a fold at the base of the pipe.
2. The about 20cm of pipe was heated to soften it and inserted into the brick with a fold that helps stabilising the lamp. The pipe was held vertical till hardened.

<img src="../Images/diagrams/lamp_design.png" alt="lamp design" width="800"/>

3. The overhead pipe was measured to hold the 3 units of lamp and holes (of hanger wire dia) were drilled using a soldering iron (makes them smooth tbh).

<img src="../Images/pipe_holes.jpg" alt="pipe holes" width="800"/>

4. A hanger was cut and reshaped to make mounts for the lights as below.

<img src="../Images/hanger.jpg" alt="hanger" width="800"/>

<img src="../Images/hanger_cuts.jpg" alt="hanger cuts" width="800"/>

5. The hanger mounts were then placed into the holes.

<img src="../Images/pipe_hanger_fitting.jpg" alt="pipe hanger fitting" width="800"/>

6. The grow lamp was dismantled and rewired to match required lengths and to fit a power plug at the end.

<img src="../Images/dismantled_light.jpg" alt="dismantled light" width="800"/>

The wiring for relay is shown below. The only other change was to install longer wires and the
converter was placed near the pipe joint for easy access.

<img src="../Images/diagrams/light_rewiring.png" alt="light rewiring" width="800"/>

7. The light units are then mounted as shown below using zip ties to the hanger mounts. The wire is then routed through a third hole into the pipe.

<img src="../Images/light_mount.jpg" alt="light mount" width="800"/>

8. Finally join the elbow and mount the overhead pipe to the vertical lamp stand.

<img src="../Images/lamp_design.jpg" alt="lamp design" width="800"/>

<img src="../Images/grow_lights.jpg" alt="grow lights" width="800"/>



41 changes: 41 additions & 0 deletions Docs/install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Installation

## Setting up the esp32 controller

### Setting up secrets

* Syncing timer with NTC will require WiFi credentials which can be set up following the instructions below.
* Firebase logging will also require firebase credentials. Which can be set up using [this](https://randomnerdtutorials.com/esp32-data-logging-firebase-realtime-database/) article from Random Nerd tutorials.
* Add a `secrets.h` file in `Software/esp32_firmware/include` and fill in the details.

```cpp
#ifndef _SECRETS_H_
#define _SECRETS_H_

#define WIFI_SSID ""
#define WIFI_PASSWORD ""
#define FIREBASE_TOKEN ""
#define FIREBASE_USER_EMAIL ""
#define FIREBASE_USER_PASSWORD ""
#define FIREBASE_URL ""

#endif
```

### Install

* **Build the project in Platform.io:**
Currently the `main.cpp`` file is selected in platformio.ini (commented out in the build_src_filter)
* **Upload to ESP32:**
Upload by clicking the upload button while press and holding the boot button on ESP32.

#### Test modules individually

Uncomment the `-<main.cpp>` line and comment out the test cpps for each module, one at a time. Then do the steps in install

## Phone

* Follow [this](https://firebase.google.com/docs/flutter/setup?platform=android) to register the android app. Switch to IOS if you have to set this up on IOS device.

>****NOTE**** This project has been only tested with an android app and I'm (MRo47) a noob at flutter or in general app development. So contributions are welcome here.
11 changes: 11 additions & 0 deletions Docs/ldr_calib.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# LDR Calibration

The potentiometer on the PCB needs to be adjusted based on the LDR resistance. The aim is to get the LDR to have maximum swing in voltage or to center its potential.

## Steps

1. Connect the LDR and read analog voltage from the ESP32 by running [test_ldr.cpp](../Software/esp32_firmware/src/test_ldr.cpp) (comment out test_ldr.cpp from platformio.ini and uncomment main.cpp)
2. Adjust the potentiometer such that
1. This analog voltage must not go under zero for maximum darkness (just block the ldr with you finger or a piece of tape).
2. The value should not go above maximum analog voltage (saturation) when maximum light is incident on the LDR (maybe direct sun shining on the LDR).
3. Now set a certain brightness based on ambient light conditions under which voltage value the lights should come on and set this value as threshold voltage (ldr_thresh_v) in [Software/esp32_firmware/include/utility.h](../Software/esp32_firmware/include/utility.h)
File renamed without changes.
File renamed without changes.
20 changes: 20 additions & 0 deletions Docs/nutrient_solution.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Preparing nutrient solution

## Requirements

- [Masterblend 4-18-38](<https://hydroponicseuro.com/product/masterblend-4-18-38-hydroponic-fertilizer-set-2/?attribute_weight=1.5+kg>) which comes with Magnesium sulphate and Calcium Nitrate.
- [Potassium carbonate](https://www.ebay.co.uk/itm/224519112465?var=523793464566)
- Distilled water, rainwater or water under ppm of 200 should be used to make the nutrient solution

## Steps

1. Masterblend 4-18-38 was used as the nutrient solution and purchased from [here](https://hydroponicseuro.com/product/masterblend-4-18-38-hydroponic-fertilizer-set-2/?attribute_weight=1.5+kg)
2. The reservoir itself was calibrated for volume with markings in increments of 5L till 30L.
3. The solution was prepared for 30L and 5L was stored for topping up later.
4. Harvested rainwater with PPM reading of ~30ppm was used to prepare the solution.
5. For mixing ratios check [here](https://hydroponicseuro.com/mixing-instructions/)
6. The 3 compounds were measured with a precision scale (atleast upto 0.1g) and mixed one after the other.
7. pH up solution was required to keep the pH around 5.5-6.0 for optimal nutrient uptake which was made using a solution of 10g [99% potassium carbonate](https://www.ebay.co.uk/itm/224519112465?var=523793464566) in 100ml distilled water.
8. pH solution was added drop by drop, stirred and pH measured using the pH meter till the ph was set to optimal levels.

>****NOTE**:** Each compound must be completely dissolved before the next one is added and they should be added in the order Masterblend > Magnesium sulphate > Calcium nitrate
15 changes: 15 additions & 0 deletions Docs/parts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Part images

These are for reference in case some of the items go out of stock at the time of purchase.

<img src="../Images/us_mister.jpg" alt="misters" width="300"/>

Ultrasonic mister

<img src="../Images/ec_n_ph_meter.jpg" alt="ec and ph meter" width="300"/>

EC and ph meters to manually read solution properties.

<img src="../Images/grow_lamp_original.jpg" alt="grow_lamp" width="300"/>

Original grow lamp
24 changes: 24 additions & 0 deletions Docs/reservoir_design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Reservoir design

## Requirements

- [Storage box (food safe plastic)](https://www.wilko.com/en-uk/wilko-45l-modular-storage-box-with-lid/p/0449324)
- [Net pots]()
- Misters
- Mister floats
- Weights for misters

## Steps

1. 8 holes were cut from the lid such that they are well spread across the top.
2. The holes were cut using a soldering iron (with a sharp tip) as I don't have a drill. This was fairly easy too at 300 degree celsius and smoothens the edges, the flaws on the edges were also hidden by the lips of the netpots.

<img src="../Images/pot.jpg" alt="pot" width="800"/>

3. The reservoir was then calibrated for volume as this helped making the correct amount of nutrient mix without requiring another large vessel.

<img src="../Images/reservoir_calib.jpg" alt="reservoir calib" width="800"/>

4. Mister floats were made using polystyrene pieces I had lying around from packaging. and netpots. I stole the idea from an [ebay product](https://www.ebay.co.uk/itm/324444872905?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=x7EEvAxJT_K&sssrc=2047675&ssuid=Eep4KVD9SkS&widget_ver=artemis&media=COPY) seen below.

<img src="../Images/mister_float.jpg" alt="mister float" width="800"/>
16 changes: 16 additions & 0 deletions Docs/seedling_start.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Seedling start

## Requirements

- [Rockwool grow cubes](https://www.ebay.co.uk/itm/233722426889).
- Tray (2 takeaway containers do the job)
- [Nutrient solution](nutrient_solution.md).

## Steps

1. Seedlings were started in 25mm rockwool cubes purchased from [here](https://www.ebay.co.uk/itm/233722426889)
2. A seed was planted in each cube and the cubes were soaked in nutrient solution.
3. The cubes were then placed in a transparent container near a sunny window (can be placed under grow lights).
4. After the first true leaves sprout the seedlings are ready to be transferred to the net pots and placed on the grow chamber.

<img src="../Images/grow_tray.jpg" alt="grow tray" width="800"/>
Binary file added Images/app_analytics1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/app_analytics2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/app_main.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 1477007

Please sign in to comment.