• Skip to primary navigation
  • Skip to main content

IoTmaker

사물인터넷에 대한 모든 것 여기서 해결하셔요!

  • 홈
  • 책:마이크로파이썬을 활용한 사물인터넷
  • 책:따라 하면서 배우는 사물인터넷
  • 온라인 교육 코스
  • 새로운 소식
  • 의견보내기
  • 내 수강정보
  • 로그인
  • 회원가입

학습용 MQTT 서버 사용법

책에서 사용하는 부품 구입하기

"따라하면서 배우는 사물인터넷"를 교재로 사용하는 학교의 학습용도로 MQTT 서버의 사용자 계정을 제공하고 있습니다.

구분
설명
serveriotmaker.duckdns.org
port1883
계정 부여 단위 원칙적으로 학과 단위로 공통의 계정을 부여합니다.
토픽 표시첫 머리에 반드시 사용자계정/이 붙어야 합니다. 그러나 사용자 계정을 공통으로 사용하는 경우가 대부분이므로 사용자계정/이메일/를 붙이는 것이 안전한 방법입니다. 이것은 공용으로 사용하는 서버에서 토픽이 중복되는 것을 막기 위함입니다.
예) 만약 사용자 계정이 “gildong”이고 사용자의 이메일이 “[email protected]”이며 교재에서 토픽을 “relay”라고 표기했다면 , MQTT 서버에 접속할 때 토픽이 “gildong/[email protected]/relay”로 되면 중복을 피할 수 있습니다. AimMqtt.h 라이브러리를 사용할 때는 PREFIX에 “gildong/[email protected]/”를 지정하면 됩니다.
사용기간사용자 계정을 부여한 학기의 다음 학기말까지
(3월 학기라면 다음해 2월말, 9월 학기라면 다음해 8월말까지)
보안사용자별 비밀번호외에 특별한 보안 장치가 없습니다.
주의학습용 서버이며 통보없이 다운될 수 있습니다. 그러므로 실제 업무에 적용하면 안됩니다.
면책이 서버를 사용하면서 입은 손해에 대하여 서비스 제공자는 어떤 책임도 없습니다.
교재에서는 MQTT용 헤더파일을 사용하도록 하고 있습니다. 다음은 myConfig.h의 샘플 사례입니다.

// 무선 공유기(AP,엑세스 포인트)의 이름과 비밀번호
#define AP_SSID1  "myssid1"  
#define AP_PASS1  "mypass1" 

#define AP_SSID2  "myssid2"
#define AP_PASS2  "mypass2"

#define AP_SSID3  "myssid3"
#define AP_PASS3  "mypass2"

// MQTT 설정 
#define SERVER     "iotmaker.duckdns.org"
#define PORT       1883  
//#define FP         "XX:XX:XX:AC:E1:B9:00::DB:4B:BA:19:0A:3D:4A:B5:F6:AA:XX:XX"
#define USER       "gildong" 
#define PASS       "mqttAccountPass"
#define DEVICE     "ESP-{{mac}}" //{{auto}},{{mac}},{{user}}

실제 프로그램에서는 다음과 같은 형식으로 사용하면 됩니다. #define PREFIX ....에 주목하셔요.

#include <myConfig.h>
#define PREFIX "gildong/[email protected]/"
#define TOPIC_RELAY  "relay"

#include <AimMqtt.h>
AimMqtt mqtt;

void setup() {
  Serial.begin(115200);
  Serial.println();
  mqtt.begin(myMqttSub,myMqttCallback);
}

void loop() {
  mqtt.run();
}

void myMqttSub() {
  mqtt.sub(TOPIC_RELAY,1);  
}

void myMqttCallback(const String& topic, const String& payload) {  
}

Copyright © 2025 ·로그인