Picproje Elektronik Sitesi

BİLGİSAYAR => Donanım ve Yazılım => Konuyu başlatan: berkay_91 - 01 Kasım 2017, 01:09:17

Başlık: Node MCU ya herhangi bir ağdan bağlanma
Gönderen: berkay_91 - 01 Kasım 2017, 01:09:17
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);


 
}


(https://s1.postimg.cc/9cqhgjn32j/Ads_z.png) (https://postimg.cc/image/9cqhgjn32j/)
Başlık: Ynt: Node MCU ya herhangi bir ağdan bağlanma
Gönderen: ilyas KAYA - 01 Kasım 2017, 06:17:50
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.
Başlık: Ynt: Node MCU ya herhangi bir ağdan bağlanma
Gönderen: mcankaya - 01 Kasım 2017, 09:15:34
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
Başlık: Ynt: Node MCU ya herhangi bir ağdan bağlanma
Gönderen: LukeSkywalker - 01 Kasım 2017, 10:23:22
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.


Başlık: Ynt: Node MCU ya herhangi bir ağdan bağlanma
Gönderen: zenze - 02 Kasım 2017, 17:34:12
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 ?
Başlık: Ynt: Node MCU ya herhangi bir ağdan bağlanma
Gönderen: LukeSkywalker - 02 Kasım 2017, 20:47:19
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.
Başlık: Ynt: Node MCU ya herhangi bir ağdan bağlanma
Gönderen: zenze - 02 Kasım 2017, 23:04:31
Bu yönde araştıracağım. Teşekkür ederim.