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. 아두이노 클라우드 설정 절차

  1. Arduino Cloud 접속 후 로그인

  2. Thing 메뉴에서 CREATE THING 클릭

  3. Thing 이름 지정 후 변수 추가

    • led_state: Boolean / Read & Write / On Change
    • temperature: Float / Read Only / Update Every 1s
  4. Device 등록

    • 3rd Party → ESP32 (DOIT ESP32 DEVKIT V1) 선택
    • Device ID와 Secret Key 저장
  5. 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 변수 시각화

7. 실행 결과

  • 센서로부터 온도 데이터를 받아 실시간으로 클라우드에 표시
  • Switch 위젯 조작 시 LED가 즉시 반응하여 원격 제어 확인 가능

8. 참고사항

  • 클라우드 변수는 주기적으로 자동 업데이트되며, 네트워크 연결 상태에 따라 실시간 데이터 반영이 가능
  • 모든 설정은 Arduino Cloud 웹 플랫폼 상에서 손쉽게 구성 가능

9. PPT 및 코드

챕터8.아두이노 클라우드.pdf

챕터8.아두이노 클라우드.zip