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ę.
a tutaj screen z monitora:
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:
#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: