Arduino IDE连接esp8266到Firebase时出现错误

huangapple go评论131阅读模式
英文:

Arduino IDE error when trying to connect esp8266 to firebase

问题

你好,下面是翻译好的部分:

"hello guys i was trying to connect my project to firebase as showed in this video https://youtu.be/Xj1kuApmRCw
but got this erorrs:

  1. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\Firebase.cpp: In member function 'int FirebaseRequest::sendRequest(const string&, const string&, char*, const string&, const string&)':
  2. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\Firebase.cpp:78:1: error: no return statement in function returning non-void [-Werror=return-type]
  3. 78 | }
  4. | ^
  5. ...
  6. Compilation error: exit status 1

i've installed the latest version of esp8266 and "Firebase Arduino Client Library for ESP8266 By Mobitz" but the error still occured. please help

here's my full code:

  1. #include <ESP8266WiFi.h>
  2. #include <SoftwareSerial.h>
  3. #include <FirebaseArduino.h>
  4. #include <ArduinoJson.h>
  5. #include <ESP8266HTTPClient.h>
  6. #include<DHT.h>
  7. ...
  8. // Your code continues...

and here is the screenshot of my firebase for better understanding:

Arduino IDE连接esp8266到Firebase时出现错误

英文:

hello guys i was trying to connect my project to firebase as showed in this video https://youtu.be/Xj1kuApmRCw
but got this erorrs:

  1. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\Firebase.cpp: In member function 'int FirebaseRequest::sendRequest(const string&, const string&, char*, const string&, const string&)':
  2. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\Firebase.cpp:78:1: error: no return statement in function returning non-void [-Werror=return-type]
  3. 78 | }
  4. | ^
  5. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\Firebase.cpp: In member function 'void FirebaseStream::startStreaming(const string&, const string&, const string&)':
  6. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\Firebase.cpp:91:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
  7. 91 | analyzeError("STREAM", status, path_with_auth);
  8. | ^~~~~~~~
  9. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\FirebaseHttpClient_Esp8266.cpp: In member function 'virtual void FirebaseHttpClientEsp8266::begin(const string&)':
  10. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\FirebaseHttpClient_Esp8266.cpp:47:50: error: no matching function for call to 'begin(const char*, const char [60])'
  11. 47 | http_.begin(url.c_str(), kFirebaseFingerprint);
  12. | ^
  13. In file included from d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\FirebaseHttpClient_Esp8266.cpp:9:
  14. C:\Users\NyK\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266.1.2\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:166:10: note: candidate: 'bool HTTPClient::begin(String, uint16_t, String)' (near match)
  15. 166 | bool begin(String host, uint16_t port, String uri = "/") __attribute__ ((error("obsolete API, use ::begin(WiFiClient, host, port, uri)")));
  16. | ^~~~~
  17. C:\Users\NyK\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266.1.2\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:166:10: note: conversion of argument 2 would be ill-formed:
  18. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\FirebaseHttpClient_Esp8266.cpp:47:30: error: invalid conversion from 'const char*' to 'uint16_t' {aka 'short unsigned int'} [-fpermissive]
  19. 47 | http_.begin(url.c_str(), kFirebaseFingerprint);
  20. | ^~~~~~~~~~~~~~~~~~~~
  21. | |
  22. | const char*
  23. In file included from d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\FirebaseHttpClient_Esp8266.cpp:9:
  24. C:\Users\NyK\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266.1.2\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:167:10: note: candidate: 'bool HTTPClient::begin(String, const uint8_t*)' (near match)
  25. 167 | bool begin(String url, const uint8_t httpsFingerprint[20]) __attribute__ ((error("obsolete API, use ::begin(WiFiClientSecure, ...)")));
  26. | ^~~~~
  27. C:\Users\NyK\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266.1.2\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:167:10: note: conversion of argument 2 would be ill-formed:
  28. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\FirebaseHttpClient_Esp8266.cpp:47:30: error: invalid conversion from 'const char*' to 'const uint8_t*' {aka 'const unsigned char*'} [-fpermissive]
  29. 47 | http_.begin(url.c_str(), kFirebaseFingerprint);
  30. | ^~~~~~~~~~~~~~~~~~~~
  31. | |
  32. | const char*
  33. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\FirebaseHttpClient_Esp8266.cpp: In member function 'virtual void FirebaseHttpClientEsp8266::begin(const string&, const string&)':
  34. d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\FirebaseHttpClient_Esp8266.cpp:51:60: error: invalid conversion from 'const char*' to 'const uint8_t*' {aka 'const unsigned char*'} [-fpermissive]
  35. 51 | http_.begin(host.c_str(), kFirebasePort, path.c_str(), kFirebaseFingerprint);
  36. | ^~~~~~~~~~~~~~~~~~~~
  37. | |
  38. | const char*
  39. In file included from d:\Kuliah\Mata Kuliah\Internet of Things\Arduino\libraries\FirebaseArduino\src\FirebaseHttpClient_Esp8266.cpp:9:
  40. C:\Users\NyK\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266.1.2\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:168:70: note: initializing argument 4 of 'bool HTTPClient::begin(String, uint16_t, String, const uint8_t*)'
  41. 168 | bool begin(String host, uint16_t port, String uri, const uint8_t httpsFingerprint[20]) __attribute__ ((error("obsolete API, use ::begin(WiFiClientSecure, ...)")));
  42. | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
  43. cc1plus.exe: some warnings being treated as errors
  44. exit status 1
  45. Compilation error: exit status 1

i've installed the latest version of esp8266 and "Firebase Arduino Client Library for ESP8266 By Mobitz" but the error still occured. please help

here's my full code:

  1. #include <ESP8266WiFi.h>
  2. #include <SoftwareSerial.h>
  3. #include <FirebaseArduino.h>
  4. #include <ArduinoJson.h>
  5. #include <ESP8266HTTPClient.h>
  6. #include<DHT.h>
  7. #define FIREBASE_HOST "*****firebaseio.com"
  8. #define FIREBASE_AUTH "*****UKBpSMo07nUT8ZWYS9"
  9. #define WIFI_SSID "******"
  10. #define WIFI_PASSWORD "******"
  11. #define DHTPIN D5
  12. #define DHTTYPE DHT11
  13. DHT dht(DHTPIN, DHTTYPE);
  14. bool light;
  15. bool fan;
  16. unsigned long previousMillis = 0;
  17. const long interval = 10000;
  18. void setup() {
  19. pinMode(D1, OUTPUT);
  20. Serial.begin(115200);
  21. delay(500);
  22. WiFi.begin(WIFI_SSID,WIFI_PASSWORD);
  23. Serial.println("Connecting..");
  24. while (WiFi.status() != WL_CONNECTED){
  25. Serial.print(".");
  26. delay(500);
  27. }
  28. Serial.println();
  29. Serial.print("Connected");
  30. Serial.println(WiFi.localIP());
  31. Firebase.begin(FIREBASE_HOST,FIREBASE_AUTH);
  32. dht.begin();
  33. delay(2000);
  34. // put your setup code here, to run once:
  35. }
  36. void readDatas(){
  37. float h=dht.readHumidity();
  38. float t=dht.readTemperature();
  39. Firebase.setFloat("Data/Temperature:",t);
  40. Firebase.setFloat("Data/Humidity:",h);
  41. }
  42. void loop() {
  43. light = Firebase.getBool("LightStates/switch");
  44. Serial.println(light);
  45. if(light==true){
  46. digitalWrite(D6, HIGH);
  47. }
  48. if(light==false){
  49. digitalWrite(D6, LOW);
  50. }
  51. fan = Firebase.getBool("FanStates/switch");
  52. Serial.println(fan);
  53. if(fan==true){
  54. digitalWrite(D7, HIGH);
  55. }
  56. if(fan==false){
  57. digitalWrite(D7, LOW);
  58. }
  59. unsigned long currentMillis = millis();
  60. if(currentMillis-previousMillis>=interval){
  61. readDatas();
  62. previousMillis=currentMillis;
  63. }
  64. }

and here is the screenshot of my firebase for better understanding:

Arduino IDE连接esp8266到Firebase时出现错误

答案1

得分: 0

将我的 esp8266 版本降级到 2.7 即可解决。

英文:

fixed by downgrading my esp8266 version to 2.7

huangapple
  • 本文由 发表于 2023年6月27日 20:23:09
  • 转载请务必保留本文链接:https://go.coder-hub.com/76564817.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定