
#include <Arduino.h>
#include <WiFi.h>
#include <WiFiMulti.h>
#include <HTTPClient.h>
#define USE_SERIAL Serial
#include <stdio.h>
WiFiMulti wifiMulti;

void setup() {

  //(RESISTOR PINS): 22=red 25=green 26=blue
  pinMode(33, OUTPUT); //blue
  pinMode(32, OUTPUT); //red
  pinMode(25, OUTPUT); //green
  
    USE_SERIAL.begin(115200);

    USE_SERIAL.println();
    USE_SERIAL.println();
    USE_SERIAL.println();

    for(uint8_t t = 4; t > 0; t--) {
        USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
        USE_SERIAL.flush();
        delay(1000);
    }

    wifiMulti.addAP("OSU_Access", "");

}

void loop() {
    // wait for WiFi connection
    if((wifiMulti.run() == WL_CONNECTED)) {

        HTTPClient http;

        USE_SERIAL.print("[HTTP] begin...\n");
        // configure traged server and url
        http.begin("https://web.engr.oregonstate.edu/~ariasmai/ENGR%20103/mySensorData.csv"); //HTTP
//https://web.engr.oregonstate.edu/~ariasmai/ENGR%20103/MoisturePercentagePost.php

        USE_SERIAL.print("[HTTP] GET...\n");
        // start connection and send HTTP header
        int httpCode = http.GET();

        // httpCode will be negative on error
        if(httpCode > 0) {
            // HTTP header has been send and Server response header has been handled
            USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode);

            // file found at server
            if(httpCode == HTTP_CODE_OK) {
                String payload = http.getString();
                USE_SERIAL.println(payload);

                int val = payload.toInt();

    if (val == 1) {
    digitalWrite(25, HIGH); // Turns on Green LED
    Serial.println("Moisture level suitable for vegetable growth");
    delay(200);
    digitalWrite(25, LOW);
  } 
  
    else if(val == 2) {
    digitalWrite(32, HIGH); //Turn on Red LED
    Serial.println("Moisture level too low for vegetable growth");
    delay(200);
    digitalWrite(32, LOW);
  } 
  
//    else if ((payload.indexOf("3") != -3)) {
    else {
    digitalWrite(33, HIGH); //Turns on Blue LED
    Serial.println("Moisture level too high for vegetable growth");
    delay(200);
    digitalWrite(33, LOW);   
  } 

                
            }
        } else {
            USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
        }

        http.end();
    }
    

  //  delay(5000);
}
