Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP32 Possible Bug ( maybe similar to ESP8266 issue) #2

Closed
rnborland opened this issue May 10, 2019 · 3 comments
Closed

ESP32 Possible Bug ( maybe similar to ESP8266 issue) #2

rnborland opened this issue May 10, 2019 · 3 comments

Comments

@rnborland
Copy link

Went through Web server tutorial from http://easycoding.tn/index.php/esp32/esp32-internet/

code I ended up with
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
#include "Adafruit_MQTT_FONA.h";
#include <WiFi.h>

int i;
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "rnborland"
#define AIO_KEY "ffe00a15e69a4c59890308a811faf8b3"
WiFiClient client;

Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

boolean MQTT_connect();

boolean MQTT_connect() { int8_t ret; if (mqtt.connected()) { return true; } uint8_t retries = 3; while ((ret = mqtt.connect()) != 0) { mqtt.disconnect(); delay(2000); retries--;if (retries == 0) { return false; }} return true;}

Adafruit_MQTT_Publish Testing = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/Testing");
void setup()
{

Serial.begin(9600);

WiFi.disconnect();
delay(3000);
Serial.println("START");
WiFi.begin("Borland","d5cs7xk1");
while ((!(WiFi.status() == WL_CONNECTED))){
delay(300);
Serial.print("..");

}
Serial.println("Connected");
Serial.println("Your IP is");
Serial.println((WiFi.localIP()));

}

void loop()
{

i = (random(100,200));
if (MQTT_connect()) {
  if (Testing.publish(i)) {
    Serial.println("Random Data Sent");
    Serial.println(i);

  } else {
    Serial.println("Problem Sending Data");

  }

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

}
delay(10000);

}

Error script is

Arduino: 1.8.9 (Windows 7), Board: "ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp: In member function 'virtual bool Adafruit_MQTT_Client::sendPacket(uint8_t*, uint16_t)':

C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp:84:38: error: no matching function for call to 'min(uint16_t&, int)'

   uint16_t sendlen = min(len, 250);

                                  ^

In file included from c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\algorithm:62:0,

             from C:\Users\rborland\Documents\Arduino\hardware\espressif\esp32\cores\esp32/Arduino.h:148,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT.h:25,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.h:26,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp:22:

c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algo.h:3451:5: note: candidate: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)

 min(initializer_list<_Tp> __l, _Compare __comp)

 ^

c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algo.h:3451:5: note: template argument deduction/substitution failed:

C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp:84:38: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'

   uint16_t sendlen = min(len, 250);

                                  ^

In file included from c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\algorithm:62:0,

             from C:\Users\rborland\Documents\Arduino\hardware\espressif\esp32\cores\esp32/Arduino.h:148,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT.h:25,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.h:26,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp:22:

c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algo.h:3445:5: note: candidate: template _Tp std::min(std::initializer_list<_Tp>)

 min(initializer_list<_Tp> __l)

 ^

c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algo.h:3445:5: note: template argument deduction/substitution failed:

C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp:84:38: note: mismatched types 'std::initializer_list<_Tp>' and 'short unsigned int'

   uint16_t sendlen = min(len, 250);

                                  ^

In file included from c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\algorithm:61:0,

             from C:\Users\rborland\Documents\Arduino\hardware\espressif\esp32\cores\esp32/Arduino.h:148,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT.h:25,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.h:26,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp:22:

c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algobase.h:243:5: note: candidate: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)

 min(const _Tp& __a, const _Tp& __b, _Compare __comp)

 ^

c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algobase.h:243:5: note: template argument deduction/substitution failed:

C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp:84:38: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')

   uint16_t sendlen = min(len, 250);

                                  ^

In file included from c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\algorithm:61:0,

             from C:\Users\rborland\Documents\Arduino\hardware\espressif\esp32\cores\esp32/Arduino.h:148,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT.h:25,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.h:26,

             from C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp:22:

c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algobase.h:195:5: note: candidate: template const _Tp& std::min(const _Tp&, const _Tp&)

 min(const _Tp& __a, const _Tp& __b)

 ^

c:\users\rborland\documents\arduino\hardware\espressif\esp32\tools\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algobase.h:195:5: note: template argument deduction/substitution failed:

C:\Program Files (x86)\Arduino\libraries\Adafruit_MQTT_Library-master\Adafruit_MQTT_Client.cpp:84:38: note: deduced conflicting types for parameter 'const _Tp' ('short unsigned int' and 'int')

   uint16_t sendlen = min(len, 250);

                                  ^

Multiple libraries were found for "WiFi.h"
Used: C:\Users\rborland\Documents\Arduino\hardware\espressif\esp32\libraries\WiFi
Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
Error compiling for board ESP32 Dev Module.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

@rnborland
Copy link
Author

Code as follows - ignore above code
/////////////////////////////////
// Generated with a lot of love//
// with TUNIOT FOR ESP32 //
// Website: Easycoding.tn //
/////////////////////////////////
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
#include "Adafruit_MQTT_FONA.h";
#include <WiFi.h>

int i;
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "rnborland"
#define AIO_KEY "ffe00a15e69a4c59890308a811faf8b3"
WiFiClient client;

Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

boolean MQTT_connect();

boolean MQTT_connect() { int8_t ret; if (mqtt.connected()) { return true; } uint8_t retries = 3; while ((ret = mqtt.connect()) != 0) { mqtt.disconnect(); delay(2000); retries--;if (retries == 0) { return false; }} return true;}

Adafruit_MQTT_Publish Testing = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/Testing");
void setup()
{

Serial.begin(9600);

WiFi.disconnect();
delay(3000);
Serial.println("START");
WiFi.begin("Borland","d5cs7xk1");
while ((!(WiFi.status() == WL_CONNECTED))){
delay(300);
Serial.print("..");

}
Serial.println("Connected");
Serial.println("Your IP is");
Serial.println((WiFi.localIP()));

}

void loop()
{

i = (random(100,200));
if (MQTT_connect()) {
  if (Testing.publish(i)) {
    Serial.println("Random Data Sent");
    Serial.println(i);

  } else {
    Serial.println("Problem Sending Data");

  }

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

}
delay(10000);

}

@brentru
Copy link
Member

brentru commented May 31, 2019

It looks like the ESP32 Core has differing function signatures in some methods relied on by ArduinoHTTPClient. This is a similar issue to what happened with the ESP8266 firmware a few months back. For now, downgrade the ESP32's firmware version to 1.0.1.

espressif/arduino-esp32#2755

@brentru brentru closed this as completed May 31, 2019
@bangseongbeom
Copy link

bangseongbeom commented Aug 30, 2019

@brentru I struggled with this issue. Thank you!

The bug fix seems to be delayed. It may be worth to notify to somewhere about this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants