• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ESP8622 - odczyt przekazanej wartości
#1
Question 
Witam,

Na stronie internetowej mam taki kod:
Kod PHP:
<?php
 
include("dbconnect.php");

$selected mysql_select_db($Database$dbh);
$results mysql_query("SELECT * FROM energie ORDER BY id DESC LIMIT 1");         
$row mysql_fetch_array($results) or die("Cannot execute SELECT query."); 
$zmienna6 = ($row["dallasnr0"]/100);
$zmienna7 = ($row["dallasnr2"]/100);
$zmienna8 = ($row["dallasnr3"]/100);
if (
$zmienna6 $zmienna8)
{
$wyslij="wylacz";}
if (
$zmienna6 $zmienna8)
{
$wyslij="włacz";}
echo 
$wyslij;
?>

W module ESP8622 mam wgrany taki program:

Kod:
/**
* StreamHTTPClient.ino
*
*  Created on: 24.05.2015
*
*/

#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

#define USE_SERIAL Serial
#define LED 12  
int a=0;
String wynik ="";

ESP8266WiFiMulti WiFiMulti;

void setup() {
pinMode(LED, OUTPUT);

   USE_SERIAL.begin(115200);
   // USE_SERIAL.setDebugOutput(true);

   USE_SERIAL.println();
   USE_SERIAL.println();
   USE_SERIAL.println();

   for(uint8_t t = 4; t > 0; t--) {
       USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
       USE_SERIAL.flush();
       delay(1000);
   }

   WiFiMulti.addAP("......", ".....");

}

void loop() {
   // wait for WiFi connection
   if((WiFiMulti.run() == WL_CONNECTED)) {

       HTTPClient http;

       USE_SERIAL.print("[HTTP] begin...\n");

       // configure server and url
       http.begin("http://............../wyslij.php");
     
       USE_SERIAL.print("[HTTP] GET...\n");
       // start connection and send HTTP header
       int httpCode = http.GET();
       if(httpCode > 0) {
           // HTTP header has been send and Server response header has been handled
           USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode);

           // file found at server
           if(httpCode == HTTP_CODE_OK) {

               // get lenght of document (is -1 when Server sends no Content-Length header)
               int len = http.getSize();

               // create buffer for read
               uint8_t buff[128] = { 0 };

               // get tcp stream
               WiFiClient * stream = http.getStreamPtr();

               // read all data from server
               while(http.connected() && (len > 0 || len == -1)) {
                   // get available data size
                   size_t size = stream->available();

                   if(size) {
                       // read up to 128 byte
                       int c = stream->readBytes(buff, ((size > sizeof(buff)) ? sizeof(buff) : size));
                     

                       // write it to Serial
                       
                       USE_SERIAL.write(buff, c);
                       if(len > 0) {
                           len -= c;
                       }
                   }
                   delay(1);
               }


               USE_SERIAL.print("[HTTP] connection closed or file end.\n");

           }
       } else {
          printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
       }

       http.end();
   }
a=1;
if (a==1){digitalWrite(LED, HIGH);
a=0;}
   delay(10000);
   if (a==0){digitalWrite(LED, LOW);
a=0;}
delay(10000);


}

Po wykonaniu programu otrzymuję taki wynik.


Cytat:[HTTP] connection closed or file end. 
[HTTP] begin... 
[HTTP] GET... 
[HTTP] GET... code: 200 

wylacz 





[HTTP] connection closed or file end. 
Nie wiem jak wyciągnąć tekst przesyłany w zmiennej  $wyslij. 

Bardzo proszę o pomoc.
 
Odpowiedź
#2
Zerknij proszę dokładnie do kodu gotowch przykładów w example codes i znajdziesz Wink

Poniżej  dodałem przykad funkcji wyświetlającej paramerty przesłane metodą Get





void handlesite(){

  for (uint8_t i=0; i<server.args(); i++){
    message += " NAME:"+server.argName(i) + "\n VALUE:" + server.arg(i) + "\n";
  }


server.send(200, "text/plain", message);
}

server.on ( "/mojastona", handlesite );
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości