๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/mqtt8

[MQTT] presence detection ์—์„œ qos ์™€ retain ์„ค์ • ์ตœ๊ทผ ์ง„ํ–‰ํ•œ ๊ฒƒ ์ค‘์— ์œ ์šฉํ•˜๊ฒŒ ์ž˜ ์‚ฌ์šฉํ•œ paho-mqtt option์ด ์žˆ์–ด์„œ ๊ธฐ๋กํ•œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ mqtt ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์—ˆ๋‹คmqtt ํ†ต์‹ ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ main client ์—์„œ sub client ์˜ ์—ฐ๊ฒฐ ์ƒํƒœ(online/offline)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ qos, retain์„ ์„ค์ •ํ•˜๊ณ , will_set๋„ ๋“ฑ๋กํ–ˆ๋‹ค์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉฐ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž! โœจ ์—ฌ๊ธฐ์„œ ์ƒˆ๋กœ ์•Œ๊ฒŒ๋œ ์šฉ์–ด : presence detection→ IoT, MQTT, ์ฑ„ํŒ… ์‹œ์Šคํ…œ์— ๋งŽ์ด ์“ฐ์ด๋Š” ๊ฐœ๋…์ด๋‹ค.→ ํ˜„์žฌ ๋ˆ„๊ฐ€ ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”์ง€(online), ๋ˆ„๊ฐ€ ์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ๋Š”์ง€(offline)์— ๋Œ€ํ•œ ์ƒํƒœ๋ฅผ ์‹œ์Šคํ…œ์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŒŒ์•…ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.→ "ํด๋ผ์ด์–ธํŠธ์˜ ์ ‘์† ์ƒํƒœ ๊ฐ์ง€" ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด .. 2025. 5. 8.
[MQTT] Keep Alive ์ตœ๊ทผ์— MQTT ํ†ต์‹  ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ Keep Alive ์„ค์ •์— ๊ด€๋ จํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ๋‹ค. Status Update ํ•˜๋Š” mqtt ํด๋ผ์ด์–ธํŠธ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ์„ฑํ•˜๊ณ send_status ๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. import paho.mqtt.client as mqttimport uuidimport timeclass RobotStatusUpdater: def __init__(self, broker_ip, topic="robot/status"): self.client = mqtt.Client(f"Robot_Status_Updater_{uuid.uuid4()}") self.client.connect(broker_ip, 1883) self.topic = to.. 2025. 3. 12.
[MQTT] pc 2๊ฐœ ํ†ต์‹  (python, ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ) ๊ฐœ์š”PC 2๊ฐœ๊ฐ€ ์žˆ๋‹ค.ํ•˜๋‚˜๋Š” User๊ฐ€ ์—…๋ฌด๋ฅผ ์š”์ฒญํ•˜๊ณ , ๋‚˜๋จธ์ง€ ํ•˜๋‚˜๋Š” Robot์ด ๊ทธ ์—…๋ฌด๋ฅผ ๋ฐ›์•„์„œ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ๋ฅผ User๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์ค„ ๊ฒƒ์ด๋‹ค.์ „ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Robot์ด ํ•˜๋‚˜ ๋ฟ์ด๋ผ์„œ socket์œผ๋กœ ์—ฐ๊ฒฐ์„ ํ–ˆ๋‹ค.์ด๋ฒˆ์—๋Š” Robot์ด ์ถ”๊ฐ€๋กœ ๋” ๋Š˜์–ด๋‚  ๊ฐ€๋Šฅ์„ฑ์„ ์—ผ๋‘ํ•ด์„œ MQTT๋ฅผ ํ™œ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํŽธํžˆ PC, Robot์ด๋ผ๊ณ  ์นญํ•˜๊ฒ ๋‹ค.PC → Robot : ์ˆ˜ํ–‰ํ•  ์ž‘์—… (ํ…์ŠคํŠธ ํ˜•์‹) ์ „๋‹ฌRobot → PC : ์ž‘์—… ์ƒํƒœ (์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ) ์ „๋‹ฌ ๊ตฌ์กฐPC๋Š” ์ž‘์—…์ง€์‹œ๋ฅผ ๋ฐœํ–‰ํ•˜๊ณ , ๋กœ๋ด‡์€ ์ด๋ฅผ ๊ตฌ๋…๋กœ๋ด‡์€ ์ƒํƒœ๋ฅผ ๋ฐœํ–‰ํ•˜๊ณ , PC๋Š” ์ด๋ฅผ ๊ตฌ๋…ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธTopic ์„ค๊ณ„PC → Robot: "robot/task"Robot → PC: "robot/status" ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ ๊ตฌ.. 2025. 2. 25.
[MQTT] Mac mosquitto ์„ค์น˜ / ์‹คํ–‰ / ์ค‘์ง€ 1. mosquitto ์„ค์น˜brew install mosquitto 2. mosquitto ์„œ๋น„์Šค ์‹คํ–‰brew services start mosquitto 3. mosquitto ์„œ๋น„์Šค ์ค‘์ง€brew services stop mosquitto ๋ฉ”์„ธ์ง€ ํ™•์ธ์€ MQTT Explorer ์‚ฌ์šฉํ–ˆ๋‹ค. ์—ฐ๊ฒฐ ์ž˜๋จ ~ 2025. 2. 25.
[MQTT] python ์œผ๋กœ sub / pub ๊ตฌํ˜„ํ•˜๊ธฐ MQTT์™€ Kakfa ๋น„๊ต๊ฐœ์š”์ตœ๊ทผ์— ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ ์ค‘์— socket ํ†ต์‹ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ , responce๋ฅผ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ถˆ์•ˆ์ •ํ•œ ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ํ•˜๋‹ˆ๊นŒ socket ์—ฐ๊ฒฐ ๋ถˆ์•ˆ์ •, ์—ฐ๊ฒฐ ์ง€์—ฐ ๋“ฑ๋“ฑ ์ด์Šˆ๋“ค์ด ๋ฐœbonory.tistory.comkafka์™€ mqtt์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ณด๊ณ  ์ •๋ฆฌํ–ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ ๋Š” mqtt๋ฅผ ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ง„ํ–‰1. python์œผ๋กœ topic์— message๋ฅผ ์ „์†กํ•œ๋‹ค.2. MQTT Explorer๋กœ message๋ฅผ ์ž˜ ๋ฐ›๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.3. python์œผ๋กœ topic์„ subscribeํ•˜๊ณ  message๋ฅผ ํ™•์ธํ•œ๋‹ค. (0) pip ์„ค์น˜pip install paho-mqtt (1) python - message ์ „์†กimport paho.mqtt.client a.. 2024. 10. 28.
MQTT์™€ Kakfa ๋น„๊ต ๊ฐœ์š”์ตœ๊ทผ์— ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ ์ค‘์— socket ํ†ต์‹ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ , responce๋ฅผ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ–ˆ๋Š”๋ฐ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ถˆ์•ˆ์ •ํ•œ ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ํ•˜๋‹ˆ๊นŒ socket ์—ฐ๊ฒฐ ๋ถˆ์•ˆ์ •, ์—ฐ๊ฒฐ ์ง€์—ฐ ๋“ฑ๋“ฑ ์ด์Šˆ๋“ค์ด ๋ฐœ์ƒํ•ด์„œ๋‹ค์Œ์—๋Š” mqtt ํ˜น์€ kafka๋ฅผ ์‚ฌ์šฉํ•ด๋ด์•ผ๊ฒ ๋‹ค ์‹ถ์–ด์„œ ์„œ์น˜ํ•ด๋ณด์•˜๋‹ค.๊ฐ„๋‹จํ•œ ๋น„๊ต· MQTT : ๊ฒฝ๋Ÿ‰ ๋ฉ”์‹œ์ง•, ๋‚ฎ์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๋ฐ ๋‚ฎ์€ ๋ฐ์ดํ„ฐ ํŠธ๋ž˜ํ”ฝ์— ์ ํ•ฉํ•˜๋‹ค. IoT๋‚˜ ๊ฐ„๋‹จํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์œ ๋ฆฌํ•˜๋‹ค.· Kafka : ๋†’์€ ๋ฐ์ดํ„ฐ ํŠธ๋ž˜ํ”ฝ ๋ฐ ๋ฉ”์‹œ์ง€ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉํ•˜๋‹ค. ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•  ๋•Œ ์œ ๋ฆฌํ•˜๋‹ค. ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์ •๋ฆฌโœ… MQTT· Message Queuing Telemetry Transport· ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ง„ ์žฅ์น˜๋‚˜ IoT(์‚ฌ๋ฌผ์ธํ„ฐ๋„ท) ์žฅ์น˜ ์‚ฌ์ด์— ํ†ต.. 2024. 10. 23.
[MQTT] message๋ฅผ ์•ˆ๋ณด๋‚ด๋Š”๋ฐ ๊ณ„์† message๊ฐ€ ์Œ“์ด๋Š” issue ์‚ฌ์‹ค ์ด๊ฑด ๋ฌธ์ œ๊นŒ์ง€๋Š” ์•„๋‹ˆ๊ณ , ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ๊ณ  ์‹ถ์—ˆ๋‹ค.์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” mqtt explorer ์— ์—ฐ๊ฒฐ์„ ํ–ˆ๋‹ค. [MQTT] mqtt client์— connect ์•ˆ๋˜๋Š” ๋ฌธ์ œec2 instance๋ฅผ ์ƒ์„ฑํ•˜๊ณ  mosquitto๋ฅผ ์‹คํ–‰์‹œ์ผฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  mqtt connection tool๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๋‹ˆ, ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค Starting in local only mode. Connections will only possible from clients running on this machine.bonory.tistory.com ์—ฐ๊ฒฐ์„ ํ•˜๊ณ  ๋ณด๋‹ˆ,๋‚˜ ์—ฐ๊ฒฐ๋งŒ ํ•˜๊ณ  ์•„๋ฌด ๊ฒƒ๋„ ์•ˆํ–ˆ๋Š”๋ฐ ?! ์ž๊พธ ๋ช‡์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ message๊ฐ€ ์Œ“์ด๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ์ˆซ์ž๊ฐ€ ๊ณ„์† ๋Š˜์–ด๋‚ฌ๋‹ค.๋ญ์ง€ ??????? ํ•œ๋ฒˆ ํ™•์ธํ•ด๋ณด.. 2024. 3. 7.
[MQTT] mqtt client์— connect ์•ˆ๋˜๋Š” ๋ฌธ์ œ ec2 instance๋ฅผ ์ƒ์„ฑํ•˜๊ณ  mosquitto๋ฅผ ์‹คํ–‰์‹œ์ผฐ๋‹ค.๊ทธ๋ฆฌ๊ณ  mqtt connection tool๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๋‹ˆ, ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค Starting in local only mode. Connections will only possible from clients running on this machine.๋กœ์ปฌ ๋ชจ๋“œ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐCreate a configuration file which defines a listener to allow remote access.์›๊ฒฉ ์—‘์„ธ์Šค๋ฅผ config๋ฅผ create ํ•˜๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค ์ฒซ๋ฒˆ์งธ, mosquitto config๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.linux๋ผ๋ฉด /etc/mosquitto/mosquitto.conf ์— ์œ„์น˜ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค์ •๋˜์–ด์žˆ๋Š”๋ฐ, ์•„.. 2024. 3. 6.