Problem z ESP8266EX

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
prosajmon
Młodszy majsterkowicz
Posty: 4
Rejestracja: 27 lis 2018, 14:06

Problem z ESP8266EX

Post autor: prosajmon » 10 sty 2019, 18:20

Cześć,

mam program, który ma za zadanie łączyć się z wifi, dodawać do bazy danych kilka danych, a także odczytywać informacje z bazy danych. Program opiera się o płytkę WEMOS D1 R1 z mikrokontrolerem ESP8266EX. Na czym polega mój problem? Po wgraniu programu ESP łączy się z siecią, ale nie dodaje później do bazy nic i nie odbiera. Sytuacja ta ma miejsce dla wszystkich innych sieci oprócz jednej konkretnej. Na jednym modemie wifi - od światłowodu wszystko działa. Kiedy chcę odpalić układ na innym urządzeniu wifi - przykładowo na hotspocie z telefonu - nie działa. Wpisując ip z konsoli do przeglądarki, skrypty PHP działają prawidłowo, ale ESP nie chce współpracować. Tak jakby nie chciało się ono łączyć z hostem. Jak rozwiązać ten problem? Miał ktoś podobną sytuację?
Poniżej zamieszczam kod mojego programu. Za każdą pomoc dziękuję.

Kod: Zaznacz cały

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

  const char* ssid     = "xxxx"
  const char* password = "xxxx"
  const char* host = "xxxxx";

void setup()
{
  
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while(WiFi.status() != WL_CONNECTED) 
  {
    delay(500);
    Serial.print(".");
  }
  
  Serial.println("");
  Serial.println("Wi-Fi connected successfully");
  
  Serial.print("Connecting to ");
  Serial.println(ssid);
  Serial.println("WiFi connected");
  Serial.println(WiFi.localIP());
  
  
}

void loop()
{
  
    
    Serial.print("connecting to ");
    Serial.println(host);
    
    WiFiClient client;
    const int httpPort = 80;
    
    if(!client.connect(host, httpPort)) {

    Serial.println("connection failed");

    }

    String url = "/esp/baza.php?";
    url += "temperatura=";
    url += 12;//temperatura;
    url += "&ciecz=";
    url += 1;//ciecz_w_zbiorniku;
    url += "&wilgoc=";
    url += 2321;//wilgotnosc;
    url += "&data=";
    url += "2019-10-10";
    url += "&czas=";
    url += "12:23";

    Serial.print("Requesting URL: ");
    Serial.println(url);

    // wyslanie zapytania do serwera
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "Connection: close\r\n\r\n"); 
    unsigned long timeout = millis();
    while (client.available() == 0) 
    {
      if (millis() - timeout > 5000) 
      {
        Serial.println(">>> Client Timeout !");
        client.stop();
        return;
      }
    }
    while (client.available()) 
    {
      String line = client.readStringUntil('\r');
      Serial.print(line);
    }

    Serial.println();
    Serial.println("closing connection");

    HTTPClient http;
    http.begin("http://xxxxx/esp/fetch.php");
    int httpCode = http.GET();

    if(httpCode > 0)
    {
      String status = http.getString();
      Serial.print("ustawiona godzina nawadniania: ");
      Serial.println(status);

      //Serial.print("");
     // odczyt[0] = getValue(status, ':',0);
      //Serial.println(odczyt[0]);
      //Serial.print("");
      //odczyt[1] = getValue(status, ':',1);
      //Serial.println(odczyt[1]);
    }
      http.end();
}
a tutaj screen z monitora:
screen błędu.png
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


gavron
Majsterkowicz
Posty: 54
Rejestracja: 17 sie 2018, 07:43

Re: Problem z ESP8266EX

Post autor: gavron » 10 sty 2019, 18:56

Czy dobrze rozumiem że masz jakąś bazę w sieci LAN na jakimś adresie i jak jesteś po wifi z tej sieci to działa a na hotspot to nie? Jeśli tak to zdajesz sobie sprawę że to 2 różne sieci i musisz mieć publika aby to w ogóle miało szansę zadziałać?


Wysłane z mojego Neffos Y5s przy użyciu Tapatalka

prosajmon
Młodszy majsterkowicz
Posty: 4
Rejestracja: 27 lis 2018, 14:06

Re: Problem z ESP8266EX

Post autor: prosajmon » 10 sty 2019, 19:09

Mam bazę danych w php myadmin oraz dwa skrypty. Jeden obsługuje pobieranie danych z bazy i przekazywanie ich do ESP, a drugi odpowiada za wstawianie danych z ESP do bazy. Kiedy łączę się z siecią w mieszkaniu to wszystko działa tzn. ESP łączy się z Wifi, dodaje dane do bazy i odbiera je. Gdy łączę ESP z inną siecią Wifi np. z moim hotspotem z telefonu to co prawda ESP łączy się z tą siecią, ale nie działa dodawania i pobieranie danych z bazy. Ip w celu łączenia podaję z konsoli - IPV4. Sprawdzam czy podaję do kodu poprawne Ip wpisując je w przeglądarce i odpalając tam któryś ze skryptów. I to także działa, więc problem leży w łączeniu między hostem a ESP. Tylko dziwne, że na jednej konkretnej sieci mi działa wszystko, a na pozostałych nie. Serwer mam lokalny z XAMPP'a...
prosajmon
Młodszy majsterkowicz
Posty: 4
Rejestracja: 27 lis 2018, 14:06

Re: Problem z ESP8266EX

Post autor: prosajmon » 10 sty 2019, 19:10

Poza tym łączę się również z inną siecią Wifi (nie hotspotem) żeby sprawdzić czy to nie wina po stronie hotspota, ale też nie działa wysyłanie i odbieranie danych
gavron
Majsterkowicz
Posty: 54
Rejestracja: 17 sie 2018, 07:43

Re: Problem z ESP8266EX

Post autor: gavron » 10 sty 2019, 21:55

No to odpowiedz masz wyżej. Uzles w skrypcie wewnętrznego IP a powinieneś użyć publicznego o ile masz i przekierować odpowiednio porty na routerze.

Wysłane z mojego Neffos Y5s przy użyciu Tapatalka

gavron
Majsterkowicz
Posty: 54
Rejestracja: 17 sie 2018, 07:43

Re: Problem z ESP8266EX

Post autor: gavron » 10 sty 2019, 21:58

Na forum android z tego co widzę to gullupoty piszą do ciebie się znają...

Wysłane z mojego Neffos Y5s przy użyciu Tapatalka

ODPOWIEDZ

Strony partnerskie: