[아두이노#411] (Websocket#7) LoRa통신, CAN통신, Modbus통신과 연계해보기!(어려움)(녹칸다/포로리야공대가자)
(Websocket#7) LoRa통신, CAN통신, Modbus통신과 연계해보기!(어려움)(녹칸다/포로리야공대가자)
녹칸다의 웹소켓(websocket)을 이용해서 ESP8266을 웹서버로 구동시키는 시리즈이다!
기존 ESP8266으로 구현할 수 있는 웹서버를 동적으로 구현할 수 있는 예제이다!
웹서버와 웹클라이언트 방식에서 클라이언트가 서버에게 요청한다음 응답을 받는 구조를 가진다!
그러나 서버가 주도적으로 클라이언트에게 데이터를 전송할 수 없다!
웹소켓을 이용한 웹서버는 기존 웹서버와 동일한 방식으로 동작하나 클라이언트가 받게될 응답데이터에 자바스크립트로 구현된 웹소켓 코드가 내장되어있다!
웹서버는 내부적으로 별도의 포트를 이용해서 클라이언트에 설치된 웹소켓과 소켓통신을 함으로써 양방향 통신이 가능해진다!
(웹서버와 웹소켓 2개의 통신이 동시에 이루어진다)
이번편에서는 웹소켓을 이용한 웹서버를 구현하고 1:N통신이 가능한 다른 통신방법과 연계를 해보는 이상한 예제를 만들어 보도록한다!
ESP8266보드가 웹서버 역활을하게 되면 클라이언트들과 1:N통신이 가능하지만 보드들끼리 상호작용을 하기에는 적합하지 않다!
그래서 여러대의 보드를 다른 통신방식으로 연결하고 웹클라이언트에서 내린 요청이 다른보드를 제어할 수 있도록 하려면 어떻게 해야겠는지 알아보도록 한다!
(아직 테스트를 못해봐서 가능한지 아닌지는 모르는 상태임)
첫번째는 장거리 통신 로라(LoRa)모듈인 SX1276을 이용해서 다른 보드와 무선통신을 하면서 스마트폰에서 간단하게 LED 2개 정도를 제어할 수 있도록 해보자!
두번째는 CAN통신 모듈인 MCP2515를 이용해서 다른 보드에 달려있는 LED 2개를 웹브라우저에서 제어할 수 있도록 해보자!
세번째는 RS485통신인 모드버스(MODBUS) 프로토콜로 다른 보드에 달려있는 LED 2개를 스마트폰의 웹브라우저에서 제어할 수 있도록 해보자!
(여러개의 예제가 한군데 뭉치기 때문에 어려울것 같다)
(LoRa SX1276 예제)
(Modbus max485 예제)
(캔통신 MCP2515예제)
*참고
var buffer = new ArrayBuffer(20);
var uint8View = new Uint8Array(buffer);
CAN통신라이브러리(MCP2515)
https://github.com/autowp/arduino-mcp2515
관련라이브러리(LoRa/0.8.0)
https://github.com/sandeepmistry/arduino-LoRa
관련라이브러리(CRC/0.1.2)
https://github.com/RobTillaart/CRC
LoRa레퍼런스코드(#331)
https://bota.tistory.com/1699
RS485레퍼런스코드(#347)
https://bota.tistory.com/1722
CAN통신레퍼런스코드(#125)
https://bota.tistory.com/1356