[아두이노#396] (Socket.io#2) 룸(ROOM)을 이용해서 ESP8266 실시간 그룹 관리 해보기!(녹칸다/포로리야공대가자)
프로그래밍/ESP8266 & Websocket 2021. 12. 14. 22:26
(Socket.io#2) 룸(ROOM)을 이용해서 ESP8266 실시간 그룹 관리 해보기!
녹칸다의 소켓IO(Socket io) 시리즈이다!
(녹칸다의 Socket.IO는 노드레드(node-red)를 베이스로 하므로 노드레드가 설치되어야한다!)
녹칸다가 사용하는 사물인터넷보드(wemos d1r1/esp8266)를 서버에서 실시간 양방향 통신을 하기 위한 전략으로 소켓IO를 활용해보도록 한다!
가장 효율적으로 사용할 수 있는 MQTT와 활용방안이 유사하지만 동적으로 사물인터넷보드를 그룹핑해서 제어하는데는 Socket io가 더 강점이 많은듯하다!
Socket.Io로 할 수 있는것은 MQTT도 대부분 유사하게 구현할 수 있다!
소켓IO는 사물인터넷보드의 관리를 마치 카카오톡 톡방을 운영하듯이 할 수 있다!
공통으로 소통하는 톡방에서 모든 IoT보드들을 제어할 수 있고 일부 IoT보드가 참여하는 톡방을 별도로 만들어서 무리를 지어서 제어할 수 있도록 만들어져있다!
Socket.io에서는 이런 그룹관리를 룸(ROOM)을 이용해서 제어한다!
이번편에서는 소켓IO의 그룹관리 기능을 이용해서 ESP8266보드를 제어하는 방법에 대해서 살펴보도록 하자!
1.기본으로 딸려오는 채팅예제에서 웹클라이언트들끼리 룸(ROOM)을 만들어서 그룹별 메시지 수신확인 테스트 해보기!
2.ESP8266보드 1대를 Socket.io서버와 연결하고 룸을 지정했을때 text메시지가 어떻게 수신이 되는지 확인해보도록하자!
3.ESP8266보드 4대를 서로다른 ROOM으로 지정하고 LED 2개를 개별적으로 제어 가능하도록 해보자!(개별/일괄)
관련라이브러리(socket.io)
https://github.com/Links2004/arduinoWebSockets
(실제로한거)
1.ESP8266보드 4개를 활용해서 채팅창에서 보드를 호출하면 전체 보드가 일괄적으로 응답하는 형태!
2.보드 4대를 2개씩 룸으로 그룹핑해서 룸메시지를 전송했을때 응답하는 예제!
3.보드 4대에 각각 LED를 2개씩 연결하고 그룹단위 전체단위로 LED를 제어해보는 예제!