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
IP Telegramm
07.10.2013, 07:32
Beitrag #1
IP Telegramm
Hallo zusammen,

ich suche ein verständliches Tutorial oder ganz einfaches Musterprojekt, womit mittels eines IP-Befehls ( z.B. Sendung eines Zeichens 'L') eine Aktion ausgeführt wird.

freue mich auf Hilfe

Gruß
Matthias

meinen Ansatz sende ich mal mit im Anhang


Angehängte Datei(en)
.txt  ip-telegramm.txt (Größe: 1,17 KB / Downloads: 168)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 07:50
Beitrag #2
RE: IP Telegramm
Moin mbaecker,

so wie ich das sehe möchtest du das UDP-Protokoll nutzen, oder?
Naja, dein Beispiel zeigt schon das wesentliche.
Je nachdem welche IDE-Version du hast sollte es wie folgt gehen:
IDE < 1.04
Code:
char msg[2];
sprintf(msg, "L");
UDP.write(msg);
IDE >=1.04
Code:
Udp.print("L");

Damit wäre das Senden erledigt. Die Frage ist wie deine Empfängerseite aussieht.
PC, Arduino? Wenn es ein Arduino ist kannst du dein Beispiel als Grundlage nehmen.
Hope it helps!

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 08:43
Beitrag #3
RE: IP Telegramm
Hallo, vielen Dank!
Aber: ich möchte kein Telegramm senden, sondern auswerten.
Ein anderes System sendet mir ein "L" und ich möchte damit im Arduino einen Prozeß anstoßen..
Gruß
MB
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 12:15
Beitrag #4
RE: IP Telegramm
Eigentlich macht der folgende Code genau dieses.
Die Aktion ist dann dass zB eine LED an Pin3 geschaltet wird
Ich habe ihn nur mal ein bisschen angepasst und deutsch kommentiert.
Code:
#include <SPI.h>        
#include <Ethernet.h>
#include <EthernetUdp.h>

// MAc Adresse steht auf Rückseite des Ethernetshield oder selbst setzen
byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// Ip Adresse des Ethernetshield
IPAddress ip(192, 168, 1, 177);
// lokaler UDP Port - muss mit dem des Senders übereinstimmen
unsigned int localPort = 8888;

// UDP Instanz erstellen
EthernetUDP Udp;
//Puffer für Ethernetpaket
char packBuff[UDP_TX_PACKET_MAX_SIZE];
void setup() {
  // start Ethernet, UDP und Serial Monitor
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
  Serial.begin(9600);
}

void loop() {
  // Kommt etwas über UDP rein?
  int packetSize = Udp.parsePacket();
  // Wenn ja
  if(packetSize)
  {
    // Ausgabe der IP-Adresse und Port
    Serial.print("UDP PAket empfangen. Groesse:  ");
    Serial.println(packetSize);
    Serial.print("von IP-Adresse: ");
    IPAddress remote = Udp.remoteIP();
    for (int i =0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(".");
      }
    }
    Serial.print(", Port: ");
    Serial.println(Udp.remotePort());

    // Paket in den Puffer lesen
    Udp.read(packBuff,UDP_TX_PACKET_MAX_SIZE);
    if (packBuff[0] == 'L')
    {
      // Hier passiert die Aktion auf grund empfangenem 'L'
      // An Pin 3 haengt zB. eine LED
      digitalWrite(3, HIGH);  
      delay(1000);              
      digitalWrite(3, LOW);    
      delay(1000);              
    }    
  }
}
Sollte weiterhelfen.

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 16:20
Beitrag #5
RE: IP Telegramm
Was soll ich sagen.. es klappt nicht. es passiert nichts.
Hast du das selber mal getestet?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.10.2013, 20:32
Beitrag #6
RE: IP Telegramm
Hallo Matthias,

wenn man den Sketch in den Arduino lädt passiert erstmal nix, richtig.
Warum? Er wartet auf das "L" über UDP.

Hast du denn schon irgendeine Art von "UDP-Sender" am laufen?
Das kann ein PC sein der halt UDP an die Adresse des "Empänger-Arduino" schickt oder eben ein anderer Arduino der mit einem Sketch zum senden läuft. Beide müssen natürlich ein Netzwerkschield haben und über Switch/Router what ever verbunden sein. Wenns ein Router ist sollte der natürlich auch den Port durchlassen.

Naja und ein UDP-Sender hat im wesentlichen folgendes als Kern:
Code:
#include <SPI.h>        
#include <Ethernet.h>
#include <EthernetUdp.h>
// MAc Adresse steht auf Rückseite des Ethernetshield oder selbst setzen
byte mac[] = {  eigene MAC-Adresse };
// Ip Adresse des Ethernetshield
IPAddress ip(eigene IP-Adresse);
// lokaler UDP Port - muss mit dem des Empfängers übereinstimmen
unsigned int localPort = 8888;
// UDP Instanz erstellen
EthernetUDP Udp;
//Puffer für Ethernetpaket
void setup() {
  // start Ethernet, UDP und Serial Monitor
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
}
void loop()
{
udp.send("L", IP des Empfängers, Port des Empfängers );
// a bisserl Pause machen
delay(5000);
}
Mit beiden Scripts zusammen sollte am Empfänger die LED dann an/aus gehen.

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.10.2013, 04:28
Beitrag #7
RE: IP Telegramm
Ich ziehe alles zurück. Das Script ist einwandfrei i.O. ich hatte einen Fehler in der Hardware.. ;-( jetzt klappt alles. Besten Dank!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


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