이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
UDP 블록을 사용하여 Arduino 서버와 통신
이 예제는 UDP Receive 및 UDP 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씩 증가시킵니다. 모델의 출력에는 증가된 값이 표시됩니다.