----------------------------- Delete below -----------------------------
If your issue is a general question, starts similar to "How do I..", is related to 3rd party libs, or is related to hardware, please discuss at a community forum like esp8266.com.
If you do not follow these instructions, your issue may be dismissed.
https://arduino-esp8266.readthedocs.io/en/latest/Troubleshooting/stack_dump.html
https://arduino-esp8266.readthedocs.io/en/latest/Troubleshooting/debugging.html
----------------------------- Delete above -----------------------------
Detailed problem description goes here.
```cpp#include
//multiplexing
//int x=D3;
int s0 = D0;
int s1 = D1;
int s2 = D2;
int s3 = D6;
int sig=D5;
//Temperature
dht DHT;
int d=2;
//LIGHT
//analog pin
int ldr=A0;
//D3
int led=0;
//PIR SENSOR
//D8
int pir=15;
//D7
int pirled=13;
String sensordata="";
ESP8266WebServer server(80);
String page="";
void handleClient()
{
String message="";
message+="number of args ";
message+=server.args();
message+=" "+server.argName(0)+" "+server.arg(0);
// server.send(200, "text/plain",message);
if(server.arg(0).equals("on"))
{
digitalWrite(s0,HIGH);
digitalWrite(s1,HIGH);
digitalWrite(s2,HIGH);
digitalWrite(s3, HIGH);
digitalWrite(sig,LOW);
//server.send(200, "text/plain","on");
}
else if(server.arg(0).equals("off"))
{
digitalWrite(s0,LOW);
digitalWrite(s1,LOW);
digitalWrite(s2,LOW);
digitalWrite(s3,LOW);
digitalWrite(sig,LOW);
//server.send(200, "text/plain","off");
}
}
void setup()
{
Serial.begin(9600);
//WiFi.begin("sanghi@19","9165269100@19699");
WiFi.begin("Satyam","hell1234");
delay(50);
while(WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.println(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println("sanghi@19");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
//LIGHT
pinMode(led,OUTPUT);
pinMode(ldr,INPUT);
//PIR
pinMode(pir,INPUT);
pinMode(pirled,OUTPUT);
//multiplexing
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(sig,OUTPUT);
digitalWrite(s0, LOW);
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
digitalWrite(sig,LOW);
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
server.on("/", handleClient);
server.on("/sensordata", {
server.send(200, "text/plain",sensordata);
});
server.begin();
Serial.println("HTTP server started");
delay(3000);
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(sig,OUTPUT);
digitalWrite(s0, LOW);
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
digitalWrite(sig,LOW);
}
void loop() {
server.handleClient();
int chk = DHT.read11(d);
// Serial.print("Temperature = ");
// Serial.println(DHT.temperature);
// Serial.print("Humidity = ");
// Serial.println(DHT.humidity);
// sensordata+="
temperature : "+String(DHT.temperature)+" humidity : "+String(DHT.humidity);
sensordata+=",temperature : "+String(DHT.temperature)+" humidity : "+String(DHT.humidity);
// delay(500);
///// LIGHT //////////////////////////////////
// Serial.print("Light Intensity :");
// Serial.println(analogRead(ldr));
int reading=analogRead(ldr);
sensordata+=" Light Intensity : "+String(reading);
if(reading<35)
{
digitalWrite(led,HIGH);
}
else
{
digitalWrite(led,LOW);
}
// delay(500);
//////// PIR SENSOR /////////////////////////////////
String pirstatus;
if(digitalRead(pir)==HIGH)
{
pirstatus=" detected motion";
// Serial.println("detected motion");
digitalWrite(pirled,HIGH);
//delay(50);
}
else{
pirstatus=" motion not detected";
// Serial.println("not detected");
//delay(50);
digitalWrite(pirled,LOW);
}
sensordata+=" PIR value : "+pirstatus;
delay(500);
/////////////////////////////////////////////////
delay(500);
}
Your MCVE is not working, sensordata is filling memory, causing an uncaught exception.
Even with this fixed, it still does not work even once. Please test it, update it.
I am currently making requests in a loop running the example ESP8266WebServer>Helloserver and this one works flawlessly.
Please restart your app using this example as a basis.
@BlackBlood007 said (with commented lines removed):
void loop() {
server.handleClient();
int chk = DHT.read11(d);
sensordata+=",temperature : "+String(DHT.temperature)+" humidity : "+String(DHT.humidity);
...
sensordata is a String that will keep growing and growing, because it's a global and is never being reset.
Closing due to user error.
Also, the unconditional delay(500) in the main loop where server.handleClient() is called is killing the webserver.
There is absolutely no need of any unconditional delay() in the main loop.
@BlackBlood007 said (with commented lines removed):
void loop() { server.handleClient(); int chk = DHT.read11(d); sensordata+=",temperature : "+String(DHT.temperature)+" humidity : "+String(DHT.humidity); ...sensordata is a String that will keep growing and growing, because it's a global and is never being reset.
Closing due to user error.
@BlackBlood007 said (with commented lines removed):
void loop() { server.handleClient(); int chk = DHT.read11(d); sensordata+=",temperature : "+String(DHT.temperature)+" humidity : "+String(DHT.humidity); ...sensordata is a String that will keep growing and growing, because it's a global and is never being reset.
Closing due to user error.
@d-a-v Thank you so much sir for going through my code and making it bug free . After making the changes you told , this works very smoothly .