산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

윈도우 10 IoT 코어, 라즈베리 파이, 아두이노로 가정용 전원 콘센트 자동화하기

부품 및 소모품

부품수량
라즈베리 파이 2 모델 B1
XBee 모듈2
아두이노 우노1
FTDI 케이블2
4채널 릴레이 쉴드 (아두이노용)1
스파크펀 XBee 쉴드1

앱 및 온라인 서비스

프로젝트 개요

소개

이 프로젝트에서는 라즈베리 파이(윈도우 10 IoT 코어 구동), XBee, 아두이노를 사용하여 가정용 전원 콘센트를 로컬 네트워크와 클라우드에서 제어하는 방법을 다룹니다. 모든 코드 샘플은 GitHub에 있습니다.

왜 전원 콘센트를 자동화하는가?

클라우드에서 개별 기기를 제어하는 대신, 전원 콘센트 자체를 자동화하면 콘센트에 연결된 모든 기기를 제어할 수 있습니다. 이 프로젝트에서는 선풍기와 조명 제어를 예시로 다룹니다.

XBee 모듈 시작하기

무선 신호 전송을 위해 XBee를 사용합니다. 코디네이터 역할을 하는 XBee 하나는 라즈베리 파이에, 라우터 역할을 하는 다른 하나는 전원 콘센트 측 아두이노에 연결됩니다. 코디네이터는 사용자 입력에 따라 라우터로 신호를 보내 전원 콘센트를 제어합니다.

AT 모드로 XBee 설정하기

  1. XCTU 다운로드 및 설치
  2. 아다프루트 FTDI 어댑터로 XBee 펌웨어 업데이트
  3. XBee AT 모드 설정 튜토리얼 영상 참조

다음 단계로 진행하기 전에 두 XBee가 서로 통신하는지 확인하세요.

수신부(Receiver) 설정

필요 부품: 지그비 라우터, 아두이노 우노 R3, 아두이노용 XBee 쉴드, 아두이노 릴레이 쉴드

아두이노 스케치

코디네이터 지그비에서 수신한 데이터가 "ON1"이면 릴레이 1 ON, "ON2"면 릴레이 2 ON, "OFF1"이면 릴레이 1 OFF, "OFF2"면 릴레이 2 OFF로 동작합니다.

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
}

void loop() {
  if(Serial.available() > 0){
    state = Serial.readString();
    Serial.println(state);
  }
  if(state == "ON1\r\n") digitalWrite(RELAY1, 1);
  else if(state == "ON2\r\n") digitalWrite(RELAY2, 1);
  else if(state == "OFF1\r\n") digitalWrite(RELAY1, 0);
  else if(state == "OFF2\r\n") digitalWrite(RELAY2, 0);
  else {
    digitalWrite(RELAY1, 0);
    digitalWrite(RELAY2, 0);
  }
}

전원 콘센트 구성 (고전압 주의!)

윈도우 10 IoT 코어, 라즈베리 파이, 아두이노로 가정용 전원 콘센트 자동화하기
릴레이를 이용한 전원 콘센트 제어 회로

릴레이는 전자 분야에서 오랜 역사를 가진 스위치 기술입니다. 입력 측에 AC 전압(110~240V)을 연결하고, 아두이노 같은 마이크로컨트롤러로 릴레이를 ON/OFF 제어합니다.

고전압을 다루므로 감전 위험이 있습니다. 극도로 주의하여 진행하세요. 본인 책임 하에 작업하십시오.

직접 콘센트를 개조하는 대신 연장 코드를 사용했습니다. 원리는 동일합니다. 연장 코드에서 한 선은 그대로 두고, 다른 선을 잘라 릴레이의 COM(공통)과 NO(상시 개방) 단자에 연결합니다.

윈도우 10 IoT 코어, 라즈베리 파이, 아두이노로 가정용 전원 콘센트 자동화하기
연장 코드와 릴레이 연결

릴레이 쉴드를 아두이노에 장착하고, 그 위에 XBee 쉴드를 쌓습니다. 라우터로 설정된 지그비를 XBee 쉴드에 꽂습니다.

윈도우 10 IoT 코어, 라즈베리 파이, 아두이노로 가정용 전원 콘센트 자동화하기
완성된 수신부 (아두이노 + 릴레이 쉴드 + XBee 쉴드)

전원 코드를 연결하고 아두이노에 외부 배터리로 전원 공급하면 수신부 완성입니다.

서버(라즈베리 파이) 구성

윈도우 10 IoT가 설치된 라즈베리 파이 2와 코디네이터로 설정된 지그비가 필요합니다.

지그비를 FTDI 어댑터에 연결하고, 6핀 FTDI RS-232 USB 케이블로 라즈베리 파이 USB 포트에 연결합니다. UWP(유니버설 윈도우 플랫폼)로 라즈베리 파이에 웹서버를 구축합니다. 서버는 사용자 입력을 대기하다가 선택에 따라 FTDI 케이블이 연결된 USB 포트로 시리얼 데이터를 전송하고, 지그비가 이를 무선 신호로 송신합니다. 이미 라우터의 DH/DL을 코디네이터 지그비에 설정해두었으므로 올바른 라우터로 메시지가 전달됩니다.

라즈베리 파이용 FTDI 드라이버 정보: GitHub ftdisample

윈도우 10 IoT 코어, 라즈베리 파이, 아두이노로 가정용 전원 콘센트 자동화하기
라즈베리 파이와 FTDI 어댑터 연결

라즈베리 파이 서버 설정 영상 튜토리얼 참조. 모든 코드 샘플은 GitHub에 있습니다.

애저(Azure) 클라우드 연동

전 세계 어디서든 집을 제어하려면 클라우드 서비스를 연동해야 합니다.

  1. 웹사이트를 만들어 애저에 호스팅
  2. 애저 SQL DB 생성으로 사용자 인증/인가 처리
  3. 애저 클라우드 스토리지 서비스(Table Storage)로 명령 저장
  4. 라즈베리 파이 블링키 앱에서 명령 처리하여 홈 제어

참고 자료: - 스토리지 테이블 생성: Azure 문서 - SQL 테이블 생성: Azure 문서

데모

두 가지 방식으로 전원 콘센트 제어 시연:

  1. 로컬 네트워크 내 라즈베리 파이 웹서버 URL 접속
  2. 애저에 호스팅된 ASP.NET 5 웹 애플리케이션을 통한 제어

결론

  1. 조도/모션 센서 추가로 조명 자동 제어 및 에너지 절약 가능
  2. 노약자가 리모컨으로 전원 콘센트 제어 가능 (RFID 장치 추가 필요)
  3. 조명 예약 ON/OFF로 전력 절약
  4. 침입 감지 시 모든 조명 점등
  5. 휴가 중 원클릭으로 전체 전원 차단
  6. 실내 온도 상시 유지 불필요, 필요할 때만 난방/냉방으로 에너지 절약

코드

릴레이 제어 아두이노 코드

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
}

void loop() {
  if(Serial.available() > 0){
    state = Serial.readString();
    Serial.println(state);
  }
  if(state == "ON1\r\n") digitalWrite(RELAY1, 1);
  else if(state == "ON2\r\n") digitalWrite(RELAY2, 1);
  else if(state == "OFF1\r\n") digitalWrite(RELAY1, 0);
  else if(state == "OFF2\r\n") digitalWrite(RELAY2, 0);
  else {
    digitalWrite(RELAY1, 0);
    digitalWrite(RELAY2, 0);
  }
}

샘플 코드 전체

GitHub 저장소

회로도

윈도우 10 IoT 코어, 라즈베리 파이, 아두이노로 가정용 전원 콘센트 자동화하기
전원 코드를 릴레이에 연결하는 방법

제조공정

  1. 가정용 저렴한 무선 센서 네트워크 구축하기
  2. 윈도우 IoT와 라즈베리파이로 안전한 얼굴 인식 도어락 만들기
  3. Windows 10 IoT Core에서 SHT15로 정확한 온도 & 습도 모니터링
  4. 라즈베리 파이 3 모델 B+에 Windows 10 IoT Core 설치 - 단계별 가이드
  5. 윈도우 10 IoT 코어 라즈베리파이 2로 음성 제어 로봇 만들기
  6. 고피고(GoPiGo) v2 윈도우 10 IoT 코어 라즈베리파이 3 확장 프로젝트
  7. IoT 활용: 오늘 디지털 트랜스포메이션 가속화하기
  8. 아두이노와 MAX30100으로 만드는 실시간 IoT 심박수 모니터
  9. 애저 IoT 기반 스마트 수영장 제어 시스템: 온도 모니터링 및 원격 제어
  10. PLCnext 클라우드 데이터로 Power BI 대시보드 만들기