/* WiFi-enabled water level sensor by John Hart farmgeek@gmail.com 2011. This code is based on the work of many others. All errors are mine, any good code, theirs. Attributions as noted */ /* Please feel free to use, modify or share this code without restriction. If you'd like to credit me in your derivatives, that'd be nice too. */ /*Original sensor code by Dave ten Have */ #include #include "Settings.h" #include Client client(server, port_number); void setup() { } void loop() { pinMode(6, OUTPUT); // Set digital pin 6 as OUTPUT to power WiFly shield VIN Pin digitalWrite(6,HIGH); // trigger relay to power WiFly shield VIN delay(200); //allow WiFly time to boot wdt_enable(WDTO_8S); //start watchdog set for max 8 seconds /*Serial.print statements used for debugging - can be commented out */ Serial.begin(9600); Serial.println("Starting ..."); Serial.println(request_url()); delay(100); Serial.println("Taking reading..."); int reading = gauge_reading(); Serial.println("-- data collected"); Serial.println(reading); send_data(reading); wdt_disable(); //turn off watchdog timer - if sketch gets this far it hasn't hung delay(100); digitalWrite(6,LOW); // Power down WiFly //delay(295000); delay(57000); // 1 minute minus delays } void send_data(int reading) { Serial.println("-- -- sending data"); WiFly.begin(); Serial.println("-- -- wifly online"); if (WiFly.join(ssid, passphrase)) { Serial.println("-- -- -- joined"); String request = "GET " + request_url() + "?data=" + String(reading) + " HTTP/1.0"; client.connect(); Serial.println(request); client.println(request); client.println(); delay(100); client.read(); client.stop(); Serial.println("-- -- -- data sent"); } } String request_url(){ String url_template = "http://" + String(server) + "/record/" + String(sensor_GUID); return url_template; }