Node MCU ya herhangi bir ağdan bağlanma

Başlatan berkay_91, 01 Kasım 2017, 01:09:17

berkay_91

Merhaba, aşağıdaki programı NodeMCU ya yüklediğimde modem üzerine bağlı olan herhangi bir bilgisayardan ESP nin web server ı olduğu siteye ulaşıp Ledi aç-kapa yapabiliyorum (site -> http://192.168.2.76/) fakat farklı bir modem üzerinden giremiyorum modemin 80. portunu açtım, kodda
const char* host = "*******";
satırına ne yazmam gerekiyor? kaynak site http://www.instructables.com/id/Control-ESP8266-Over-the-Internet-from-Anywhere/

#include <ESP8266WiFi.h>

const char* ssid = "AirTies_Air5760_DY77";
const char* password = "*****";
const char* host = "******";     
                                        
int ledPin = 16;

WiFiServer server(80); //just pick any port number you like

void setup() {
  Serial.begin(115200);
  delay(10);
Serial.println(WiFi.localIP());
  // prepare GPIO2
  pinMode(ledPin, OUTPUT);
  digitalWrite(D3, 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.println(WiFi.localIP());
}

void loop() {
  // Check if a client has connected
  
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  // Wait until the client sends some data
  while (!client.available()) {
    delay(1);
  }

  // Read the first line of the request
  String req = client.readStringUntil('\r');
  client.flush();

  // Match the request
  if (req.indexOf("") != -10) {  //checks if you're on the main page

    if (req.indexOf("/OFF") != -1) { //checks if you clicked OFF
      digitalWrite(ledPin, LOW);
      Serial.println("You clicked OFF");
    }
    if (req.indexOf("/ON") != -1) { //checks if you clicked ON
      digitalWrite(ledPin, HIGH);
      Serial.println("You clicked ON");
    }
  }

  else {
    Serial.println("invalid request");
   client.stop();
    return;
  }

  // Prepare the response
  String s = "HTTP/1.1 200 OK\r\n";
  s += "Content-Type: text/html\r\n\r\n";
  s += "<!DOCTYPE HTML>\r\n<html>\r\n";
  s += "<br><input type=\"button\" name=\"bl\" value=\"Turn LED ON \" onclick=\"location.href='/ON'\">";
  s += "<br><br><br>";
  s += "<br><input type=\"button\" name=\"bl\" value=\"Turn LED OFF\" onclick=\"location.href='/OFF'\">";
  s += "</html>\n";

  client.flush();


  // Send the response to the client
  client.print(s);
  delay(1);


  
}




ilyas KAYA

8p portu na dışarıdan direk ulaşamazsınız o port zaten internete çıkış portu dur. Siz esp için ayrı bir port açıp bu portu da içerideki esp nin aldığı ip ye yönlendirme yapmalısınız. Mödeminiz klavuzundan nasıl port açıldığı ve yönlendirildigini ogrenebilirsiniz.
Tabi modem her açılıp kapandığında ip adresiniz değişir. İnternet servisi aldığınız firmadan sabit ip almanız da gerekecek.
Eğer sabit ip port vs uğraşmak isyemiyorum der iseniz "web socket " bağlantı kurmayı öğrenmeniz gerekir.

mcankaya

80portunu disari acabilirsiniz ve localdeki istediginiz ipye yonlendirebilirsiniz hocam. disardan girmek icin dis ipnizi kullanmaniz gerek. Modemden acilan port o ise yarar. Localde zaten port acmadan girebilirsiniz. Modemde yaptiginiz ayarlarda sorun olabilir veya dis ipyi yazarak girmiyor olabilirsiniz.


Dis ipnizi ogrenmek icin: whatismyip.com kullanabilirsiniz
aquila non captat muscas!

LukeSkywalker

Host satırını silin gitsin. Bir şey yazmasanız da olur.
Burada yapmanız gereken şey başka ağpdan cihaza ulaşabilmek için modeminizin almış olduğuyu IP'ye bağlanmanız.
Bu adresi, nodemcunun bağlı olduğu ağdan whatismyip.com adresine girerek bulabilirsiniz. Ayrıca 80 numaralı portu kullanabilirsiniz. Sıkıntı olmaz.



zenze

Bir süredir nodemcuya bakıyorum.Android ve  arduino ide siyle  program yazıp çalıştırdım.Emin olamadığım şey;Bağlanacağımız ağın adını ve şifresini programa yazmak zorunda mıyız? Nodemcu yu başka ağda kullanmak için illa programa müdahale mi edilmesi gerekiyor ? Sunoff modüllerde böyle olmuyor. Yöntem nedir ?

LukeSkywalker

Bunu yapabilmek icin ilk once acces point olarak calistirin ve nodemcu icine basit bir arayuz hazirlayin. Ap ye baglanin ve arayuzden baglanmasini istediginiz ssid ve sifreyi girin. Bu degerleri de flash hafizaya kayit ettirin. Bu sayede mudaheleye gerek kalmaz.

zenze

Bu yönde araştıracağım. Teşekkür ederim.