barbo Inserito: 14 aprile 2020 Segnala Share Inserito: 14 aprile 2020 Ciao a tutti, sto facendo un applicativo di prova per Arduino Nano, ho cominciato con l'inserire due sensori di temperatura onewire per trasferirne il valore ad un lcd in i2c. Sketch con windows, compilo, carico, tutto OK, perfettamente funzionante. Passo successivo, installo Raspian su di un Raspberry 3 B+, installo Arduino, installo le librerie, copio sketch, apro, compilo, ma da errore. Dopo vari tentativi non sono riuscito a capire il perchè e come poterne uscire. #include <Wire.h> #include <OneWire.h> #include <DallasTemperature.h> #include <LiquidCrystal_I2C.h> #define onewirepin 10 LiquidCrystal_I2C lcd(0x27,16,2); OneWire oneWire(onewirepin); DallasTemperature sensors(&oneWire); DeviceAddress Temp_IN = { 0x28, 0xFF, 0xA4, 0x75, 0xC4, 0x17, 0x05, 0x3D }; DeviceAddress Temp_OUT = { 0x28, 0xFF, 0xA3, 0xA8, 0xC1, 0x17, 0x02, 0x46 }; void setup(){ lcd.init(); lcd.init(); lcd.backlight(); sensors.begin (); sensors.setResolution(Temp_IN, 12); sensors.setResolution(Temp_OUT, 12); } void loop(){ sensors.requestTemperatures(); lcd.clear(); lcd.setCursor(0,0); lcd.print(" IN :"); printTemperature(Temp_IN); lcd.setCursor(0, 1); lcd.print("OUT :"); printTemperature(Temp_OUT); delay(500); } void printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); if (tempC == -127.00){ lcd.print("ERROR"); } else { lcd.print(String(tempC) + char(0xDF) + "C"); } } l'errore in output è questo Temperatura.ino: In function 'void printTemperature(uint8_t*)': Temperatura.ino:41:28: error: no matching function for call to 'String(DeviceAddress)' In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:26:0, from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26, from /usr/share/arduino/libraries/Wire/Wire.h:26, from Temperatura.ino:1: /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:70:11: note: candidate: String::String(long unsigned int, unsigned char) <near match> explicit String(unsigned long, unsigned char base=10); ^ /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:70:11: note: conversion of argument 1 would be ill-formed: Temperatura.ino:41:28: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'long unsigned int' [-fpermissive] In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:26:0, from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26, from /usr/share/arduino/libraries/Wire/Wire.h:26, from Temperatura.ino:1: /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:69:11: note: candidate: String::String(long int, unsigned char) <near match> explicit String(long, unsigned char base=10); ^ /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:69:11: note: conversion of argument 1 would be ill-formed: Temperatura.ino:41:28: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'long int' [-fpermissive] In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:26:0, from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26, from /usr/share/arduino/libraries/Wire/Wire.h:26, from Temperatura.ino:1: /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:68:11: note: candidate: String::String(unsigned int, unsigned char) <near match> explicit String(unsigned int, unsigned char base=10); ^ /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:68:11: note: conversion of argument 1 would be ill-formed: Temperatura.ino:41:28: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'unsigned int' [-fpermissive] In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:26:0, from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26, from /usr/share/arduino/libraries/Wire/Wire.h:26, from Temperatura.ino:1: /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:67:11: note: candidate: String::String(int, unsigned char) <near match> explicit String(int, unsigned char base=10); ^ /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:67:11: note: conversion of argument 1 would be ill-formed: Temperatura.ino:41:28: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'int' [-fpermissive] In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:26:0, from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26, from /usr/share/arduino/libraries/Wire/Wire.h:26, from Temperatura.ino:1: /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:66:11: note: candidate: String::String(unsigned char, unsigned char) <near match> explicit String(unsigned char, unsigned char base=10); ^ /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:66:11: note: conversion of argument 1 would be ill-formed: Temperatura.ino:41:28: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'unsigned char' [-fpermissive] In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:26:0, from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26, from /usr/share/arduino/libraries/Wire/Wire.h:26, from Temperatura.ino:1: /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:65:11: note: candidate: String::String(char) <near match> explicit String(char c); ^ /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:65:11: note: conversion of argument 1 would be ill-formed: Temperatura.ino:41:28: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'char' [-fpermissive] In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:26:0, from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26, from /usr/share/arduino/libraries/Wire/Wire.h:26, from Temperatura.ino:1: /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:60:2: note: candidate: String::String(const String&) <near match> String(const String &str); ^ /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:60:2: note: conversion of argument 1 would be ill-formed: Temperatura.ino:41:28: error: invalid user-defined conversion from 'DeviceAddress {aka unsigned char [8]}' to 'const String&' [-fpermissive] In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:26:0, from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26, from /usr/share/arduino/libraries/Wire/Wire.h:26, from Temperatura.ino:1: /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:59:2: note: candidate is: String::String(const char*) <near match> String(const char *cstr = ""); ^ /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:59:2: note: conversion of argument 1 would be ill-formed: Temperatura.ino:41:28: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive] Temperatura.ino:41:28: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive] In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:26:0, from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26, from /usr/share/arduino/libraries/Wire/Wire.h:26, from Temperatura.ino:1: /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:59:2: note: initializing argument 1 of 'String::String(const char*)' String(const char *cstr = ""); ^ /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:59:2: note: candidate: String::String(const char*) <near match> /usr/share/arduino/hardware/arduino/cores/arduino/WString.h:59:2: note: conversion of argument 1 would be ill-formed: Temperatura.ino:41:28: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive] Ora ho capito che l'errore sta nella conversione del dato Float "tempC", ma non capisco il perchè, il codice sta attualmente funzionando se trasferito da windows a Arduino Nano. Perché dovrebbe darmi questi problemi? C'è un qualche passaggio che vista l'ora mi sto perdendo? Spero di non aver omesso particolari Grazie in anticipo a chi mi potrà rispondere Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 14 aprile 2020 Segnala Share Inserita: 14 aprile 2020 Dovresti specificare di che sensore si tratta, anche se suppongo sia il classico DS18B20. Link al commento Condividi su altri siti More sharing options...
ilguargua Inserita: 14 aprile 2020 Segnala Share Inserita: 14 aprile 2020 La versione dell'IDE Arduino è la stessa tra Windows e Raspian? Nel caso che versione è? Ciao, Ale. Link al commento Condividi su altri siti More sharing options...
barbo Inserita: 14 aprile 2020 Autore Segnala Share Inserita: 14 aprile 2020 Buongiorno! 1 ora fa, Livio Orsini ha scritto: Dovresti specificare di che sensore si tratta, anche se suppongo sia il classico DS18B20. Esatto!! 6 minuti fa, ilguargua ha scritto: La versione dell'IDE Arduino è la stessa tra Windows e Raspian? Nel caso che versione è? Ciao, Ale. allora su windows ho 1.8.12 Mentre su Raspberry 2:1.0.5+dfsg2-4.1 installa tramite terminale e poi ho provato a fare il classico sudo apt-get update Mi sa quindi che è qui l'inghippo, ho controllato online ma non ho trovato altre versioni Link al commento Condividi su altri siti More sharing options...
ilguargua Inserita: 14 aprile 2020 Segnala Share Inserita: 14 aprile 2020 1 ora fa, barbo ha scritto: ho controllato online ma non ho trovato altre versioni Dalla pagina ufficiale di Arduino vedo che ci sono 2 versioni ARM (32 o 64 bit) 1.8.12 che dovrebbero andar bene sul Raspy, onestamente non so/non ricordo se 32 o 64 bit il SO, ma non dovrebbe essere difficile scoprirlo. Ciao, Ale. Link al commento Condividi su altri siti More sharing options...
barbo Inserita: 14 aprile 2020 Autore Segnala Share Inserita: 14 aprile 2020 11 ore fa, ilguargua ha scritto: Dalla pagina ufficiale di Arduino vedo che ci sono 2 versioni ARM (32 o 64 bit) 1.8.12 che dovrebbero andar bene sul Raspy, onestamente non so/non ricordo se 32 o 64 bit il SO, ma non dovrebbe essere difficile scoprirlo. Ciao, Ale. In effetti dopo che mi hai dato il pallino della versione, mi sono un po' adoperato, non ho ancora trovato la soluzione ma appena riesco la posto. Ho comunque capito che il mio Raspy model 3 B v1.2, è un ARM 64 bit, dunque dopo aver scaricato la giusta versione di Arduino IDE ed estratto con Archivier, sono entrato nel terminale, ho raggiunto tramite cd la cartella dove era compattato il file d'installazione ed ho provato ad installarlo, non ne vengo ancora fuori, non riesco ad installarlo. Per ora ho provato a questi comandi (dopo averlo estratto) ~/Downloads/arduino-1.8.12 $ sudo ./arduino-linux-setup.sh root Riavvio il raspy e poi: ~/Downloads/arduino-1.8.12 $ sudo ./install.sh Mi da questo output (ho visto però in un video dove veniva installata la versione 1.8.8, che usciva il messaggio analogo) Adding desktop shortcut, menu item and file associations for Arduino IDE... touch: impossibile fare touch di '/root/.config/mimeapps.list': File o directory non esistente /usr/bin/xdg-mime: 848: /usr/bin/xdg-mime: cannot create /root/.config/mimeapps.list.new: Directory nonexistent done! Viene creato comunque il collegamento dal menù dei programmi, ma non si riesce ad avviare (non esce nessun messaggio) Quindi non riuscendo ad avviarlo tramite interfaccia grafica, ho provato ad avviarlo da terminale, tramite il comando ~/Downloads/arduino-1.8.12 $ ./arduino mi esce questo messaggio ./arduino: riga 35: /home/pi/Downloads/arduino-1.8.12/java/bin/java: cannot execute binary file: Formato eseguibile non valido Preciso anche che dopo aver fatto tutte queste prove, siccome avevo già fatto varie prove nel Raspy installando mysql, php ecc.. ho anche formattato la microSD partendo da zero, reinstallando l'ultimo Debian e prima di tutto, come sempre, ho fatto i classici sudo apt-get update sudo apt-get upgrade Farò altre prove domani e vi farò sapere se riesco nell'intento, non credo di essere lontano comunque. Mattia Link al commento Condividi su altri siti More sharing options...
barbo Inserita: 15 aprile 2020 Autore Segnala Share Inserita: 15 aprile 2020 MEA CULPA! Mi sono affidato alla semplice ricerca sul sito Raspberry per capire se la mia scheda fosse 32 o 64 bit. Non me la sono data per vinta e non volevo andare a letto senza averci capito qualcosa in più. Quindi sudo apt-get install lshw lshw Ho così capito che in realtà si trattava di una 32 bit e non di una 64bit. Scarico la versione, Installo da terminale come detto nel messaggio di prima e tutto funziona. 47 minuti fa, barbo ha scritto: Per ora ho provato a questi comandi (dopo averlo estratto) ~/Downloads/arduino-1.8.12 $ sudo ./arduino-linux-setup.sh root Riavvio il raspy e poi: ~/Downloads/arduino-1.8.12 $ sudo ./install.sh Grazie a tutti ancora Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 15 aprile 2020 Segnala Share Inserita: 15 aprile 2020 Ottimo lavoro; per la serie: "chi la dura la vince". Link al commento Condividi su altri siti More sharing options...
barbo Inserita: 15 aprile 2020 Autore Segnala Share Inserita: 15 aprile 2020 Grazie! Stavo per alzare bandiera bianca... Ma alla fine ho resistito!! 🤓 Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora