Time to grow some data…

Last weekend I decided to build a monitoring system for the planter boxes on my deck. I wanted to collect data on soil moisture and light levels from at least two of the 4 planter boxes. The issue is that I don’t have a place to plug it all into and I want to log the data using Google Sheets so that I can graph everything.

20190515_185135

20190515_185310

So I grabbed a solar panel, whipped up a voltage regulator, connected a rechargeable battery and that took care of the battery. For the microcontroller I used a Particle Photon, mostly due to it’s abundance of analog read pins, and connected a Spark Fun soil sensor with an added photo-resister for light readings. The Photon reads the analog value of each sensor and adds a new row into my Google Sheets doc via IFTTT. After the data is sent the Photon goes into deep sleep mode every 10 minutes. This makes it so that the sensor sips power and can easily last using only solar power.

So here is the Data:

My next step is to collect enough data to flag events that I want to be notified about. Like when the water level gets low enough to were I should water my plants, or when my plats are about to die due to extreme dryness. I can also see how much daylight a particular box is getting so I know what plants need to go where. If I had access to a water outlet I could have that automatically water the garden, but for now my water bucket works well enough.

 

 

Why care about MIT App Inventor?

The other day I made a post about using App Inventor to create a simple UI for the Particle Photon. I have also been working on a project that involves an internet connected Weather Cloud. To make it easy for the owner to control this cloud, I have put together and Android app.

image

This works much faster that using something like IFTTT and requires no additional libraries like Blynk.

This brings up an interesting observation when it comes to IOT. If you want to interact with your devices, there are not a lot of good ways to go about it.
You can throw some Ajax onto your web server. If you have a web server that is.
Connect your devices API to another companies API and send your data on an epic journey when you are often in the same room as the device you are sending data to.
Make your own API and take pride that you have joined a legacy of frustrated developers world wide. Then scrap it all to use IFTTT just so much easier.
You could add a few new libraries to your firmware so that it can talk to a custom UI app like Blynk. This is actually not a bad option except that I should not have to add a new library to exploit the basic HTTP interaction protocol that comes standard with the Particle API.
Going back to the web server thing, you can just use a simple HTML page and form data for interaction. This just leaves your device credentials open for the world to see.

This is the problem with IOT right now. There are lots of ways to interact with devices, but no really good way to just go from user to device for the average person. App Inventor gives us a quick fix by letting us create an app that just uses HTTP GET and POST requests while keeping the credentials private. However, we need something better. An app that uses basic the preexisting protocol with an intuitive UI.

This is what I am working on at the moment with Vince at SoDo MakerSpace. An app like Blynk with no additional libraries, IFTTT without the additional API hooks, and Ajax without all of the coding.

I feel like this will help to open the door to the dream of IOT for the masses.