Arduion编译报错求助,编译不成功

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#include <SoftwareSerial.h>
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1

// OLED display
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// ASR01 serial communication
SoftwareSerial asrSerial(12, 13); // RX, TX

// WiFi credentials
const char* ssid = "新工科2201";
const char* password = "1234567890";

// Weather API endpoint
const char* weatherApiUrl = "http://api.seniverse.com/v3/weather/now.json?key=Sy9BRuWBCIlXN94tZ&location=SHIZUISHAN&language=zh-Hans&unit=c";

// Variables
String weatherData;
String currentTime;

void setup() {
Serial.begin(115200);
asrSerial.begin(9600);

// Initialize OLED display
Wire.begin(D2, D1);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);

// Connect to WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");

// Fetch weather data
fetchWeatherData();
}

void loop() {
// Display weather data on OLED
displayWeatherData();

// Output weather data via ASR01
asrSerial.println(weatherData);
delay(10000); // Send every 10 seconds
}

void fetchWeatherData() {
WiFiClient client;
if (client.connect("api.seniverse.com", 80)) {
client.print(String("GET ") + weatherApiUrl + " HTTP/1.1\r\n" +
"Host: api.seniverse.com\r\n" +
"Connection: close\r\n\r\n");

while (client.connected() || client.available()) {
  if (client.available()) {
    String line = client.readStringUntil('\n');
    if (line.startsWith("{")) {
      weatherData = line; // Capture JSON data
      break;
    }
  }
}
client.stop();

} else {
Serial.println("Connection failed");
}
}

void displayWeatherData() {
// Parse JSON data
DynamicJsonDocument doc(1024);
DeserializationError error = deserializeJson(doc, weatherData);
if (!error) {
const char* location = doc["results"][0]["location"]["name"];
const char* temperature = doc["results"][0]["now"]["temperature"];
const char* weather = doc["results"][0]["now"]["text"];

// Display on OLED
display.clearDisplay();
display.setCursor(0, 0);
display.print("Location: ");
display.println(location);
display.print("Temp: ");
display.print(temperature);
display.println(" °C");
display.print("Weather: ");
display.println(weather);
display.display();

} else {
Serial.println("Failed to parse JSON");
}
}

以上代码出现了以下问题,不知道怎么解决。谢谢大佬们。

In file included from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Numbers/FloatTraits.hpp:13:0,
from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Numbers/convertNumber.hpp:15,
from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Variant/VariantData.hpp:10,
from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/ResourceManager.hpp:13,
from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Variant/JsonVariantConst.hpp:10,
from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Variant/VariantRefBase.hpp:9,
from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Array/ElementProxy.hpp:7,
from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Array/JsonArray.hpp:7,
from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:29,
from C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,
from C:\Users\admin\Documents\Arduino__.ino:7:
C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Polyfills/pgmspace_generic.hpp: In instantiation of 'const T* ArduinoJson::V720PB22::detail::pgm_read(const T* const*) [with T = char]':
C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Deserialization/DeserializationError.hpp:85:42: required from here
C:\Users\admin\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Polyfills/pgmspace_generic.hpp:25:52: error: 'const void*' is not a pointer-to-object type
return reinterpret_cast<const T*>(pgm_read_ptr(p));
^
exit status 1
为开发板 NodeMCU 1.0 (ESP-12E Module) 编译时出错。

Welcome to the Forum!
Please insert your code using the code tags. You can go back and fix your original post.
Read the forum guidelines to see how to properly insert the code and some other good information on making a good post.

您的主题显示 "Arduino",但您的错误显示"ESP-12E"。验证您正在为正确的板进行编译。

此外,您必须格式化您的代码并使用 <CODE> 按钮发布代码。