İ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="";
}
}
}
}
Arkadaşlar IOT bölümü açıldı, oraları kullanırsanız konular toplu olur. Taşıyorum.