Написал простенький TCP сервер, который должен передавать 0 или 1. Залил прошивку в esp и решил подключится к серверу через telnet с помощью консоли Windows. Подключение проходит успешно, сервер выдает приветствие клиенту, но тут же клиент отключается.
Потом написал TCP клиент для esp. Залил в другой модуль esp. Та же ситуация, но теперь, он должен читать не только приветствие, а и 0 или 1. А вместо этого выдается какой-то набор рандомных цифр.
Клиент и сервер ниже
Потом написал TCP клиент для esp. Залил в другой модуль esp. Та же ситуация, но теперь, он должен читать не только приветствие, а и 0 или 1. А вместо этого выдается какой-то набор рандомных цифр.
Клиент и сервер ниже
Код:
#include <time.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiServer.h>
bool alreadyConnected = false;
int gpo;
unsigned long seconds;
WiFiServer server(196);
void setup() {
Serial.begin(115200);
while (!Serial) {
delay(10);
}
delay(5);
WiFiinit();
timeSynch();
server.begin();
Serial.print(GetTime());
Serial.println("Wait for first client...");
}
void loop() {
WiFiClient client = server.available();
if (client) {
if (!alreadyConnected) {
client.flush();
Serial.print(GetTime());
Serial.println("We have a new client");
Serial.print(GetTime());
client.println("Hello, client!");
alreadyConnected = true;
}
}
if (client.available() > 0) {
char thisChar = client.read();
gpo = digitalRead(2);
Serial.print(GetTime());
Serial.print("GPO2 = ");
Serial.println(gpo);
server.write(gpo);
Serial.println(thisChar);
} else if (client.available() < 0) {
Serial.print(GetTime());
Serial.println("Lost connection.");
alreadyConnected = false;
}
delay(50);
}
Код:
#include "set.h"
int answer;
unsigned long seconds;
WiFiClient client;
void setup() {
delay(100);
mp3_set_serial (Serial);
mp3_set_volume (5);
delay(100);
pinMode(0, OUTPUT);
serialConnect();
WiFiinit();
printWifiStatus();
delay(1000);
if (client.connect(server, 196)) {
Serial.println("connected to server");
return true;
} else {
Serial.println("connection failed.");
return false;
}
}
void loop() {
digitalWrite(0, HIGH);
if (client.available()) {
answer = client.read();
Serial.print(answer);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
if (client.connect(server, 196)) {
Serial.println("connected to server");
return true;
} else {
Serial.println("connection failed.");
return false;
}
}
if (answer == 0) alert();
delay(50);
}