Jeg vet at dette er et vanlig spørsmål, men sannheten er at hver kode er forskjellig. Noen ganger er det vanskelig å bruke konseptet på koden din, det fungerer ikke. Så vær så snill å hjelpe meg. Hva er galt med denne koden? Jeg fikk den fra GitHub. Jeg prøver å kompilere den først før jeg kan gjøre litt modifikasjon sender den temp og fuktighetsdata til ThingSpeak skyservere.

#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); } 

Når jeg kompilerer får jeg denne feilen,

 Arduino: 1.8.10 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200" C:\Users\Agent 96\Desktop\thingspeak\thingspeak.ino: In function "void loop()": thingspeak:37:20: error: expected primary-expression before "." token int chk = DHT.read(DHTPIN); ^ thingspeak:38:22: error: expected primary-expression before "." token float hum = DHT.humidity; ^ thingspeak:39:23: error: expected primary-expression before "." token float temp = DHT.temperature; ^ Multiple libraries were found for "DHT.h" Used: C:\Users\Agent Not used: C:\Users\Agent Multiple libraries were found for "ESP8266WiFi.h" Used: C:\Users\Agent exit status 1 expected primary-expression before "." token This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. 

Vennligst hjelp, jeg er litt for en nybegynner.

Svar

Du definerte DHT som dht. Så du må erstatte DHT med DHT, og du vil være klar.

Svar

Endre tre linjer rett etter løkke () til disse:

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

Endre « DHT » i små bokstaver. DHT er klassen og dht er gjenstand for DHT-klassen.

Du har også flere eksemplarer av disse bibliotekene: DHT.h og Esp8266WiFi.h Sjekk din cuurent-katalog hvor Arduino-koden din er og også Dokumenter-> Arduino-> Biblioteker katalog. Disse bibliotekene skal være i Dokumenter-> Arduino-> Biblioteker -katalogen.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *