/* required libreries * esp8266-oled-ssd1306-master.zip * ESP8266-I2C-LCD1602-master.zip * DHT-sensor-library-master.zip * NTPClient-master.zip * timezone-master.zip * */ #include #include #include #include #include #include #include #include // Create a display object #include SSD1306 display(0x3c, D2, D1); //0x3c for the Adafruit 1.3" OLED, 0x3C being the usual address of the OLED #include LiquidCrystal_I2C lcd(0x27,16,2); // Display I2C 16 x 2 //#include #include "DHT.h" #define DHTPIN 0 // GPIO0 (D3) DHT Connected to Pin ?? #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); // Define NTP properties #define NTP_OFFSET 60 * 60 // In seconds #define NTP_INTERVAL 60 * 1000 // In miliseconds #define NTP_ADDRESS "ca.pool.ntp.org" // change this to whatever pool is closest (see ntp.org) // Set up the NTP UDP client WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, NTP_ADDRESS, NTP_OFFSET, NTP_INTERVAL); //const char* ssid = "NTI"; //const char* password = "Isabelle001"; const char *ssid = "BELL024"; const char *password = "D5666FE5"; String readStrings = ""; int pin1 = 14; // GPIO 14 (D5) int pin2 = 12; // GPIO 12 (D6) int pin3 = 13; // GPIO 13 (D7) int pin4 = 15; // GPIO 15 (D8) int usr = 02; // GPIO 02 (D4) user connected int stat1 = 0; int stat2 = 0; int stat3 = 0; int stat4 = 0; const int sensor2=A0; // Assigning analog pin A0 to variable 'sensor' const int sensor3=D0; // Assigning analog pin D0 to variable 'sensor' float tempC; //variable to store temperature in degree Celsius float tempF; //variable to store temperature in Fahreinheit float vout; //temporary variable to hold sensor reading String LS = ""; // clock constants String date; String t; const char * days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"} ; const char * months[] = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"} ; const char * ampm[] = {"AM", "PM"} ; WiFiServer server(80);//port number if your're interested to connect to the internet you need to have port forward. local access use 80 IPAddress ip(192, 168, 240, 109); //static ip make sure that this ip is available. Check your IP configuration. Some router ip start with 10.1.x.x IPAddress gateway(192,168,240,1); //set gateway to your router IPAddress subnet(255,255,255,0); //subnetting void setup() { Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } lcd.begin(); // Start LCD lcd.backlight(); // turn on backlight lcd.clear(); delay(10); //Wire.pins(0, 2); // Start the OLED with GPIO 0 and 2 on ESP-01 //Wire.begin(0, 2); // 0=sda, 2=scl //Wire.begin display.init(); display.flipScreenVertically(); display.drawString(0, 24, "Connected."); display.display(); delay(1000); timeClient.begin(); // Start the NTP UDP client pinMode(usr, OUTPUT); // user connected pinMode(pin1, OUTPUT); //pin1 output pinMode(pin2, OUTPUT); //pin2 output pinMode(pin3, OUTPUT); //pin3 output pinMode(pin4, OUTPUT); //pin4 output pinMode(sensor2,INPUT); // Configuring pin A0 as input pinMode(sensor3,INPUT); // Configuring pin D0 as input // Connect to WiFi network digitalWrite(usr, HIGH); delay(100); digitalWrite(usr, LOW); delay(300); digitalWrite(usr, HIGH); delay(100); Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); lcd.setCursor(0,0); lcd.print("Connecting : "); lcd.setCursor(0,1); lcd.print(ssid); digitalWrite(usr, LOW); delay(100); WiFi.begin(ssid, password); //WiFi.config(ip,gateway,subnet); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); Serial.println(WiFi.localIP()); // Print the IP address lcd.clear(); lcd.setCursor(0,0); lcd.print("Connected: "); lcd.setCursor(0,1); lcd.print(ssid); delay(3000); lcd.clear(); lcd.setCursor(0,0); lcd.print(WiFi.localIP()); delay(100); // dht begin dht.begin(); Serial.println ( "DHT started" ); lcd.setCursor(0,1); //lcd.print(" DHT started" ); delay(2000); lcd.print(" ." ); delay(500); } void loop() { float h = dht.readHumidity(); // humidity % float tc = dht.readTemperature(); // temp c' float tf = dht.readTemperature(true); //temp f' float hif = dht.computeHeatIndex(tf, h); float hic = dht.computeHeatIndex(tc, h, false); vout=analogRead(sensor2); /*Serial.println(" "); Serial.println(vout); Serial.println(" "); delay (2000); */ vout=(vout*315)/1023; // based on it lower V. reference tempC=vout; // Storing value in Degree Celsius tempF=(vout*1.8)+32; // Converting to Fahrenheit //LS=digitalRead(sensor3); if (digitalRead(sensor3) == 0) { LS="Off"; } else { LS="On"; } if (isnan(h) || isnan(tc)) { Serial.println("Failed to read from DHT"); lcd.setCursor(0,1); //lcd.print(" "); lcd.print(" No DHT "); } else { //lcd.setCursor(0,1); //lcd.print(" "); /* Serial.print(" Temperature: "); // show in serial monitor Serial.print(tc); Serial.print(" *C \n"); Serial.print(" Temperature: "); // show in serial monitor Serial.print(tf); Serial.print(" *F \n"); Serial.print(" Humidity: "); // show in serial monitor Serial.print(h); Serial.println(" %\t"); // \t tab Serial.print("C heat Index: "); // show in serial monitor Serial.println(hic); Serial.print("F heat Index: "); // show in serial monitor Serial.println(hif); Serial.println(" "); Serial.println(" "); */ lcd.setCursor(0,1); //lcd.print(" "); lcd.print(tc); lcd.print("'C "); lcd.setCursor(9,1); // 9th char 2nd line lcd.print(hic); lcd.print("hiC "); delay(100); } WiFiClient client = server.available(); if (client) { Serial.println("Yes client"); digitalWrite(usr, HIGH); //client connected delay(10); while (client.connected()) { if (client.available()) { char c = client.read(); if (readStrings.length() < 100) { readStrings += c; } if (c == '\n') { Serial.println(readStrings); if (readStrings.indexOf("?button1off") > 0) { Serial.println("1 off"); stat1=0; digitalWrite(pin1, LOW); } if (readStrings.indexOf("?button1on") > 0) { Serial.println("1 on"); stat1=1; digitalWrite(pin1, HIGH); } if (readStrings.indexOf("?button2off") > 0) { Serial.println("2 off"); stat2=0; digitalWrite(pin2, LOW); } if (readStrings.indexOf("?button2on") > 0) { Serial.println("2 on"); stat2=1; digitalWrite(pin2, HIGH); } if (readStrings.indexOf("?button3off") > 0) { digitalWrite(pin3, LOW); stat3=0; Serial.println("3 off"); } if (readStrings.indexOf("?button3on") > 0) { digitalWrite(pin3, HIGH); stat3=1; Serial.println("3 on"); } if (readStrings.indexOf("?button4off") > 0) { digitalWrite(pin4, LOW); stat4=0; Serial.println("4 off"); } if (readStrings.indexOf("?button4on") > 0) { digitalWrite(pin4, HIGH); stat4=1; Serial.println("4 on"); } if (readStrings.indexOf("?buttonalloff") > 0) { digitalWrite(pin1, LOW); digitalWrite(pin2, LOW); digitalWrite(pin3, LOW); digitalWrite(pin4, LOW); stat1=0; stat2=0; stat3=0; stat4=0; Serial.println("All off"); } if (readStrings.indexOf("?buttonallon") > 0) { digitalWrite(pin1, HIGH); digitalWrite(pin2, HIGH); digitalWrite(pin3, HIGH); digitalWrite(pin4, HIGH); stat1=1; stat2=1; stat3=1; stat4=1; Serial.println("All on"); } readStrings = ""; client.print("HTTP/1.1 200 OK\r\n"); //send new page client.print("Content-Type: text/html\r\n\r\n"); client.print("\r\n"); client.print("\r\n"); //html tag client.print("\r\n"); // client.print("\r\n"); //client.print("\r\n"); //client.print("\r\n"); client.print("\r\n"); client.print(" Load control \r\n"); client.print(""); client.print("\r\n"); client.print("\r\n"); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print("
"); client.print("

Load Control

"); client.print(""); client.print(""); if (stat1 == 0) { Serial.println("1 off"); client.print(""); client.print(""); client.print(""); }else{ Serial.println("1 on"); client.print(""); client.print(""); } //client.print(""); //client.print(""); //client.print(""); client.print(""); client.print(""); client.print(""); if (stat2 == 0) { Serial.println("2 off"); client.print(""); client.print(""); client.print(""); }else{ Serial.println("2 on"); client.print(""); client.print(""); } //client.print(""); //client.print(""); //client.print(""); client.print(""); client.print(""); client.print(""); if (stat3 == 0) { Serial.println("3 off"); client.print(""); client.print(""); client.print(""); }else{ Serial.println("3 on"); client.print(""); client.print(""); } //client.print(""); //client.print(""); //client.print(""); client.print(""); client.print(""); client.print(""); if (stat4 == 0) { Serial.println("4 off"); client.print(""); client.print(""); client.print(""); }else{ Serial.println("4 on"); client.print(""); client.print(""); } //client.print(""); //client.print(""); //client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print("
 OnOff Load 1: OffOn 
 OnOffOffOn 
 OnOffOff On 
 OnOffOffOn 
    
All :OffOn 
    
12:00 am   
"); client.print("
"); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); // temp cell client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); // client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); // client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); // client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); client.print(""); // client.print(""); client.print(""); client.print(""); client.print("
Sensor 1    
Temperature :"); // temp cell client.print(tc ); // sensor 1 temperature value client.print("'C  
Heat Index :"); // client.print(hic); // sensor 1 Humidity Index value client.print("HI  
Humidity :"); // client.print(h); // sensor 1 Humidity value client.print("%  
     
Sensor 2    
Temperature :"); // client.print(tempC); // sensor 2 temperature value client.print("'C  
     
Sensor 3    
Lights :"); // client.print(LS); // sensor 3 temperature value client.print("    
"); client.print("
"); delay(1); client.stop(); }//if(c == '\n') }//if(client.available()) }//while(client.connected()) digitalWrite(usr, LOW); //client disconnected delay(100); }//if(client) }//void loop()