Ich weiß, dass dies eine häufige Frage ist, aber die Wahrheit ist, dass jeder Code anders ist. Manchmal ist es schwierig, das Konzept auf Ihren Code anzuwenden, es funktioniert nicht. Bitte helfen Sie mir. Was ist mit diesem Code falsch? Ich habe ihn von GitHub erhalten. Ich versuche ihn zuerst zu kompilieren, bevor ich etwas tun kann Bei einer Änderung werden Temperatur- und Feuchtigkeitsdaten an ThingSpeak-Cloud-Server gesendet.

#include <DHT.h> // Including library for dht #include <ESP8266WiFi.h> String api_key = "YOUR API KEY"; // Enter your Write API key from ThingSpeak const char *ssid = "YOUR WIFI SSID"; // replace with your wifi ssid and wpa2 key const char *pass = "YOUR WIFI PASSWORD"; const char* server = "api.thingspeak.com"; #define DHTPIN 1 // pin where the dht11 is connected DHT dht; WiFiClient client; void setup() { Serial.begin(115200); delay(10); pinMode(2, OUTPUT); digitalWrite(2, 0); Serial.println("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); } void loop() { int chk = DHT.read(DHTPIN); float hum = DHT.humidity; float temp = DHT.temperature; if (isnan(hum) || isnan(temp)) { Serial.println("Failed to read from DHT sensor!"); return; } if (client.connect(server, 80)) { // "184.106.153.149" or api.thingspeak.com String data_to_send = api_key; data_to_send += "&field1="; data_to_send += hum; data_to_send += "&field2="; data_to_send += temp; data_to_send += "\r\n\r\n"; client.print("POST /update HTTP/1.1\n"); client.print("Host: api.thingspeak.com\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: " + api_key + "\n"); client.print("Content-Type: application/x-www-form- urlencoded\n"); client.print("Content-Length: "); client.print(data_to_send.length()); client.print("\n\n"); client.print(data_to_send); delay(1000); Serial.print("Temperature: "); Serial.print(temp); Serial.print(" degrees Celcius, Humidity: "); Serial.print(hum); Serial.println("%. Send to Thingspeak."); } client.stop(); Serial.println("Waiting..."); // ThingSpeak needs minimum 15 sec delay between updates, I"ve set it to 30 seconds delay(10000); } 

Beim Kompilieren wird der Fehler

Bitte helfen Sie, ich bin eine Art Anfänger.

Antwort

Sie haben DHT definiert als dht. Also müssen Sie diese DHT durch dht ersetzen und Sie können loslegen.

Antwort

Ändern Sie drei Zeilen direkt nach loop () in diese:

 int chk = dht.read(DHTPIN); float hum = dht.humidity; float temp = dht.temperature; 

Ändern Sie „ DHT “ in Kleinbuchstaben. DHT ist die Klasse und dht ist das Objekt der DHT-Klasse.

Sie haben auch mehrere Kopien dieser Bibliotheken: DHT.h und Esp8266WiFi.h Überprüfen Sie Ihr aktuelles Verzeichnis, in dem sich Ihr Arduino-Code befindet, und Dokumente-> Arduino-> Bibliotheken Verzeichnis. Diese Bibliotheken sollten sich im Verzeichnis Documents-> Arduino-> Libraries befinden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.