Il y a peu de sujets concernant l’IOT Arduino Cloud mais je tente quand même ma chance car j’ai un problème que je n‘arrive pas à résoudre sans aide.
J’ai un objet connecté tournant sur une carte Arduino Uno R4 Wifi (système de rafraichissement d’une maison basé sur l’activation de turbines contrôlé par comparaison de température intérieure/extérieure) qu’il est possible de programmer à distance avec la fonction OTA via l’Arduino Cloud.
Ce système est fonctionnel depuis l’été dernier mais lors d’une évolution que j’ai voulu faire récemment, j’ai constaté une erreur récurrente lors de la compilation du sketch avec l’éditeur du Cloud.
Il s’agit d’une erreur liée à un conflit de bibliothèque or, l’éditeur du Cloud utilise des bibliothèques internes auxquelles je n’ai pas accès et je n’ai pas pour ma part fait d’évolution ni sur mon code, ni sur les bibliothèques utilisées par mon sketch.
Il y a donc un pataquès sur quasiment toutes les bibliothèques utilisées par ce sketch et je ne m’en sors pas.
Ce ne sont pas des erreurs de compilation, il vous dit juste qu'il a le choix entre plusieurs options par rapport à vos include et il vous dit celle qu'il retient (et qui semble la bonne) si la compilation se passe bien.
Vous avez des messages similaires si vous compilez en local avec le mode "verbose" et que vous avez plein de bibliothèques partagées qui seraient des cibles potentielles.
Ce ne sont pas des messages d'erreur. Ce sont juste des informations sur la compilation. Il y a plusieurs librairies possible et le compilateur indique celles qu'il utilise.
Effectivement, dans l'extrait du message publié par le compilateur, il n'apparait pas clairement des erreurs.
L'erreur vient sans doute d'un changement de bibliothèque utilisée initialement pour piloter un afficheur LCD avec laquelle mon code n'est plus compatible.
les images de texte, c'est pas terrible. Personnellement je n'essaye même pas de les lire avec ma mauvaise vue... (et quand je regarde le forum sur mon iPhone c'est encore plus petit !)
Pourquoi ne pas faire un copier coller du texte dans une balise de code ?? ce sera bcp plus utilisable et ça prendra moins de bande passante / octets...
Désolé J-M-L Jackson, je pensais que les balises de codes n'étaient adaptées qu'au code en tant quel tel et non aux messages d'erreurs, merci ! J'en apprends tous les jours, même le dimanche
Voici l'intégralité du message publié par le compilateur :
/var/run/arduino/user-cache/sketches/72E56EF3CF931CB9A3559E04EB6FA58A/sketch/VMC_R4_Wifi_29_juin.ino.cpp.o: In function `_GLOBAL__sub_I_consigne':
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:77: undefined reference to `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char)'
/var/run/arduino/user-cache/sketches/72E56EF3CF931CB9A3559E04EB6FA58A/sketch/VMC_R4_Wifi_29_juin.ino.cpp.o: In function `setup':
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:109: undefined reference to `LiquidCrystal_I2C::init()'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:110: undefined reference to `LiquidCrystal_I2C::backlight()'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:123: undefined reference to `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)'
/var/run/arduino/user-cache/sketches/72E56EF3CF931CB9A3559E04EB6FA58A/sketch/VMC_R4_Wifi_29_juin.ino.cpp.o: In function `loop':
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:207: undefined reference to `LiquidCrystal_I2C::createChar(unsigned char, unsigned char*)'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:210: undefined reference to `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:212: undefined reference to `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:404: undefined reference to `LiquidCrystal_I2C::createChar(unsigned char, unsigned char*)'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:405: undefined reference to `LiquidCrystal_I2C::createChar(unsigned char, unsigned char*)'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:407: undefined reference to `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:409: undefined reference to `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:411: undefined reference to `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:413: undefined reference to `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)'
/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:416: undefined reference to `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)'
/var/run/arduino/user-cache/sketches/72E56EF3CF931CB9A3559E04EB6FA58A/sketch/VMC_R4_Wifi_29_juin.ino.cpp.o:/run/arduino/sketches/VMC_R4_Wifi_29_juin/VMC_R4_Wifi_29_juin.ino:418: more undefined references to `LiquidCrystal_I2C::setCursor(unsigned char, unsigned char)' follow
collect2: error: ld returned 1 exit status
Multiple libraries were found for "ds3231.h"
Used: /run/arduino/directories-data/internal/ds3231FS_1.1.1_9665227a41c037d6
Not used: /run/arduino/directories-data/internal/UncleRus_1.0.1_18d530502686ac59
Multiple libraries were found for "OneWire.h"
Used: /run/arduino/directories-data/internal/OneWire_2.3.8_b02012c4e88745c5
Not used: /run/arduino/directories-data/internal/OneWireNg_0.14.1_37fe3dc3c2e551b0
Not used: /run/arduino/directories-data/internal/SDU_AGS_SensorBoard_1.0.0_181760c786658d42
Not used: /run/arduino/directories-data/internal/MAX31850_OneWire_1.1.3_c2f66ba75d315254
Multiple libraries were found for "Wire.h"
Used: /run/arduino/directories-data/packages/arduino/hardware/renesas_uno/1.5.1/libraries/Wire
Not used: /run/arduino/directories-data/internal/FlexWire_1.2.1_1fc5f1d1a14af0e7
Multiple libraries were found for "DHT.h"
Used: /run/arduino/directories-data/internal/DHT_kxn_3.4.4_e8785b1b9c67af18
Not used: /run/arduino/directories-data/internal/Modular_1.0.1_0da2bcec860c0503
Not used: /run/arduino/directories-data/internal/servodht11_1.0.10_7ab49b0e5e1d849a
Not used: /run/arduino/directories-data/internal/DHT118266_1.0.16_554bbe218f876118
Not used: /run/arduino/directories-data/internal/esp826611_1.0.16_00334015f1bcaea0
Not used: /run/arduino/directories-data/internal/Grove_Temperature_And_Humidity_Sensor_2.0.2_261181fd4a96dafa
Not used: /run/arduino/directories-data/internal/DHT_sensor_library_1.4.7_50b5ef2509805e63
Not used: /run/arduino/directories-data/internal/NanoPlayBoard_0.1.1_96e8fd2355834992
Not used: /run/arduino/directories-data/internal/uKit_Explore_1.2.28_13a98cd71cc29e10
Not used: /run/arduino/directories-data/internal/dht11esp8266examples_1.0.10_a9e082c0a22a7d7d
Not used: /run/arduino/directories-data/internal/dht11esp8266_1.0.10_3c072ef8d61af961
Multiple libraries were found for "RTC.h"
Used: /run/arduino/directories-data/packages/arduino/hardware/renesas_uno/1.5.1/libraries/RTC
Not used: /run/arduino/directories-data/internal/M5StickC_0.3.0_a99c11f2c0b70886
Not used: /run/arduino/directories-data/internal/M5StickCPlus_0.1.1_3da481354d8492d0
Not used: /run/arduino/directories-data/internal/M5Core2_0.2.0_b8c417594bcb0714
Not used: /run/arduino/directories-data/internal/M5Station_0.0.1_59c962b74b2e5439
Multiple libraries were found for "LiquidCrystal_I2C.h"
Used: /run/arduino/directories-data/internal/LCDBigNumbers_1.2.3_96a1adfe8c3fae7f
Not used: /run/arduino/directories-data/internal/LiquidCrystal_I2C_2.0.0_5b47e66a35aa9468
Multiple libraries were found for "SPI.h"
Used: /run/arduino/directories-data/packages/arduino/hardware/renesas_uno/1.5.1/libraries/SPI
Not used: /run/arduino/directories-data/internal/EventEthernet_1.0.0_bd9dd894ef7641f8
Multiple libraries were found for "Adafruit_Sensor.h"
Used: /run/arduino/directories-data/internal/Adafruit_Unified_Sensor_1.1.15_c4f0a59ad82fa17d
Not used: /run/arduino/directories-data/internal/ClimaStick_1.3.1_233fdd430f7c3408
➜ le linker ne trouve pas les fonctions de la bibliothèque LiquidCrystal_I2C (constructeur, init, backlight, setCursor, createChar, …) et donc stoppe la compilation.
Ce message indique que la bibliothèque apparaît dans les recherches (plusieurs versions listées), mais la version contenant les définitions correctes n'est pas utilisée ou n'a pas été compilée pour la carte sélectionnée.
Le plus simple (comme ces bibliothèques sont toutes très proches) serait d'adapter votre code à la bibliothèque choisie.
Comme j'ai eu des difficultés pour adapter mon code à la bibliothèque utilisée par l'éditeur du Cloud, j'ai "simplement" rechargé dans le Cloud le fichier ZIP correspondant à la bibliothèque LCDCrystal_I2C et cela a permis de résoudre le problème
Pouvez-vous m'indiquer la méthode pour taguer ce post comme résolu ?