Эскиз Arduino для NodeMCU v1.0 (ESP8266-12E) не содержит ошибок компиляции, но не работает на плате NodeMCU v1.0 (ESP8266-12E) - PullRequest
0 голосов
/ 15 сентября 2018

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

Код 2 подключается к точке доступа WiFi, но я внес изменения в код 2, чтобы сделать код 1 для желаемого выхода, который не работает.Нужна помощь для создания правильного кода.

Для лучшего понимания, что я хочу, вы можете проверить это видео на Youtube или набрав в строке поиска на youtube.com

На главнуюСхема автоматизации с использованием NodeMCU v1.0 (ESP8266-12E).

**code 1**

#include
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);

// 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("/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;

}


// Set ledPin according to the request
//digitalWrite(ledPin, value);
// Return the response
// 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.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 (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);

// 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();




// Read the first line of the request
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);

}


// 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.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 Ответ

0 голосов
/ 21 сентября 2018

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

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

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

вывод D3 равен io 0 и используется для перевода платы в режим перепрошивки. не подключайте туда что-нибудь, что тянет штырь НИЗКИЙ при сбросе или включении питания

...