주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

UDP 블록을 사용하여 Arduino 서버와 통신

이 예제는 UDP ReceiveUDP Send 블록을 사용하여 원격 서버와 통신하는 방법을 보여줍니다. 이 예에서 서버는 Arduino® Uno에서 실행됩니다. 두 UDP 블록은 원격 Arduino 서버와 통신합니다.

설정

Arduino Uno와 이더넷 쉴드를 컴퓨터에 연결합니다. Arduino IDE를 사용하여 다음 프로그램을 로드하십시오. 코드의 IP 및 포트 설정을 사용하도록 네트워크 설정을 구성하십시오.

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

// Specify maximum UDP packet size
#define MAX_PACKET_SIZE 512

// Specify MAC and IP address for Ethernet shield
byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 177);

// Specify UDP port to listen on
unsigned int localPort = 9999;

// Create data array for storing the received UDP packet data payload
char packetData[MAX_PACKET_SIZE];

EthernetUDP Udp;

void setup() {
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
}

void loop() {
  
  // Process received packet
  int packetSize = Udp.parsePacket();

  if (packetSize > MAX_PACKET_SIZE)
  {
    packetSize = MAX_PACKET_SIZE;
  }

  // If a packet was received, send a response packet
  if (packetSize)
  {
    // Read the received UDP packet data
    Udp.read(packetData,MAX_PACKET_SIZE);

    // Transmit an UDP packet back to the remote IP address and port specified in the received packet header
    // The transmitted UDP packet data byte values are the received values + 1
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());    
    for (int i =0; i < packetSize; i++)
    {
      Udp.write(packetData[i]+1);
    }
    Udp.endPacket();    
  }
  delay(1);
}

이 예제에는 INO 파일도 포함되어 있습니다.

서버에서 데이터 보내기 및 받기

이 모델에는 UDP Send와 UDP Receive 블록이 포함되어 있습니다. UDP Send 블록은 카운터에서 Arduino의 서버로 데이터를 전송합니다. 그런 다음 Arduino 서버는 신호를 1 증가시키고 이를 UDP Receive 블록으로 반환합니다.

다음 명령을 사용하여 모델을 엽니다.

open_system('demoinstrslUDPTransmitReceive');

다음 명령을 사용하여 모델을 닫습니다.

close_system('demoinstrslUDPTransmitReceive');

결과

Arduino 서버는 카운터의 각 값을 1씩 증가시킵니다. 모델의 출력에는 증가된 값이 표시됩니다.

참고 항목

|

도움말 항목