Скетч Arduino для NodeMCU v1.0 (ESP8266-12E) не имеет ошибок при компиляции, но не запускается на плате NodeMCU v1.0 (ESP8266-12E)

Я скомпилировал скетч Arduino для NodeMCU v1.0 (ESP8266-12E), в котором нет ошибок при тестировании с помощью кнопки проверки в Arduino IDE 1.8.6, но я не знаю, в чем проблема, когда я загружаю и тестирую его . он [ NodeMCU v1.0 (ESP8266-12E)] не показывает статический IP-адрес, пока на моем телефоне Android включена точка доступа Wi-Fi. Я делюсь здесь двумя кодами (код 1, код 2). Код 2 подключается к точке доступа Wi-Fi, но я вношу изменения в код 2, чтобы сделать код 1 для желаемого выхода, который не работает. Нужна помощь в написании правильного кода.

код 1

#include <ESP8266WiFi.h>


int pin1 = 2; //GPIO 14 (D5)
int pin2 = 3; // GPIO 5 (D1)
int pin3 = 6; //GPIO 5 (D2)


  const char* ssid = "wifi";
   const char* password = "12345678";

  WiFiServer server(80);

void setup()
{

  Serial.begin(115200);
  delay(10);

  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(6, OUTPUT);




  // Подключаемся к сети Wi-Fi
  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");

// Запускаем сервер
  server.begin();
  Serial.println("Server started");

// Распечатываем IP-адрес
  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);
}

// Читаем первую строку запроса
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
// Соответствуем запросу
  int value = LOW;
  if (request.indexOf("/pin1=ON") != -1) {
  digitalWrite(2, HIGH);
  value = HIGH;

}
  if (request.indexOf("/pin1=OFF") != -1) {
  digitalWrite(2, LOW);
  value = LOW;

}

  if (request.indexOf("/pin2=ON") != -1) {
  digitalWrite(3, HIGH);
  value = HIGH;

}
  if (request.indexOf("/pin2=OFF") != -1) {
  digitalWrite(3, LOW);
  value = LOW;

}

  if (request.indexOf("/pin3=ON") != -1) {
  digitalWrite(6, HIGH);
  value = HIGH;

}
  if (request.indexOf("/pin3=OFF") != -1) {
  digitalWrite(6, LOW);
  value = LOW;

}

// Устанавливаем светодиод по запросу
//digitalWrite(ledPin, значение);
// Возвращаем ответ
// Возвращаем ответ
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); // не забудь это
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  client.println("<head>");
  client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
  client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
  client.println("</head>");
  client.println("<body bgcolor = \"#f7e6ec\">");
  client.println("<hr/><hr>");
  client.println("<h4><center>Wifi Based Project</center></h4>");
  client.println("</center>");
  client.println("<hr/><hr>");
  client.println("<center>");
  client.println("<a href=\"/a\"\"><button>Data </button></a><br />");
  client.println("</center>");
  client.println("<br><br>");
  client.println("<center>");
  client.println("Load 1");
  client.println("<a href=\"/l1on\"\"><button>Turn On </button></a>");
  client.println("<a href=\"/l1off\"\"><button>Turn Off </button></a><br />");
  client.println("</center>");
  client.println("<br><br>");
  client.println("<center>");
  client.println("Load 2");
  client.println("<a href=\"/l2on\"\"><button>Turn On </button></a>");
  client.println("<a href=\"/l2off\"\"><button>Turn Off </button></a><br />");
  client.println("</center>");
  client.println("<br><br>");
  client.println("<center>");
  client.println("Load 3");
  client.println("<a href=\"/l3on\"\"><button>Turn On </button></a>");
  client.println("<a href=\"/l3off\"\"><button>Turn Off </button></a><br />");
  client.println("</center>");
  client.println("<br><br>");
  client.println("<center>");
  client.println("<br><br>");
  client.println("<center>");
  client.println("<table border=\"5\">");
  client.println("<br><br>");
  client.println("<tr>");

  if(digitalRead(pin1)){client.print("<td>Load 1 is ON</td>");}
  else{client.print("<td>Load 1 is OFF</td>");}

  if(digitalRead(pin2)){client.print("<td>Load 2 is ON</td>");}
  else{client.print("<td>Load 2 is OFF</td>");}

  if(digitalRead(pin3)){client.print("<td>Load 3 is ON</td>");}
  else{client.print("<td>Load 3 is OFF</td>");}


  client.println("</tr>");
  client.println("</table>");
  client.println("</center>");
  client.println("</html>");
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");

}

Распиновка NodeMCU V1.0

Если вы загрузите этот код в свой NodeMCU v1.0 (ESP8266-12E), он будет подключен к вашему телефону Android. Вы можете считать это кодом 2 и кодом выше 1.

код 2

#include <ESP8266WiFi.h>

int pin1 = 14; //GPIO 14 (D5)
int pin2 = 5; // GPIO 5 (D1)
int pin3 = 4; //GPIO 5 (D2)

const char* ssid = "wifi";
const char* password = "12345678";

WiFiServer server(80);

void setup()
{

Serial.begin(115200);
delay(10);

pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);

// Подключаемся к сети Wi-Fi
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");

// Запускаем сервер
server.begin();
Serial.println("Server started");

// Распечатываем IP-адрес
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);
}

// Читаем первую строку запроса
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();



if (request.indexOf("/l1on") > 0)  {
digitalWrite(pin1, HIGH);

}
if (request.indexOf("/l1off") >0)  {
digitalWrite(pin1, LOW);

}

if (request.indexOf("/l2on") > 0)  {
digitalWrite(pin2, HIGH);

}
if (request.indexOf("/l2off") >0)  {
digitalWrite(pin2, LOW);

}
if (request.indexOf("/l3on") >0)  {
digitalWrite(pin3, HIGH);

}
if (request.indexOf("/l3off") > 0)  {
digitalWrite(pin3, LOW);

}



// Устанавливаем светодиод по запросу
//digitalWrite(ledPin, значение);

// Возвращаем ответ
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // не забудь это
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
client.println("</head>");
client.println("<body bgcolor = \"#f7e6ec\">");
client.println("<hr/><hr>");
client.println("<h4><center>Wifi Based Project</center></h4>");
client.println("</center>");
client.println("<hr/><hr>");
client.println("<center>");
client.println("<a href=\"/a\"\"><button>Data </button></a><br />");
client.println("</center>");
client.println("<br><br>");
client.println("<center>");
client.println("Load 1");
client.println("<a href=\"/l1on\"\"><button>Turn On </button></a>");
client.println("<a href=\"/l1off\"\"><button>Turn Off </button></a><br />");
client.println("</center>");
client.println("<br><br>");
client.println("<center>");
client.println("Load 2");
client.println("<a href=\"/l2on\"\"><button>Turn On </button></a>");
client.println("<a href=\"/l2off\"\"><button>Turn Off </button></a><br />");
client.println("</center>");
client.println("<br><br>");
client.println("<center>");
client.println("Load 3");
client.println("<a href=\"/l3on\"\"><button>Turn On </button></a>");
client.println("<a href=\"/l3off\"\"><button>Turn Off </button></a><br />");
client.println("</center>");
client.println("<br><br>");
client.println("<center>");
client.println("<br><br>");
client.println("<center>");
client.println("<table border=\"5\">");
client.println("<br><br>");
client.println("<tr>");

if(digitalRead(pin1)){client.print("<td>Load 1 is ON</td>");}
else{client.print("<td>Load 1 is OFF</td>");}

if(digitalRead(pin2)){client.print("<td>Load 2 is ON</td>");}
else{client.print("<td>Load 2 is OFF</td>");}

if(digitalRead(pin3)){client.print("<td>Load 3 is ON</td>");}
else{client.print("<td>Load 3 is OFF</td>");}


client.println("</tr>");
client.println("</table>");
client.println("</center>");
client.println("</html>");
delay(1);
Serial.println("Client disonnected");
Serial.println("");

}

, 👍-1

Обсуждение

Также задавали вопросы на: https://stackoverflow.com/q/52342641 и http://forum.arduino.cc/index.php?topic=568674 Если вы собираетесь это сделать, то, пожалуйста, будьте достаточно внимательны и добавьте ссылки на другие места, где вы перекрестно размещаете. Это позволит нам избежать траты времени из-за дублирования усилий, а также поможет другим, у кого есть те же вопросы и кто найдет ваш пост, найти всю необходимую информацию., @per1234


1 ответ


0

Вы не можете использовать io 6. IO 6 предназначен для внутреннего использования для подключения флэш-памяти к esp8266. У IO 6 на плате нет контакта Dx. А io 3 — это Serial RX, подключенный к USB.

Используйте константы Dx и соответствующие контакты NodeMcu, помеченные буквой D. (и удалить противоречивые комментарии)

const int pin1 = D2;
const int pin2 = D3;
const int pin3 = D6;

Вывод D3 имеет значение 0 и используется для перевода платы в режим прошивки. не подключайте туда что-то, что переводит вывод LOW при сбросе или включении питания

,

На самом деле, я новичок в arduino и программировании. Я беру этот код в демонстрационном виде, поэтому не имею понятия о противоречивых комментариях. Но я делюсь обоими кодами (демо+модифицированный), чтобы все могли понять и получить желаемый код., @Saif Ullah

и помог ли ответ?, @Juraj