250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코테
- 완전탐색
- swexpertacademy
- BFS
- englishbook
- the midnight library
- sw expert
- PyQt
- sw expert academy
- dfs
- 코테 대비
- MySQL
- 쉬운 알고리즘 문제
- 알고리즘 문제
- nightroutine
- 직무면접
- SQL
- STUDYENGLISH
- 프로그래머스
- 삼성
- 알고리즘
- 원서읽기
- 원서
- 코테 준비
- 원서읽자
- D4
- 코딩테스트
- English
- 백준
- readingbook
Archives
- Today
- Total
시나브로
[ MQTT ] IoT 프로젝트 본문
728x90
MQTT를 이용하여 AWS에서 입력을 하면 아두이노 ESP32 보드에서 이를 받아 LED 전구를 점등하는 프로젝트입니다.
사용 스펙
- 아두이노 ESP32
- AWS
- Node-RED
이러한 구조로 만들겠습니다.
ESP에서 구동하는 것은 금방 가능하나, AWS와 Node-RED, ESP32를 연결하는 것이 중요합니다.
- 아두이노 IDE에서 ESP32로 셋팅합니다.
- ESP 32보드에서 시리얼 입력을 통해 LED가 정상작동 되는 지 확인합니다.
- 컴퓨터에 MQTT를 셋팅합니다
- MQTT를 통해서 컴퓨터와 연결하고 동작을 확인합니다.
- AWS를 셋팅합니다
- AWS와 Node-RED를 연결합니다
- Node-RED와 ESP 32보드를 연결합니다.
- 아두이노 IDE에서 ESP32로 셋팅합니다.
- ESP 32보드에서 시리얼 입력을 통해 LED가 정상작동 되는 지 확인합니다.
- 컴퓨터에 MQTT를 셋팅합니다
- MQTT를 통해서 컴퓨터와 연결하고 동작을 확인합니다.
- AWS를 셋팅합니다
- AWS와 Node-RED를 연결합니다
- Node-RED와 ESP 32보드를 연결합니다.
이러한 개발 순서를 가지고 있습니다.
ESP 32코드
#include "EspMQTTClient.h"
const int ledPin1 = 23;
const int ledPin2 = 22;
EspMQTTClient client(
"연결할 와이파이 이름",
"연결할 와이파이 비밀번호",
"컴퓨터 IP번호", // MQTT Broker server ip
"", // Can be omitted if not needed
"", // Can be omitted if not needed
"NBB", // Client name that uniquely identify your device
1883 // The MQTT port, default to 1883. this line can be omitted
);
void setup()
{
Serial.begin(115200);
pinMode(ledPin1, OUTPUT);
digitalWrite(ledPin1, LOW);
pinMode(ledPin2, OUTPUT);
digitalWrite(ledPin2, LOW);
client.enableDebuggingMessages(); // Enable debugging messages sent to serial output
client.enableHTTPWebUpdater(); // Enable the web updater. User and password default to values of MQTTUsername and MQTTPassword. These can be overrited with enableHTTPWebUpdater("user", "password").
client.enableLastWillMessage("TestClient/lastwill", "I am going offline"); // You can activate the retain flag by setting the third parameter to true
}
void onConnectionEstablished()
{
client.subscribe("/hyemin/test", [](const String & payload) {
Serial.println(payload);
if(payload =="{L1}") {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
}
else if(payload =="{L2}"){
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
}
else{
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
}
});
}
void loop()
{
client.loop();
}
Node-RED
728x90
'임베디드 > MQTT' 카테고리의 다른 글
[ MQTT ] MQTT에 대하여 (0) | 2020.11.11 |
---|
Comments