ESP8266 yi AP ve STA modlarinda calistirma

Başlatan serter, 16 Kasım 2017, 17:00:31

serter

İyi günler arkadaşlar. ESP8266 ile ugrasiyorum. Ve bir noktaya takildim. Yardimci olabilirseniz sevinirim.
yapmak istediğim proje şu. ESP8266 modemime bağlanacak ve bağlandıktan sonra kendisi access point olarak yayin yapmaya baslayacaktir. Bilgisayarimdan da ben espye bağlanip modeme veriler göndermek istiyorum.
takıldıgım nokta ise esp yi
WiFi.mode(WIFI_AP_STA); /*1*/
kodunda baslattığımda esp modemimle connection olmuyor. ve bu yüzden bilgisarimdan modeme veri gönderemiyorum.
esp yi
//WiFi.mode(WIFI_STA); /*2*/
modunda baslatığımda modemimle connection yapiyor. Bilgisayarimdan da ESp ye bağlanabiliyorum ama verileri göndermiyor. bir süre sonra da esp modemimle olan connection bağlantısnı kopariyor.

kısaca sormak istediğim şu. ESP8266 yı AP ve STA modlarında veri akışlarını düzenli sağlayacak şekilde nasıl çalıştırabilirim?


#include <ESP8266WiFi.h>
const char* ssid = "Stationssid";   //baglanacak oldugum agin ssid ismi
const char* password = "1234567890";//baglanacak olan agın sifresi
const char* host="192.168.4.1";   // baglanacak olan agin hostu
const char* apssid = "APssid";    // yayin yapacagim ag ssid si
const char* appassword = "1234567890"; // yayin yapacagim agin sifresi
String cgv; // client uzerinden gelen verileri okumak ıcın degiskenim
int k;
const int port=5001; // baglanacak oldugum aga baglanacagim port
WiFiServer server(80); // AP icin server tanimlamasi
WiFiClient clientSTA; // istasyon modum icin client ismi
WiFiClient clientAP; // AP modu icin client ismi
void setup() 
{
  Serial.begin(115200);
  WiFi.mode(WIFI_AP_STA); /*1*/ //ESP8266  hem AP modu hem de istasyon modunda calisiyor
  //WiFi.mode(WIFI_STA); /*2*/  // ESP8266 istasyon modunda calisiyor
  WiFi.begin(ssid, password); // verilen aga baglan

  Serial.print(ssid);
  Serial.print("adresine baglaniyor ");
  while (WiFi.status() != WL_CONNECTED) // aga bagli degilken 
  {
    delay(500);
    Serial.print(".");
  }

  Serial.println();
  Serial.print(ssid);
  Serial.println(" WiFi adresine baglandi.");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());     // IP adresi yazdiriliyor

  Serial.print("Sinyal Gucu: ");
  Serial.println(WiFi.RSSI());        // sinyal gücü yazdiriliyor
  clientSTA.connect(host,port);
  Serial.println("setup ayarlari yapildi.");
}

void loop() 
{
  if(!clientSTA.connect(host,port)) // aga verilmis olan host ve porttan connect olmadiysa
  {
    Serial.println("Station baglantisi yok");
    k=0;
    return;
  }
  while(clientSTA.connected()) // istasyon modunda connect iken
  {
    if(k==0)
    { 
      Serial.println("Station baglantisi var");
     // WiFi.mode(WIFI_AP_STA);  /*setup ayarlarinde wifi mode 2 icin  */ //Wİfi modum istasyon modunda ise connect olduktan sonra iki modu da calistir
      WiFi.softAP(apssid, appassword); // AP modunu baslat
      IPAddress myIP = WiFi.softAPIP(); // AP modu ıcın IP adresi
      Serial.print("AP IP address: ");
      Serial.println(myIP);
      clientAP=server.available(); // AP modunun client ını serverla esdeger tut
      server.begin(); // server  baslat
      k=1;
    }
    while(clientSTA.available()) // istasyondan veri geliyorsa
    {
      Serial.println("Stationdan veri geliyor");
      cgv=clientSTA.readStringUntil('\r'); // gelen veriyi oku
      Serial.print("veri: ");
      Serial.println(cgv);
      clientSTA.flush();  // clienti temizle
      cgv="";
      if(clientAP) // client AP aktifse
      {
        Serial.println("AP baglantisi var"); 
        clientAP.print(cgv); // gelen veriyi client aP ye bas
      }
    }
    if(clientAP.connected()) // clientAP connected ise
    {
      while(clientAP.available()) // clientAP den veri geliyorsa
      {
        Serial.println("Access pointten veri geliyor");
        cgv=clientAP.readStringUntil('\r'); // gelen veriyi oku
        Serial.print("AP verisi: ");
        Serial.println(cgv);
        clientAP.flush(); // clientAP yi temizle
        clientSTA.print(cgv); // gelen veriyi istasyona bas
        cgv="";
      }
    }
  }
}

OG

Arkadaşlar IOT bölümü açıldı, oraları kullanırsanız konular toplu olur. Taşıyorum.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.