ESP8266+DS18B20, problem z przekazaniem danych na stronę www

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
Sawczenko
Młodszy majsterkowicz
Posty: 4
Rejestracja: 13 lip 2018, 22:32

ESP8266+DS18B20, problem z przekazaniem danych na stronę www

Post autor: Sawczenko » 13 lip 2018, 22:52

Witam serdecznie

Od dłuższego czasu mam problem z wysłaniem danych z mojego ESP8266 (zintegrowanego z Mega2560) metodą GET na utworzoną stronę WWW za pomocą hostingu cba. Przed próbą stworzenia takiego połączenia udało mi się prawidłowo połączyć z serwisem ThingSpeak, więc nie jest to problem z modułem tylko z kodem mikrokontrolera/ skryptu php. Dane z mikrokontrolera nie zostają przekazane na stronę mimo ustalonego połączenia. Wpisując wartość zmiennej w URL, zawartość zostaje wyświetlona na stronie. W czym może być problem? Byłbym wdzięczny za pomoc kogoś bardziej doświadczonego, kto wykonał podobny projekt. Dziękuję za wszelkie porady i wskazówki.

Kod Arduino:

Kod: Zaznacz cały

#include <OneWire.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 1


const char* host = "strona_cba"; // Your domain  
String path = "/index.php?temperature=";  


OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);

const char* ssid = "ssid";
const char* pass = "hasło";


char temperatureString[6];

void setup(void){
  Serial.begin(115200);
  Serial.println("");
  
  WiFi.begin(ssid, pass);
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    Serial.print(".");
  }
  
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  DS18B20.begin();
   

}

float getTemperature() {
  float temp;
  do {
    DS18B20.requestTemperatures(); 
    temp = DS18B20.getTempCByIndex(0);
    delay(100);
  } while (temp == 86.0 || temp == (-128.0));
  return temp;
}


void loop() {

  float temperature = getTemperature();

  dtostrf(temperature, 2, 2, temperatureString);
  
  Serial.println(temperatureString);

  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("Błąd połączenia");
    return;
  }

  client.print(String("GET ") + path + temperatureString + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: keep-alive\r\n\r\n");
  delay(500);

}
Kod php:

Kod: Zaznacz cały


<html>
<head>

</head>
<body>
<?php
$a=$_POST['total_a'];
$b=$_POST['total_b'];
$c=$_POST['total_c'];
$d=$_POST['total_d'];
$o = 'total_a= ' . $a . ' total_b= ' . $b . ' total_c= ' . $c . ' total_d= ' . $d  ;
file_put_contents('dataDisplayer.html',$o);
?>

</body>
</html>		

Ostatnio zmieniony 19 lip 2018, 19:25 przez Sawczenko, łącznie zmieniany 1 raz.

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


Awatar użytkownika
macin
Majsterkowicz
Posty: 192
Rejestracja: 1 lip 2012, 11:24
Lokalizacja: Bydgoszcz

Re: ESP8266+DS18B20, problem z przekazaniem danych na stronę www

Post autor: macin » 14 lip 2018, 09:45

A co konkretnie chcesz osiągnąć?, skrypt działa tak jak ma czyli gdy ma wartość w get 'temperature' to wyświetla na stronie. Gdy esp podłączy się na stronę to samo się dzieje, tylko nigdzie tego nie zapisujesz.
Sawczenko
Młodszy majsterkowicz
Posty: 4
Rejestracja: 13 lip 2018, 22:32

Re: ESP8266+DS18B20, problem z przekazaniem danych na stronę www

Post autor: Sawczenko » 14 lip 2018, 12:02

Faktycznie, przekazałem dane do htmla i wszystko działa, dzięki wielkie!
Pseudo
Majsterkowicz
Posty: 53
Rejestracja: 28 cze 2013, 22:08

Re: ESP8266+DS18B20, problem z przekazaniem danych na stronę www

Post autor: Pseudo » 17 lip 2018, 11:00

Sawczenko pisze:
13 lip 2018, 22:52
Witam serdecznie

Od dłuższego czasu mam problem z wysłaniem danych z mojego ESP8266 (zintegrowanego z Mega2560) metodą GET na utworzoną stronę WWW za pomocą hostingu cba. Przed próbą stworzenia takiego połączenia udało mi się prawidłowo połączyć z serwisem ThingSpeak, więc nie jest to problem z modułem tylko z kodem mikrokontrolera/ skryptu php.

To ja mam do Ciebie prosbe o podanie jak podlaczyles modul wifi do arduino bo moj cos nie chce dzialac.
Czy podlaczales modul prosto ze sklepu czy przez uzyciem tego jako wifi trzeba wgrywac jakis firmware do tego ?
Sawczenko
Młodszy majsterkowicz
Posty: 4
Rejestracja: 13 lip 2018, 22:32

Re: ESP8266+DS18B20, problem z przekazaniem danych na stronę www

Post autor: Sawczenko » 17 lip 2018, 14:01

Kupiłem płytkę RobotDyn Mega 2560 z zintegrowanym modułem ESP więc nie musiałem go podłączać. ESP należy zflashować nowym AT Firmware aby komunikacja odbywała się bezproblemowo, a następnie zgodnie z oznaczeniem pinów podłączyć pod Arduino. ElektroPrzewodnik na swoim kanale YouTube pokazuje jak należy taki moduł skonfigurować i podłączyć.
Sawczenko
Młodszy majsterkowicz
Posty: 4
Rejestracja: 13 lip 2018, 22:32

Re: ESP8266+DS18B20, problem z przekazaniem danych na stronę www

Post autor: Sawczenko » 19 lip 2018, 19:24

Mam pytanie odnośnie wyświetlania zawartości zmiennych POST. Czy można wyświetlić wartość zmiennej php w konkretnym divie w tym samym formularzu bądź oddzielnym html? Obecnie uzyskuje surowy odczyt jak na załączonym jpg za pomocą kodu powyżej . Chciałbym stworzyć panel bardziej przyjazny dla użytkownika. Dziękuję za pomoc.
1.PNG
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
ODPOWIEDZ

Strony partnerskie: