New Project: Gardening for Dum-Dums, or G4D


New house with a garden. Great, you might think. No. Wrong. Now, this is going to sound a little moany, but looking after a garden, it turns out, is a MASSIVE chore, and if you don’t (I have discovered the hard way) things go South quite quickly. You essentially find yourself with a new unwanted hobby, gardening.

The thing to do really would be to just get a gardener – seems an expensive cop out. Or concrete it over.

A crucial part of garden husbandry is watering the damned things. I thought a watering system pretty low-hanging fruit in terms of something I could just automate, instead of me standing there with the hose as a mosquito picnic spot.

Now, I know there is a range of off-the-shelf solutions for this blah, blah blah: simple mechanical timers on the garden hose, the latest and greatest smart offerings and such. But I thought I might as well have a crack at making my own. I am calling it Gardening for DumDums (dummies is already taken after all ) shortened to G4D


Hardware: Arduino vs Raspberry Pi

Have never had much luck with getting Arduinos going with the internet (with ESP) and I want my gizmo to be able to ping (weather) web apis and also tie in with Google Home. These complexities just seemed to put it beyond an Arduino-only answer.

I have gone with a Raspberry Pi and an off-the-shelf relay shield, from Pi-Plates. This will control some solenoid values that can turn the water supply off and on to various parts of the (damned) garden.

A Pi-Plate Relay board

Platform: Raspbian-Python or Windows 10 IOT-C# or Android Things-Java

Kind of feel this should be straight forward. It’s not. A couple of things I weighing up (and am still doing so, doubting myself):

  1. F-around factor: how easy is it going to be (for me)
  2. Pi-Plate (Python) Libraries: Using the Pi-plate relay board libraries. The ‘official’ ones are in python. But controlling a few relays cannot be that difficult? Just more work if I am not using Python.
  3. Support and continuing support: I have an RPi 3 B+, the latest and greatest (with the option of 5GHz wifi or power of ethernet PoE).
  4. Cloud: A rather generic term to do with interfacing with push notification services and Google Home (or Alexa, if that’s your flavour). I suppose it really about getting messages ‘into’ my device without on-the-face-of-it resorting to polling.

Android Things

  1. F-around factor: 4 out of 5. I know Android, I know dev environment. Not sure about interfacing with pi plate board.
  2. Libraries: 1 out of 5. No to using the python ones. I think I would need to port them.
  3. RPi 3 B+ 0 out of 5. See comment.
  4. Cloud: 3.5 out of 5. I would just use Firebase Cloud Messaging(FCM). I have used its predecessor, Google Cloud Messaging so figure it would not be too tough to pickup FCM.

Comment

I am a little off Google at the moment. My go to would have been Android Things and I was all set to go down that path when it became apparent that Things does not work on the RPi 3B+. Looking into it I came across this official blog post essentially confirming that Android Things is dead in the water and development halted at the RPi3B.

The darkening sentiment as comments progress on the Raspberry Pi 3 B+ Support Google Issue Tracker page sums things up with the last comment, #181 being:

Real di*k move android things team. Can’t say I’m surprised. Just disappointed.

https://issuetracker.google.com/issues/76155541#comment181

Python, Flask(? or maybe Node.js) and Raspbian

  1. F-around factor: 1 out of 5. WTF is Flask? And why is Python so annoying?
  2. Libraries: 5 out of 5. They are there and good to go.
  3. RPi 3 B+ 5 out of 5
  4. Cloud: 2.5 out of 5. See comments

This would be the obvious choice…mainly because there is some demo code on the Pi-Plates website that kind of does most of what I want.

F-Around Factor

I just have a strange aversion to (1) Python and (2) Linux. I just find their loosey-goosey everybody-hold-hands no-bounds nature (which are apparently their selling points) a hassle.

A case-in-point is the tutorial for setting up Pycharm for remote development on Raspberry Pi which goes on f_o_r_e_v_e_r. You just KNOW you are going to get into it and it’ll be a whole heap of pain.

I should probably get over this and see the light. Just seems a lot of effort

Cloud


Yes (with caveats): to C# and Windows 10 IOT

  1. F-around factor: 3.5 out of 5. I am not that familiar with C#, and Azure…I know nothing.
  2. Libraries: 4 out of 5, in hindsight (luckily). See comments
  3. RPi 3 B+ 0 out of 5, in hindsight. See comments. Grrrr!!!!
  4. Push notification: 2.5 out of 5. See comments

Comments

I went this way as this was the last man standing. And at face-value it seemed straight forward:

  1. Easy to set up remote dev from Visual Studio, and these are a ton a examples on
  2. I was under the impression you could chop-and-change between C# and python in VS >> so (I thought) I could easily use the PiPlate python libraries from pip. (No)
  3. I figured there would be some way to get things playing nicely with Google Home.

Some useful links…

https://github.com/pi-plates/PiPlateRelay/tree/master/src/uwp/PiPlateRelay

http://go.microsoft.com/fwlink/?LinkID=533884&clcid=0x409

https://github.com/github/VisualStudio/blob/master/docs/using/publishing-an-existing-project-to-github.md

http://www.blackwasp.co.uk/UIThreadContinuations.aspx

Series NavigationG4D: Water flow >>