Hydroponic Prototyping with 7th Graders
Growth channels made from gutters
Testing our water sensors
For the past few months, I have been working with three 7th graders to build a working hydroponic garden. Last week, we saw sprouts for the first time. Funny enough, though, was that the sprouts did not actually come from the hydroponic garden. As most projects do, this project took an unexpected turn midway through as we added a soil component, which is where we ultimately saw our sprouts.
This project began with my own personal interest in hydroponics as part of designing the Planet School’s agriculture operations. I had bought the materials to replicate Kyle Gabriel’s hydroponic design (see video below) aboard Rose, but never had the bandwidth to get started. Finally, this fall, I decided to tackle this project inside the I-lab at the Nueva School where I am currently an Innovative Teacher Program Fellow. As I brought the materials in and started to get things set up, I naturally got some questions from interested students. I was hopeful to find some students to work with me on the project, but was not sure this was suitable material for middle school (it seemed fairly advanced for my own coding abilities). That’s when I was able to connect the dots between a class I was assistant teaching and this project.
Now, the Nueva CS curriculum is pretty awesome—it has been fun to watch it unfold and bear witness to how CS can be taught in middle school. For 8th grade, students worked on creating data visualizations using real world datasets. I was impressed. I have pasted one of the visualizations below as an example, but all the projects are worth looking at. This one (by a student named Charlotte) is on climate disasters with a click-based advancement through time.
In Nueva’s computer science program, students who are advanced in CS beyond what we are teaching in our curriculum can submit an independent study proposal. Once this proposal is approved, they essentially work independently in the “back of the classroom.” I saw this as an opportunity to pitch my project to three 7th graders as something they could take on for their independent study.
“Now, I want to be clear: I have never built this before and we will all be learning together. This probably won’t be a smooth ride and we may fail completely.”
All three of them accepted.
We began by approaching four different goals in unison:
Trying to get the sensors from Atlas Scientific up and running and talking to the Raspberry Pi.
Trying to get the peristaltic pumps working and talking to the Raspberry Pi.
Installing and running MyCodo, Kyle’s custom built hydroponic management software.
Getting additional sensors up and running.
Hydroponic workspace in Nueva’s I-lab
Atlas sensors connected to the Raspberry Pi
As with most coding projects I have ever worked on, the first part of the project is the hardest. Getting the right libraries installed, getting coding environments set up, even getting monitors that work with the Raspberry Pi was challenging. We hit a roadblock of not having the correct power supply for the peristaltic pumps—in fact, waiting for Amazon deliveries coupled with the once-per-week meeting time of the class led to slow progress. I was worried that I had pitched this cool project that was now falling flat.
I was blown away to come to school after a few weeks of little progress on my part to discover that the students had gotten MyCodo up and running on their own. Wow! We now had a browser-based user interface on the Raspberry Pi that we could start connecting the sensors to once we could receive their data.
I focused on getting the three water-immersed sensors working and sending data to the Raspberry Pi. So far, the only data input we have been able to get working was the IR Camera module for the Raspberry Pi, which my students got working during a lunch period. They also spent time attempting to get the Raspberry Pi’s SenseHat working using jumper cables so that it would not monopolize the GPIO ports (if this sentence made no sense to you, that’s OK. I will write another post actually explaining how to build this). We have concluded that a SenseHat system and a non-SenseHat system need to run on separate Pis, so we abandoned the SenseHats for this project.
Student working on the collective hydroponic project’s water hoses.
Two of the students working on the code for their individual soil sensors.
Looking back this feels a bit silly, but one of the trickiest things was making sure the wires were going to the right places. There are four wires being shown in the build instructions that we were following but the Atlas sensors we were using contain 5 wire ports. The ability to swap between I2C (a data communication protocol) and other data communication modes on the sensors added a layer of uncertainty in deciphering which wire does what. What I learned was that we were concerned with the SCL and SDA pins on the Pi as the means of transmitting data along with the positive and negative leads for power (GND for ground/negative and VCC for positive). This was a major discovery! Here is a great overview of the I2C communication protocol, which helped me feel more literate as I navigated Kyle’s instructions and the Atlas documentation.
Finally, after about a month, we got the pumps connected and working. What I did like about this process is that it got the students comfortable diving into documentation. Since I did not have the answers, we all had to read through the documents together. Different students came in on different days at lunch to work on the project, so I ended up being the only consistent individual tracking collective progress. I created a GitHub repository where we could share the progress we each made on different sensors and, by November, we had every sensor working.
It was about this time that I also realized that there was not really enough of this project for each student to “own” something. That is when I decided to introduce soil sensors, which was a topic I wanted to explore anyway.
Soil sensor testing and calibration with LCD screen added. The number of wires here make this look insanely intimidating, but I promise that it is achievable. We built to this point from scratch and want to help others follow in our footsteps.
While the Atlas Scientific sensors measuring the composition of the hydroponic water are expensive, the atmospheric sensors and the soil sensors are pretty cheap. Therefore, I decided to have each student build their own soil monitoring system while we all continued to work on the large hydroponic garden. Each system would include:
Raspberry Pi
Soil moisture sensor
Analog to Digital converter, since the soil sensor sends an analog signal but the Pi can only receive digital
Mini breadboards for wiring
Peristaltic pump
At least one environmental sensor (CO2, light, temp/pressure/humidity)
Right as we got to the point of getting everything working, we hit the holiday break. One student was able to properly calibrate the seemingly random values sent out by the soil sensor and write logic for activating the pump if those values rose above a certain value (drier soil returns a higher value). I was not even aware that he hit “run” on this code before break. So when I came back to school in January and was having a meeting with the I-lab Director before students returned to campus, we were interrupted by the sound of the pump suddenly turning on to water the soil. We both looked over surprised. Upon investigating, the system had worked! The soil was moist, but not saturated! Huzzah!
The following week, this student planted seeds that, as of writing this post, have just started to sprout.
Unfortunately, with the end of 2023 came the end of the fall semester and the end of the independent study. The projects all remain incomplete and the students have moved onto Design Engineering, another cool course where they design wooden cars big enough for them to race down a hill at school. Any attempt to finish of this project would need to be done in their extra time.
In all honesty, though, I feel alright leaving this project where it is. The fact that I was learning right along side the students meant I did not have much opportunity to scaffold their work into a beginning, middle, and end. It was almost impossible to set a final deliverable since we were not really sure what we would be able to accomplish. Nevertheless, I am hopeful they got something useful out of working on this and what it was like to try building something completely from scratch using pieces they had never worked with.
Even if this specific project has concluded, my work in hydroponics is far from over. What this project was very successful at was getting us comfortable with all of the sensors and the pumps, even if we ran out of time to pull it together to grow actual plants. Indeed, we accomplished all of the four goals I mentioned earlier in this post! I am contemplating taking everything we have learned and moving onto something more manageable in scale—closer to the individual soil projects we settled on in November. I pitched this new version of the project to these 7th graders last week and am awaiting responses. My next post will be describing the next phase of the project.
A cleaned up view of the hydroponic build with the Raspberry Pi and sensors arranged in front of the monitor.