/*
modified on Apr 10, 2021
Modified by MehranMaleki from Arduino Examples
Home
*/

// this is using the HiLetgo 5V 4 Channel Relay Shield
// pinout is apparently 7,6,5,4

#include <Wire.h>
#include "DFRobot_SHT20.h"

TwoWire twowire;
DFRobot_SHT20 sht20(&twowire);

void fanOn() {
  digitalWrite(7, HIGH);
}

void fanOff() {
  digitalWrite(7, LOW);
}


void setup()
{
    pinMode(4, OUTPUT);
    pinMode(5, OUTPUT);
    pinMode(7, OUTPUT);
    digitalWrite(7, LOW);
    
    Serial.begin(115200);
    //Serial.println("SHT20 Example!");
    //Serial.println("temperature,humidity");
    twowire.setClock(10000);
    sht20.initSHT20();                         // Init SHT20 Sensor
    delay(100);
    //sht20.checkSHT20();                        // Check SHT20 Sensor
}

// relay 4
void toggle() {
  digitalWrite(4, HIGH);
  delay(100);
  digitalWrite(4, LOW);
}

// relay 3
void toggle2() {
  digitalWrite(5, HIGH);
  delay(100);
  digitalWrite(5, LOW);
}

void toggle_test(int p) {
  digitalWrite(p, HIGH);
  delay(100);
  digitalWrite(p, LOW);
}


void loop()
{
  while (Serial.available()) {
    const int c = Serial.read();
    if (c == 's') {
      // TODO dump the current status  
      float humd = sht20.readHumidity();         // Read Humidity
      float temp = sht20.readTemperature();      // Read Temperature
      float volts = (5.0f/1024.0f)*analogRead(A2);
      float volts2 = (5.0f/1024.0f)*analogRead(A0);
      Serial.print(humd);
      Serial.print(",");
      Serial.print(temp);
      Serial.print(",");
      Serial.print(volts);
      Serial.print(",");
      Serial.println(volts2);
    } else if (c == 'h') {
      toggle();
    } else if (c == 'i') {
      toggle2();
    } else if (c >= 'A' && c <= 'Z') {
      toggle_test(c - 'A');
    }
  }
  delay(1);
}