Our team had two goals regarding Wifi. The first one was to stream our moisture sensor data online and the second one was to pull data from websites to incorporate into our Arduino functions. Arduino is an open source computer hardware and software company. It basically allows anyone to directly link their code with their circuit. One example would be creating a basic circuit with an LED and a resistor and linking it to code that tells the LED blink every three seconds. Arduino is a fun program that allows endless innovation on a do-it-yourself level. Using breakout boards and equipment from SparkFun Electronics and Arduino, we attempted to write code that would basically do the following: If the moisture of the garden gets too low check online weather data. If it is not going to rain within the next few days, weather the garden. We were able to wire the circuit to open the solenoid valves and water the garden based off of our moisture sensors but ran into trouble using the Wifi. There are many different options available to connect to Wifi. You can use an Ethernet Shield, Arduino CC3000 Wifi chip, or Adafruit Wifi Shield. We were able to connect using the latter two.
There are various tutorials available online at adafruit.com, sparkfun.com, adafruit.com, and wunderground.com (Weather Underground) that will help anyone learn cool projects using circuitry. When attempting any tutorial I recommend you read everything there is to read and not try to speed your way through anything. Being new to Arduino coding and C/C++ I ran into many syntax coding errors while trying to create a functional code for our circuits. Some tutorials you will find start with warnings as to what versions of code they are compatible with. At one point I had to install a more outdated version of Arduino to be compatible with code that wouldn’t run on the newest version. The tutorials you will find at these websites are generally helpful but the code they post does not always run as smoothly as one might like. Adafruit has a great forums page and many dedicated administrators that I stayed in contact with as we tried to troubleshoot our coding.
Most of the problems I dealt with arose from working with many different products and websites. When trying to stream data online we attempted to run data from a SparkFun moisture sensor through an Arduino UNO board with an Adafruit Wifi shield onto Carriots’ data streaming website (Carriots.com is a free application development website). The syntax of the code changes depending on what kind of Wifi shield you use and then we had to form a string of data that Carriots could pick up. I found different tutorials with free code for different steps of the procedure, and with help from Professor Roberts, starting combining the relevant parts of each tutorial code into one master sketch (a sketch is a page of code in Arduino).
For those just starting Arduino I recommend reading through Sparkfun’s basic tutorials before trying to take on any Wifi elements of this project. Experienced Arduino users should try and follow our footsteps in creating an effective Wifi based garden watering system. Below are some tutorials and forums that guided me in this research.
Soil Moisture Detector in Arduino
Parse Extract Weather Data for Arduino with Ethernet Shield
How to connect to a Weather Station/Weather Underground with Arduino (Ethernet)
Google Weather on Graphical Display with Arduino
Weather Station Wirelessly Connected to Weather Underground
Forum on Weather station data to Weather Underground Code Included
Solar Powered Arduino Weather Station
Arduino Connection to Carriots
Arduino with Carriots Information
Predicting rain with pressure readings (related but not Wifi based)
Sensing Barometric Pressure with Arduino (related but not Wifi based)
Similar Automatic Gardening Project with Arduino (states future goals to work with online data)