[아두이노#472] (ESPNOW#4) ESP8266보드 1:3으로 단방향 통신하는 방법!(1:N / N:1)(녹칸다/포로리야공대가자)
프로그래밍/ESPNOW 2022. 4. 28. 22:23
(ESPNOW#4) ESP8266보드 1:3으로 단방향 통신하는 방법!(1:N / N:1)
녹칸다의 ESPNOW 시리즈이다!
ESP보드는 제조사에서 제공하는 보드끼리 통신하는 프로토콜이 있다!
그것이 바로 ESPNOW이다!
ESP32나 ESP8266보드에 별도의 장치를 추가하지 않더라도 서로 통신이 가능하다!
1:1로 구성할수 있고 1:N으로 구성할수 있고 N:N으로 구성할 수 있고 단방향, 양방향 모두 가능한것 같다!
이번편은 ESP8266보드 4대를 준비해서 1:3으로 단방향 통신을 해보도록 하자!
①1대의 보드에서 3대의 보드쪽으로 데이터를 전송하는 내용과 ②3대의 보드에서 1대의 보드쪽으로 데이터를 전송하는 것으로 분리해서 생각해볼 수 있다!
①에서는 ③동일한 데이터를 3대에 모두 전송하는 브로드캐스팅과 ④특정한 노드를 콕 찝어서 전송하는 방식을 생각해볼 수 있다!
②에서는 각자 측정한 센서데이터를 하나의 보드로 수집하는 것을 생각해 볼 수 있다!
①~④ 내용을 적당한 예시를 이용해서 예제로 구현해보도록 하자!
전반부는 텍스트 메시지를 주고 받는 것으로 하고 후반부는 가상의 센서값(랜덤값)을 이용해서 데이터를 ESPNOW로 수집하거나 제어하는 예제를 구현해보자!
(실제로한거)
1.컨트롤러보드와 슬레이브보드를 1:3으로 구성하고 컨트롤러의 시리얼입력으로 보드번호와 LED상태를 순차적으로 입력하면 개별제어되도록 하시오!
예시) 10 = 1번보드의 LED를 꺼라
예시) 11 = 1번보드의 LED를 켜라
2.(1)예제에서 B0라고 입력하면 모든보드의 LED를 끄고, B1이라고 모든보드의 LED를 켜도록 하시오!
3.컨트롤러에 버튼3개를 연결하고 버튼1번은 보드1번의 LED를 토글하고, 버튼2번은 보드2번을 토글하고, 3번은 3번을 토글시키시오!
4.컨트롤러3, 슬레이브1로 구성해서 3대의보드가 전송한 메시지를 슬레이브에 출력하시오!
5.슬레이브쪽에서 어떤 컨트롤러에서 온 메시지인지를 구분하도록 하시오!(컨트롤러1~3코드는 4번예제와 같음)
6.컨트롤러에 가상의 온습도 센서가 있다고 가정하고 센서값을 슬레이브쪽으로 전송하시오!(dht-11) (컨트롤러 3대 코드 모두 같음)
7.컨트롤러에서 0또는 1을 1초마다 번갈아가면서 전송한다 슬레이브는 0을받으면 해당되는보드의 LED를 끄고, 1이면 켜도록 하시오!