Почему соединение esp не работает должным образом в моем коде?C++

Программы на C++. Форум разработчиков
Anonymous
 Почему соединение esp не работает должным образом в моем коде?

Сообщение Anonymous »

Я пытаюсь реализовать простой проект гаражных ворот с Wi-Fi. Проблема в том, что я не могу подключиться к сети Wi-Fi. Я использую простое выставочное приложение, написанное на языке React Native, которое достигает правильных конечных точек, но у меня проблема с esp, вот код

Код: Выделить всё

#include 

#define GateUp 1
#define GateDown 0

// Zmienne sieciowe
const char* ssid = "POCO X6 Pro 5G";        // Nazwa Twojej sieci WiFi
const char* password = "there_is_my_password";   // Hasło do Twojej sieci WiFi

WiFiServer server(80);

// Zmienne bramy
float GatePosition = 0;  // 0 to zamknięta, 100 to całkowicie otwarta
bool isOpen = false;
int fullTime = 5000;  // Czas pełnego otwarcia/zamknięcia bramy (ms)

void setup() {
// Łączenie się z siecią i otwieranie seriala
Serial.begin(115200);
Serial.println();
Serial.print("Łączenie z siecią ");
Serial.println(ssid);
WiFi.begin(ssid, password);
int retryCount = 0; // Zmienna do śledzenia prób połączenia
while (WiFi.status() != WL_CONNECTED && retryCount < 20) {
delay(1000);  // Zwiększamy czas opóźnienia, by dać więcej czasu na połączenie
Serial.print("Łączenie... Status: ");
Serial.println(WiFi.status());  // Wyświetlanie statusu WiFi

retryCount++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println("Połączono z WiFi!");
Serial.print("Adres IP: ");
Serial.println(WiFi.localIP());
server.begin();
} else {
Serial.println("Nie udało się połączyć z WiFi. Sprawdź SSID i hasło.");
}
server.begin();
Serial.println("Połączono z siecią!");
WiFi.hostname("MyESP8266");

pinMode(GateUp, OUTPUT);
pinMode(GateDown, OUTPUT);

// Inicjalizacja bramy
digitalWrite(GateUp, LOW);
digitalWrite(GateDown, LOW);
}

void handleRequest(String request) {
if (request.indexOf("/fullOpen") != -1) {
fullOpen();
} else if (request.indexOf("/fullClose") != -1) {
fullClose();
} else if (request.indexOf("/halfOpen") != -1) {
halfOpen();
} else if (request.indexOf("/halfClose") != -1) {
halfClose();
}
}

void fullClose() {
Serial.println("Zamykanie bramy całkowicie");
GatePosition = 0;
digitalWrite(GateDown, HIGH);
delay(fullTime);  // Czas pełnego zamknięcia
digitalWrite(GateDown, LOW);
isOpen = false;
Serial.println("wykonano");
}

void fullOpen() {
Serial.println("Otwieranie bramy całkowicie");
GatePosition = 100;
digitalWrite(GateUp, HIGH);
delay(fullTime);  // Czas pełnego otwarcia
digitalWrite(GateUp, LOW);
isOpen = true;
Serial.println("wykonano");
}

void halfClose() {
Serial.println("Zamykanie bramy do połowy");
GatePosition = 50;
digitalWrite(GateDown, HIGH);
delay(fullTime / 2);  // Czas na połowę zamknięcia
digitalWrite(GateDown, LOW);
isOpen = false;
Serial.println("wykonano");
}

void halfOpen() {
Serial.println("Otwieranie bramy do połowy");
GatePosition = 50;
digitalWrite(GateUp, HIGH);
delay(fullTime / 2);  // Czas na połowę otwarcia
digitalWrite(GateUp, LOW);
isOpen = true;
Serial.println("wykonano");
}

void loop() {
// Otwieranie serwera i czekanie na klienta
WiFiClient client = server.available();
if (!client) {
return;
}

// Czekaj aż klient wyśle jakieś dane
while (!client.available()) {
delay(1);
}

// Odczytaj pierwszą linię zapytania HTTP
String request = client.readStringUntil('\r');
Serial.print("Otrzymane żądanie: ");
Serial.println(request);
client.flush();

// Obsługa różnych ścieżek
handleRequest(request);

// Odpowiedź HTTP
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Access-Control-Allow-Origin: *");
client.println();
client.println("Operacja wykonana");

delay(1);
client.stop();
Serial.println("Klient rozłączony");
}
Я пытался добавить несколько журналов и т. д., но esp, кажется, лагает, он пару раз пишет статус 7 и блокируется примерно после 4 попыток, также добавлен контроль доступа, позволяющий источнику вернуться к клиенту, но это ничего не дает. Может ли это быть проблемой с конфигурацией сети?
[Редактировать:]
Хорошо, я понял, что ESP каким-то образом дает сбой после подключения к Wi-Fi в первом цикле while, а остальная часть цикла настройки, вероятно, не работает. сделано, и последовательный порт перестает работать, но я вижу, что он подключен к моей точке доступа, у него есть IP-адрес и т. д. В чем может быть проблема?
Обнаружил проблему. Я поменял контакты Gateup и Gatedown. . Номера gpio и номера на плате выходов различаются, поскольку кто-то сказал, что контакт 1 предназначен для последовательной связи, мне не следует его использовать

Подробнее здесь: https://stackoverflow.com/questions/790 ... in-my-code

Вернуться в «C++»