I really like tomatoes, particularly heat, freshly grown ones. We’re fortunate sufficient to have a south-facing backyard the place tomatoes ought to thrive given sufficient water. Nonetheless, watering is a type of issues I’ve confirmed myself incapable of doing reliably. After a couple of false begins with a fish pond pump and a timer, I made a decision to do the wise factor and purchase a correct plant waterer — which ran out of batteries, obtained caught off, caught on, and at last stuffed itself up with water. Finally, being a maker, I made a decision to do one thing about it — I made my very own waterer with a microcontroller, and it “simply labored.” Every year it’s developed, and I now have one thing that’s easy, dependable, low-cost, and has options you gained’t discover even in costly shop-bought waterers, together with computerized fertilizing!


The plumbing is simple — drill a couple of holes within the field (Figures A1 and A2) and put within the solenoid (Determine B), then join it to the hose adaptors (Determine C) and watering package (Determine D). Your water supply will connect with this. In the meantime, the peristaltic pump (Determine E) will periodically add fertilizer into the water stream; one facet goes to a container of liquid tomato feed by way of a linked hose, and the opposite plumbs into the watering pipe going to the tomatoes, utilizing a T. For those who purchased a drip feed package, they usually include all of the pipe and T-pieces you’ll want.

To keep away from utilizing circuit boards, I soldered the FETs and diodes (Determine F) on to the solenoid and pump. All you want then is to connect the 12V energy and the three wires (floor and two management indicators linked to D1 and D2) to Puck.js (Determine G). Observe the circuit diagram in Determine H. I put the Puck.js on prime of the case and drilled by means of for some wires — it’s waterproof sufficient to be high quality outdoors, and it means I can press the button on it to simply begin watering after I’m within the space (Determine I).

Determine H

Determine I

Software program

Now for the enjoyable bit! Puck.js runs JavaScript, and could be programmed and debugged fully wirelessly utilizing Net Bluetooth.

Observe the directions on the Puck.js web site to replace your Puck’s firmware and get the Espruino IDE open — in lots of circumstances it’ll “simply work” so long as you’ve got the Chrome net browser.

Upon getting the Net IDE open, click on the “join” icon within the prime left and select your machine. On the left facet of the IDE you must see a command-prompt the place you’ll be able to immediately work together with the microcontroller itself. You may nonetheless write code “usually” on the right-hand facet and add it in a single go.

Go into Settings (prime proper) then Communications, and ensure “Set Present Time” is checked (this may set the right time everytime you add code).

Then add the next code for a easy waterer:

E.setTimeZone(-Eight /* PST */);
var hadWater = false;

operate waterPlants(water, feed) 

// Verify watering each 10 minutes
operate onTick() 
setInterval(onTick, 10*60000);

// When a button is pressed, 
//water for 30 sec
setWatch(operate() , BTN, );

This can water twice a day at set occasions, and also will fertilize the tomatoes 3 times every week (Monday, Wednesday, Friday).

Utilizing the left facet of the IDE, you’ll be able to work together instantly with the waterer. D1.set() will activate the water solenoid and D1.reset() will flip it off. Typing in waterPlants(10,5) will water the crops for 10 seconds and feed them for five seconds.

You’re now executed. Your plant waterer ought to hold working simply high quality till the battery runs down in a yr or so. Nonetheless, likelihood is you’ll need it to maintain working even when it will get reset, and that’s straightforward — simply sort save() and every little thing shall be saved into flash reminiscence.

NOTE: By default anybody can connect with Puck.js and work together with it. Go to for some concepts if you happen to’re frightened about this!

Determine J

Try my Github for this code in addition to a barely extra difficult model that logs temperature and light-weight ranges, and even offers a dashboard on your telephone (Determine J)!

For those who try this (or one thing comparable) your self, or have any questions, please get in contact on the Espruino boards.

Powered by WPeMatico


Related Posts

Create Account

Log In Your Account