引入FirebaseArduino库报错:ArduinoJson.h不存在,如何解决?
解决
fatal error: ArduinoJson.h: No such file or directory 错误 这个问题很典型,核心原因是FirebaseArduino库依赖ArduinoJson库处理JSON数据,但你的Arduino开发环境里还没安装这个必需的依赖库。下面是具体的解决步骤和代码修正建议:
步骤1:安装ArduinoJson依赖库
打开你的Arduino IDE,按以下操作完成安装:
- 点击顶部菜单「项目」→「加载库」→「管理库」
- 在弹出的库管理器搜索框中输入
ArduinoJson - 找到ArduinoJson库(建议选择v6.x版本,旧版FirebaseArduino对v7.x兼容性可能不佳),点击「安装」
- 安装完成后,重启Arduino IDE再尝试编译代码
步骤2:修正代码中的小问题
除了依赖缺失,你的代码里还有几处拼写和变量定义错误,不修正也会导致编译失败:
erial.begin(9600);少了字母S,应为Serial.begin(9600);Frirebase.setInt拼写错误,正确写法是Firebase.setIntcount变量未声明,需要提前定义
修正后的完整代码如下:
#include <ESP8266WiFi.h> #include <FirebaseArduino.h> #define FIREBASE_HOST "example.firebaseio.com" #define FIREBASE_AUTH "token_or_secret" #define WIFI_SSID "SSID" #define WIFI_PASSWORD "PASSWORD" int count = 0; // 声明count变量 void setup() { Serial.begin(9600); // 连接WiFi WiFi.begin(WIFI_SSID, WIFI_PASSWORD); Serial.print("connecting"); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(); Serial.print("connected: "); Serial.println(WiFi.localIP()); Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); } void loop() { Firebase.setInt("Count", count++); delay(1000); }
现在重新编译,应该就能顺利通过了。
内容的提问来源于stack exchange,提问作者MaTaDoRcpe




