//Creator:- Devesh S Nair //Dome Dryer Airflow Automation System //Declaring all the libraries that we need #include #include #include #include #include #include #include #include #include #include #include #define OLED_WIDTH 128 #define OLED_HEIGHT 64 #define OLED_RESET -1 #define OLED_ADDR 0x3C #define RELAY 25 #define ONE_WIRE_BUS 14 #define SECRET_CH_ID 1662711 #define SECRET_WRITE_APIKEY "C76TGYZ9XTALAYKQ" #define SECOND (1000UL) #define MINUTE (SECOND*60UL) Adafruit_SSD1306 display(OLED_WIDTH, OLED_HEIGHT, &Wire, OLED_RESET); float t,t1,t2,t3,t4,t5,t6; DeviceAddress Probe0 = { 0x28, 0xE8, 0xF4, 0x96, 0xF0, 0x01, 0x3C, 0x93 }; //External Dry Bulb DeviceAddress Probe1 = { 0x28, 0xB4, 0xEF, 0x96, 0xF0, 0x01, 0x3C, 0xCC }; //External Wet Bulb DeviceAddress Probe2 = { 0x28, 0x1C, 0x72, 0x96, 0xF0, 0x01, 0x3C, 0x6A }; //Internal Dry Bulb Layer 1 DeviceAddress Probe3 = { 0x28, 0x32, 0x94, 0x96, 0xF0, 0x01, 0x3C, 0x89 }; //Internal Dry Bulb Layer 2 DeviceAddress Probe4 = { 0x28, 0x0B, 0x82, 0x96, 0xF0, 0x01, 0x3C, 0x12 }; //Internal Dry Bulb Layer 3 DeviceAddress Probe5 = { 0x28, 0x84, 0x37, 0x96, 0xF0, 0x01, 0x3C, 0x41 }; //Internal Wet Bulb OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); WiFiClient client; unsigned long myChannelNumber = SECRET_CH_ID; const char *myWriteAPIKey = SECRET_WRITE_APIKEY; void setup() { WiFi.mode(WIFI_STA); Serial.begin(115200); pinMode(RELAY, OUTPUT); WiFiManager wm; //wm.resetSettings(); bool res; // res = wm.autoConnect(); // auto generated AP name from chipid // res = wm.autoConnect("AutoConnectAP"); // anonymous ap res = wm.autoConnect("Wifi_connect","123456789"); // password protected ap if(!res) { Serial.println("Didn't Connect to any network"); } else { Serial.println("Hi I'm connected"); } ThingSpeak.begin(client); display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(0, 1); display.println("Welcome"); display.setCursor(0, 20); display.println("FABACADEMY2022"); display.display(); delay(1000); } void loop() { float d = ((17.502*t)/(240.97+t));// Equation for Humidity float e = 2.7183; float g = 6.112*(pow(e,d)); float j = ((17.502*t1)/(240.97+t1)); float k = 2.7183; float m = 6.112*(pow(k,j)); float n = (m-(0.6687*(1+0.00115*t1)*(t-t1)))/g*100; //Humidity upto 2 digit float d1 = ((17.502*t5)/(240.97+t5));// Equation for Humidity float g1 = 6.112*(pow(e,d1)); float j1 = ((17.502*t6)/(240.97+t6)); float m1 = 6.112*(pow(k,j1)); float n1 = (m1-(0.6687*(1+0.00115*t6)*(t5-t6)))/g1*100; //Humidity upto 2 digit sensors.requestTemperaturesByAddress (Probe0); t=sensors.getTempC(Probe0); int x = ThingSpeak.writeField(myChannelNumber, 1,t, myWriteAPIKey); sensors.requestTemperaturesByAddress (Probe1); t1=sensors.getTempC(Probe1); //int y = ThingSpeak.writeField(myChannelNumber, 2,t1, myWriteAPIKey); //wet atp temp sensors.requestTemperaturesByAddress (Probe2); t2=sensors.getTempC(Probe2); //int z = ThingSpeak.writeField(myChannelNumber, 3,n, myWriteAPIKey); //humidity of t sensors.requestTemperaturesByAddress (Probe3); t3=sensors.getTempC(Probe3); sensors.requestTemperaturesByAddress (Probe4); t4=sensors.getTempC(Probe4); t5=((t2+t3+t4)/3);//Internal Dry Bulb int x1 = ThingSpeak.writeField(myChannelNumber, 6,t5, myWriteAPIKey); sensors.requestTemperaturesByAddress (Probe5); t6=sensors.getTempC(Probe5); //int y1 = ThingSpeak.writeField(myChannelNumber, 4,t6, myWriteAPIKey); //wet atp temp int z1 = ThingSpeak.writeField(myChannelNumber, 5,n1, myWriteAPIKey); //humidity of t5 //Serial.print("\n"); //Serial.print("\tODB\t"); //Serial.print("\tOWB\t");//External Dry Bulb //Serial.print("\tRH%\t"); //Serial.println(" "); // //Serial.print("\t"); //Serial.print(t);//External Dry Bulb //Serial.print("\t"); //Serial.print("\t"); //Serial.print(t1);//External Wet Bulb //Serial.print("\t"); //Serial.print("\t"); //Serial.print(n); //Serial.print("\t"); //Serial.println(" "); // //Serial.print("\tIDB\t"); //Serial.print("\tIWB\t"); //Serial.print("\tRH%\t"); //Serial.println(" "); // //Serial.print("\t"); //Serial.print(t5);//Inner Dry //Serial.print("\t"); //Serial.print("\t"); //Serial.print(t6);//Inner wet //Serial.print("\t"); //Serial.print("\t"); //Serial.print(n1); //Serial.print("\t"); //Serial.println(" "); //delay(10*SECOND); delay(500); display.clearDisplay(); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(0, 0); display.println("T1:"); display.println(t5); display.println("Hum1:"); display.println(n1); display.display(); delay(2000); display.clearDisplay(); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(0, 0); display.println("T2:"); display.println(t1); display.println("Hum1:"); display.println(n1); display.display(); delay(2000); display.clearDisplay(); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(0, 0); display.println("T3:"); display.println(t3); display.println("Hum1:"); display.println(n1); display.display(); delay(2000); display.clearDisplay(); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(0, 0); display.println("T4:"); display.println(t); display.println("Hum2:"); display.println(n); display.display(); if(t5<=49 & n1>=60) { digitalWrite(RELAY, LOW); Serial.print("Fan is On"); //delay(10*SECOND); } else { digitalWrite(RELAY, HIGH ); Serial.print("\nFan is Off"); //delay(10*SECOND); } }