INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Welche Daten von mir für Netzanbindung.
01.11.2015, 17:27
Beitrag #17
RE: Welche Daten von mir für Netzanbindung.
Bin ich gerade drauf gestoßen....

Code:
/*
  DHCP-based IP printer

  This sketch uses the DHCP extensions to the Ethernet library
  to get an IP address via DHCP and print the address obtained.
  using an Arduino Wiznet Ethernet shield.

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

  created 12 April 2011
  modified 9 Apr 2012
  by Tom Igoe
  modified 02 Sept 2015
  by Arturo Guadalupi

*/

#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[] = {
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02
};

// 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);
  // this check is only needed on the Leonardo:
  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");
    // no point in carrying on, so do nothing forevermore:
    for (;;)
      ;
  }
  // print your local IP address:
  printIPAddress();
}

void loop() {

  switch (Ethernet.maintain())
  {
    case 1:
      //renewed fail
      Serial.println("Error: renewed fail");
      break;

    case 2:
      //renewed success
      Serial.println("Renewed success");

      //print your local IP address:
      printIPAddress();
      break;

    case 3:
      //rebind fail
      Serial.println("Error: rebind fail");
      break;

    case 4:
      //rebind success
      Serial.println("Rebind success");

      //print your local IP address:
      printIPAddress();
      break;

    default:
      //nothing happened
      break;

  }
}

void printIPAddress()
{
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // print the value of each byte of the IP address:
    Serial.print(Ethernet.localIP()[thisByte], DEC);
    Serial.print(".");
  }

  Serial.println();
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.11.2015, 17:41 (Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2015 17:54 von arduinofan.)
Beitrag #18
RE: Welche Daten von mir für Netzanbindung.
Das wäre Klasse ardu_arne, wenn das mit dem FileZillaServer klappen würde.

Danke.
Gruss

Die Verbindung zum Notebook mit dem Ethernetshild ist das ein Crosskabel oder ein normales Kabel ?

Danke.

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.11.2015, 18:18
Beitrag #19
RE: Welche Daten von mir für Netzanbindung.
Hallo arduinofan,

ich weiß dass die Anmeldeprozedur an einem FTP-Server recht aufwändig ist.
Nur weil ich selbst eventuell mal einen Nutzen davon haben könnte will ich das mal ausprobieren. Erwarte aber bitte nicht kurzfristig eine Antwort.
Weil ich derzeit auch noch an anderen Stellen Forschungsarbeit betreibe kann es ein paar Wochen dauern bis eine Lösung oder erste Erkenntnisse da sind.

Ob du für die Verbindung zum Notebook ein Crosskabel oder ein normales Kabel verwenden kannst hängt davon ab ob einer der beiden Netzwerkteilenhmer Auto-MDI beherrscht. Neuere Geräte können das meist. Medium Dependent Interface
Ob der Arduino das kann hängt vom verwendeten Ethernet-Controller ab.
Der W5100 vom original Arduino Ethernet-Shield kann das laut Datenblatt.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.11.2015, 18:49
Beitrag #20
RE: Welche Daten von mir für Netzanbindung.
Dank für die Hilfe.

Mit dem Kabel ist kein Problem, ich habe beide an Bord.

Danke.
Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.11.2015, 17:35 (Dieser Beitrag wurde zuletzt bearbeitet: 02.11.2015 17:36 von ardu_arne.)
Beitrag #21
RE: Welche Daten von mir für Netzanbindung.
Hallo arduinofan,

die Sache mit der FTP-Verbindung hat mir keine Ruhe gelassen. Smile

Mit dem Beispiel aus FTP code funktionierte es bei mir nach anpassen der MAC- und IP-Adressen, Benutzer und Passwort auf Anhieb.

Hier der Code, so wie er bei mir läuft:
Code:
/*
   FTP passive client for IDE v1.0.1 and w5100/w5200
   Posted October 2012 by SurferTim
   Modified 6 June 2015 by SurferTim
   http://playground.arduino.cc/Code/FTP
*/

#include <SD.h>
#include <SPI.h>
#include <Ethernet.h>
// comment out next line to write to SD from FTP server
#define FTPWRITE

// this must be unique
byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0x1D, 0x87 };  

// change to your network settings
IPAddress ip       ( 192, 168, 0, 61 );
IPAddress dnsServer( 192, 168, 0, 16 );    
IPAddress gateway  ( 192, 168, 0, 16 );
IPAddress subnet   ( 255, 255, 255, 0 );

// change to your server
IPAddress server( 192, 168, 0, 10 );

EthernetClient client;
EthernetClient dclient;

char outBuf[128];
char outCount;

// change fileName to your file (8.3 format!)
char fileName[13] = "test.txt";

void setup()
{
  Serial.begin(115200);

  digitalWrite(10,HIGH);

  if(SD.begin(4) == 0)
  {
    Serial.println(F("SD init fail"));          
  }

  Ethernet.begin(mac, ip, dnsServer, gateway, subnet);
  digitalWrite(10,HIGH);
  delay(2000);
  Serial.println(F("Ready. Press f or r"));
}

void loop()
{
  byte inChar;

  inChar = Serial.read();

  if(inChar == 'f')
  {
    if(doFTP()) Serial.println(F("FTP OK"));
    else Serial.println(F("FTP FAIL"));
  }

  if(inChar == 'r')
  {
    readSD();    
  }

}

File fh;

byte doFTP()
{
#ifdef FTPWRITE
  fh = SD.open(fileName,FILE_READ);
#else
  SD.remove(fileName);
  fh = SD.open(fileName,FILE_WRITE);
#endif

  if(!fh)
  {
    Serial.println(F("SD open fail"));
    return 0;    
  }

#ifndef FTPWRITE  
  if(!fh.seek(0))
  {
    Serial.println(F("Rewind fail"));
    fh.close();
    return 0;    
  }
#endif

  Serial.println(F("SD opened"));

  if (client.connect(server,21)) {
    Serial.println(F("Command connected"));
  }
  else {
    fh.close();
    Serial.println(F("Command connection failed"));
    return 0;
  }

  if(!eRcv()) return 0;

  client.println(F("USER MEGA2560_2"));  //User

  if(!eRcv()) return 0;

  client.println(F("PASS mega2560_2"));  // PW

  if(!eRcv()) return 0;

  client.println(F("SYST"));

  if(!eRcv()) return 0;

  client.println(F("Type I"));

  if(!eRcv()) return 0;

  client.println(F("PASV"));

  if(!eRcv()) return 0;

  char *tStr = strtok(outBuf,"(,");
  int array_pasv[6];
  for ( int i = 0; i < 6; i++) {
    tStr = strtok(NULL,"(,");
    array_pasv[i] = atoi(tStr);
    if(tStr == NULL)
    {
      Serial.println(F("Bad PASV Answer"));    

    }
  }

  unsigned int hiPort,loPort;

  hiPort = array_pasv[4] << 8;
  loPort = array_pasv[5] & 255;

  Serial.print(F("Data port: "));
  hiPort = hiPort | loPort;
  Serial.println(hiPort);

  if (dclient.connect(server,hiPort)) {
    Serial.println(F("Data connected"));
  }
  else {
    Serial.println(F("Data connection failed"));
    client.stop();
    fh.close();
    return 0;
  }

#ifdef FTPWRITE
  client.print(F("STOR "));
  client.println(fileName);
#else
  client.print(F("RETR "));
  client.println(fileName);
#endif

  if(!eRcv())
  {
    dclient.stop();
    return 0;
  }

#ifdef FTPWRITE
  Serial.println(F("Writing"));

  byte clientBuf[64];
  int clientCount = 0;

  while(fh.available())
  {
    clientBuf[clientCount] = fh.read();
    clientCount++;

    if(clientCount > 63)
    {
      dclient.write(clientBuf,64);
      clientCount = 0;
    }
  }

  if(clientCount > 0) dclient.write(clientBuf,clientCount);

#else
  while(dclient.connected())
  {
    while(dclient.available())
    {
      char c = dclient.read();
      fh.write(c);      
      Serial.write(c);
    }
  }
#endif

  dclient.stop();
  Serial.println(F("Data disconnected"));

  if(!eRcv()) return 0;

  client.println(F("QUIT"));

  if(!eRcv()) return 0;

  client.stop();
  Serial.println(F("Command disconnected"));

  fh.close();
  Serial.println(F("SD closed"));
  return 1;
}

byte eRcv()
{
  byte respCode;
  byte thisByte;

  while(!client.available()) delay(1);

  respCode = client.peek();

  outCount = 0;

  while(client.available())
  {  
    thisByte = client.read();    
    Serial.write(thisByte);

    if(outCount < 127)
    {
      outBuf[outCount] = thisByte;
      outCount++;      
      outBuf[outCount] = 0;
    }
  }

  if(respCode >= '4')
  {
    efail();
    return 0;  
  }

  return 1;
}


void efail()
{
  byte thisByte = 0;

  client.println(F("QUIT"));

  while(!client.available()) delay(1);

  while(client.available())
  {  
    thisByte = client.read();    
    Serial.write(thisByte);
  }

  client.stop();
  Serial.println(F("Command disconnected"));
  fh.close();
  Serial.println(F("SD closed"));
}

void readSD()
{
  fh = SD.open(fileName,FILE_READ);

  if(!fh)
  {
    Serial.println(F("SD open fail"));
    return;    
  }

  while(fh.available())
  {
    Serial.write(fh.read());
  }

  fh.close();
}
In den Zeilen 19 und 46 habe ich noch einen DNS-Server eingetragen.

Hier die Ausgabe des Arduinos über den SerialMonitor:
Code:
Ready. Press f or r
SD opened
Command connected
220-FileZilla Server version 0.9.41 beta
220-written by Tim Kosse (Tim.Kosse@gmx.de)
220 Please visit http://sourceforge.net/projects/filezilla/
331 Password required for mega2560_2
230 Logged on
215 UNIX emulated by FileZilla
200 Type set to I
227 Entering Passive Mode (192,168,0,10,7,107)
Data port: 1899
Data connected
150 Connection accepted
Writing
Data disconnected
226 Transfer OK
221 Goodbye
Command disconnected
SD closed
FTP OK

Und das Logfile des FileZilla Servers:
Code:
(000008) 02.11.2015 17:25:56 - (not logged in) (192.168.0.61)> Connected, sending welcome message...
(000008) 02.11.2015 17:25:56 - (not logged in) (192.168.0.61)> 220-FileZilla Server version 0.9.41 beta
(000008) 02.11.2015 17:25:56 - (not logged in) (192.168.0.61)> 220-written by Tim Kosse (Tim.Kosse@gmx.de)
(000008) 02.11.2015 17:25:56 - (not logged in) (192.168.0.61)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000008) 02.11.2015 17:25:56 - (not logged in) (192.168.0.61)> USER MEGA2560_2
(000008) 02.11.2015 17:25:56 - (not logged in) (192.168.0.61)> 331 Password required for mega2560_2
(000008) 02.11.2015 17:25:56 - (not logged in) (192.168.0.61)> PASS **********
(000008) 02.11.2015 17:25:56 - mega2560_2 (192.168.0.61)> 230 Logged on
(000008) 02.11.2015 17:25:56 - mega2560_2 (192.168.0.61)> SYST
(000008) 02.11.2015 17:25:56 - mega2560_2 (192.168.0.61)> 215 UNIX emulated by FileZilla
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> Type I
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> 200 Type set to I
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> PASV
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> 227 Entering Passive Mode (192,168,0,10,7,107)
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> STOR test.txt
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> 150 Connection accepted
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> 226 Transfer OK
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> QUIT
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> 221 Goodbye
(000008) 02.11.2015 17:25:57 - mega2560_2 (192.168.0.61)> disconnected.

Ich verwende in meinem lokalen Netzwerk kein DHCP sondern habe allen Netzwerkteilnehmern feste IP-Adressen zugewiesen.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.11.2015, 09:25
Beitrag #22
RE: Welche Daten von mir für Netzanbindung.
Hallo, danke für die Hilfe.
Mit meinem WLAN DIGITUS (Kabel vom ArduinoShild an LAN 1) klappt keine Verbindung zum FileZillaServer, obwohl er mit einer IP im NoteBook erscheint bei : ipconfig

Welche IP-Nummern müssen jetzt von mir in dem Programm eingetragen werden?
Passwort usw habe ich eingebeben.

Oder muss ich den Arduino mit einem Kabel zum Notebook verbindenund eine IP per Hand vergeben am Notebook?

Danke.

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Daten Visualisieren MeisterQ 12 523 01.12.2016 19:36
Letzter Beitrag: MeisterQ
  Data Logger Daten auf SD Card schreiben Crichton 12 261 22.11.2016 18:32
Letzter Beitrag: Crichton
  I2C Daten übertragen Gandalf 3 209 04.11.2016 13:20
Letzter Beitrag: hotsystems
  Welche IDE? Arduini.cc oder .org Bilbo 1 203 17.10.2016 21:03
Letzter Beitrag: ardu_arne
  Daten über USB verarbeiten Felix91 10 318 12.10.2016 13:00
Letzter Beitrag: Tommy56
  Welche Einstellung für USB to TTL with DTR and RST reimundko 3 209 02.10.2016 16:53
Letzter Beitrag: hotsystems
  Can-Bus Shield ok, aber keine Daten Clubsport 38 1.531 01.09.2016 14:17
Letzter Beitrag: Clubsport
  Daten an mysql diode1990 24 1.293 31.07.2016 10:29
Letzter Beitrag: Gandalf
  NRF24L01,Empfangene Daten auswerten Marc2014 9 510 30.07.2016 19:34
Letzter Beitrag: rkuehle
  Serielle Schnittstelle - Daten empfangen Datatom 8 770 22.05.2016 18:10
Letzter Beitrag: avoid

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste