RasberryPi

Raspberry Pi 3B+ MQTT

찬영_00 2025. 3. 26. 11:10

오늘 포스팅에서 해 볼 것은 다음과 같다.

1. paho-mqtt install
2. MQTT 데이터 전송 코드 짜기
3. MQTT Explorer에서 확인

 

자 그럼 시작해보자

 

paho-mqtt install

너무 간단하긴 한데 그냥 진행해보자

일단 저번 라즈베리파이를 설정했음으로 다음을 진행해보자

먼저 나는 CMD에서 진행해 보겠다. (도중에 ip주소 변경, 192.168.0.5로 변경함)

이렇게 라즈베리파이에 SSH연결을 한 것을 확인할 수 있다. (비번은 쳐도 * 표시 안해줌으로 걱정마셈 잘 입력되는거임 )

 

sudo apt update 해주면 오류가 발생한다. Key 문제라는데

https://stupidly-honest.tistory.com/26

 

apt-get update gpg key 에러 해결하기(solved)

에러 내용 방법 1 1. apt-key list 확인 가지고 있는 key를 확인합니다. sion@sion:/etc/apt$ apt-key list Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). /etc/apt/trusted.gpg -------------------

stupidly-honest.tistory.com

이곳 참고하자

그리고 sudo apt upgrade 도 진행해주자

 

이후 우리는 pip로 install 할거라 다음을 입력

sudo apt install python3-pip

너프한거지만 보통 Y or n 에서 대문자로 적혀있는 것이 있는데 이런건 아무것도 입력안하고 엔터 눌렀을 때 자동으로 선택되는 쪽은 대문자로 선택되게끔 Shell스크립트로 되어있을 거다. 그래서 y N일땐 엔터만 치면 No로 인식한다.

 

설치후에  다음을 입력하자

pip install paho-mqtt

 

흠 문제가 발생했다.

 

흠,, 그냥 무시하고 설치해도 되지만 (sudo pip3 install paho-mqtt --break-system-packages) 위험을 감수할 필요가 있을까..?

 

가상환경을 만들어주자

 

1-1 가상환경 만들기

python3 -m venv myenv -> 가상환경 만들기
source myenv/bin/activate -> 가상환경 활성화
pip install paho-mqtt         -> 설치

deactivate -> 가상환경 비활성화

 

비활성화는 알아두면 좋으니 넣어두었다.

 

자 이렇게 간단히 설치를 해보았다.

 

MQTT 데이터 전송 코드 짜기

라이브러리를 설치했으니 이제 코드를 짜볼건데 함수를 알아야 코드를 짜지~~!

https://pypi.org/project/paho-mqtt/

 

Client Challenge

JavaScript is disabled in your browser. Please enable JavaScript to proceed. A required part of this site couldn’t load. This may be due to a browser extension, network issues, or browser settings. Please check your connection, disable any ad blockers, o

pypi.org

이럴땐 공식문서를 잘 보면 된다. ( 알아서 잘 보고 습득하세여~)

 

에디터는 vi 써도 되는데 여기서는 nano사용하겠다.

 

nano pub.py로 파일 하나 만들고 다음과 같이 코드를 만들었다.

import paho.mqtt.client as mqtt
import time

broker_address = "127.0.0.1"  # Windows의 IP 주소 (cmd → `ipconfig` 확인)
port = 1883
topic = "sensor/data"

client = mqtt.Client()
client.connect(broker_address, port, 60)

while True:
    message = "Temperature: 25°C"
    client.publish(topic, message)
    print(f"Sent: {message}")
    time.sleep(5)

 

그리고 아직 실행하지 말고, mqtt Explorer를 실행하자 (host는 라즈베리파이 mqtt 브로커이기 때문에 라즈베리파이 ip를 적어주자,)

 

아 놓친게 있다,, ( 라즈베리파이에도 mosquitto 깔아줘야하는데 하하,, 맞다 컴퓨터에도 설치는 당연히 해줘야한다.)

sudo apt install mosquitto mosquitto-clients

 

설치해주고 Mosquitto 브로커가 외부 연결 허용시켜주자

sudo nano /etc/mosquitto/mosquitto.conf

추가 내용
listener 1883
allow_anonymous true

재시작
sudo systemctl restart mosquitto

Test
mosquitto_sub -h 192.168.0.5 -p 1883 -t "snesor/data"

 

 MQTT Explorer에서 확인

 

이렇게 확인이 가능하다.

'RasberryPi' 카테고리의 다른 글

Raspberry Pi 2 W OTG setting -1 (해결x)  (0) 2025.03.30
Raspberry Pi - SSH with VS code  (0) 2025.03.29
RaspberryPi 3B+ MQTT & sqlite  (0) 2025.03.28
RaspberryPi 3B+ sqlite3  (0) 2025.03.27
라즈베리파이 3B+ 이미지 굽기  (0) 2025.03.25