При компиляции я получаю #endif без ошибки #if. Вот код. Пожалуйста помоги!

#include <Arduino.h>
#endif
#include <ESP8266WiFi.h>
#define watersensor D2
const char* ssid = "pooja";
const char* password = "ranip2780@";
WiFiServer server(301);
IPAddress ip(192, 168, 43, 67);
IPAddress gateway(192, 168, 43, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(192, 168, 43, 1);
void setup() {
  Serial.begin(115200);
  delay(10);

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.config(ip, dns, gateway, subnet);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  server.begin();
  Serial.println("Server started");

  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}

void loop()
{
  // Проверяем, подключился ли клиент
  < WiFiClient client = server.available();
  if (!client) {
    return;
  }

  // Подождем, пока клиент отправит какие-то данные
  Serial.println("new client");
  while (!client.available()) {
    // delay(1);
    client.setNoDelay(1);
  }

  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();

  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println("");
  client.println("");
  client.println("<html>");
  client.println("<meta http-equiv='refresh' content='20'>");
  client.println("<title>WATER OVERFLOW ALARM WITH ONLINE UPDATES</title>");
  client.println("<center>");
  client.println("<style>");
  client.println("H1 {");
  client.println("background-color: blue;");
  client.println("}");
  client.println("</style>");
  client.println("<H1 style='color:white'><table>");
  client.println("<tr>");
  client.println("<td><div class='inner'><font size= '+3' color='white'><b>");
  client.println("WATER OVERFLOW ALARM WITH ONLINE UPDATES<br>");
  client.println("USING NODEMCU 1.0 BOARD</font></b>");
  client.println("</div></td>");
  client.println("<td><div class='relative'>");

  if (digitalRead(watersensor) == LOW)
  {
    client.println("<button style='background-color:red;width:200px;height:100px'><font size= '+2' color='white'><b>FULL LEVEL ALERT</b></font></button><br>");
  }
  else
  {
    client.println("<button style='background-color:gray;width:200px;height:100px'<font size= '+2' color='white'><b>NOT FULL</b></font></button><br>");
  }

  client.println("</div></td>");
  client.println("</tr>");
  client.println("</table><hr></center>");
  client.println("<body style = 'background-color:lightgray;'>");
  client.println("<br>");
  client.println("<style>");
  client.println("div.relative {");
  client.println("position: relative;");
  client.println("left:100px;");
  client.println("}");
  client.println("div.inner {");
  client.println("position: relative;");
  client.println("left:10px;");
  client.println("}");
  client.println("div.sample1 {");
  client.println("position: relative;");
  client.println("left:85px;");
  client.println("}");
  client.println("</style><hr><br>");
  client.println("<b>LEGENDS: </b> <button style='background-color:gray;width:100px;height:50px'><font color='white'<b>NOT FULL</b></font></button>");
  client.println("<font color='black'><b>WATER LEVEL IS BELOW SENSOR.</b></font><p>");
  client.println("<div class='sample1'><button style='background-color:red;width:100px;height:50px'><font color='white'><b>FULL LEVEL ALERT</b></font></button><font color='black'><b> WATER LEVEL IS ALREADY FULL.</b></font>");
  client.println("</div><br><hr>");
  client.println("</body>");
  client.println("</html>");
  delay(1);
  Serial.println("Client disconnected");
  Serial.println("");
  delay(500);
}

, 👍-3

Обсуждение

удалить #endif, @Juraj

Вы, вероятно, могли бы узнать это сами, просто прочитав сообщение об ошибке. Возможно, [это руководство](https://www.hackerearth.com/blog/developers/arduino-programming-for-beginners) поможет вам начать кодирование для Arduino., @StarCat


1 ответ


2

Среда разработки Arduino IDE дает вам важную подсказку

Arduino: 1.8.12 (Windows 10), Board: "Arduino Uno"

sketchX:2:2: error: #endif without #if

 #endif

  ^~~~~

sketchX:3:10: fatal error: ESP8266WiFi.h: No such file or directory

 #include <ESP8266WiFi.h>

          ^~~~~~~~~~~~~~~

compilation terminated.

exit status 1
#endif without #if

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Это указывает на строки #2 & № 3 на скетче с ошибкой. Поэтому мы исправим их и попробуем еще раз

//#endif

Я также установлю ESP8266, так как его нет на моем новом ноутбуке.

Arduino: 1.8.12 (Windows 10), Board: "Generic ESP8266 Module, 80 MHz, Flash, Legacy (new 
can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, 
DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower 
Memory, Disabled, None, Only Sketch, 115200"

C:\Users\winuser\Arduino\sketchX\sketchX.ino: In function 'void loop()':

sketchX:42:3: error: expected primary-expression before '<' token

   < WiFiClient client = server.available();

   ^

sketchX:42:16: error: expected primary-expression before 'client'

   < WiFiClient client = server.available();

                ^

sketchX:42:16: error: expected ';' before 'client'

sketchX:43:8: error: 'client' was not declared in this scope

   if (!client) {

        ^

sketchX:49:11: error: 'client' was not declared in this scope

   while (!client.available()) {

           ^

sketchX:54:20: error: 'client' was not declared in this scope

   String request = client.readStringUntil('\r');

                    ^

sketchX:4:21: error: 'D2' was not declared in this scope

 #define watersensor D2

                     ^

C:\Users\winuser\Arduino\sketchX\sketchX.ino:79:19: note: in expansion of 
macro 'watersensor'

   if (digitalRead(watersensor) == LOW)

                   ^

exit status 1
expected primary-expression before '<' token

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

В общем, использовать сообщения, которые выдает среда IDE, очень просто, чтобы найти свою ошибку и исправить ее, работая сверху вниз по скетчу. Это не то, что нужно публиковать на StackExchange, пока вы не исправите основы.

,