Introduction
This blog is to close out this project for the purposes of the remote monitoring competition.
In blog 1, I presented an old project, which was based on fuzzy logic and used analog moisture sensors which corroded over time. The data collected was posted using an Ethernet connection to a Rasberry Pi, which acted as local server, and from the RPi data was also sent to a cloud platform for archive. The only remote control available was via the LAN where you could open up a web server on the Raspberry Pi SBC.
In blog 2, I wrote about the typical issues related to remote monitoring and control and presented a solution by way of mDash, a new cloud platform as a service. I provided a review of this service and walked through the available end-to-end example and then made some modifications of my own to test suitability. I alluded to the new prototype device that would monitor the plant moisture and control the watering process.
And finally I'm now writing up this blog (as I'm pretty much out of time), which provides an overview of the new creation.
New Remote Unit
The new remote unit has quite a changes.
For the MCU I'm using an ESP32 WiFi module. This links in with the MDash cloud platform.
I added in an NXP NTAG I2C Plus module, as I personally think this is the best way to provision WiFi hands down. None of this scanning for Access Points and manual SSID/Password entry required.
I swapped out the old corroded moisture sensors for capacitive based moisture sensors. The ones I'm using are from Adafruit. These are I2C based as use a microcontroller. The nice thing is that they have made provision for 4 I2C addresses, which comes in handy as I wanted one remote unit to handle two plants. If I needed to use more, I found these ones, from DFRobot, online which provide an analog output.
For this prototype, I am testing the use of two sensors per pot, in the following configuration as I wanted to see how much moisture levels differ between near the soil surface and at the bottom of the pot, where the roots are. My hypothesis is that you are not too concerned about horizontal moisture variances it is more about the vertical changes. Time and data will determine if this is relevant or not.
Then for the motor driver, I decided to use the TP6612 as can handle 12V for the motor and will happily drive two water pumps which require 200mA each. I am using a breakout board from Adafruit.
Remote Unit Firmware
The firmware was developed using Arduino IDE.
Thanks to the extensive library list, I found there were libraries available for all parts of my project.
<< Code to be inserted here. >>
Future expansion planned
There is something rather satisfying about over engineering a design, and this project is no different. I admit that "feature creep" crept in as I wanted to included some more generic environmental sensors into the project. Sadly time ran out and just left of a bunch of kit on my desk for another time.
{gallery} Future Plans |
---|
And we present...
Well, it's nearly there. I'm hoping to sneak in a video as well.
Top Comments