/* 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 #define USE_SHT30 #ifdef USE_SHT30 #include "SHT85.h" #define SHT85_ADDRESS 0x44 SHT85 sht30; #else #include #include "DFRobot_SHT20.h" TwoWire twowire; DFRobot_SHT20 sht20(&twowire); #endif 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); #ifdef USE_SHT30 Wire.begin(); sht30.begin(SHT85_ADDRESS); Wire.setClock(10000); #else twowire.setClock(10000); sht20.initSHT20(); // Init SHT20 Sensor #endif 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 #ifdef USE_SHT30 sht30.read(); float humd = sht30.getHumidity(); float temp = sht30.getTemperature(); #else float humd = sht20.readHumidity(); // Read Humidity float temp = sht20.readTemperature(); // Read Temperature #endif const int NUM_AVG = 64; float volts = 0.0f; float volts2 = 0.0f; for (int i = 0; i < NUM_AVG; i++) { volts += (5.0f/1024.0f)*analogRead(A2); volts2 += (5.0f/1024.0f)*analogRead(A0); } volts *= 1.0f/NUM_AVG; volts2 *= 1.0f/NUM_AVG; 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); }