Ik weet dat dit een veel voorkomende vraag is, maar de waarheid is dat elke code anders is. Soms is het moeilijk om het concept op je code toe te passen, het werkt niet. Dus help me alsjeblieft. Wat is er mis met deze code? Ik heb het van GitHub. Ik probeer het eerst te compileren voordat ik een beetje kan doen wijziging, stuurt het temperatuur- en vochtigheidsgegevens naar ThingSpeak-cloudservers.

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

Wanneer ik compileer krijg ik deze foutmelding,

 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. 

Help alstublieft, ik” ben een beetje een beginner.

Antwoord

Je hebt DHT gedefinieerd als dht. Dus je “zult die DHT moeten vervangen door dht en je” zult klaar zijn om te gaan.

Antwoord

Verander drie regels direct na loop () in deze:

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

Verander “ DHT ” in kleine letters. DHT is de klasse en dht is het object van de DHT-klasse.

Je hebt ook meerdere exemplaren van deze bibliotheken: DHT.h en Esp8266WiFi.h Controleer uw huidige directory waar uw Arduino-code is en ook Documenten-> Arduino-> Bibliotheken directory. Deze bibliotheken zouden in de Documents-> Arduino-> Libraries directory moeten staan.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *