[아두이노#209] esp8266wifi 보드끼리MQTT 1편(LED/FND/가변저항/1602LCD/광센서)(wemos d1r1/사물인터넷(iot)시리즈#48/녹칸다/포로리야공대가자)
프로그래밍/ESP8266 MQTT 2021. 1. 5. 23:48
esp8266wifi 보드끼리MQTT 1편(LED/FND/가변저항/1602LCD/광센서)(wemos d1r1/사물인터넷(iot)시리즈#48/녹칸다/포로리야공대가자)
-이번편의 핵심아이디어는 클라이언트가 스마트폰이 아니라 사물인터넷보드(wemos d1r1)끼리 MQTT메시지를 주고받는 것이다!
-하나의 보드가 publish한 메시지를 단일 혹은 복수개의 보드가 subscribe한다음 정보를 표시하거나 어떤 동작을 하게끔 구현하는 예제이다!
-스마트폰을 MQTT Client로 활용하면 GUI가 모두 훌륭하게 구현되어 있기 때문에 활용하기엔 좋으나, 때때로 보드끼리 데이터를 주고 받을 필요가 있다!
-1번보드에서 버튼(택트스위치)을 누르면 2번보드의 LED가 켜지거나 꺼지도록 하라!
-1번보드에서 버튼을 누르면 2번보드의 FND모듈인 TM1637에 업카운트가 되거나 다운카운트가 되도록 하라!
-1번보드에서 가변저항(포텐셔미터)을 돌리면 아날로그값이 2번보드의 LCD에 출력되도록 하라!
-1번보드에서 광센서(CDS)값을 publish하면 2번보드의 LCD에 값이 출력되도록 하라!
예제 209-1-1 사물인터넷보드(wemos d1r1)에 버튼(택트스위치) 2개를 D5,D6에 연결했다!
D5에 연결된 버튼을 누르면 타겟이되는 다른 클라이언트에 적색LED가 켜지고,
D6에 연결된 버튼을 누르면 타겟이되는 다른 클라이언트에 적색LED가 꺼지도록 하시오!
예제 209-2-1 사물인터넷보드(wemos d1r1)에 버튼(택트스위치) 2개를 D5,D6에 연결했다!
D5에 연결된 버튼을 누르고 있는 동안에만 타겟 클라이언트의 적색LED가 켜지도록 하시오!
D6에 연결된 버튼을 누르고 있는 동안에만 타겟 클라이언트의 녹색LED가 켜지도록 하시오!
예제 209-3-1 사물인터넷보드(wemos d1r1)에 버튼(택트스위치) 2개를 D5,D6에 연결했다!
D5에 연결된 버튼을 누르면 FND모듈을 업카운트 하시오!
D6에 연결된 버튼을 누르면 FND모듈을 다운카운트 하시오!
예제 209-4-1 사물인터넷보드(wemos d1r1)에 가변저항을 A0에 연결했다!
가변저항에서 출력되는 아날로그값을 읽어서 MQTT로 publish하라!
예제 209-5-1 사물인터넷보드(wemos d1r1)에 광센서(CDS)을 A0에 연결했다!
가변저항에서 출력되는 아날로그값을 읽어서 MQTT로 publish하라!
관련라이브러리(pubsubclient)
https://pubsubclient.knolleary.net/
관련라이브러리(TM1637)
https://github.com/avishorp/TM1637
관련라이브러리(LiquidCrystal_I2C)