Firebase没有重新连接ESP8266

时间:2019-04-18 11:13:38

标签: firebase arduino

我已解决了问题。 我在库Firebase.cpp中找到了错误=> void FirebaseCall :: analyzeError 您应该更改此代码 之前

update data join tests 
    on data.ml=tests.ml 
    and data.test_num=tests.test_num 
    set test_id=tests.id;

之后

update data 
    set test_id=
    (select id from tests 
    where data.ml=tests.ml 
    and data.test_num=tests.test_num);

互联网连接断开后,将重新连接。当我再次连线时,firebase无法连接。因此,当问题再次布线时,它不再与Firebasis连接。我该怎么办?

void FirebaseCall::analyzeError(char* method, int status, const std::string& path_with_auth) {
if (status != 200) {
error_ = FirebaseError(status,
std::string(method) + " " + path_with_auth +
": " + http_->errorToString(status));
}
}

2 个答案:

答案 0 :(得分:1)

问题可能是,您尝试连接到Firebase,只要您的连接不可用,那将无法正常工作。尝试更改:

if( !WiFiReturns() )

if( WiFiReturns() )

此外,当前您每次调用循环时都会调用firebasereconnect()。您可能缺少重新连接周围的if语句。我认为您打算使用WiFi.isConnected()来做到这一点(这不是arduino WiFi库btw的功能)。考虑这样的事情:

if ( WiFiReturns() ) { 
    if( !Firebase.isConnected() ){ // replace this with your actual logic
        digitalWrite(WIFILED, HIGH);
        firebasereconnect();
    }
} else { 

答案 1 :(得分:0)

昨天我遇到了同样的问题。

我删除了Arduino,并安装了新版本。

然后,在您的董事会经理中,搜索“ esp8266”并安装2.1.0版本。

然后,如您在此picture中所看到的,单击红色的一面。

转到“程序包> esp8266>硬件> esp8266> 2.0.0>工具> sdk>包含”,然后打开“ user_interface.h”。

在这里,您应该在底部看到“ #endif”。在此之前,写下这些行并保存:

typedef void (*freedom_outside_cb_t)(uint8 status); 
int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb);
void wifi_unregister_send_pkt_freedom_cb(void);
int wifi_send_pkt_freedom(uint8 *buf, int len, bool sys_seq);

然后,将this firebase library添加到您的Arduino文件夹中。

然后,转到草图->包含库->管理库。在此窗口中,将“ json”写入搜索框。您应该看到“ Benoit Blanchon的ArduinoJson”。将其版本降级到5.13.2。

将代码发送到您的NodeMCU并享受。