Arduino YUN - Collegamento ethernet

Buongiorno a tutti,

ho iniziato da poco la programmazione di Arduino YUN.

Ho configurato correttamente tutti i parametei WLAN, ho testato il download di alcuni sketch sia caricando da USB, sia da WLAN, nessun problema.

Sto cercando ora di associare un indirizzo IP alla porta ethernet poichè sembra che non lo ottenga in automatico dal DHCP. Usando il programma d'esempio fornito dal software per verificare l'indirizzo IP tramite la funzione Ethernet.localIP () la console mi restituisce 255.255.255.255.

Ho notato che ha differenza delle guide postate online mi ritrovo lo stesso indirizzo MAC sulla WLAN e sulla LAN, è corretto?

Associando un indirizzo ip statico dalle impostazione dell'arduino ("luci"), avviene l'associazione e mi segnale la connessione (riesco a pingare), ma l'Ethernet.localIP () mi da sempre 255.255.255.255.

Consigli?

Grazie

Ciao, prima di tutto, essendo il tuo primo post, ti consiglio di presentarti QUI (spiegando quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO ...

... poi ... come l'hai collegata ? Perché io non ho questo problema e dal server DHCP viene regolarmente assegnato un IP alla porta Ethernet della Yún ... :roll_eyes:

Hai toccato qualche cosa nella configurazione ?

Guglielmo

Ciao,

scusa sono nuovo del forum, ora vedrò bene anche il regolamento.

Ho connesso direttamente il PC e l'arduino con un semplice cavo di rete cat.5, vedo che il PC assegna con il DHCP un indirizzo strano (169.x.x.x) ma comunque non riesce a stabilire la connessione.

Mi confermi che il MAC della WLAN e della LAN sono uguali? Non so se può dipendere da questo.

Ho provato anche a ripristinare totalmente l'arduino tramite i vari reset, l'unica cosa che ho toccato nelle configurazioni è l'indirizzo IP della LAN l'ho definito statico 192.168.100.10 e in questo modo sono riuscito a fare il ping da pc 192.168.100.11.

Ma lo sketch mi da il 255.255.255.255.

L'obbiettivo finale sarebbe connettere il PC all'arduino via ethernet con protocollo modbus TCP.

Allora per collegare il PC alla YUN direttamente devi avere un cavo ethernet "cross" e configurare il PC per la condivisione della connessione o comunque con un IP fisso. Meglio se lo colleghi al router o ancora meglio via Wifi.

Via Wifi la YUN può essere programmata anche in remoto ovvero senza connessione USB con PC.

Avevo testato la comunicazione passando attraverso lo switch del router (in questo modo non avevo bisogno del cross), ma comunque avevo problemi.

Comunque ti ringrazio, verificherò anche direttamente con il cavo cross.

ManoloBattista: Ho connesso direttamente il PC e l'arduino con un semplice cavo di rete cat.5, vedo che il PC assegna con il DHCP un indirizzo strano (169.x.x.x) ma comunque non riesce a stabilire la connessione.

NO, non puoi collegare direttamente, devi passare attraverso un HUB e devi avere un DHCP server sulla rete (... probabilmente è il tuo router).

Valgono le cose che Pablos a scritto QUI ... anche se per altro hardware ...

Guglielmo

Ok lo verificherò, potete però confermarmi che il MAC della porta ethernet e il wifi sono uguali?

Perchè in alcune guide li trovo differenti?

Collegandomi a arduino.local WLAN0 e ET0 hanno lo stesso indirizzo MAC.

Grazie

Sicuro che sia lo stesso ? ? ?

Vai sulla pagina web di configurazione e controlla … in allegato vedi una mia …
… dove un solo carattere è differente :grin:

Guglielmo

Ho controllato e ho lo stesso MAC con le impostazioni di fabbrica.

Mmm ... questa è una strana cosa e non è neanche bella ... due devices con lo stesso MAC sulla stessa rete di sicuro non sono una bella cosa ...

Ma hai provato a connettere anche il cavo ethernet al tuo HUB mentre il WiFi è connesso ? Cosa succede ? Ricontrolla anche dalla pagina web di configurazione ...

Guglielmo

Connettendo l’indirizzo MAC rimane invariato, mi pare strano che utilizzi lo stesso MAC, questo potrebbe creare il conflitto.

[immagine 1]

Se configurassi dall’advanced LUCI il mac della scheda?

Ma la tua rete a che numero IP ha ? ? ?

192.168.1.x o 192.168.240.x ? Perché vedo due network diversi ... :roll_eyes:

Guglielmo

192.168.240.1 era l’indirizzo di default di arduino yun che corrisponde a arduino.local/

192.168.1.8 è l’indirizzo dell’ethernet.

Ora ho associato correttamente arduino alla mia wifi, vedi l’immagine.

Ho variato manualmente l’indirizzo MAC della porta ethernet.

Ok, perfetto, direi che così non dovrebbe darti problemi ;)

Certo che comunque è strano come ti è arrivata configurata ... :roll_eyes:

Guglielmo

La configurazione base era questa, ho provato a usare il tool di ripristino: http://arduino.cc/en/Main/Software#toc8

ha ripristinato i 2 mac address alla stessa maniera :roll_eyes:

Ora vedrò di fare la prova di comunicazione modbus TCP e vedrò se riesco a comunicare.

Vi ringrazio per il supporto Ciaoooo

Ho provato a inserire lo sketch modbus TCP nell’arduino, voglio connettermi in modbus TCP sulla porta ethernet (192.168.1.6) ma non riesco a leggere i registri Mb.R da nessun programma.

Come di seguito definito il modbus lavora come Slave giusto? Sto sbagliando qualcosa?

#include <Mudbus.h>
#include <SPI.h>
#include <Ethernet.h>

Mudbus Mb;
//Function codes 1(read coils), 3(read registers), 5(write coil), 6(write register)
//signed int Mb.R[0 to 125] and bool Mb.C[0 to 128] MB_N_R MB_N_C
//Port 502 (defined in Mudbus.h) MB_PORT

void setup()
{
uint8_t mac = { 0x90, 0xA2, 0xDA, 0xF0, 0x13, 0x5D };
Ethernet.begin(mac);
//Avoid pins 4,10,11,12,13 when using ethernet shield

delay(5000);
Serial.begin(9600);

pinMode(7, INPUT);
pinMode(8, OUTPUT);
}

void loop()
{
Mb.Run();

//Analog inputs 0-1023
Mb.R[0] = 1; //pin A0 to Mb.R[0]
Mb.R[1] = 2;
Mb.R[2] = 3;
Mb.R[3] = 4;
Mb.R[4] = 5;
Mb.R[5] = 6;
}

Non conosco quella libreria e ... secondo me sarebbe meglio che apri un nuovo thread con un titolo conforme a quello che vuoi fare.

Probabilmente richiamerà l'attenzione di chi la conosce ;)

Guglielmo

Non funziona così. La YUN non ha la ethernet collegata al microcontrollore AVR ma al chip Linux. Non la puoi usare come sulla UNO.

Puoi crearti uno script in Pyton o un programma in C/C++ (che deve essere compilato per girare su Linino, distribuzione linux della YUN).

Verissimo Paolo, non avevo notato la cosa ... mi ero fermato appena avevo letto le domande relative a modbus ... :grin:

@ManoloBattista : Tieni sempre presente lo schema logico della Yún ...

e vedi chiaramente "quale mondo" (Arduino o Linux) controlla cosa ;)

Guglielmo

Ciao a tutti,

dopo esser riuscito a sistemare il problema legato agli indirizzi MAC ora sembra essere configurata correttamente la comunicazione.

Avrei ora la necessità di utilizzare il protocollo modbus TCP/IP per comunicare con il PC attraverso il software Modbus Poll, qualcuno ha mai testato il modbus con Arduino Yun? :o