For the HackUTA 2018 Hackathon, our team and I built an automated houseplant watering system, which we called “Howdy Sprinkler". The project involves an electronic circuit with a Raspberry Pi and a 12V water pump that draws water from a reservoir tank to a plant which also has a moisture sensor buried in the soil, a mobile app front end, and a database to store all plant data. We used React Native for the front end for iOS and Android mobile development, and Node.js and mySQL for the back end database.


Coming into the competition, we already had a rough idea of the parts we would need and the type of electronics we would use. Once hacking had started, we set off to work on the electronics and the front end to get an idea of what kind of components we would need and what kind of UX we’d want. We wrote out a list of features that we’d want and the screen workflow for the front end. Although I had some prior front end experience, I was able to learn quite a bit through this hackathon. By creating a diagram that showed the flow between screens, I got a much better idea of how I needed to structure the app, and I better understood why it’s important to have good UI/UX developers who can create a naturally flowing app.


The biggest challenges we faced were with the electronics and the back end setup. We had a basic idea of the circuit we would need to create, but we soon found out that our MOSFET circuit was not delivering enough current and power to the 12 volt pump, which was functional by direct power hookup, but we wanted to provide a safe and efficient system for the Raspberry Pi to operate. One of the fellow hackers suggested that we switch to a BJT (Bipolar Junction Transistor) and this was able to get enough voltage to the pump, but we still had very little current going to the water pump, leading to very slow operation. For demo purposes we directly connected the pump to showcase how the pump was able to draw water and flow it to the plant. We calculated the flow rate so we had all of the necessary data to supply the Pi with accurate timings for user defined water amounts given in mL from the database.


Another challenge we faced was trying to learn how to use Django for our back end scripting. We initially wanted to come in and learn Django for our own personal enrichment, since none of us had worked with it before. We found it to be a little difficult to work with, and about halfway through we dropped that idea and decided to stick to the tried and tested Node.js, which we were all more familiar with. We used a mySQL database, which all of us had learned about in our previous semester’s programming class. This provided us a database that we could send GET and POST requests to for simple data such as amount of water to distribute, name of the plant, moisture readings, intervals for watering, and much more.


Overall, the event was a lot of fun (even with working for 24 hours straight). This is my 4th hackathon, and I had a really great time interacting with the other hackers and organizers and I found the hackathon to be relatively well managed compared to previous hackathons I had attended. Hackathons are a great event for any computer scientist, engineer, or any college person wanting more hands-on, real world experience. I am really going to miss attending these hackathons after college, but look forward to corporate sponsored ones that inspire innovation and growth of ideas.


For the Devpost Submission, click here.


Copyright © Alex Le     ↑ Top