Я хочу отправить HTTP-запрос GET с моего nodemcu на локальный сервер. И nodemcu, и мой ноутбук подключены к одной сети Wi-Fi. Хотя nodemcu подключается к сети, он не отправляет запрос. Я попробовал отправить запрос вручную и с помощью «почтальона», и он работает. Поэтому я думаю, что проблема связана с кодом nodemcu или чем-то еще с устройством. Любая идея приветствуется.
#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
}
//=======================================================================
Здесь показан php-код сайта localhost.
<html>
<body>
status: <?php echo $_GET["status"]; ?><br>
station: <?php echo $_GET["station"]; ?>
</body>
</html>
getData
, содержащую параметры запроса. Однако я не вижу, чтобы вы действительно где-нибудь использовали эту переменную? - person Magnus Eriksson   schedule 17.07.2019localhost
, поскольку он относится к самому себе (nodemcu вызывает себя). - person Magnus Eriksson   schedule 17.07.2019