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

스마트 홈 자동화 시스템 – 회로 및 소스 코드

Arduino를 사용한 스마트 홈 자동화 시스템 프로젝트

자동화(예:홈 오토메이션 및 산업 자동화 등)는 더 적은 인력으로 더 스마트한 방식으로 작업을 완료하는 데 도움이 되므로 오늘날 세계에서 중요해졌습니다. 요즘 집은 자동화 장치의 도움으로 더 똑똑해지고 발전하고 있습니다. 가전제품은 기존의 스위치가 아닌 원격 제어 스위치를 사용하고 있습니다. 오늘날의 세계에서 대부분의 사람들은 스마트폰에 액세스할 수 있으며 그 사용은 우리 삶에서 매우 대중적이고 필수가 되었습니다. 우리는 스마트폰을 사용하여 클릭 한 번 또는 메시지 한 번으로 가전제품을 제어할 수 있습니다. 컨트롤러 및 통신 장치의 도움으로 가전 제품을 원격으로 제어할 수 있습니다. 이 프로젝트에서는 스마트폰으로 원격 제어되는 HC-05 블루투스 모듈을 사용하여 스마트 홈 자동화 프로젝트의 개발을 위해 Arduino UNO 보드를 사용할 것입니다. 스스로 일을 할 수 없는 마비된 사람들에게 정말 도움이 될 수 있고 그러한 장치는 이러한 사람들에게 큰 도움이 될 수 있습니다.

필요한 구성요소

아두이노 UNO

Arduino는 전자 프로젝트를 개발하는 데 사용되는 오픈 소스 플랫폼입니다. 언제든지 쉽게 프로그래밍하고 지우고 다시 프로그래밍할 수 있습니다. Arduino UNO, Arduino Nano, Arduino Mega, Arduino lilypad 등과 같이 용도에 따라 사양이 다른 많은 Arduino 보드가 시판되고 있습니다. 이 프로젝트에서는 Arduino UNO를 사용하여 가전 제품을 자동으로 제어할 것입니다. 16MHz 클럭 속도로 실행되는 ATmega328 마이크로 컨트롤러 IC가 있습니다. USART, I2C 및 SPI 통신 프로토콜에서 작동할 수 있는 강력한 기능입니다. 이 보드는 일반적으로 마이크로 USB 케이블을 사용하여 소프트웨어 Arduino IDE를 사용하여 프로그래밍됩니다. ATmega328은 사전 프로그래밍된 온보드 부트 로더와 함께 제공되므로 외부 하드웨어의 도움 없이 코드를 더 쉽게 업로드할 수 있습니다. 전자 프로젝트 또는 제품을 만드는 데 광범위하게 적용됩니다. C 및 C++ 언어는 배우고 사용하기 매우 쉬운 보드를 프로그래밍하는 데 사용됩니다. Arduino IDE를 사용하면 훨씬 쉽게 프로그래밍할 수 있습니다. 코드를 void setup()과 void loop()의 두 부분으로 분리합니다. void setup() 함수는 한 번만 실행되며 주로 일부 프로세스를 시작하는 데 사용되는 반면 void loop()는 계속 실행되어야 하는 코드 부분으로 구성됩니다.

이 모델은 입력-출력으로 사용할 수 있는 6개의 아날로그 입력 핀과 14개의 디지털 GPIO 핀으로 구성되며 그 중 6개는 pinMode(), digitalWrite()를 사용하여 PWM 출력 및 아날로그를 제공합니다. ), digitalRead() 및 analogRead() 함수. 6개의 아날로그 입력 채널은 핀 A0에서 A5까지이며 10비트 분해능을 제공합니다. 보드는 5볼트에서 작동하는 USB 케이블을 사용하거나 7~20볼트 사이에서 작동하는 DC 잭을 통해 전원을 공급받을 수 있습니다. 저전력 장치를 작동하기 위해 3.3V를 생성하는 온보드 전압 조정기가 있습니다. ATmega328은 USART, SPI 및 I2C 통신 프로토콜에서 작동하므로 USART 통신용 0(Rx) 및 1(Tx) 핀, I2C 및 SS(10), MOSI(11)용 SDA(A4) 및 SCL(A5) 핀이 있습니다. , SPI 통신 프로토콜용 MISO(12) 및 SCK(13) 핀. 이러한 사양으로 인해 Arduino Uno 보드는 홈 자동화 프로젝트에 적합합니다.

HC-05 블루투스 모듈

HC-05는 무선 통신에 사용되는 블루투스 모듈입니다. 마이크로 컨트롤러, 스마트폰, 컴퓨터, 센서 등 사이에 직렬 양방향 무선 통신을 설정하는 데 주로 사용됩니다. 이 Bluetooth 모듈의 범위는 100미터 미만이며 대기 조건에 따라 다릅니다. USART(Universal Synchronous Asynchronous Receiver Transmitter) 프로토콜에서 작동하여 다른 장치와 통신합니다. 지원되는 전송 속도 9600, 19200, 38400, 57600, 115200, 230400 및 460800으로 마스터 및 슬레이브 모드에서 모두 작동할 수 있습니다. 기본적으로 슬레이브 모드에서 작동하며 마스터 모드는 AT 명령을 사용하여 구성할 수 있습니다. 마이크로컨트롤러에서 모든 장치로, 장치에서 마이크로컨트롤러로 양방향으로 데이터를 전송하는 데 사용할 수 있습니다. HC-05 블루투스 모듈은 명령 모드와 데이터 모드에서 작동합니다. 명령 모드는 일부 AT 명령을 사용하여 HC-05의 구성 설정에 액세스하는 데 사용되며 데이터 모드는 데이터를 직렬로 보내는 데 사용됩니다. 명령 모드는 "키" 핀을 접지하고 AT 명령을 사용하여 설정을 변경할 수 있습니다. 모듈의 이름, 암호, 전송 속도 등을 변경하는 데 사용할 수 있는 AT 명령이 있습니다. 다음은 몇 가지 AT 명령입니다.

관련 프로젝트:LDR을 사용한 자동 LED 비상등 회로

HC-05에서 고정:

EN/키 핀 :이 핀은 블루투스 모듈을 명령 모드로 설정하는 데 사용됩니다. 또는 데이터 모드 . 이 핀을 높게 설정하여 명령 모드에 액세스할 수 있고 낮게 설정하여 데이터 모드에 액세스할 수 있습니다. 기본적으로 데이터 모드에서는 낮음으로 설정되어 있습니다.

HC-05에 있는 핀 설명
EN/키 높음 – 명령 모드, 낮음 – 데이터 모드
VCC 3.3V ~ 5V
GND 그라운드
TXD 일련 데이터 전송
RXD 일련 데이터 수신
상태 모듈 연결 여부 표시

이 프로젝트에서 HC-05는 Arduino Uno와 스마트폰 간의 직렬 무선 통신을 설정하는 데 사용됩니다. 이것은 Hc-05를 Arduino Uno와 연결하고 스마트폰에 애플리케이션을 설치하여 수행할 수 있습니다. 스마트폰을 HC-05에 연결하는 데 사용할 수 있는 다양한 응용 프로그램이 있지만. 하지만 여기서는 플레이 스토어에서 다운로드할 수 있는 블루투스 터미널 HC-05를 사용할 것입니다. 회로도에 표시된 대로 HC-05를 Arduino UNO와 연결합니다. HC-05의 TXD 핀은 RX(핀 0)에 연결되고 HC-05의 RXD 핀은 Arduino Uno의 TXD(핀 1)에 연결됩니다. EN/key가 LOW로 설정되어 있습니다. 스마트폰의 블루투스를 켜고 블루투스 기기를 검색하세요. "HC-05"라는 이름의 Bluetooth 장치에 연결합니다. 기본 비밀번호는 "0000" 또는 "1234"입니다.

HC-05 블루투스 모듈에는 연결 상태를 나타내는 빨간색 LED가 내장되어 있습니다. 연결하기 전에는 주기적으로 계속 깜박이며 연결 후에는 깜박임 속도가 느려집니다.

HC-05 블루투스 모듈 적용:

릴레이

릴레이는 하나 이상의 더 큰 회로를 켜거나 끄기 위해 작은 전류로 작동되는 전자기 스위치입니다. 작은 전류가 통과하면 임시 자석으로 변환되는 전자석 코일로 구성됩니다. 상대적으로 작은 전류는 코어가 있는 코일에 자기장을 생성하는 데 사용되며 이는 훨씬 더 큰 전류를 제어할 수 있는 스위치를 작동하는 데 사용됩니다. 이전 릴레이는 신호를 증폭하기 위해 전신 및 전화 교환기에 사용되었습니다. 컴퓨터가 발명된 후 릴레이는 부울 및 논리 연산을 수행하는 데 사용되었습니다. 계전기는 회로에서의 용도에 따라 다양한 크기와 종류가 있습니다. 계전기의 주요 응용 프로그램에는 모터 제어, 자동차 응용 프로그램, 산업 응용 프로그램, 홈 자동화 등이 포함됩니다.

이 프로젝트에서 우리는 전자기 릴레이를 사용하여 집에 있는 튜브 조명, 전구, 팬 또는 AC 전원과 같은 가전 제품을 켜고 끌 것입니다. Arduino UNO의 DC 신호. 릴레이에는 6개의 핀이 있으며 그 중 2개는 VCC와 접지를 사용하여 릴레이에 전원을 공급하는 데 사용됩니다. 하나의 핀은 마이크로 컨트롤러에서 "1" 또는 "0" 신호를 가져오는 데 사용되는 데이터 핀입니다. 기타 3핀 NC(Normally Closed), Common, NO(Normally Open)는 AC 전원 기기를 연결하는 데 사용됩니다. 이 릴레이는 평상시 열림 또는 평상시 닫힘 상태의 두 가지 조건에서 작동합니다.

Normally Open:릴레이가 활성화될 때마다 회로를 닫고 릴레이가 비활성화될 때마다 회로를 엽니다.

Normally Close:릴레이가 활성화될 때마다 회로를 열고 릴레이가 비활성화될 때마다 회로를 닫습니다.

릴레이 핀아웃:
릴레이에 고정 설명
VCC 5V
GND 그라운드
데이터 핀 마이크로컨트롤러의 "1" 또는 "0"
NC 상시 폐쇄 회로용
COM 공통
아니요 상시 개방 회로용

  릴레이 적용:

관련 프로젝트:LDR을 사용한 자동 가로등 제어 시스템

회로도

회로는 Arduino, Bluetooth, 릴레이 및 LED를 사용하여 설계되었습니다. 우리는 Arduino와 블루투스를 직렬로 연결했습니다. 릴레이는 가전 제품을 작동하는 데 사용됩니다. 우리는 4개의 기기에 4개의 릴레이를 사용했습니다. 릴레이의 번호를 변경하여 다양한 가전 제품을 적절하게 작동할 수 있습니다. 하드웨어로 이동하는 동안 LED는 전구로 교체됩니다.

가전 제어 명령은 "블루투스 단말기 HC-05 앱"을 통해 전송됩니다. 스마트폰에서 아두이노에 연결된 블루투스로 그런 다음 Arduino는 Bluetooth에 직렬로 들어오는 데이터를 읽습니다. 따라서 블루투스에서 아두이노로 들어오는 명령에 따라 동작을 합니다.

Arduino 기반 홈 자동화 작업

홈 오토메이션 프로젝트에 대한 연결을 회로도에 주어진 대로 만듭니다. 우선, 회로도에 표시된 대로 전구를 AC 전원 및 릴레이에 연결합니다. 그런 다음 릴레이에는 Arduino Uno 보드에서 DC 전원이 공급됩니다. 릴레이의 데이터 핀은 핀 8, 9, 10, 11에서 Arduino의 출력 핀인 Arduino에 연결됩니다. 그런 다음 다이어그램과 같이 HC-05 모듈을 Arduino 보드에 연결하고 Adruino 보드에 전원을 공급합니다. Arduino IDE를 사용하여 프로젝트 마지막에 주어진 코드를 업로드하십시오. 스마트폰의 블루투스를 켜고 비밀번호를 입력하여 HC-05 모듈을 연결합니다. 기본적으로 비밀번호는 "0000" 또는 "1234"입니다. 스마트폰과 HC-05를 성공적으로 연결한 후 "스마트폰에서 블루투스 단말기 HC-05 앱을 엽니다. "라고 표시되며 HC-05에 연결된 장치가 표시됩니다. 이제 전구를 켜거나 끄려면 "Bulb1 켜기" 또는 "Bulb2 to 끄기" 데이터를 보내십시오. 집 안의 조명을 원격으로 제어할 수 있는 방법입니다.

프로젝트 코드

#include

int 전구1 =8;
int 전구2 =9;
int 전구3 =10;
int 전구4 =11;

소프트웨어 직렬 bt(0,1); /* (수신,송신) */

문자열 str;

무효 설정() {
bt.begin(9600);
Serial.begin(9600);

pinMode(bulb1,OUTPUT);
pinMode(bulb2,OUTPUT);
pinMode(bulb3,OUTPUT);
pinMode(bulb4,OUTPUT);

}

무효 루프() {

if (bt.available())
{
str =bt.read();
Serial.println(str);
//bulb1
if(str ==”bulb1 on”)
{
digitalWrite(bulb1,HIGH);
Serial.println(“BUlB 1 is ON”);
}
else if (str=="bulb1 꺼짐")
{
digitalWrite(bulb1,LOW);
Serial.println("BUlB 1 꺼짐");
}
else
{
digitalWrite(bulb1,LOW);
}
//bulb2
if(str==”bulb2 켜짐”)
{
digitalWrite(bulb2,HIGH);
Serial.println("BUlB 2가 켜짐");
}
else if(str=="전구2 꺼짐")
{
digitalWrite(bulb2,LOW);
Serial.println("BUlB 2가 꺼져 있습니다.");
}
else
{
digitalWrite(bulb2, 낮음);
}
////전구3
if(str==”전구3 켜짐”)
{
digitalWrite(전구3,높음);
Serial.println("BUlB 3이 켜져 있습니다.");
}
else if(str=="bulb3 꺼짐")
{
digitalWrite(bulb3,LOW);
Serial.println("BUlB 3이 꺼져 있습니다");
}
else
{
digitalWrite(bulb3,LOW);
}
//bulb4
if(str==”bulb4 on”)
{
digitalWrite (bulb4,HIGH);
Serial.println("BUlB 4가 켜짐");
}
else if(str=="전구4 꺼짐")
{
digitalWrite(bulb4,LOW);
Serial.println("BUlB 4가 꺼져 있습니다.");
}
else
{
digitalWrite(bulb4,LOW);
}

}
}

프로그래밍 코드 설명

프로젝트에 필요한 라이브러리를 포함합니다. Bluetooth 모듈 HC-05와의 직렬 통신을 위해 SoftwareSerial.h 라이브러리를 가져옵니다.

#include

4개의 릴레이 각각의 데이터 핀으로 가는 8, 9, 10, 11번 아두이노 출력 핀 변수 선언. 변수 문자열 "str"은 HC-05 블루투스 모듈을 사용하여 스마트폰에서 가져온 데이터를 저장합니다.

int 전구1 =8;

int 전구2 =9;

int 전구3 =10;

int 전구4 =11;

문자열 str;

 pinMode(bulb1,OUTPUT);

 pinMode(bulb2,OUTPUT);

 pinMode(bulb3,OUTPUT);

 pinMode(bulb4,OUTPUT);

Bluetooth 직렬 통신 및 직렬 모니터는 9600 보드 속도로 시작됩니다.

bt.begin(9600);

Serial.begin(9600);

Bluetooth 모듈 HC-05를 사용하여 스마트폰에서 가져온 데이터가 "bulb1 on"이면 릴레이의 데이터 핀을 HIGH로 설정하여 전구 1을 켭니다. 데이터가 "bulb1 off"이면 릴레이의 데이터 핀을 LOW로 설정하여 전구를 끕니다. 전구 1에 대한 데이터가 수신되지 않으면 전구 1을 LOW로 설정합니다. 전구 2, 전구 3, 전구 4에 대해서도 동일한 작업이 수행됩니다.

if(str=="bulb1 on")

     {

      digitalWrite(bulb1,HIGH);

      Serial.println("BUlB 1이 켜짐");

     }

     else if(str=="bulb1 off")

     {

      digitalWrite(bulb1,LOW);

      Serial.println("BUlB 1이 꺼져 있습니다");

     }

     else

     {

      digitalWrite(bulb1,LOW);

     }

따라서 Arduino UNO, Bluetooth 및 릴레이를 사용하여 가정의 모든 가전 제품을 제어할 수 있습니다. 또한 이 프로젝트를 구성하는 데 필요한 구성 요소에 대한 기술 정보도 제공했습니다. 회로도는 가정에서 사용되는 AC 전구로 교체될 LED로 구성됩니다.

관련 프로젝트:


산업기술

  1. 가정 자동화 애플리케이션
  2. Silicon Labs, 스마트 홈 및 건물 자동화 연결 솔루션 선보여
  3. 스마트 홈 잠금 장치 및 액세스 제어를 위한 지능형 회로 보호 및 감지 설계
  4. 홈 오피스 배송의 5가지 장애물과 이를 극복하는 방법
  5. Arduino 알람 시스템:SERENA
  6. 원쉴드를 사용한 스마트 홈 자동화 및 보안 시스템
  7. Python3 및 Arduino 통신
  8. Arduino 및 Google 스프레드시트 기반 출석 시스템
  9. Octopod:스마트 IoT 홈/산업 자동화 프로젝트
  10. WARAN - 홈 오토메이션