ESP8266: не считываются данные с датчика DHT11
я работаю с ESP8266 и пытаюсь сделать, чтобы температура и влажность, считываемые датчиком DHT11, отправлялись по гугл скрипту в таблицу. Но к сожалению датчик ни в какую не считывает данные, я уже поменял 2 платы и 3 датчика, так что вряд ли проблема в железе. Я слабо представляю, где может быть ошибка, поэтому извиняюсь за большой кусок кода:
#include <ESP8266WiFi.h>
#include "HTTPSRedirect.h"
#include "DebugMacros.h"
#include <DHT.h>
#define DHTPIN 4 // к этому контакту подключен датчик DHT11
#define DHTTYPE DHT11 // выбираем dht тип - DHT 11 или DHT22
DHT dht(DHTPIN, DHTTYPE);
float h;
float t;
String sheetHumid = "";
String sheetTemp = "";
const char* ssid = "TP-LINK_27F1CC"; // замените на ssid для вашей сети wifi
const char* password = "dok-2017"; // замените на пароль для вашей сети wifi
const char* host = "script.google.com";
const char *GScriptId = "AKfycbzkndqr0dKsK_K1RNCHfoWOgRxrm1YLVu9_yjZiysBTAdPn8BbV1jrhN6-iFTVTBtMqxw"; // замените на ваш google script id
const int httpsPort = 443; // the https порт оставляем тем же самым
// echo | openssl s_client -connect script.google.com:443 |& openssl x509 -fingerprint -noout
const char* fingerprint = "";
//const uint8_t fingerprint[20] = {};
String url = String("/macros/s/") + GScriptId + "/exec?value=Temperature"; // записываем значение температуры в Google Spreadsheet в ячейку A1
// Fetch Google Calendar events for 1 week ahead
String url2 = String("/macros/s/") + GScriptId + "/exec?cal"; // записываем в ячейку A непрерывно
//replace with sheet name not with spreadsheet file name taken from google
String payload_base = "{\"command\": \"appendRow\", \
\"sheet_name\": \"TempSheet\", \
\"values\": ";
String payload = "";
HTTPSRedirect* client = nullptr;
void setup() {
delay(1000);
Serial.begin(115200);
dht.begin(); //инициализация DHT11
Serial.println();
Serial.print("Connecting to wifi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// используем класс HTTPSRedirect чтобы создать новое соединение TLS
client = new HTTPSRedirect(httpsPort);
client->setInsecure();
client->setPrintResponseBody(true);
client->setContentTypeHeader("application/json");
Serial.print("Connecting to ");
Serial.println(host); // пытаемся соединиться с "script.google.com"
// пытаемся соединиться максимум 5 раз, после чего прекращаем процесс
bool flag = false;
for (int i = 0; i < 5; i++) {
int retval = client->connect(host, httpsPort);
if (retval == 1) {
flag = true;
break;
}
else
Serial.println("Connection failed. Retrying...");
}
if (!flag) {
Serial.print("Could not connect to server: ");
Serial.println(host);
Serial.println("Exiting...");
return;
}
Serial.println("\nWrite into cell 'A1'");
Serial.println("------>");
client->GET(url, host);
Serial.println("\nGET: Fetch Google Calendar Data:");
Serial.println("------>");
client->GET(url2, host);
Serial.println("\nStart Sending Sensor Data to Google Spreadsheet");
// удалить объект HTTPSRedirect
delete client;
client = nullptr;
}
void loop() {
h = dht.readHumidity();
delay(5000);
t = dht.readTemperature();
delay(5000);
if (isnan(h) || isnan(t)) { /
Serial.println(F("Failed to read from DHT sensor!"));
return;
Скетч загружается в плату, но на мониторе порта выводится следующее:
Connecting to wifi: TP-LINK_27F1CC
.......
WiFi connected
IP address:
192.168.0.104
Connecting to script.google.com
Write into cell 'A1'
------>
Successfully wrote: Temperature
into spreadsheet.
GET: Fetch Google Calendar Data:
------>
<!DOCTYPE html><html><head><link rel="shortcut icon" href="//ssl.gstatic.com/docs/script/images/favicon.ico"><title>Ошибка</title><style type="text/css" nonce="30BdscEIp8-GWd3QpNMcDw">body {background-color: #fff; margin: 0; padding: 0;}.errorMessage {font-family: Arial,sans-serif; font-size: 12pt; font-weight: bold; line-height: 150%; padding-top: 25px;}</style></head><body style="margin:20px"><div><img alt="Google Apps Script" src="//ssl.gstatic.com/docs/script/images/logo.png"></div><div style="text-align:center;font-family:monospace;margin:50px auto 0;max-width:600px">TypeError: Cannot read properties of undefined (reading 'getEvents') (строка 103, файл Код)</div></body></html>
Start Sending Sensor Data to Google Spreadsheet
Failed to read from DHT sensor!
Failed to read from DHT sensor!
Так выглядит схема (на датчике + слева, а - справа, если не видно):
Помогите, пожалуйста, в коде проблема или в схеме, или и в том и другом?