Code /****************************************** * * This example works for both Industrial and STEM users. * * Developed by Jose Garcia, https://github.com/jotathebest/ * * ****************************************/ /**************************************** * Include Libraries ****************************************/ #include "UbidotsEsp32Mqtt.h" /**************************************** * Define Constants ****************************************/ const char *UBIDOTS_TOKEN = "XXXXXXXXXXXXXXXXXX"; // Put here your Ubidots TOKEN const char *WIFI_SSID = "Jimmy"; // Put here your Wi-Fi SSID const char *WIFI_PASS = "12345678"; // Put here your Wi-Fi password const char *DEVICE_LABEL = "variable1"; // Put here your Device label to which data will be published const char *VARIABLE_LABEL = "variable2"; // Put here your Variable label to which data will be published const int PUBLISH_FREQUENCY = 5000; // Update rate in milliseconds unsigned long timer; uint8_t analogPin = 34; // Pin used to read data from GPIO34 ADC_CH6. Ubidots ubidots(UBIDOTS_TOKEN); /**************************************** * Auxiliar Functions ****************************************/ void callback(char *topic, byte *payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(115200); // ubidots.setDebug(true); // uncomment this to make debug messages available ubidots.connectToWifi(WIFI_SSID, WIFI_PASS); ubidots.setCallback(callback); ubidots.setup(); ubidots.reconnect(); timer = millis(); } void loop() { // put your main code here, to run repeatedly: if (!ubidots.connected()) { ubidots.reconnect(); } if (abs(millis() - timer) > PUBLISH_FREQUENCY) // triggers the routine every 5 seconds { float value = analogRead(analogPin); ubidots.add(VARIABLE_LABEL, value); // Insert your variable Labels and the value to be sent ubidots.publish(DEVICE_LABEL); timer = millis(); } ubidots.loop(); } ERROR C:\Users\andre\AppData\Local\Temp\.arduinoIDE-unsaved2023816-4184-hht6li.sfnx4\sketch_sep16a\sketch_sep16a.ino: In function 'void loop()': C:\Users\andre\AppData\Local\Temp\.arduinoIDE-unsaved2023816-4184-hht6li.sfnx4\sketch_sep16a\sketch_sep16a.ino:70:27: error: call of overloaded 'abs(long unsigned int)' is ambiguous if (abs(millis() - timer) > PUBLISH_FREQUENCY) // triggers the routine every 5 seconds ^ In file included from c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\cstdlib:75, from c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\stdlib.h:36, from C:\Users\andre\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13/tools/sdk/esp32/include/newlib/platform_include/assert.h:21, from c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\sys-include\sys\reent.h:503, from C:\Users\andre\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13/tools/sdk/esp32/include/newlib/platform_include/sys/reent.h:17, from c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\sys-include\stdio.h:60, from C:\Users\andre\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13\cores\esp32/Arduino.h:27, from C:\Users\andre\AppData\Local\Temp\arduino\sketches\9182674C95D90AE77C2DEBA2E2882BC5\sketch\sketch_sep16a.ino.cpp:1: c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\sys-include\stdlib.h:74:5: note: candidate: 'int abs(int)' int abs (int); ^~~ In file included from c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\cstdlib:77, from c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\stdlib.h:36, from C:\Users\andre\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13/tools/sdk/esp32/include/newlib/platform_include/assert.h:21, from c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\sys-include\sys\reent.h:503, from C:\Users\andre\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13/tools/sdk/esp32/include/newlib/platform_include/sys/reent.h:17, from c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\sys-include\stdio.h:60, from C:\Users\andre\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13\cores\esp32/Arduino.h:27, from C:\Users\andre\AppData\Local\Temp\arduino\sketches\9182674C95D90AE77C2DEBA2E2882BC5\sketch\sketch_sep16a.ino.cpp:1: c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\std_abs.h:78:3: note: candidate: 'constexpr long double std::abs(long double)' abs(long double __x) ^~~ c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\std_abs.h:74:3: note: candidate: 'constexpr float std::abs(float)' abs(float __x) ^~~ c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\std_abs.h:70:3: note: candidate: 'constexpr double std::abs(double)' abs(double __x) ^~~ c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\std_abs.h:61:3: note: candidate: 'long long int std::abs(long long int)' abs(long long __x) { return __builtin_llabs (__x); } ^~~ c:\users\andre\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\include\c++\8.4.0\bits\std_abs.h:56:3: note: candidate: 'long int std::abs(long int)' abs(long __i) { return __builtin_labs(__i); } ^~~ exit status 1 Compilation error: call of overloaded 'abs(long unsigned int)' is ambiguous