首页 > 解决方案 > ESP8266 POST method returns -5

问题描述

Hey I am currently trying to send a POST request at my Firestore Function through ESP8266 but it returns -5 everytime.

I have tried the POST request with Postman & it works perfectly fine with both url-encoded and raw data.

My ESP8266 is also connected with a stable WiFi and I have also included the required libraries.

Here's my code:

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

#define SERVER_IP "us-central1-led-controller-XXX.cloudfunctions.net"

 

const int trigPin = 2;  //D4
const int echoPin = 14; //D5 
const int LEDPIN = 0;
long duration;
int distance;
int i=0;
HTTPClient http;
WiFiClient client;
WiFiManager wifiManager;

#define STASSID "ABC"
#define STAPSK  "XXXX"

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(LEDPIN,OUTPUT);
  Serial.begin(9600);
 WiFi.begin(STASSID, STAPSK);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected! IP address: ");
  Serial.println(WiFi.localIP());
  if(WiFi.status() == WL_CONNECTED){
    digitalWrite(LEDPIN,HIGH);
    delay(500);
    digitalWrite(LEDPIN,LOW);
    delay(500);
    digitalWrite(LEDPIN,HIGH);
    delay(500);
    digitalWrite(LEDPIN,LOW);
  }
}


void loop() {
  // put your main code here, to run repeatedly:
  String postData = "";
   
   http.begin(client, "https://" SERVER_IP "/webApi/XXX"); //HTTP
   http.addHeader("Content-Type", "application/x-www-form-urlencoded");    //Specify content-type header

    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    // Sets the trigPin HIGH (ACTIVE) for 10 microseconds
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    // Reads the echoPin, returns the sound wave travel time in microseconds
    duration = pulseIn(echoPin, HIGH);
    // Calculating the distance
    distance = duration * 0.034 / 2; // Speed of sound wave divided by 2 (go and back)
    // Displays the distance on the Serial Monitor
    Serial.print("Distance: ");
    Serial.print(distance);
    Serial.println(" cm");
    postData = "deviceId=NodeMcu&buzzCount=1315";
    int httpCode = http.POST(postData); 
    Serial.println(httpCode);  
    http.end();  
}

标签: google-cloud-firestorearduino-unoarduino-idearduino-esp8266

解决方案


推荐阅读