Nodemcu tidak menanggapi permintaan http GET

Saya ingin mengirim permintaan HTTP GET dari nodemcu saya ke server localhost. Baik nodemcu maupun laptop saya terhubung ke jaringan Wifi yang sama. Meskipun nodemcu terhubung ke jaringan, ia tidak mengirimkan permintaan. Saya mencoba mengirim permintaan secara manual dan menggunakan "tukang pos" dan kemudian berhasil. Jadi menurut saya masalahnya ada pada kode nodemcu atau sesuatu pada perangkat. Setiap ide diterima.


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

/* Set these to your desired credentials. */
const char *ssid = "******";  //ENTER YOUR WIFI SETTINGS
const char *password = "****";

//Web/Server address to read/write from 
//website or IP address of server

//=======================================================================
//                    Power on setup
//=======================================================================

void setup() {
  delay(1000);
  Serial.begin(115200);
  WiFi.mode(WIFI_OFF);        //Prevents reconnection issue (taking too long to connect)
  delay(1000);
  WiFi.mode(WIFI_STA);        //This line hides the viewing of ESP as wifi hotspot

  WiFi.begin(ssid, password);     //Connect to your WiFi router
  Serial.println("");

  Serial.print("Connecting");
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  //If connection successful show IP address in serial monitor
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());  //IP address assigned to your ESP
}

//=======================================================================
//                    Main Program Loop
//=======================================================================
void loop() {
  HTTPClient http;    //Declare object of class HTTPClient

  String ADCData, station, getData, Link;
  int adcvalue=253;  //Read Analog value of LDR
  ADCData = String(adcvalue);   //String to interger conversion
  station = "B";

  //GET Data
  getData = "?status=" + ADCData + "&station=" + station ;  //Note "?" //added at front
  Link = "http://localhost/welcome.php" + getData;

  http.begin(Link);     //Specify request destination

  int httpCode = http.GET();            //Send the request
  String payload = http.getString();    //Get the response payload

  Serial.println(httpCode);   //Print HTTP return code
  Serial.println(payload);    //Print request response payload

  http.end();  //Close connection

  delay(5000);  //GET Data at every 5 seconds
}
//=======================================================================

Kode php situs localhost ditampilkan di sini.

<html>
<body>

status: <?php echo $_GET["status"]; ?><br>
station: <?php echo $_GET["station"]; ?>

</body>
</html>

menghubungkan..... terhubung ke:**** -1 -1


person jack jill    schedule 17.07.2019    source sumber
comment
Saya dapat melihat Anda mendefinisikan variabel getData, yang berisi parameter kueri. Namun, saya tidak melihat Anda benar-benar menggunakan variabel itu di mana pun?   -  person Magnus Eriksson    schedule 17.07.2019
comment
Saya menggunakannya ketika saya mengunggahnya ke nodemcu. Melewatkannya di sini. diedit   -  person jack jill    schedule 17.07.2019
comment
Saat Anda mengatakan: ke server localhost, apakah yang Anda maksud adalah server web lokal Anda juga ada di perangkat nodemcu? Jika ada di perangkat lain (seperti laptop Anda), maka Anda tidak dapat menggunakan localhost karena itu mengacu pada dirinya sendiri (nodemcu memanggil dirinya sendiri).   -  person Magnus Eriksson    schedule 17.07.2019


Jawaban (2)


localhost adalah singkatan yang berarti "diri". Anda memberi tahu NodeMCU untuk mengirim permintaan ke dirinya sendiri, meskipun mungkin NodeMCU bahkan tidak memahami localhost. Anda harus menggunakan nama atau alamat IP sebenarnya dari komputer yang Anda coba kirimi permintaan. Localhost tidak akan pernah berfungsi seperti yang Anda coba gunakan di sini (mengirim permintaan dari satu komputer ke komputer lain).

person romkey    schedule 17.07.2019
comment
127.0.0.1 sama dengan localhost. 192.168.*** mungkin adalah yang Anda butuhkan. - person romkey; 17.07.2019

Coba Ini:

<?php 

echo "<pre>";
print_r($_REQUEST);

?>
person Kamani Anand    schedule 17.07.2019
comment
mencoba ini. tetap tidak ada. selalu mendapatkan -1 di monitor serial - person jack jill; 17.07.2019