It’s time to start moving the indoor IoT Farm to being an outdoor IoT farm. The idea I have is to do some experimentation and research into creating automated constrained space farms. I’m going to turn this into a hands on hack series for the CPTMSDUG user group and also share the learnings. Hopefully it goes well. 😁
Today was the big shopping day to get everything I need.
I came across this Smart Watering Kit by Elecrow. It was really great, but one thing missing is internet conectivity. We all know that we can’t grow plants without the “I” in IoT! So let’s see what we can do about that!
The kit comes with everything you need to water four different plants automatically.
The box contains
Arduino Leonardo
Power Supply
Pump
4 Capacitive Moisture Sensors
4 Way valves
Pipes
The kit is very comprensive and includes and LCD display which can show at a glance the conditions of your plants.
The board unfortunately does not have built in wifi connectivity. But what it does have is a serial port. That’s perfect, so what we could do is use that to send telemetry out to another device that is internet / wifi enabled.
A good device for that is a good old (and cheap) 8266 board. I had a NodeMCU in my box of tricks, so I decided to use that.
Parts List
Arduino Smart Watering Board (Arduino Leonardo)
NodeMCU board
2.2 K ohm resistor
1 K ohm Resistor
470 ohm Resistor
Breadboard
Wires
Power Supply
First step is to make it work on a breadboard.
Parts List
Arduino Smart Watering Board (Arduino Leonardo)
NodeMCU board
2.2 K ohm resistor
1 K ohm Resistor
470 ohm Resistor
Veroboard
Wires
Power Supply
Once working, the next step is to build that onto a more permanent solution. I decided to use just veroboard as it was quick and easy.
IoT Central
Device Templates
Create device capabilities for the moisture sensors as telemetry (Moisture1, Moisture2, Moisture3, Moisture4). [Device Definition json file is in the github repository along with the source code]
Create properties for the 4 relay states for each of the 4 valves. [Device Definition json file is in the github repository along with the source code]
Create a property for the pump state. [Device Definition json file is in the github repository along with the source code]
Publish the template and create an instance of the template as a device.
Note the “connection” information for the new device instance.
Take note of the following:
Scope ID
Device ID
Primary Key
Update the iotcserialrelay.ino file with the:
WIFI_SSID – The wifi hotspot ssid
WIFI_PASSWORD – The wifi hotspot password
SCOPE_ID – The Device Instance’s Scope Id
DEVICE_ID – The Device Instance’s Device Id
DEVICE_KEY 0 The Device Instance’s Key
Deploy iotcserialrelay.ino to NodeMCU.
Deploy watering_kit.ino to the Arduio Smart Watering Board.
Once deployed and connection is made, telemetry starts appearing within IoT Central’s dashboard.