11주차 : 아두이노 클라우드 - dhryu60/SmartDevice_2025-1 GitHub Wiki
11주차 : 아두이노 클라우드
📌 학습 개요
-
학습 목표 ESP32와 아두이노 클라우드를 활용하여 IoT 데이터를 수집·활용하고, 원격 제어 기능을 실습한다.
-
핵심 키워드 ESP32, IoT, Arduino Cloud, 사물인터넷, 온습도 센서, LED 제어
-
준비물:
- ESP32
- ESP32 확장 실드
- DHT11 온습도 센서
- LED 모듈
1. 프로젝트 개요
Arduino Cloud 플랫폼을 이용해 다음 기능을 구현합니다:
- 온도 데이터 실시간 모니터링
- LED 상태 원격 제어
- 클라우드 대시보드를 통한 시각화
2. 하드웨어 구성
모듈 | 연결 핀 (ESP32) |
---|---|
DHT11 온습도 센서 | S → D13, V → 3.3V, G → GND |
LED 모듈 | S → D23, V → 3.3V, G → GND |
3. 아두이노 클라우드 설정 절차
-
Arduino Cloud 접속 후 로그인
-
Thing
메뉴에서 CREATE THING 클릭 -
Thing 이름 지정 후 변수 추가
led_state
: Boolean / Read & Write / On Changetemperature
: Float / Read Only / Update Every 1s
-
Device 등록
- 3rd Party → ESP32 (DOIT ESP32 DEVKIT V1) 선택
- Device ID와 Secret Key 저장
-
Wi-Fi 설정
- SSID, Password, Secret Key 입력
4. 프로젝트 코드
기본 설정
#include "DHT.h"
int led_pin = 23;
int dh11_pin = 13;
DHT dht(dh11_pin, DHT11);
void setup() {
pinMode(led_pin, OUTPUT);
dht.begin();
}
센서 데이터 전송
void loop() {
ArduinoCloud.update();
temperature = dht.readTemperature();
if (isnan(temperature)) {
Serial.println("센서 오류");
return;
}
Serial.print("온도: ");
Serial.println(temperature);
delay(1000);
}
클라우드 변수 제어 함수
void onLedStateChange() {
Serial.print("LED 상태 변경: ");
Serial.println(led_state);
if (led_state) {
digitalWrite(led_pin, HIGH);
} else {
digitalWrite(led_pin, LOW);
}
}
5. 스케치 업로드
- 업로드 버튼을 클릭하여 보드에 코드 업로드
- 설치되지 않은 경우 Create Agent 설치 필요
6. 대시보드 설정
-
Dashboard
메뉴에서 사용자 정의 대시보드 생성 -
위젯 추가
- Switch:
led_state
변수 제어 - Chart:
temperature
변수 시각화
- Switch:
7. 실행 결과
- 센서로부터 온도 데이터를 받아 실시간으로 클라우드에 표시
- Switch 위젯 조작 시 LED가 즉시 반응하여 원격 제어 확인 가능
8. 참고사항
- 클라우드 변수는 주기적으로 자동 업데이트되며, 네트워크 연결 상태에 따라 실시간 데이터 반영이 가능
- 모든 설정은 Arduino Cloud 웹 플랫폼 상에서 손쉽게 구성 가능