일단 라이브러리는 espressif에서 제공되는 [AsyncUDP]가 있어서 이걸 사용하면 된다.
단지 내가 하고 싶었던 것은 서버 컴퓨터가 한대 있고,
첫 번째 ESP에서 데이터를 수집해서 서버로 보내면,
그 결과를 분석해서 두 번째 ESP로 정보를 보내는 것을 하고 싶었는데 어떻게 할까 고민을 많이 했었다.
따라서 위의 참고 소스에 나와있는
전체 시스템의 포트번호를 통일시키고,
udp.listen(1234)을 이용하여서 정보를 수신하는,
그냥 UDP 브로드캐스팅으로 전체 통신을 해 버리는 게 제일 간단하네.
각각의 모듈에서 받은 정보가 중요한지 무시해야 할 것인지 판단하는 것이 제일 좋네.
udp.onPacket 부분에서
적절히 수신된 메시지를 시리얼 모니터에 표시해 준다.
그리고 메시지를 보낼 때는
udp.broadcast를 사용하여 전체적으로 보내준다.
예를 들면 [udp.broadcast("Anyone here?");] 를 이용하면
Anyone here?라는 라는 문장을 브로드캐스팅 (같은 AP에 접속된 디바이스 전체에 전송)으로 송신이 된다.
며칠 동안 고민하다가 보니까 이제 라이브러리가 어떻게 굴러가는지 대충 알겠네..
아래가 예제를 사용한 시스템이다.
위의 espressif ESP32의 버튼을 누르면 신호가 서버 PC로 전송된다.
이 ESP32 보드는 컴퓨터에 USB로는 연결되어 있지 않다.
서버에서는 버튼 신호를 인식하여 UDP 브로드캐스팅 통신을 통해 신호가 Wemos D1 R32로 전달 되게 된다.
서버에서의 버튼 신호를 받으면 보드에 있는 붉은색 LED가 점등되게 된다.
시스템은 간단한데 이것저것 공부할게 많다.