My dad walked into my room, asking about setting up an Arduino with a photoresistor in the garden to measure the about of light his plants were getting. I gave it some thought and told him that I could do better than just a photoresistor.
I started work on this light sensor and decided to go all out and make it a father's day present, asking him and a few gardening inclined friends what metrics they would want to know on their plants' environment. from that, I decided on light, temperature, and soil moisture were the important metrics and that I wanted all this data to report back to one central hub. I wanted this to be a polished project so I knew I had to design a PCB. This was my first time designing a circuit board so I had to choose software and teach myself how to use it. I ended up using Circuitmaker as I liked the interface and online resources.
While a photoresistor would be a cheap sensor to measure light levels, it would only give analog values and each one would have to be calibrated. I chose a lux sensor with I2C communication as it was small and pre-calibrated. I also went with a pre-calibrated I2C thermometer. The thermometer I chose was a bit overkill with an accuracy of ±0.1 °C but it had a good Arduino library. The soil moisture sensor was at first going to be a resistive, two-lead probe. This sensor would require manual calibration and would corrode since they would be metal probes with current flow in a moist environment. This corrosion would lead to data drift as the conductivity of the probes changed. I changed to capacitive pads built into the PCB and the built-in capacitive touch pins already present on the microcontroller to measure the moisture as these wouldn't need to have contact with the soil and would not corrode. These pads were also easier to design into the board making it just one part.
I decided on the ESP32 as the microcontroller as it was Arduino C++ compatible, small, and had onboard wireless capabilities.
this project is on hold due to a component shortage