Plz solve my problem


#include <ESP8266WiFi.h>
const char* ssid = "TP-Link_6742"; // type your wifi name
const char* password = "26051973"; // type your wifi password
int ledPin = D1; 
WiFiServer server(80);
 
void setup() {
  Serial.begin(115200);
  delay(10);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, HIGH);
 
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
 
  // Start the server
  server.begin();
  Serial.println("Server started");
 
  // Print the IP address
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
 
}
 
void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
 
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
 
  // Read the first line of the request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
 
  // Match the request
 
  int value = LOW;
  if (request.indexOf("/LED=ON") != -1)  {
     
    for (int j =0; j<3 ; j++)
    {
      digitalWrite(ledPin, LOW);
      delay(100);
      digitalWrite(ledPin, HIGH);
      delay(100);
    }digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1)  {
     for (int j =0; j<3 ; j++)
    {
      digitalWrite(ledPin, LOW);
      delay(100);
      digitalWrite(ledPin, HIGH);
      delay(100);
    }
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
 
// Set ledPin according to the request
//digitalWrite(ledPin, value);
 
  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
 
  client.print("Led is now: ");
 
  if(value == HIGH) {
    client.print("On");
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("<a href=\"/LED=ON\"\"><button>On </button></a>");
  client.println("<a href=\"/LED=OFF\"\"><button>Off </button></a><br />");  
  client.println("</html>");
 
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
 
}

Wifi_control_LED:6: error: 'D1' was not declared in this scope

int ledPin = D1;

          ^

exit status 1
'D1' was not declared in this scope

This Is The Error

Hi @yjhdhmkij. Which board do you have selected from the Arduino IDE's Tools > Board menu?

D1 is usually just predefined macro for digital pin 1 so you could just replace it with your led pin number, probably 1

what I meant was it is usually a predefined macro if you didn’t catch it, obviously it is not defined in OP case. This is why substituting it to 1 may solve the problem.

Folks, please be polite, and I mean everyone.
Maybe edit your posts a little.
Thanks,

It compiles just fine here. You probably have the wrong board selected in "tools" in the IDE.

thank you all my problem is solved now

If @yjhdhmkij is using the following ESP8266 board (Fig-1), then D1 is pre-defined for Arduino DPin-5.


Figure-1:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.