본문 바로가기

IT

WIZnet RP2040-HAT을 통한 MQTT - Publish & Subscribe [CircuitPython]

WIZnet RP2040-HAT github - https://github.com/Wiznet/RP2040-HAT-CircuitPython

 

 

 

 

MQTT?

  •  M2M과 사물인터넷에서 사용하기 위해 만들어진 경량의 메시지 프로토콜 
  • TCP에서 동작하는 형태 
  • <서버>와 <클라이언트> 구조가 아닌 <Broker><Publisher><Subscriber> 구조로 이루어져있다. 
  • <Publisher>는 Topic을 발행한다 
  • <Subscriber>는 Topic을 구독한다 
  • <Broker>는 중계 역할을 하며 1:N 통신에 적합하다 

MQTT

Environment

1. Mosquitto? + 설치하기

- 모스키토는 MQ Telemetry Trasport 프로토콜 (MQTT) 3.1과 3.1.1을 구현한 오픈소스 메세지 브로커이다.
- 저전력 파워센서, 모바일디바이스, 임베디컴퓨터, 아두이노, 마이크로 컨트롤러같은 "디바이스 To 디바이스"의 메세징 처리에 적합하다.

https://mosquitto.org/download/

 

Download

Mosquitto Enhancements These projects can be used to add extra features to Mosquitto. Management Center: A web UI for managing Mosquitto instances. In particular, this offers a convenient UI for managing clients, groups and roles as in the new Dynamic Secu

mosquitto.org

 

2. Raspberry Pico와 WIZnet RP2040 HAT 결합하기.

Ethernet 모듈에는 W5100S가 내장되었고 SPI 인터페이스를통해 라즈베리파이 피코와 연결된다. 주의할 점은 방향을 잘 보고 꽂아야 한다. 이더넷 쉴드를 보면 USB 모양을 표시가 있는데 이 방향과 라즈베리파이 피코의 USB 방향이 같아야 한다.

Raspberry Pi Pico & Ethernet Hat Pin diagram
RP2040 Ethernet HAT with Pico

 

 

Upload and Run [Publish & Subscribe]

RP2040 Ethernet HAT MQTT

 

 

1. WIZnet github에서 라이브러리 내부에 있는 파일을 가져와 피코내부에 있는 lib폴더에 그대로 복사한다.

 

2. examples/MQTT/PubSub/W5x00_MQTT_pubsub.py 파일을 피코에 있는 code.py에 가져온다.

3. Command Prompt를 열어 [Mosquitto Broker]를 실행하고 [Teraterm Terminal]을 열어 피코를 실행한다.

더보기

C:\Program File\Mosquitto> mosquitto -c mosquitto.conf -p 1883 -v

Mosquitto 실행 명령어.
Raspberry Pi Pico run

4. Prompt 창을 3개 열어 다음과 같은 명령어로 클라이언트 3개를 브로커에 접속하여 준다.

 -h : Host PC의 IP address를 의미함.

 -t : Topic명으로 Broker로부터 구독.

더보기

mosquitto_sub -h 192.168.1.11 -t BREAKFAST

mosquitto_sub -h 192.168.1.11 -t LUNCH

mosquitto_sub -h 192.168.1.11 -t DINNER

 

MQTT Broker/Publish/Subscribe

5. 새로운 프롬프트를 열고 브로커를 통해 해당 토픽에 Publish 메세지를 넣어주면 각 [Topic]에 맞는 Text가 응답하여 출력된다.

더보기

C:\Program Files\Mosquitto>mosquitto_pub -h 192.168.1.11 -t breakfast -m "B"

C:\Program Files\Mosquitto>mosquitto_pub -h 192.168.1.11 -t lunch -m "L"

C:\Program Files\Mosquitto>mosquitto_pub -h 192.168.1.11 -t dinner -m "D"

MQTT publish & subscribe

MQTT_pubsub video - https://youtu.be/9PR27j9qlEc