11. Send the Data using MQTT - EnglishNo/ESP32 GitHub Wiki

ESP32๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, MQTT๋ฅผ ํ†ตํ•ด ํ•œ ์‚ฌ์ดํŠธ๋กœ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ

MQTT Websocket Client ์™ธ ํŽ˜์ด์ง€ 6๊ฐœ - ๊ฐœ์ธ - Microsoftโ€‹ Edge 2023-05-20 ์˜คํ›„ 5_20_28

๊ด€๋ จ ์‚ฌ์ดํŠธ
https://www.hivemq.com/public-mqtt-broker/?fbclid=IwAR2N3SY5ROQ2qoeGP-53xDKeAdTBCNsYMPknYUOrCDk-ezLrknlVfWtOoCU

http://www.mqtt-dashboard.com/?fbclid=IwAR13RW2lICnirlhlRBXU8a60A2zIcMyoIErax9D0OAreogK8Ew2AI-At5NE

http://www.hivemq.com/demos/websocket-client/?fbclid=IwAR0BcrMLb13Doq5yrz-6aAo9PyMYH7btV8tD_bY11Olu12yRnScyu7G23xw (MQTT ๋ธŒ๋กœ์ปค ์‚ฌ์ดํŠธ)

MQTT์ด๋ž€?

  • ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๋‚˜ ๋‚ฎ์€ ๋Œ€์—ญํญ์˜ ์†Œํ˜• ๋””๋ฐ”์ด์Šค๋“ค์— ์ตœ์ ํ™”๋œ ๋ฉ”์‹œ์ง• ํ”„๋กœํ† ์ฝœ
  • MQTT ํŠน์ง•)
    • M2M(machine-to-machine), IoT(Internet of things)์—์„œ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ๋งŒ๋“  ๊ฒƒ.
    • ๋‚ฎ์€ ์ „๋ ฅ, ๋‚ฎ์€ ๋Œ€์—ญํญ ํ™˜๊ฒฝ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋จ.
    • ์ €์ „๋ ฅ, ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„คํŠธ์›Œํฌ, No TCP/IP ๊ธฐ๋ฐ˜์—์„œ ์šด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์–ด, ์†Œํ˜•๊ธฐ๊ธฐ์˜ ์ œ์–ด์™€ ์„ผ์„œ์ •๋ณด ์ˆ˜์ง‘์— ์œ ๋ฆฌ.
    • ๋ฉ”์‹œ์ง€ ๋ฒ„์Šค ์‹œ์Šคํ…œ.
    • 3๋‹จ๊ณ„์˜ QoS(Quality of service)๋ฅผ ์ œ๊ณตํ•จ.
      • 1๋‹จ๊ณ„(0): ๋ฉ”์‹œ์ง€ ํ•œ๋ฒˆ๋งŒ ์ „๋‹ฌ, ์ „๋‹ฌ์—ฌ๋ถ€ ํ™•์ธx (Fire and Forget ํƒ€์ž…)
      • 2๋‹จ๊ณ„(1): ๋ฉ”์‹œ์ง€ ํ•œ๋ฒˆ ์ด์ƒ ์ „๋‹ฌ, ๊ทผ๋ฐ ๋ฉ”์‹œ์ง€์˜ ํ•ธ๋“œ์…ฐ์ดํ‚น ๊ณผ์ •์„ ์—„๋ฐ€ํ•˜๊ฒŒ ์ถ”์ x, ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ค‘๋ณต ์ „์†ก๋  ์ˆ˜๋„ ์žˆ์Œ.
      • 3๋‹จ๊ณ„(2): ๋ฉ”์‹œ์ง€ ํ•œ๋ฒˆ๋งŒ ์ „๋‹ฌ, ๋ฉ”์‹œ์ง€์˜ ํ•ธ๋“œ์…ฐ์ดํ‚น ๊ณผ์ • ์ถ”์ , ๋†’์€ ํ’ˆ์งˆ์„ ๋ณด์žฅํ•˜์ง€๋งŒ ์„ฑ๋Šฅ์˜ ํฌ์ƒ์ด ๋”ฐ๋ฆ„.
  • MQTT ๊ตฌ์กฐ)

    image

    • publishing(๊ฒŒ์‹œ), subscribe(๊ตฌ๋…) ํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ๋ณธ ์›์น™์œผ๋กœ ํ•จ.
    • publisher, subscriber์€ ๋ชจ๋‘ broker์— ๋Œ€ํ•œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ž‘๋™, ์ฆ‰ publisher๋Š” topic(ํ† ํ”ฝ)์„ ๋ฐœํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ (brokerํ•œํ…Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™์Œ.)์œผ๋กœ, subscribe์€ ํ† ํ”ฝ์„ ๊ตฌ๋…ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ (brokerํ•œํ…Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์€ ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™์Œ.)์œผ๋กœ broker ์„œ๋ฒ„์— ์—ฐ๊ฒฐ.
    • topic์€ ์Šฌ๋ž˜์‹œ(/)๋ฅผ ์ด์šฉํ•ด์„œ ๊ณ„์ธต์ ์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋Œ€๋Ÿ‰์˜ ์„ผ์„œ ๊ธฐ๊ธฐ๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ.(์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์žฅ์†Œ๋ผ๊ณ  ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™์Œ.)

      ์˜ˆ์‹œ)

      image

    • MQTT ๋ธŒ๋กœ์ปค๋Š” ๋ฉ”์‹œ์ง€ ๋ฒ„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฉ”์‹œ์ง€๋ฅผ ํ˜๋ ค๋ณด๋‚ด๋ฉด ๋ฒ„์Šค์— ๋ถ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์ด ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์–ด๊ฐ€๋Š” ๋ฐฉ์‹์ž„.(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์€ Message Bus์— ์—ฐ๊ฒฐํ•˜๊ณ , ๊ด€์‹ฌ์žˆ๋Š” topic์„ ๋“ฑ๋กํ•ด์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌ๋…(subscribe)ํ•˜๊ฑฐ๋‚˜ ๋ฐœํ–‰(publishing)ํ•จ.) ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ "Topic"์„ ์ด๋ฆ„์œผ๋กœ ํ•˜๋Š” ๋ฉ”์‹œ์ง€ ์ฑ„๋„์„ ๋งŒ๋“ฌ.

      image

  • ๊ด€๋ จ ์šฉ์–ด๋“ค ์ •๋ฆฌ)
    • broker(๋ธŒ๋กœ์ปค): ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์œผ๋กœ, ๋ฉ”์‹œ์ง€ ์ˆ˜์‹  ๋ฐ ํ•„ํ„ฐ๋ง, ๊ฐ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌ๋…ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์‹๋ณ„, ๋ฉ”์‹œ์ง€ ์ „์†ก ๋“ฑ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ๋‹ด๋‹น.
    • M2M: M2M์€ โ€˜๊ธฐ๊ณ„โ€™ ์ค‘์‹ฌ์˜ ์—ฐ๊ฒฐ. ์ฆ‰, ์‚ฌ๋ฌผ์ธํ„ฐ๋„ท(IoT)์™€ ๋ฐ˜๋Œ€์ด๋ฉฐ, ๊ธฐ๊ณ„๊ฐ€ ์ˆ˜๋™์ ์œผ๋กœ ์ •๋ณด ์ˆ˜์ง‘, ๊ฐ€๊ณตํ•˜์—ฌ ์ธ๊ฐ„์—๊ฒŒ ์ „๋‹ฌ.

      image

    • TCP: IP ํ”„๋กœํ† ์ฝœ ์œ„์—์„œ ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ์ „์†ก๊ณ„์ธต ํ”„๋กœํ† ์ฝœ๋กœ, ์ธํ„ฐ๋„ท ํ™˜๊ฒฝ์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉ.
      • ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค ์ œ๊ณต.
      • ์ „์ด์ค‘(Full Duplex)๋ฐฉ์‹์˜ ์–‘๋ฐฉํ–ฅ ๊ฐ€์ƒ ํšŒ์„ ์„ ์ œ๊ณต.(๋ฐ์ดํ„ฐ๋ฅผ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋™์‹œ์— ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์˜๋ฏธ๋กœ ์ƒ๊ฐํ•จ.)
      • ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ๋ณด์žฅ.(๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜์—ฌ ํ™•์‹คํžˆ ์ฃผ๊ณ  ๋ฐ›๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ.)
    • UDP(User Datagram Protocol): ์ธํ„ฐ๋„ท์ƒ์—์„œ ์„œ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์ •๋ณด๋ฅผ ๋ณด๋‚ธ๋‹ค๋Š” ์‹ ํ˜ธ๋‚˜ ๋ฐ›๋Š”๋‹ค๋Š” ์‹ ํ˜ธ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ , ๋ณด๋‚ด๋Š” ์ชฝ์—์„œ ์ผ๋ฐฉ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ.(๋ณด๋‚ด๋Š” ์ชฝ์—์„œ ๋ฐ›๋Š” ์ชฝ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์—†๊ณ , ํ™•์ธํ•  ํ•„์š”๋„ ์—†๋„๋ก ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœํ† ์ฝœ.)
      • TCP์™€ ๊ฐ™์ด OSI ํ‘œ์ค€๋ชจ๋ธ๊ณผ TCP/IP ๋ชจ๋ธ์˜ ์ „์†ก๊ณ„์ธต์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ.
      • ์‹ ๋ขฐ์„ฑ์ด ๋ณ„๋กœ์ธ ๋Œ€์‹  ์‹ ์†์„ฑ์ด ๋†’์Œ.
    • ์ „์†ก๊ณ„์ธต: ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  IP์— ์˜ํ•ด ์ „๋‹ฌ๋˜๋Š” ํŒจํ‚ท์˜ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์žฌ์ „์†ก ์š”๊ตฌ ์ œ์–ด ๋“ฑ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ณ„์ธต.
    • ํŒจํ‚ท: ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†กํ•˜๊ธฐ ์‰ฝ๋„๋ก ์ž๋ฅธ ๋ฐ์ดํ„ฐ์˜ ์ „์†ก๋‹จ์œ„.

ESP32์„ ํ†ตํ•œ DHT11๋กœ ์˜จ๋„์™€ ์Šต๋„๋ฅผ ์ฒดํฌํ•œ ๊ฒƒ์„ MQTT broker๋กœ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•

    MQTT_Data _ Arduino IDE 2 1 0 2023-05-19 ์˜คํ›„ 8_42_02

  1. "Arduino IDE"์—์„œ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•œ๋‹ค.
     #include "EspMQTTClient.h" // MQTT ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
     #include "DHT.h" // DTH.h ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€
     DHT dht(13, DHT11); // DHT ์„ค์ • dht(ํ•€, DHT ์ข…๋ฅ˜)
    
     EspMQTTClient client(
         "(์™€์ดํŒŒ์ด ์ด๋ฆ„ ์ž…๋ ฅ)", // SSID(์™€์ดํŒŒ์ด ์ด๋ฆ„)
         "(์™€์ดํŒŒ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ)", // PW (์™€์ดํŒŒ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ)
         "(broker ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€๋ฉด ์žˆ๋Š” Host ์ฐฝ ์ฃผ์†Œ ์ž…๋ ฅ)", // MQTT Broker ์„œ๋ฒ„ IP (MQTT ๋ธŒ๋กœ์ปค ์‚ฌ์ดํŠธ ์ฃผ์†Œ)
         "(์›ํ•˜๋Š” ClientID ์ž…๋ ฅ)", // ํด๋ผ์ด์–ธํŠธ ์ด๋ฆ„(https://www.hivemq.com/demos/websocket-client/?fbclid=IwAR0BcrMLb13Doq5yrz-6aAo9PyMYH7btV8tD_bY11Olu12yRnScyu7G23xw ์—ฌ๊ธฐ์— ๋“ค์–ด๊ฐˆ ๋•Œ ๋‚˜์˜ค๋Š” "ClientID"๋ฅผ ๊ฐ€๋ฆฌํ‚ด.)
         1883 // MQTT ํฌํŠธ๋ฒˆํ˜ธ(1883๋ฅผ ์ž…๋ ฅํ•ด์•ผ ๋˜๋Š” ๊ฒƒ ๊ฐ™์Œ.)
     );
    
     char temp[10];
     char humid[10];
    
     float tem;
     float hum;
    
     void setup() {
         Serial.begin(9600); // ํ•จ์ˆ˜ ๊ด„ํ˜ธ ์•ˆ์˜ ์ˆซ์ž๋Š” ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ์†๋„๋ฅผ ์˜๋ฏธ, 9600(9600bps (๋น„ํŠธ/์ดˆ))๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ฐ’
         dht.begin(); // ์„ผ์„œ์™€ ํ†ต์‹ ํ•˜๊ธฐ ์ „ ์ ์ ˆํ•œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์„ค์ •ํ•˜๊ณ , ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜, DHT11์™€์˜ ํ†ต์‹  ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ์ธก์ •์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜
    
         client.enableDebuggingMessages(); // MQTT ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜.
         client.enableLastWillMessage("smartDevice/info", "I am going offline"); // ํ•ด๋‹น MQTT topic์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ๋Š์–ด์งˆ ๋•Œ ๋ธŒ๋กœ์ปค์—๊ฒŒ ๋ณด๋‚ผ ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜ํ•˜๋Š” ํ•จ์ˆ˜. 
     }
    
     void onConnectionEstablished() {
     }
    
     void loop() {
         client.loop();
    
         tem = dht.readTemperature(); // ์˜จ๋„ ๊ฐ’ ์ €์žฅ
         hum = dht.readHumidity(); // ์Šต๋„ ๊ฐ’ ์ €์žฅ
    
         sprintf(temp, "%.1f", tem); // ์‹ค์ˆ˜ํ˜•์„ sprintf() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์†Œ์ˆ˜์  ์•„๋ž˜ ๋‘๋ฒˆ์งธ๊นŒ์ง€์˜ ์ˆซ์ž(๊ทธ ์ดํ›„๋Š” ๋ฐ˜์˜ฌ๋ฆผ)์„ ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜.
         sprintf(humid, "%.1f", hum);
    
         Serial.print("Temperature : "); Serial.print(tem); Serial.println("*C");
         Serial.print("Humidity : "); Serial.print(hum); Serial.println("%");
    
         client.publish("smartDevice/DHT_temp", temp); // MQTT brokerํ•œํ…Œ "smartDevice/DHT"์ด๋ผ๋Š” Topic์— ๋ฉ”์‹œ์ง€๋ฅผ publishํ•  ๋•Œ ์‚ฌ์šฉ.
         client.publish("smartDevice/DHT_humid", humid);
         delay(15000);
    }
    

  2. ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ปดํŒŒ์ผํ•œ๋‹ค.

    MQTT Websocket Client ์™ธ ํŽ˜์ด์ง€ 4๊ฐœ - ๊ฐœ์ธ - Microsoftโ€‹ Edge 2023-05-20 ์˜คํ›„ 8_35_40

  3. ๊ทธ๋ฆฌ๊ณ  MQTT Websocket Client ์‚ฌ์ดํŠธ์—์„œ ์—ฐ๊ฒฐํ•œ๋‹ค.

    MQTT_Data _ Arduino IDE 2 1 0 2023-05-20 ์˜คํ›„ 5_28_15 MQTT Websocket Client ์™ธ ํŽ˜์ด์ง€ 6๊ฐœ - ๊ฐœ์ธ - Microsoftโ€‹ Edge 2023-05-20 ์˜คํ›„ 5_20_28

  4. ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด๋‚ด์ง„ ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ , MQTT Websocket Client ์‚ฌ์ดํŠธ์˜ "Messages"์ฐฝ์—์„œ ์ˆซ์ž๊ฐ€ ๋œจ๋ฉด ์„ฑ๊ณตํ•œ ๊ฒƒ์ด๋‹ค.

      ์ด๋ฒˆ ์‹ค์Šต์—์„œ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ์ 

      • ์•„๋‘์ด๋ˆ„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ MQTT๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฒ•์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.(EspMQTTClient ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, EspMQTTClient client() ์‚ฌ์šฉ๋ฒ•, client.publish() ๋“ฑ)
      • MQTT๊ฐ€ ์ž‘๋™ํ•˜๋Š” ์›๋ฆฌ๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.("publishing"์œผ๋กœ "broker"ํ•œํ…Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ , "subscribe"์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ๊ฒƒ.)
      • TCP, UDP์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋จ.
      • EspMQTTClient client()์•ˆ์˜ ํฌํŠธ๋ฒˆํ˜ธ๋Š” ์ฒ˜์Œ์—” MQTT Websocket Client ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‚˜์˜ค๋Š” Port์ฐฝ์˜ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ "1883"๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋จ.

      ์ด๋ฒˆ ์‹ค์Šต์—์„œ ์–ด๋ ค์› ๋˜ ์ ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ์‹

      • ์ฒ˜์Œ์—” EspMQTTClient client์—์„œ ()์•ˆ์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ชฐ๋ž์œผ๋‚˜, ๊ทธ์ € ""์•ˆ์„ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
      • ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์ฑ— GPT๋‚˜ ๋‹ค๋ฅธ ํ•™์ƒ์˜ ๋ณด๊ณ ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜๋Š” ๋ฐ์—๋„ MQTT Websocket Client ์‚ฌ์ดํŠธ์˜ Messages ์ฐฝ์—์„œ ๋ฉ”์‹œ์ง€๊ฐ€ ๋œจ์งˆ ์•Š์•˜๋Š”๋ฐ, ClientID์—์„œ "DongWoo"๋ฅผ "Dong Woo"๋ผ๊ณ  ๋„์–ด์“ฐ๊ธฐ ํ•˜๋‹ˆ๊น ๊ฐ‘์ž๊ธฐ ๋ฉ”์‹œ์ง€๊ฐ€ ๋œจ์ง€ ์‹œ์ž‘ํ•จ...
โš ๏ธ **GitHub.com Fallback** โš ๏ธ