예를 들어 UDP로 주고받는 프로그램(tx, rx)을 2개 짠다고 가정해보자.
뭐 꼭 UDP가 아니라 Serial, Bluetooth,Lora 상관없다.
(LoRa로 만들어보고 싶었는데, 회사 업무상 UDP로 만들어놨기 때문에 샘플 코드는 UDP 예제이다.)
보통 센서 노드 쪽은 데이터를 취합해서, 게이트웨이로 보내는 역활을 하고..
게이트웨이는 이 받은 데이터를 적당히 가공 및 저장한다거나, 서버로 보내는 등의 역활을 한다.
물론 센서 노드가 바로 서버로 보내도 되지만, 센서 노드가 여러개라면 게이트 웨이를 거치는 시스템이 더 좋다.
그래서 센서 노드와 게이트웨이의 프로그램은 서로 당연히 다르다!
예를 들어 센서노드는 ADC가 필요하지만 게이트웨이는 센서를 읽지 않기 때문에 ADC가 필요없다!
그러나...
WiFi 설정, UDP 연결, UDP로 데이터 보내기" 코드는 센서 노드건 게이트웨이건 동일하다. <-- 요게 표인트
대충 구조는 아래와 같다.
위 프로젝트의 파일 구성은 대충 아래와 같은데...
송신부는 아래와 같을 것이고