学校の卒業研究で、プログラムがうまく作動しなくて困っています
Q&A
解決したいこと
学校の卒業研究でNodeMCU社のESP8266でGASに接続して、GASからのレスポンスで条件判断し、ESPを動かしたいです。GASとESPのプログラムはできているのですが、シリアルモニタでHTTPに接続する際に-1とでてしまい接続が失敗してしまいます。どうすればよいでしょうか。
エラーコード
Error sending data: -1
該当するソースコード
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClientSecure.h>
const char* ssid = "ssid";
const char* password = "password";
const char* GAS_URL =
"GAS_URL";
#define SOIL_PIN A0
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");dd
}
Serial.println("\nWiFi connected!");
}
void loop() {
int soilRaw = analogRead(SOIL_PIN);
int soilPercent = map(soilRaw, 1023, 0, 0, 100);
soilPercent = constrain(soilPercent, 0, 100);
Serial.printf(
"Soil raw: %d | Soil moisture: %d%%\n",
soilRaw,
soilPercent
);
WiFiClientSecure client;
client.setInsecure();
HTTPClient http;
String url = String(GAS_URL)
+ "?soil_raw=" + String(soilRaw)
+ "&soil_percent=" + String(soilPercent);
Serial.println(url);
http.begin(client, url);
http.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);
int httpCode = http.GET();
Serial.print("HTTP code: ");
Serial.println(httpCode);
if (httpCode > 0) {
Serial.println(http.getString());
} else {
Serial.println(http.errorToString(httpCode));
}
http.end();
delay(10000);
}
自分で試したこと
すでにサーバー側に負荷がかからないように待機時間を増やしたりしましたが全部だめでした。
0 likes