아두이노 우노로 문 열림 감지 시 지메일 알림 보내기 – 초보자용 단계별 가이드
부품 및 소모품
| 부품 |
수량 |
| 아두이노 우노 (Arduino UNO) |
1 |
| PHPoC 쉴드 (아두이노용) |
1 |
| 자기 센서 (마그네틱 도어 센서) |
1 |
프로젝트 개요
초보자라면 아두이노 와이파이 및 센서 튜토리얼인 '와이파이와 아두이노', '도어 센서'를 먼저 학습하시기 바랍니다.
이 튜토리얼에서는 문 열림 이벤트를 감지하고 지메일(Gmail)로 알림을 보내는 방법을 아두이노 우노로 구현합니다. 초보자를 위해 정말 쉽게 구성했습니다!
시작해 볼까요?
문 열림 이벤트 감지
사용한 자기 센서는 센서 본체와 자석 두 부분으로 구성됩니다. 두 부분이 근접하면 센서 출력 핀이 HIGH, 떨어지면 LOW가 됩니다. 이 특성을 이용해 센서 한 쪽은 문짝에, 다른 쪽은 문틀에 부착합니다. 출력 핀 상태를 확인하면 문이 열렸는지 감지하고 알림을 보낼 수 있습니다.
이벤트 처리
이 프로젝트에서는 이벤트 발생 시 지메일로 알림을 전송합니다.
사용 라이브러리
아래 코드는 두 가지 라이브러리를 사용합니다: PHPoC 라이브러리와 Button 라이브러리
초보자를 위한 최고의 아두이노 스타터 키트
아두이노 키트를 찾고 계신가요? 초보자를 위한 최고의 아두이노 키트를 참고하세요.
함수 레퍼런스
- loop()
- setup()
- Serial.begin()
- Serial.println()
- delay()
- for 루프
- while 루프
- if else
- String.toInt()
코드
소스 코드
#include <Phpoc.h>
#include <ezButton.h>
PhpocEmail email;
ezButton button(A0); // A0 핀에 연결된 버튼 객체 생성
void setup() {
Serial.begin(9600);
Phpoc.begin(PF_LOG_SPI | PF_LOG_NET | PF_LOG_APP);
// IPv6 사용 시 아래 주석 해제
// Phpoc.beginIP6();
button.setDebounceTime(100); // 디바운스 시간 100ms 설정
}
void loop() {
button.loop(); // 반드시 먼저 loop() 호출
if (button.isPressed()) { // 문이 열리면...
email.setOutgoingServer("smtp.gmail.com", 587);
email.setOutgoingLogin("Google ID", "Google Password");
email.setFrom("Gmail 주소", "보내는 사람 이름");
email.setTo("받는 사람 이메일", "받는 사람 이름");
email.setSubject("문이 열렸습니다. [#905]"); // 메일 제목
// 메일 내용
email.beginMessage();
email.println("#905");
email.println("");
email.println("문이 열렸습니다.");
email.endMessage();
if (email.send() > 0) // 이메일 발송
Serial.println("이메일이 성공적으로 발송되었습니다");
else
Serial.println("이메일 발송 실패");
}
else if (button.isReleased()) { // 문이 닫히면...
// 동일한 방식으로 코드 작성
}
}
아두이노용 PHPoC 라이브러리
이 라이브러리는 PHPoC 쉴드와 통신해 인터넷에 연결하며, 지메일 라이브러리도 포함합니다. 설치 방법: 공식 매뉴얼 | GitHub
회로도
- PHPoC 쉴드를 아두이노 위에 적층
- 랜선 또는 USB 와이파이 동글을 쉴드에 연결해 이더넷 구성
- 아두이노와 센서 간 배선:
- 5V ────── 빨간 선
- A0 ────── 검은 선

