, , , ,


These days we buzz about “The Internet of Things.”  To me, this means instant communication with our plants wherever we are and through whatever “computer” device that is most accessible – whether that is a mobile or a web browser.

My design calls for multiple sensors sending their data to a master whose job is to connect to a home’s wiFi.  The master communicates with a cloud service where it can send sensor data into a database as well as notify folks when they need to take action on one of their growing systems.

For example, when the system needs more nutrients, a pump has stopped working, the Ph is off, the temperature of the water is not right…all sorts of notifications that aid in us growing the healthiest, best tasting veggies and fruits in our home.

The notifications as well as viewing the sensor data within visual representations would then be available to folks through their mobile or web browser.

The biggest experience decision here is what cloud service to use.  As usual, there is a buy versus build decision.  I have learned A LOT in this area from my experience running servers at my company, Sabi.  The most important criteria is customer experience.  The second is expense.  If I ran my own servers A LOT of time would be spent ensuring the most uptime, optimized response to a mobile or web browser’s request for data, writing and maintaining all the server side software needed to run the services.  It would also get expensive.  I would most likely host the servers at an ISP’s location since the servers would need an environment customize to optimizing their health.  It is one thing to build a prototype of server services, it is scales of magnitude more difficult to run services in a production environment and seamlessly scale in the fortunate case of increase in usage.

Thus, while I do prototype on a web server running on my Mac, the second stage of a prototype is to get it running on a 3rd party service.  The challenge with today’s crop of third party services is they may not be around and then all that data needs to be migrated, code most likely will need updating.  Changing the backend is a big effort.  So choose your 3rd party service with the risk they might shut down their service at any time – as Nirvanix did.

The third party services I am exploring include Xively, Parse.com, AWS, and Heroku.


It is simple to sign up for a free account.  Once signed up, it is painless to start up an instance of a service.  The easiest way is to use Elastic Band….

Prototype on Mac machine

To prototype,

  • Step 1: Get easy access to a web server that runs PHP and mySQL.  For this, I installed MAMP on my Mac.
  • Step 2: Get and test an 802.11 chip that an Arduino can access and send some info to the web server running a PHP script.  This post walks through the process I took to complete step 2.