Çözüldü Nodemcu, Laptop'ta HTML çalışıyor ama masaüstünde çalışmıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
15 Nisan 2020
Mesajlar
4.101
Makaleler
5
Çözümler
51
Daha fazla  
Cinsiyet
Erkek
Meslek
.
Böyle bir konu açmıştım, onun sebebini buldum. Laptopta çalışıyor ama masaüstünde çalışmıyor HTML.
Laptopa W-Fi, masaüstüne ise Ethernet ile bağlantı sağlanıyor. Acaba Ethernet'den dolayı olabilir mi?
@cengover_ekin @SideWinder bakabilir misiniz?

Butonlar sıkıntısız çalışıyor Laptopta.
 
Çözüm
URL olayını birkaç kere daha demiştim ama yine diyeyim.

HTML ile URL kısmı tamamen ayrı aslında. Cihazın üzerinde belirlenmiş 3 URL var:
  • Local IP
  • Local IP/led1on
  • Local IP/led1off
Cihaz bu URL'leri sürekli okuyor ve aktif mi değil mi bakıyor. Sen herhangi bir URL'ye girdiğin zaman bunu algılıyor ve URL'ye göre LED'i açıp kapatıyor.

İşin HTML kısmı bilgisayarla da alakalı olabilir. Telefonla da dener misin?

Şu koda da bakabilir misin acaba?

C++:
#include <ESP8266WiFi.h>

const char* ssid = "SSID";
const char* password = "password";

int ledPin = 13; // GPIO13 or D7 pin of NodeMCU
WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(10);

  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);

  // 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)  {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1)  {
    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("");

}
İletişim modem üzerinden mu sağlanıyordu yoksa doğrudan cihazlar arası mı? İkincisiyse kabloluda çalışmaması normal.
Hocam, şu kısıma WiFi ismini ve şifresini yazıyorum:
Sanırım modem ile Nodemcu arasında.

Bir de şöyle bir şey var, URL kısmına /ledon ya da /ledoff yazdığımda sanki oradaki butona tıklamışım gibi algılıyor. Yani LED açılıp kapatılabiliyor.
 
URL olayını birkaç kere daha demiştim ama yine diyeyim.

HTML ile URL kısmı tamamen ayrı aslında. Cihazın üzerinde belirlenmiş 3 URL var:
  • Local IP
  • Local IP/led1on
  • Local IP/led1off
Cihaz bu URL'leri sürekli okuyor ve aktif mi değil mi bakıyor. Sen herhangi bir URL'ye girdiğin zaman bunu algılıyor ve URL'ye göre LED'i açıp kapatıyor.

İşin HTML kısmı bilgisayarla da alakalı olabilir. Telefonla da dener misin?

Şu koda da bakabilir misin acaba?

C++:
#include <ESP8266WiFi.h>

const char* ssid = "SSID";
const char* password = "password";

int ledPin = 13; // GPIO13 or D7 pin of NodeMCU
WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(10);

  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);

  // 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)  {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1)  {
    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("");

}
 
Çözüm
O kısmı anladım hocam, Ekin hocama bağlantı sağlandığını, sadece HTML sayfasının gelmediğini açıklamaya çalışmıştım
Telefonla da dener misin?
Telefonla da çalışıyor, 4 tane buton var ve bastıkça LED'ler açılıp kapanıyor.

Şu koda da bakabilir misin acaba?
Bu kod çalıştı hocam.


2 bilgisayarda 2 buton da çalışıyor. Peki bu attığınız kodlarla eski kod arasında ne fark vardı da çalıştı hocam? Yardımlarınız için çok teşekkür ederim.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…