[아두이노#507] (node-red#27) 노드레드에 연동되는 ESPNOW 게이트웨이(GATEWAY) 디자인하기!(녹칸다/포로리야공대가자)
프로그래밍/노드레드(node-red) 2022. 7. 7. 22:48
(node-red#27) 노드레드에 연동되는 ESPNOW 게이트웨이(GATEWAY) 디자인하기!
녹칸다의 노드레드(node-red) 시리즈이다!
ESPNOW는 ESP보드들끼리 인터넷에 연결하지 않고 무선으로 데이터를 주고받는 기술이다!
노드레드에 연결되는 보드는 사물인터넷(IoT)의 개념으로 인터넷에 연결이 되어야한다!
그러나 모든 사물인터넷 보드를 인터넷에 연결하기 위해서 보드 주변에 인터넷공유기(AP)를 배치하기란 쉽지 않은 일이다!
그렇다면 인터넷공유기의 범위에 들어가는 소수의 사물인터넷보드와 사물인터넷보드에 ESPNOW로 연결되는 보드가 있다면 AP에 연결되지 않은 보드도 우회해서 서버와 통신이 가능하다!
(ESPNOW를 사용한다는 장점은 이런것에서 가져가는 것이다)
이번편에서는 노드레드(node-red)와 연결되면서 ESPNOW로 여러대의 보드와 통신할 수 있는 보드를 ESPNOW 게이트웨이라고 이름 짓고 아래와 같은 전략으로 구현해보도록 한다!
그리고 ESPNOW 게이트웨이에 연결되는 보드를 ESPNOW 노드라고 이름 짓도록 하자!
1.노드레드와 ESPNOW 게이트웨이는 TCP통신으로 연결한다!
2. ESPNOW 노드는 게이트웨이에 peer to peer로 연결한다!
3. 게이트웨이는 노드에게 데이터를 전송할때 broadcasting한다!
4. 노드에 가상의 센서가 있다고 가정하고 노드레드 서버로 업로드해서 값을 출력해보자!
5. 서버에서 게이트웨이를 통해서 노드에 달려있는 LED를 제어하는 예제를 구현해보자!
(실제로한거)
1.노드레드(node-red)서버를 TCP서버로 세팅하고 wemos d1r1보드를 tcp클라이언트로 설정해서 양방향으로 메시지를 주고받는 기본예제를 구현하시오!
2.조금전에 tcp클라이언트 역할을 하던 보드를 espnow 게이트웨이로 전환하기 위해서 다른 esp8266보드와 espnow통신으로 양방향통신을 구현하시오!
3.ESPNOW노드에서 전송한 메시지를 ESPNOW게이트웨이가 수신하고 노드레드 서버로 업로드해서 출력하시오!(그리고 반대 방향으로도 출력해보시오)
4.노드에 내장 LED를 서버의 UI에서 컨트롤하도록하고 노드에 달려있는 가상의 온습도센서의 값을 서버로 업로드해서 대시보드에 출력하시오!
5.노드 3개를 구성해서 가상의 온습도센서가 있다고 가정하고 서버로 데이터를 업로드하시오! 그리고 각각의 노드의 내장LED를 제어하는 예제를 구현하시오!(범용적으로 사용하기 위해서 게이트웨이에 arduinojson라이브러리를 적용하시오)
6.노드 3개에 달려있는 센서가 서로다른 종류의 값을 출력하는 경우 현재 구현된 시스템이 어떻게 대응을 해야하겠는가?(실질적인 사용상의문제)(6번예제는 시연하려고 했는데 코드가 날라가버렸다..직접 해보시오!)