0

enter image description hereenter image description hereenter image description here

   #include "DHT.h"
   #include "NewPing.h"
   #include <SoftwareSerial.h>

   #define DEBUG true
   SoftwareSerial esp8266(11,10); 
   #define DHTPIN 2        // DHT-11 Output Pin connection
   #define DHTTYPE DHT11   // DHT Type is DHT 11 (AM2302)
   #define TRIGGER_PIN 4
   #define ECHO_PIN 3
   #define MAX_DISTANCE 400

    NewPing sonar(TRIGGER_PIN,ECHO_PIN,MAX_DISTANCE);
float hum;
float temp;   
    DHT dht(DHTPIN, DHTTYPE); 

void setup() {

   Serial.begin (9600);
   dht.begin();

   pinMode(TRIGGER_PIN, OUTPUT);
   pinMode(ECHO_PIN, INPUT);

   sendData("AT+RST\r\n",2000,DEBUG);            
   sendData("AT+CWMODE=2\r\n",1000,DEBUG);       
   sendData("AT+CIFSR\r\n",1000,DEBUG);          
   sendData("AT+CIPMUX=1\r\n",1000,DEBUG);       
   sendData("AT+CIPSERVER=1,80\r\n",1000,DEBUG); 

 }

 void loop() 

 {

 delay(2000);  // Delay so DHT-11 sensor can stabalize

   hum = dht.readHumidity();  // Get Humidity value
   temp= dht.readTemperature();  // Get Temperature value

 digitalWrite(TRIGGER_PIN, LOW);
 delayMicroseconds(2);
 digitalWrite(TRIGGER_PIN, HIGH);
 delayMicroseconds(10);
 digitalWrite(TRIGGER_PIN, LOW);

   long duration,distance;
   duration= pulseIn(ECHO_PIN,HIGH);
   distance = duration/58.2;

   Serial.print("Humid: ");
   Serial.print(hum);
   Serial.print(" %, Temp: ");
   Serial.print(temp);
   Serial.print(" C, ");
   Serial.print("Distance: ");
   Serial.print(distance);
   Serial.println(" cm");

   delay(50); 

  if(esp8266.available())         

   is sending a message 
 {    
   if(esp8266.find("+IPD,"))
 {
 delay(1000);

 int connectionId = esp8266.read()-48; 

  /* We are subtracting 48 from the  
  output because the read() function returns 
  the ASCII decimal value and the 
  first decimal number which is 0 starts at 48*/

  String webpage = "<h1>IOT Garbage Monitoring System</h1>";
  webpage += "<p><h2>";   

  if (distance<5)
 {
  webpage+= " Trash can is Full";
 }
   else{
   webpage+= " Trash can is Empty";
    }
   webpage += "</h2></p></body>";  
   String cipSend = "AT+CIPSEND=";
   cipSend += connectionId;
   cipSend += ",";
   cipSend +=webpage.length();
   cipSend +="\r\n";

   sendData(cipSend,1000,DEBUG);
   sendData(webpage,1000,DEBUG);    

   String closeCommand = "AT+CIPCLOSE="; 
   closeCommand+=connectionId; 
   closeCommand+="\r\n";
   sendData(closeCommand,3000,DEBUG);

   }
   } 
   }

   String sendData(String command, const int timeout, boolean debug)

   {

   String response = "";   
   esp8266.print(command); 
   long int time = millis();

   while( (time+timeout) > millis())
   {
   while(esp8266.available())
   {
   char c = esp8266.read(); 
   response+=c;
   }  
   }
   if(debug)
      {
     Serial.print(response);
      }
     return response;
      }
  • Comments are not for extended discussion; this conversation has been moved to chat. – Majenko Nov 14 '18 at 13:39
0

The esp-01 is in AP mode. To access the web page on the IP address 192.168.4.1 show in Serial Monitor you must connect to the WiFi network created by the esp-01.

If you click the WiFi icon in the bottom right corner of Windows, you will see a list of WiFi networks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.