스마트 디바이스 실습 12주차
MQTT
한세대학교 컴퓨터공학과 22학번 김선영
한세대학교 컴퓨터공학과 22학번 김선영
- Message Queuing Telemetry Transport의 약자, 경량의 publish/subscribe 메시징 프로토콜.
- MQTT의 핵심 구성 요소 / 클라이언트, 브로커, 토픽(topic)
DHT11 - ESP32 <- WiFi -> Internet <-> MQTT 브로커 <- Internet ->MQTT Client(PC)
5. Serial Monitor와 MQTT에서 온습도 확인>
- Serial Monitor
- MQTT
번외 : 스마트폰 앱 MQTT Brocker App에서 온습도 확인.
#include ≶WiFi.h> //WIFI 라이브러리
#include ≶EspMQTTClient.h> // PubSubclient 라이브러리를 포함한 ESP32 MQTT Client 라이브러리
#include ≶DHT.h> //DHT11 라이브러리
#define DHTTYPE DHT11 // DHT 센서 타입 정의
DHT dht(13, DHTTYPE); //DHT 설정 dht( 핀, DHT 종류)
float temp1,humid1;
char temp[10]; // temp, humid 를 문자열로 합쳐서 전송하기 위한 변수 정의
char humid[10];
EspMQTTClient client(
"[wifi 이름]", // SSID
"[wifi 비밀번호]", // PW
//바꾸지 말것!!
"broker.mqtt-dashboard.com", // MQTT Broker 서버 IP
"MQTT_TestClient", // 클라이언트 이름
1883 // MQTT 포트번호
);
//WiFiClient client;
void setup()
{
Serial.begin(115200); //Initialize serial
dht.begin();
client.enableDebuggingMessages();
client.enableLastWillMessage("TestClient/lastwill", "I am going offline");
}
void onConnectionEstablished(){
}
void loop() {
client.loop();
temp1 = dht.readTemperature(); // 온도를 읽어서 tem에 저장
humid1 = dht.readHumidity(); // 습도를 읽어서 hum에 저장
sprintf(temp, "%.2f" ,dht.readTemperature());
sprintf(humid, "%.2f" ,dht.readHumidity());
Serial.print(F("Humidity : "));
Serial.println(humid1);
Serial.print(F("Temperature : "));
Serial.println(temp1);
client.publish("mytopic/temp", temp);
client.publish("mytopic/humid", humid);
delay(5000);
}
EspMQTTClient client(
"[wifi 이름]", // SSID
"[wifi 비밀번호]", // PW
//바꾸지 말것!!
"broker.mqtt-dashboard.com", // MQTT Broker 서버 IP
"MQTT_TestClient", // 클라이언트 이름
1883 // MQTT 포트번호
);
- 위 실습 코드에서는 client 객체를 생성하고 MQTT 브로커에 연결하기 위한 정보를 설정하고 있음.
배운 점:
새롭게 알게된 점: