Tudom, hogy ez gyakori kérdés, de az igazság az, hogy minden kód más és más. Néha nehéz a koncepciót alkalmazni a kódjára, ez nem működik. Ezért kérem, segítsen nekem. Mi a baj ezzel a kóddal? A GitHub-tól kaptam. Először megpróbálom lefordítani, mielőtt egy kicsit módosítással hőmérsékleti és páratartalmi adatokat küld a ThingSpeak felhőszervereknek.

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

Amikor lefordítom, megjelenik ez a hiba,

 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. 

Kérem, segítsen, kezdő vagyok.

Válasz

Ön definiálta a DHT-t mint dht. Tehát ezeket a DHT-t le kell cserélnie dht-re, és jó lesz.

Válasz

Három sort közvetlenül a ciklus () után váltson ezekre:

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

DHT ” kisbetűkkel. A DHT az osztály, a dht pedig a DHT osztály objektuma.

Ezen könyvtárak több példánya is van: DHT.h és Esp8266WiFi.h Ellenőrizze a cuurent könyvtárat, ahol az Arduino kód található, valamint a Dokumentumok-> Arduino-> Könyvtárak könyvtár. Ezeknek a könyvtáraknak a Documents-> Arduino-> könyvtárak könyvtárban kell lenniük.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük