Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

MAC address e IP

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[11] Re: MAC address e IP

Messaggioda Foto Utentexyz » 31 gen 2018, 19:03

Attento alla libreria Ethernet che usi, se è quella standard di Arduino:

https://www.arduino.cc/en/Reference/EthernetBegin

la versione col DHCP non specifichi IP ma solo il MAC address ritorna un intero, se vale 1 hai ricevuto IP nel tempo prestabilito dalla libreria, 0 no, quindi puoi decidere se ritentare la ricezione del IP oppure fermati e segnalarlo in qualche modo la situazione.

La versione con IP statico non ha il problema del timeout del DHCP ma devi essere sicuro che il server DHCP non assegni a nessun altro dispositivo IP che hai deciso per il microcontrollore.
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[12] Re: MAC address e IP

Messaggioda Foto Utenteluxinterior » 31 gen 2018, 19:27

ma devi essere sicuro che il server DHCP non assegni a nessun altro dispositivo IP che hai deciso per il microcontrollore


Questo lo puoi risolvere mandando in rete una richiesta ARP con l'IP che vorresti usare Se qualcuno risponde è già occupato. Secondo me se è una cosa che userai solo tu nella tua rete hai già risolto. Se lo può usare uno qualsiasi dagli un IP default strano e aggiungi una paginetta di configuraizone dove uno può mettere l'ip che vuole.
Anche perché non è detto che una rete qualsiasi abbia un server DHCP. La cosa pulita sarebbe: cercare un server DHCP, se lo trova abbiamo finito e gli arriverà l'IP dal server. See non lo trova gli assegni l'IP standard che hai previsto tu e generi uan richeista ARP per capire se c'è qualcuno che ha lo stesso l'IP in rete (se è strano probabilmente no ma non si sa mai...). Se non è occupato hai finito se è occupato devi segnalarlo im qualche modo e non puoi fare nulla.
Avatar utente
Foto Utenteluxinterior
4.311 3 4 9
Master EY
Master EY
 
Messaggi: 2690
Iscritto il: 6 gen 2016, 17:48

1
voti

[13] Re: MAC address e IP

Messaggioda Foto UtenteMassimoB » 3 feb 2018, 0:20

Se usi il DHCP e vuoi assegnare un ip predefinito ad un client non devi fare altro che segnalare l'eccezione al server DHCP nel caso ci fosse, altrimenti asegna gli indirizzi in modo statico considerando tutte le regole di subnet, che in soldoni vuol dire non assegnare indirizzi non apparteneti alla tua rete lan.(ricordando che il primo indirizzo identifica la rete e l'ultimo è l'indirizzo di broadcast).

Esempio 172.16.22.x/24 usa indirizzi da 172.16.22.1 a 172.16.22.254

Ciao
MCSA Windows Server 2012 R2
Cisco CCNA R&S - Cisco CCNA Security - Cisco CCNA Cyber Ops
CompTia A+ - CompTia Linux+ - CompTIA Systems Support Specialist CSSS
CompTia Pentest+ LPIC-1 - VCP VMware - Cisco CCNP Enterprise
Avatar utente
Foto UtenteMassimoB
14,2k 6 12 13
Expert free
 
Messaggi: 3163
Iscritto il: 28 ott 2012, 9:56
Località: Milano

0
voti

[14] Re: MAC address e IP

Messaggioda Foto Utentemiomiomio » 12 mar 2018, 19:13

grazie a tutti per le risposte.
Ancora non sono venuto a capo del problema.
Adesso ho un altro dubbio.
Forse il problema non è l'indirizzo ip né il MAC address.
Arduino riesce ad acquisure correttamente l'ip dal DHCP e a connettersi appena lo collego alla rete.
Il problema è che poi mi manda tutta la rete in blocco (alcune volte non funziona più internet nemmeno sui PC collegai alla rete e sempre arduino smette di connettersi). Ho provato su reti diverse con router diversi quindi il problema è arduino. Ho cambiato la scheda di rete di arduino e succede la stessa cosa.
Lo schema di collegamento è il seguente.

Codice: Seleziona tutto
*             MFRC522      Arduino       
*             Reader/PCD   Uno/101     
* Signal      Pin          Pin           
* * -----------------------------------------------------------------------------------------
* RST/Reset   RST          9           
* SPI SS      SDA(SS)      4/
* SPI MOSI    MOSI         11
* SPI MISO    MISO         12
* SPI SCK     SCK          13

 
   pinMode(2, OUTPUT); //led verde
  pinMode(6, OUTPUT); //buzzer
#include <Wire.h>    //lcd
#include <LiquidCrystal_I2C.h>   //lcd
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display



#include<SPI.h>
#include<MFRC522.h>
#include<SoftwareSerial.h>
#include <Ethernet.h>
#define SS_PIN 4 //FOR RFID SS PIN BECASUSE WE ARE USING BOTH ETHERNET SHIELD AND RS-522
#define RST_PIN 9
//#define No_Of_Card 3
byte mac[] = { 0x54, 0xA0, 0x50, 0xE0, 0x73, 0x37 };
char server[] = "www.xxx.it";   //YOUR SERVER
IPAddress ip(10,10,10,180);
EthernetClient client;
SoftwareSerial mySerial(8,9);     
MFRC522 rfid(SS_PIN,RST_PIN);
MFRC522::MIFARE_Key key;


non è che sto sbagliando ad assegnare i pin e che quindi scheda di rete e modulo MFRC522 mandano tutto in tilt?

Ho provato a caricare questo sketch di esempio e sembra funzionare tutto anche dopo ore che è collegato.
Codice: Seleziona tutto
/*
  Web client

This sketch connects to a website (http://www.google.com)
using an Arduino Wiznet Ethernet shield.

Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13

created 18 Dec 2009
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe, based on work by Adrian McEwen

*/

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

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
char server[] = "www.xxx.it";    // name address for Google (using DNS)

// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192, 168, 0, 177);

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // try to congifure using IP address instead of DHCP:
    Ethernet.begin(mac, ip);
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connecting...");

  // if you get a connection, report back via serial:
  if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /news.asp HTTP/1.1");
    client.println("Host: www.xxx.it");
    client.println("Connection: close");
    client.println();
  } else {
    // if you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}

void loop() {
  // if there are incoming bytes available
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    while (true);
  }
}

grazie per l'attenzione
Avatar utente
Foto Utentemiomiomio
3 2
 
Messaggi: 29
Iscritto il: 8 gen 2013, 22:09

0
voti

[15] Re: MAC address e IP

Messaggioda Foto Utentefranx » 11 apr 2018, 12:31

controlla che la tua ethernet shield non sia affetta dal bug "501", su google trovi tutto
Avatar utente
Foto Utentefranx
465 3 10
Frequentatore
Frequentatore
 
Messaggi: 199
Iscritto il: 28 feb 2010, 17:43

Precedente

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti