먼저 내 개발환경은 다음과 같다.
- mosquitto
- windows 노트북
- raspberry pi zero 2W - 2개
노트북은 broker가 되고, raspberry pi zero 2W 한대는 pub, 다른 한대는 sub 가 될것이다.
그럼 진행해보자
먼저 windows에 mosquitto 설치를 해주고, ( 설치하면 자동으로 브로커 실행되더라,,)
https://kksp12y.tistory.com/117
MQTT 알아보자 - mosquitto
요즘 긴 시간의 출퇴근으로 글 작성을 잘 못한다..어서 자취를 알아봐야겠다. 여튼 오늘은 MQTT에 대해 조금 알아보려한다. MQTT란?먼저 MQTT란 무엇일까?MQTT(Message Queuing Telemetry Transport)는 IoT(사물
kksp12y.tistory.com
설치는 저기 보면 된다.
설치가 완료 되면 설정을 바꿔주자
기본적으로 로컬호스트 ( 127.0.0.1 ) 로 설정되어 있어 다른 곳에서 접근을 못할거다.
그래서 이 ip를 모든 ip가 접근할 수 있게끔 해주자
방법은 쉽다.
mosquitto가 설치된 곳으로 가보자 (보통 C:\Program Files\mosquitto 이다 )
가보면 다음과 같은 파일이 있을 것이다.
이곳에 맨 마지막에 다음을 추가해주자
간단하게 설명하면
1883 포트를 열고 모든 ip에서 들어와도 받아주겠다 이말이야~
그리고 밑은 어느 누구나 받아주냐 인데 이건 false로 해줘야 보안이 낫벳이야
그리고 밑은 패스워드 설정할 거기때문에 추가했어
(" " 이거 안넣어도돼 password_file에. 그리고 \아니고 / 로 바꿔줘 )
이렇게 해주고 일단 현재 실행중인 mqtt 프로세서 종료시켜주자
taskKill /IM mosquitto.exe /F
종료하고나서
mosquitto_passwd.exe -c passwd.txt myuser
이걸해주자 myuser는 id이니 알아서 입력하고
비번은 위 명령어를 엔터치면 치는 공간나와
비번 입력해주면 알아서 passwd.txt가 C:\Program Files\mosquitto 안에 생겨 ( -c: 새 파일 생성 )
비번 치는데 * 이런거 안나와도 입력되고 있는 거니 걱정마셈
그리고나서 아래 명령어 입력해주자
mosquitto.exe -v -c "C:\Program Files\mosquitto\mosquitto.conf"
그럼 실행될거야
자 그럼 라즈베리파이에서 코드를 짜주자
일단 mqtt 라이브러리는 당연히 설치가 되어 있어야 겠지?
pip install paho-mqtt
설치 잘 해주고 (나는 2.1.0버전임)
아래와 같이 파이썬 코드 짜주자
import paho.mqtt.client as mqtt
# 브로커 IP
broker_ip = "192.168.0.9"
broker_port = 1883 # 기본 포트
# MQTT 클라이언트 생성
client = mqtt.Client()
client.username_pw_set("myuser", "****")
# 브로커 연결
client.connect(broker_ip, broker_port)
# 메시지 발행
topic = "bin/user"
message = "1"
client.publish(topic, message)
print(f"메시지 보냄: {message} → {topic}")
client.disconnect()
이후 실행해보면?
이렇게 됨을 알 수 있다.
일단 퍼블리셔만 했고 다음 포스팅에서 sub도 해보자
'통신 > MQTT' 카테고리의 다른 글
[controller] using MQTT (들어가기 앞서) (0) | 2025.05.26 |
---|---|
raspberry pi zero 2 W에 mosquitto 설치 (0) | 2025.04.27 |
mqtt - bin파일 전송 -2 (0) | 2025.04.18 |
MQTT Explorer (0) | 2025.03.24 |
MQTT 알아보자 - mosquitto (0) | 2025.03.19 |