[아두이노#395] (Socket.io#1) ESP8266과 Socket.IO를 이용한 실시간 사물인터넷(IoT) 튜토리얼!(녹칸다/포로리야공대가자)
프로그래밍/ESP8266 & Websocket 2021. 12. 13. 23:03
(Socket.io#1) ESP8266과 Socket.IO를 이용한 실시간 사물인터넷(IoT) 튜토리얼!
녹칸다의 소켓IO(Socket io) 시리즈이다!
(녹칸다의 Socket.IO는 노드레드(node-red)를 베이스로 하므로 노드레드가 설치되어야한다!)
녹칸다가 사용하는 사물인터넷보드(wemos d1r1/esp8266)를 서버에서 실시간 양방향 통신을 하기 위한 전략으로 소켓IO를 활용해보도록 한다!
가장 효율적으로 사용할 수 있는 MQTT와 활용방안이 유사하지만 동적으로 사물인터넷보드를 그룹핑해서 제어하는데는 Socket io가 더 강점이 많은듯하다!
Socket.Io로 할 수 있는것은 MQTT도 대부분 유사하게 구현할 수 있다!
소켓IO는 사물인터넷보드의 관리를 마치 카카오톡 톡방을 운영하듯이 할 수 있다!
공통으로 소통하는 톡방에서 모든 IoT보드들을 제어할 수 있고 일부 IoT보드가 참여하는 톡방을 별도로 만들어서 무리를 지어서 제어할 수 있도록 만들어져있다!
Socket.io에서는 이런 그룹관리를 룸(ROOM)을 이용해서 제어한다!
이번편은 튜토리얼편으로 다양한 기본 원리와 앞으로의 방향성을 탐색해보도록 한다!
1.노드레드(node-red)를 베이스로해서 Socket.Io 서버를 구현한다.
(기본으로 딸려오는 chat 예제에 대해서 살펴보자)
2.클라이언트와 서버가 주고받는 이벤트와 메시지에 대해서 알아보자!
3.클라이언트에서 서버로 데이터가 업로드될때 활용가능한 옵션에 대해 알아보자!
4.서버에서 클라이언트로 메시지를 전송할때 옵션에 대해서 알아보자!
(emit, broadcast.emit, room 등등이 있다)
5.ESP8266보드 1대를 socket.io 클라이언트로 세팅하고 서버와 메시지 주고받아보기!
(채팅 예제를 베이스로 해서 해볼 것!)
6.ESP8266보드 1대에 LED 2개를 연결하고 서버에서 제어해보기! 7.ESP8266보드 3대에 LED 2개씩 연결하고 서버에서 일괄/개별 제어 해보기!(까먹음 396에서 진행예정!)
윈도우에 노드레드 설치하기(요약)
https://youtu.be/pvLeW7UkAAs
노드레드(node-red) 소켓io 플로우
https://flows.nodered.org/node/node-red-contrib-socketio
관련라이브러리(socket.io)
https://github.com/Links2004/arduinoWebSockets