2016-08-04 17 views
0

私はarduino ideを使ってesp8266(wifiモジュール)をプログラムしています。モジュールにtcpサーバを作成し、クライアントのtesterプログラムを使ってデータを送受信しました。コードを使用しています モジュールからデータを送信できましたが、携帯電話からデータを受信することはできません。 これは私がWifiClientが削除されると、接続が閉じられ、その後、あなたのフラグalreadyConnected doesnotは、接続状態を示すesp8266 TCPサーバを作成しましたが、データを受信できません

#include <ESP8266WiFi.h> 
int i =0; 
char ssid[] = "moataz";   
char pass[] = "58295829"; 
int status = WL_IDLE_STATUS; 

WiFiServer server(1050); 

void setup() 
{ 
    Serial.begin(115200); 
    WiFi.mode(WIFI_AP_STA); 
    WiFi.begin("moataz", "58295829"); 
    while (WiFi.status() != WL_CONNECTED) 
    { 
    delay(500); 
    Serial.print("."); 
    } 
    Serial.println("connectedd"); 
    server.begin(); 
    IPAddress myAddress = WiFi.localIP(); 
    Serial.println(myAddress); 
    delay(200); 
} 

bool alreadyConnected = 0; 
void loop() { 
    WiFiClient client = server.available(); 
    if (client) { 
    if (!alreadyConnected) { 
     client.flush(); 
     Serial.println("We have a new client"); 
     client.println("Hello, client!"); 
     alreadyConnected = true; 
    } 
    } 
    if (client.available() > 0) { 
    char thisChar = client.read(); 
    Serial.println("We got data"); 
    Serial.println(thisChar); 
    delay(200); 
    } 
} 
+0

データを受信するために携帯電話で何をしていますか? – leetibbett

答えて

1

を使用していたコードです。
コードは初めて動作するはずです。 「!こんにちは、クライアントを」
送信、TCP接続を受け入れるために、1つの文字を読んで、TCP接続を閉じ、あなたは次のように進むことができます:あなたはオープン接続を維持したい場合

void loop() { 
    WiFiClient client = server.available(); 
    if (client) { 
     Serial.println("We have a new client"); 
     client.println("Hello, client!"); 

     if (client.available() > 0) { 
      char thisChar = client.read(); 
      Serial.println("We got data"); 
      Serial.println(thisChar); 
      delay(200); 
     } 
    } 
} 

、それをループの外側に保つ必要があります。 このサンプルWiFiTelnetToSerial.inoは、WIFIClientのリストを維持する方法を示しています。

関連する問題