google-cloud-firestore - 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();
}
解决方案
推荐阅读
- express - 如何使用 Nuxt Auth 模块在 Vuex 中保存 JWT 令牌?
- firebase - 使用getSignedUrl作为缩略图的firebase云功能在大约一周后到期,没有明确的原因?
- node.js - 使用表 B 获取表 A 值,其中 A.field_name = B.field_name
- javascript - Semantic-UI-React 网格列填充不设置列内联
- android - 我想从 firebase-database 获取“bookname”子项的值,但它返回 null 并且应用程序将崩溃,所以请帮助我
- python - for 循环错过了第一次迭代
- ssis - SSIS新手如何将数据输出到文件
- python - 我需要询问用户在哪里保存 pdf 文件以及使用 python 命名它
- node.js - 以管理员节点 JS 身份运行命令行
- c - 我可以在结束后保存(并使用)传递给函数的 char* 文字吗?